< prev index next >

src/hotspot/cpu/x86/c1_MacroAssembler_x86.hpp

Print this page

 59   void unlock_object(Register swap, Register obj, Register lock, Label& slow_case);
 60 
 61   void initialize_object(
 62     Register obj,                      // result: pointer to object after successful allocation
 63     Register klass,                    // object klass
 64     Register var_size_in_bytes,        // object size in bytes if unknown at compile time; invalid otherwise
 65     int      con_size_in_bytes,        // object size in bytes if   known at compile time
 66     Register t1,                       // temp register
 67     Register t2,                       // temp register
 68     bool     is_tlab_allocated         // the object was allocated in a TLAB; relevant for the implementation of ZeroTLAB
 69   );
 70 
 71   // allocation of fixed-size objects
 72   // (can also be used to allocate fixed-size arrays, by setting
 73   // hdr_size correctly and storing the array length afterwards)
 74   // obj        : must be rax, will contain pointer to allocated object
 75   // t1, t2     : scratch registers - contents destroyed
 76   // header_size: size of object header in words
 77   // object_size: total size of object in words
 78   // slow_case  : exit to slow case implementation if fast allocation fails
 79   void allocate_object(Register obj, Register t1, Register t2, int header_size, int object_size, Register klass, Label& slow_case);
 80 
 81   enum {
 82     max_array_allocation_length = 0x00FFFFFF
 83   };
 84 
 85   // allocation of arrays
 86   // obj        : must be rax, will contain pointer to allocated object
 87   // len        : array length in number of elements
 88   // t          : scratch register - contents destroyed
 89   // header_size: size of object header in words
 90   // f          : element scale factor
 91   // slow_case  : exit to slow case implementation if fast allocation fails
 92   void allocate_array(Register obj, Register len, Register t, Register t2, int header_size, Address::ScaleFactor f, Register klass, Label& slow_case);
 93 
 94   int  rsp_offset() const { return _rsp_offset; }
 95   void set_rsp_offset(int n) { _rsp_offset = n; }
 96 
 97   // Note: NEVER push values directly, but only through following push_xxx functions;
 98   //       This helps us to track the rsp changes compared to the entry rsp (->_rsp_offset)
 99 

 59   void unlock_object(Register swap, Register obj, Register lock, Label& slow_case);
 60 
 61   void initialize_object(
 62     Register obj,                      // result: pointer to object after successful allocation
 63     Register klass,                    // object klass
 64     Register var_size_in_bytes,        // object size in bytes if unknown at compile time; invalid otherwise
 65     int      con_size_in_bytes,        // object size in bytes if   known at compile time
 66     Register t1,                       // temp register
 67     Register t2,                       // temp register
 68     bool     is_tlab_allocated         // the object was allocated in a TLAB; relevant for the implementation of ZeroTLAB
 69   );
 70 
 71   // allocation of fixed-size objects
 72   // (can also be used to allocate fixed-size arrays, by setting
 73   // hdr_size correctly and storing the array length afterwards)
 74   // obj        : must be rax, will contain pointer to allocated object
 75   // t1, t2     : scratch registers - contents destroyed
 76   // header_size: size of object header in words
 77   // object_size: total size of object in words
 78   // slow_case  : exit to slow case implementation if fast allocation fails
 79   void allocate_object(Register obj, Register t1, Register t2, int base_offset_in_bytes, int object_size, Register klass, Label& slow_case);
 80 
 81   enum {
 82     max_array_allocation_length = 0x00FFFFFF
 83   };
 84 
 85   // allocation of arrays
 86   // obj        : must be rax, will contain pointer to allocated object
 87   // len        : array length in number of elements
 88   // t          : scratch register - contents destroyed
 89   // header_size: size of object header in words
 90   // f          : element scale factor
 91   // slow_case  : exit to slow case implementation if fast allocation fails
 92   void allocate_array(Register obj, Register len, Register t, Register t2, int header_size, Address::ScaleFactor f, Register klass, Label& slow_case);
 93 
 94   int  rsp_offset() const { return _rsp_offset; }
 95   void set_rsp_offset(int n) { _rsp_offset = n; }
 96 
 97   // Note: NEVER push values directly, but only through following push_xxx functions;
 98   //       This helps us to track the rsp changes compared to the entry rsp (->_rsp_offset)
 99 
< prev index next >