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