src/cpu/aarch64/vm/macroAssembler_aarch64.hpp

Print this page




 688   void store_check(Register obj);                // store check for obj - register is destroyed afterwards
 689   void store_check(Register obj, Address dst);   // same as above, dst is exact store location (reg. is destroyed)
 690 
 691 #if INCLUDE_ALL_GCS
 692 
 693   void g1_write_barrier_pre(Register obj,
 694                             Register pre_val,
 695                             Register thread,
 696                             Register tmp,
 697                             bool tosca_live,
 698                             bool expand_call);
 699 
 700   void g1_write_barrier_post(Register store_addr,
 701                              Register new_val,
 702                              Register thread,
 703                              Register tmp,
 704                              Register tmp2);
 705 
 706 #endif // INCLUDE_ALL_GCS
 707 
 708   // split store_check(Register obj) to enhance instruction interleaving
 709   void store_check_part_1(Register obj);
 710   void store_check_part_2(Register obj);
 711 
 712   // oop manipulations
 713   void load_klass(Register dst, Register src);
 714   void store_klass(Register dst, Register src);
 715   void cmp_klass(Register oop, Register trial_klass, Register tmp);
 716 
 717   void load_heap_oop(Register dst, Address src);
 718 
 719   void load_heap_oop_not_null(Register dst, Address src);
 720   void store_heap_oop(Address dst, Register src);
 721 
 722   // currently unimplemented
 723   // Used for storing NULL. All other oop constants should be
 724   // stored using routines that take a jobject.
 725   void store_heap_oop_null(Address dst);
 726 
 727   void load_prototype_header(Register dst, Register src);
 728 
 729   void store_klass_gap(Register dst, Register src);
 730 
 731   // This dummy is to prevent a call to store_heap_oop from




 688   void store_check(Register obj);                // store check for obj - register is destroyed afterwards
 689   void store_check(Register obj, Address dst);   // same as above, dst is exact store location (reg. is destroyed)
 690 
 691 #if INCLUDE_ALL_GCS
 692 
 693   void g1_write_barrier_pre(Register obj,
 694                             Register pre_val,
 695                             Register thread,
 696                             Register tmp,
 697                             bool tosca_live,
 698                             bool expand_call);
 699 
 700   void g1_write_barrier_post(Register store_addr,
 701                              Register new_val,
 702                              Register thread,
 703                              Register tmp,
 704                              Register tmp2);
 705 
 706 #endif // INCLUDE_ALL_GCS
 707 




 708   // oop manipulations
 709   void load_klass(Register dst, Register src);
 710   void store_klass(Register dst, Register src);
 711   void cmp_klass(Register oop, Register trial_klass, Register tmp);
 712 
 713   void load_heap_oop(Register dst, Address src);
 714 
 715   void load_heap_oop_not_null(Register dst, Address src);
 716   void store_heap_oop(Address dst, Register src);
 717 
 718   // currently unimplemented
 719   // Used for storing NULL. All other oop constants should be
 720   // stored using routines that take a jobject.
 721   void store_heap_oop_null(Address dst);
 722 
 723   void load_prototype_header(Register dst, Register src);
 724 
 725   void store_klass_gap(Register dst, Register src);
 726 
 727   // This dummy is to prevent a call to store_heap_oop from