< prev index next >

src/hotspot/cpu/x86/c1_MacroAssembler_x86.hpp

Print this page

 33   void pd_init() { _rsp_offset = 0; }
 34 
 35  public:
 36   void try_allocate(
 37     Register obj,                      // result: pointer to object after successful allocation
 38     Register var_size_in_bytes,        // object size in bytes if unknown at compile time; invalid otherwise
 39     int      con_size_in_bytes,        // object size in bytes if   known at compile time
 40     Register t1,                       // temp register
 41     Register t2,                       // temp register
 42     Label&   slow_case                 // continuation point if fast allocation fails
 43   );
 44 
 45   void initialize_header(Register obj, Register klass, Register len, Register t1, Register t2);
 46   void initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1);
 47 
 48   // locking
 49   // hdr     : must be rax, contents destroyed
 50   // obj     : must point to the object to lock, contents preserved
 51   // disp_hdr: must point to the displaced header location, contents preserved
 52   // returns code offset at which to add null check debug information
 53   int lock_object  (Register swap, Register obj, Register disp_hdr, Label& slow_case);
 54 
 55   // unlocking
 56   // hdr     : contents destroyed
 57   // obj     : must point to the object to lock, contents preserved
 58   // disp_hdr: must be eax & must point to the displaced header location, contents destroyed
 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)

 33   void pd_init() { _rsp_offset = 0; }
 34 
 35  public:
 36   void try_allocate(
 37     Register obj,                      // result: pointer to object after successful allocation
 38     Register var_size_in_bytes,        // object size in bytes if unknown at compile time; invalid otherwise
 39     int      con_size_in_bytes,        // object size in bytes if   known at compile time
 40     Register t1,                       // temp register
 41     Register t2,                       // temp register
 42     Label&   slow_case                 // continuation point if fast allocation fails
 43   );
 44 
 45   void initialize_header(Register obj, Register klass, Register len, Register t1, Register t2);
 46   void initialize_body(Register obj, Register len_in_bytes, int hdr_size_in_bytes, Register t1);
 47 
 48   // locking
 49   // hdr     : must be rax, contents destroyed
 50   // obj     : must point to the object to lock, contents preserved
 51   // disp_hdr: must point to the displaced header location, contents preserved
 52   // returns code offset at which to add null check debug information
 53   int lock_object  (Register swap, Register obj, Register disp_hdr, Register tmp, Label& slow_case);
 54 
 55   // unlocking
 56   // hdr     : contents destroyed
 57   // obj     : must point to the object to lock, contents preserved
 58   // disp_hdr: must be eax & must point to the displaced header location, contents destroyed
 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)
< prev index next >