src/cpu/x86/vm/c1_MacroAssembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8086053-search Sdiff src/cpu/x86/vm

src/cpu/x86/vm/c1_MacroAssembler_x86.hpp

Print this page




  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   // scratch : scratch register, contents destroyed
  53   // returns code offset at which to add null check debug information
  54   int lock_object  (Register swap, Register obj, Register disp_hdr, Register scratch, Label& slow_case);
  55 
  56   // unlocking
  57   // hdr     : contents destroyed
  58   // obj     : must point to the object to lock, contents preserved
  59   // disp_hdr: must be eax & must point to the displaced header location, contents destroyed
  60   void unlock_object(Register swap, Register obj, Register lock, Label& slow_case);
  61 
  62   void initialize_object(
  63     Register obj,                      // result: pointer to object after successful allocation
  64     Register klass,                    // object klass
  65     Register var_size_in_bytes,        // object size in bytes if unknown at compile time; invalid otherwise
  66     int      con_size_in_bytes,        // object size in bytes if   known at compile time
  67     Register t1,                       // temp register
  68     Register t2                        // temp register

  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




  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   // scratch : scratch register, contents destroyed
  53   // returns code offset at which to add null check debug information
  54   int lock_object  (Register swap, Register obj, Register disp_hdr, Register scratch, Label& slow_case);
  55 
  56   // unlocking
  57   // hdr     : contents destroyed
  58   // obj     : must point to the object to lock, contents preserved
  59   // disp_hdr: must be eax & must point to the displaced header location, contents destroyed
  60   void unlock_object(Register swap, Register obj, Register lock, Label& slow_case);
  61 
  62   void initialize_object(
  63     Register obj,                      // result: pointer to object after successful allocation
  64     Register klass,                    // object klass
  65     Register var_size_in_bytes,        // object size in bytes if unknown at compile time; invalid otherwise
  66     int      con_size_in_bytes,        // object size in bytes if   known at compile time
  67     Register t1,                       // temp register
  68     Register t2,                       // temp register
  69     bool     is_tlab_allocated         // the object was allocated in a TLAB; relevant for the implementation of ZeroTLAB
  70   );
  71 
  72   // allocation of fixed-size objects
  73   // (can also be used to allocate fixed-size arrays, by setting
  74   // hdr_size correctly and storing the array length afterwards)
  75   // obj        : must be rax, will contain pointer to allocated object
  76   // t1, t2     : scratch registers - contents destroyed
  77   // header_size: size of object header in words
  78   // object_size: total size of object in words
  79   // slow_case  : exit to slow case implementation if fast allocation fails
  80   void allocate_object(Register obj, Register t1, Register t2, int header_size, int object_size, Register klass, Label& slow_case);
  81 
  82   enum {
  83     max_array_allocation_length = 0x00FFFFFF
  84   };
  85 
  86   // allocation of arrays
  87   // obj        : must be rax, will contain pointer to allocated object
  88   // len        : array length in number of elements
  89   // t          : scratch register - contents destroyed


src/cpu/x86/vm/c1_MacroAssembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File