src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page




 298   void store_check(Register obj);                // store check for obj - register is destroyed afterwards
 299   void store_check(Register obj, Address dst);   // same as above, dst is exact store location (reg. is destroyed)
 300 
 301 #if INCLUDE_ALL_GCS
 302 
 303   void g1_write_barrier_pre(Register obj,
 304                             Register pre_val,
 305                             Register thread,
 306                             Register tmp,
 307                             bool tosca_live,
 308                             bool expand_call);
 309 
 310   void g1_write_barrier_post(Register store_addr,
 311                              Register new_val,
 312                              Register thread,
 313                              Register tmp,
 314                              Register tmp2);
 315 
 316 #endif // INCLUDE_ALL_GCS
 317 
 318   // split store_check(Register obj) to enhance instruction interleaving
 319   void store_check_part_1(Register obj);
 320   void store_check_part_2(Register obj);
 321 
 322   // C 'boolean' to Java boolean: x == 0 ? 0 : 1
 323   void c2bool(Register x);
 324 
 325   // C++ bool manipulation
 326 
 327   void movbool(Register dst, Address src);
 328   void movbool(Address dst, bool boolconst);
 329   void movbool(Address dst, Register src);
 330   void testbool(Register dst);
 331 
 332   // oop manipulations
 333   void load_klass(Register dst, Register src);
 334   void store_klass(Register dst, Register src);
 335 
 336   void load_heap_oop(Register dst, Address src);
 337   void load_heap_oop_not_null(Register dst, Address src);
 338   void store_heap_oop(Address dst, Register src);
 339   void cmp_heap_oop(Register src1, Address src2, Register tmp = noreg);
 340 
 341   // Used for storing NULL. All other oop constants should be




 298   void store_check(Register obj);                // store check for obj - register is destroyed afterwards
 299   void store_check(Register obj, Address dst);   // same as above, dst is exact store location (reg. is destroyed)
 300 
 301 #if INCLUDE_ALL_GCS
 302 
 303   void g1_write_barrier_pre(Register obj,
 304                             Register pre_val,
 305                             Register thread,
 306                             Register tmp,
 307                             bool tosca_live,
 308                             bool expand_call);
 309 
 310   void g1_write_barrier_post(Register store_addr,
 311                              Register new_val,
 312                              Register thread,
 313                              Register tmp,
 314                              Register tmp2);
 315 
 316 #endif // INCLUDE_ALL_GCS
 317 




 318   // C 'boolean' to Java boolean: x == 0 ? 0 : 1
 319   void c2bool(Register x);
 320 
 321   // C++ bool manipulation
 322 
 323   void movbool(Register dst, Address src);
 324   void movbool(Address dst, bool boolconst);
 325   void movbool(Address dst, Register src);
 326   void testbool(Register dst);
 327 
 328   // oop manipulations
 329   void load_klass(Register dst, Register src);
 330   void store_klass(Register dst, Register src);
 331 
 332   void load_heap_oop(Register dst, Address src);
 333   void load_heap_oop_not_null(Register dst, Address src);
 334   void store_heap_oop(Address dst, Register src);
 335   void cmp_heap_oop(Register src1, Address src2, Register tmp = noreg);
 336 
 337   // Used for storing NULL. All other oop constants should be