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 access. Result is placed in the same register.
799 // All other registers are preserved.
800 void resolve(DecoratorSet decorators, Register obj);
801
802 void load_heap_oop(Register dst, Address src, Register tmp1 = noreg,
803 Register thread_tmp = noreg, DecoratorSet decorators = 0);
804
805 void load_heap_oop_not_null(Register dst, Address src, Register tmp1 = noreg,
806 Register thread_tmp = noreg, DecoratorSet decorators = 0);
807 void store_heap_oop(Address dst, Register src, Register tmp1 = noreg,
808 Register tmp_thread = noreg, DecoratorSet decorators = 0);
809
810 // currently unimplemented
811 // Used for storing NULL. All other oop constants should be
812 // stored using routines that take a jobject.
813 void store_heap_oop_null(Address dst);
814
815 void load_prototype_header(Register dst, Register src);
816
817 void store_klass_gap(Register dst, Register src);
818
819 // This dummy is to prevent a call to store_heap_oop from
820 // converting a zero (like NULL) into a Register by giving
821 // the compiler two choices it can't resolve
|