< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Print this page
rev 50715 : 8205523: Explicit barriers for interpreter


 778   // Stores
 779   void store_check(Register obj);                // store check for obj - register is destroyed afterwards
 780   void store_check(Register obj, Address dst);   // same as above, dst is exact store location (reg. is destroyed)
 781 
 782   void resolve_jobject(Register value, Register thread, Register tmp);
 783 
 784   // oop manipulations
 785   void load_klass(Register dst, Register src);
 786   void store_klass(Register dst, Register src);
 787   void cmp_klass(Register oop, Register trial_klass, Register tmp);
 788 
 789   void resolve_oop_handle(Register result, Register tmp = r5);
 790   void load_mirror(Register dst, Register method, Register tmp = r5);
 791 
 792   void access_load_at(BasicType type, DecoratorSet decorators, Register dst, Address src,
 793                       Register tmp1, Register tmp_thread);
 794 
 795   void access_store_at(BasicType type, DecoratorSet decorators, Address dst, Register src,
 796                        Register tmp1, Register tmp_thread);
 797 








 798   void load_heap_oop(Register dst, Address src, Register tmp1 = noreg,
 799                      Register thread_tmp = noreg, DecoratorSet decorators = 0);
 800 
 801   void load_heap_oop_not_null(Register dst, Address src, Register tmp1 = noreg,
 802                               Register thread_tmp = noreg, DecoratorSet decorators = 0);
 803   void store_heap_oop(Address dst, Register src, Register tmp1 = noreg,
 804                       Register tmp_thread = noreg, DecoratorSet decorators = 0);
 805 
 806   // currently unimplemented
 807   // Used for storing NULL. All other oop constants should be
 808   // stored using routines that take a jobject.
 809   void store_heap_oop_null(Address dst);
 810 
 811   void load_prototype_header(Register dst, Register src);
 812 
 813   void store_klass_gap(Register dst, Register src);
 814 
 815   // This dummy is to prevent a call to store_heap_oop from
 816   // converting a zero (like NULL) into a Register by giving
 817   // the compiler two choices it can't resolve




 778   // Stores
 779   void store_check(Register obj);                // store check for obj - register is destroyed afterwards
 780   void store_check(Register obj, Address dst);   // same as above, dst is exact store location (reg. is destroyed)
 781 
 782   void resolve_jobject(Register value, Register thread, Register tmp);
 783 
 784   // oop manipulations
 785   void load_klass(Register dst, Register src);
 786   void store_klass(Register dst, Register src);
 787   void cmp_klass(Register oop, Register trial_klass, Register tmp);
 788 
 789   void resolve_oop_handle(Register result, Register tmp = r5);
 790   void load_mirror(Register dst, Register method, Register tmp = r5);
 791 
 792   void access_load_at(BasicType type, DecoratorSet decorators, Register dst, Address src,
 793                       Register tmp1, Register tmp_thread);
 794 
 795   void access_store_at(BasicType type, DecoratorSet decorators, Address dst, Register src,
 796                        Register tmp1, Register tmp_thread);
 797 
 798   // Resolves obj for read access. Result is placed in the same register.
 799   // All other registers are preserved.
 800   void resolve_for_read(DecoratorSet decorators, Register obj);
 801 
 802   // Resolves obj for write access. Result is placed in the same register.
 803   // All other registers are preserved.
 804   void resolve_for_write(DecoratorSet decorators, Register obj);
 805 
 806   void load_heap_oop(Register dst, Address src, Register tmp1 = noreg,
 807                      Register thread_tmp = noreg, DecoratorSet decorators = 0);
 808 
 809   void load_heap_oop_not_null(Register dst, Address src, Register tmp1 = noreg,
 810                               Register thread_tmp = noreg, DecoratorSet decorators = 0);
 811   void store_heap_oop(Address dst, Register src, Register tmp1 = noreg,
 812                       Register tmp_thread = noreg, DecoratorSet decorators = 0);
 813 
 814   // currently unimplemented
 815   // Used for storing NULL. All other oop constants should be
 816   // stored using routines that take a jobject.
 817   void store_heap_oop_null(Address dst);
 818 
 819   void load_prototype_header(Register dst, Register src);
 820 
 821   void store_klass_gap(Register dst, Register src);
 822 
 823   // This dummy is to prevent a call to store_heap_oop from
 824   // converting a zero (like NULL) into a Register by giving
 825   // the compiler two choices it can't resolve


< prev index next >