815
816 void encode_heap_oop(Register oop);
817 void encode_heap_oop_not_null(Register oop);
818
819 static int get_oop_base_pow2_offset(uint64_t oop_base);
820 int get_oop_base(Register Rbase, uint64_t oop_base);
821 int get_oop_base_complement(Register Rbase, uint64_t oop_base);
822 void compare_heap_oop(Register Rop1, Address mem, bool maybeNULL);
823 void compare_klass_ptr(Register Rop1, int64_t disp, Register Rbase, bool maybeNULL);
824 void load_heap_oop(Register dest, const Address &a);
825 void load_heap_oop(Register d, int64_t si16, Register s1);
826 void load_heap_oop_not_null(Register d, int64_t si16, Register s1);
827 void store_heap_oop(Register Roop, RegisterOrConstant offset, Register base);
828 void store_heap_oop_not_null(Register Roop, RegisterOrConstant offset, Register base);
829 void store_heap_oop_null(Register zero, RegisterOrConstant offset, Register base);
830 void oop_encoder(Register Rdst, Register Rsrc, bool maybeNULL,
831 Register Rbase = Z_R1, int pow2_offset = -1, bool only32bitValid = false);
832 void oop_decoder(Register Rdst, Register Rsrc, bool maybeNULL,
833 Register Rbase = Z_R1, int pow2_offset = -1);
834
835 void load_mirror(Register mirror, Register method);
836
837 //--------------------------
838 //--- perations on arrays.
839 //--------------------------
840 unsigned int Clear_Array(Register cnt_arg, Register base_pointer_arg, Register src_addr, Register src_len);
841 unsigned int Clear_Array_Const(long cnt, Register base);
842 unsigned int Clear_Array_Const_Big(long cnt, Register base_pointer_arg, Register src_addr, Register src_len);
843 unsigned int CopyRawMemory_AlignedDisjoint(Register src_reg, Register dst_reg,
844 Register cnt_reg,
845 Register tmp1_reg, Register tmp2_reg);
846
847 //-------------------------------------------
848 // Special String Intrinsics Implementation.
849 //-------------------------------------------
850 // Intrinsics for CompactStrings
851 // Compress char[] to byte[]. odd_reg contains cnt. tmp3 is only needed for precise behavior in failure case. Kills dst.
852 unsigned int string_compress(Register result, Register src, Register dst, Register odd_reg,
853 Register even_reg, Register tmp, Register tmp2 = noreg);
854
|
815
816 void encode_heap_oop(Register oop);
817 void encode_heap_oop_not_null(Register oop);
818
819 static int get_oop_base_pow2_offset(uint64_t oop_base);
820 int get_oop_base(Register Rbase, uint64_t oop_base);
821 int get_oop_base_complement(Register Rbase, uint64_t oop_base);
822 void compare_heap_oop(Register Rop1, Address mem, bool maybeNULL);
823 void compare_klass_ptr(Register Rop1, int64_t disp, Register Rbase, bool maybeNULL);
824 void load_heap_oop(Register dest, const Address &a);
825 void load_heap_oop(Register d, int64_t si16, Register s1);
826 void load_heap_oop_not_null(Register d, int64_t si16, Register s1);
827 void store_heap_oop(Register Roop, RegisterOrConstant offset, Register base);
828 void store_heap_oop_not_null(Register Roop, RegisterOrConstant offset, Register base);
829 void store_heap_oop_null(Register zero, RegisterOrConstant offset, Register base);
830 void oop_encoder(Register Rdst, Register Rsrc, bool maybeNULL,
831 Register Rbase = Z_R1, int pow2_offset = -1, bool only32bitValid = false);
832 void oop_decoder(Register Rdst, Register Rsrc, bool maybeNULL,
833 Register Rbase = Z_R1, int pow2_offset = -1);
834
835 void resolve_oop_handle(Register result);
836 void load_mirror(Register mirror, Register method);
837
838 //--------------------------
839 //--- perations on arrays.
840 //--------------------------
841 unsigned int Clear_Array(Register cnt_arg, Register base_pointer_arg, Register src_addr, Register src_len);
842 unsigned int Clear_Array_Const(long cnt, Register base);
843 unsigned int Clear_Array_Const_Big(long cnt, Register base_pointer_arg, Register src_addr, Register src_len);
844 unsigned int CopyRawMemory_AlignedDisjoint(Register src_reg, Register dst_reg,
845 Register cnt_reg,
846 Register tmp1_reg, Register tmp2_reg);
847
848 //-------------------------------------------
849 // Special String Intrinsics Implementation.
850 //-------------------------------------------
851 // Intrinsics for CompactStrings
852 // Compress char[] to byte[]. odd_reg contains cnt. tmp3 is only needed for precise behavior in failure case. Kills dst.
853 unsigned int string_compress(Register result, Register src, Register dst, Register odd_reg,
854 Register even_reg, Register tmp, Register tmp2 = noreg);
855
|