927 void load_heap_oop_not_null(Register dst, Address src, Register tmp1,
928 Register tmp2, DecoratorSet decorators = 0);
929 void store_heap_oop(Address dst, Register val, Register tmp1,
930 Register tmp2, Register tmp3, DecoratorSet decorators = 0);
931
932 // currently unimplemented
933 // Used for storing null. All other oop constants should be
934 // stored using routines that take a jobject.
935 void store_heap_oop_null(Address dst);
936
937 void store_klass_gap(Register dst, Register src);
938
939 // This dummy is to prevent a call to store_heap_oop from
940 // converting a zero (like null) into a Register by giving
941 // the compiler two choices it can't resolve
942
943 void store_heap_oop(Address dst, void* dummy);
944
945 void encode_heap_oop(Register d, Register s);
946 void encode_heap_oop(Register r) { encode_heap_oop(r, r); }
947 void decode_heap_oop(Register d, Register s);
948 void decode_heap_oop(Register r) { decode_heap_oop(r, r); }
949 void encode_heap_oop_not_null(Register r);
950 void decode_heap_oop_not_null(Register r);
951 void encode_heap_oop_not_null(Register dst, Register src);
952 void decode_heap_oop_not_null(Register dst, Register src);
953
954 void set_narrow_oop(Register dst, jobject obj);
955
956 void decode_klass_not_null_for_aot(Register dst, Register src);
957 void encode_klass_not_null_for_aot(Register dst, Register src);
958 void encode_klass_not_null(Register r);
959 void decode_klass_not_null(Register r);
960 void encode_klass_not_null(Register dst, Register src);
961 void decode_klass_not_null(Register dst, Register src);
962
963 void set_narrow_klass(Register dst, Klass* k);
964
965 // if heap base register is used - reinit it with the correct value
966 void reinit_heapbase();
967
968 DEBUG_ONLY(void verify_heapbase(const char* msg);)
|
927 void load_heap_oop_not_null(Register dst, Address src, Register tmp1,
928 Register tmp2, DecoratorSet decorators = 0);
929 void store_heap_oop(Address dst, Register val, Register tmp1,
930 Register tmp2, Register tmp3, DecoratorSet decorators = 0);
931
932 // currently unimplemented
933 // Used for storing null. All other oop constants should be
934 // stored using routines that take a jobject.
935 void store_heap_oop_null(Address dst);
936
937 void store_klass_gap(Register dst, Register src);
938
939 // This dummy is to prevent a call to store_heap_oop from
940 // converting a zero (like null) into a Register by giving
941 // the compiler two choices it can't resolve
942
943 void store_heap_oop(Address dst, void* dummy);
944
945 void encode_heap_oop(Register d, Register s);
946 void encode_heap_oop(Register r) { encode_heap_oop(r, r); }
947 void decode_heap_oop(Register d, Register s, Label* L_null_target = nullptr);
948 void decode_heap_oop(Register r, Label* L_null_target = nullptr) { decode_heap_oop(r, r, L_null_target); }
949 void encode_heap_oop_not_null(Register r);
950 void decode_heap_oop_not_null(Register r);
951 void encode_heap_oop_not_null(Register dst, Register src);
952 void decode_heap_oop_not_null(Register dst, Register src);
953
954 void set_narrow_oop(Register dst, jobject obj);
955
956 void decode_klass_not_null_for_aot(Register dst, Register src);
957 void encode_klass_not_null_for_aot(Register dst, Register src);
958 void encode_klass_not_null(Register r);
959 void decode_klass_not_null(Register r);
960 void encode_klass_not_null(Register dst, Register src);
961 void decode_klass_not_null(Register dst, Register src);
962
963 void set_narrow_klass(Register dst, Klass* k);
964
965 // if heap base register is used - reinit it with the correct value
966 void reinit_heapbase();
967
968 DEBUG_ONLY(void verify_heapbase(const char* msg);)
|