1169 ldr(dest, const_addr);
1170 } else {
1171 unsigned long offset;
1172 adrp(dest, InternalAddress(const_addr.target()), offset);
1173 ldr(dest, Address(dest, offset));
1174 }
1175 }
1176
1177 address read_polling_page(Register r, address page, relocInfo::relocType rtype);
1178 address read_polling_page(Register r, relocInfo::relocType rtype);
1179
1180 // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1181 void update_byte_crc32(Register crc, Register val, Register table);
1182 void update_word_crc32(Register crc, Register v, Register tmp,
1183 Register table0, Register table1, Register table2, Register table3,
1184 bool upper = false);
1185
1186 void string_compare(Register str1, Register str2,
1187 Register cnt1, Register cnt2, Register result,
1188 Register tmp1);
1189 void string_equals(Register str1, Register str2,
1190 Register cnt, Register result,
1191 Register tmp1);
1192 void char_arrays_equals(Register ary1, Register ary2,
1193 Register result, Register tmp1);
1194 void byte_arrays_equals(Register ary1, Register ary2,
1195 Register result, Register tmp1);
1196 void encode_iso_array(Register src, Register dst,
1197 Register len, Register result,
1198 FloatRegister Vtmp1, FloatRegister Vtmp2,
1199 FloatRegister Vtmp3, FloatRegister Vtmp4);
1200 void string_indexof(Register str1, Register str2,
1201 Register cnt1, Register cnt2,
1202 Register tmp1, Register tmp2,
1203 Register tmp3, Register tmp4,
1204 int int_cnt1, Register result);
1205 private:
1206 void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,
1207 Register src1, Register src2);
1208 void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2) {
1209 add2_with_carry(dest_hi, dest_hi, dest_lo, src1, src2);
1210 }
1211 void multiply_64_x_64_loop(Register x, Register xstart, Register x_xstart,
1212 Register y, Register y_idx, Register z,
1213 Register carry, Register product,
1214 Register idx, Register kdx);
1215 void multiply_128_x_128_loop(Register y, Register z,
|
1169 ldr(dest, const_addr);
1170 } else {
1171 unsigned long offset;
1172 adrp(dest, InternalAddress(const_addr.target()), offset);
1173 ldr(dest, Address(dest, offset));
1174 }
1175 }
1176
1177 address read_polling_page(Register r, address page, relocInfo::relocType rtype);
1178 address read_polling_page(Register r, relocInfo::relocType rtype);
1179
1180 // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1181 void update_byte_crc32(Register crc, Register val, Register table);
1182 void update_word_crc32(Register crc, Register v, Register tmp,
1183 Register table0, Register table1, Register table2, Register table3,
1184 bool upper = false);
1185
1186 void string_compare(Register str1, Register str2,
1187 Register cnt1, Register cnt2, Register result,
1188 Register tmp1);
1189
1190 void generic_arrays_equals(Register ary1, Register ary2,
1191 Register result, Register tmp,
1192 int step_size, bool is_string_equal);
1193
1194 void encode_iso_array(Register src, Register dst,
1195 Register len, Register result,
1196 FloatRegister Vtmp1, FloatRegister Vtmp2,
1197 FloatRegister Vtmp3, FloatRegister Vtmp4);
1198 void string_indexof(Register str1, Register str2,
1199 Register cnt1, Register cnt2,
1200 Register tmp1, Register tmp2,
1201 Register tmp3, Register tmp4,
1202 int int_cnt1, Register result);
1203 private:
1204 void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,
1205 Register src1, Register src2);
1206 void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2) {
1207 add2_with_carry(dest_hi, dest_hi, dest_lo, src1, src2);
1208 }
1209 void multiply_64_x_64_loop(Register x, Register xstart, Register x_xstart,
1210 Register y, Register y_idx, Register z,
1211 Register carry, Register product,
1212 Register idx, Register kdx);
1213 void multiply_128_x_128_loop(Register y, Register z,
|