< prev index next >

src/cpu/aarch64/vm/macroAssembler_aarch64.hpp

Print this page
rev 11237 : 8156839: aarch64: indexOf does not support CompactStrings
Summary: Add support for LL,UL and LU to indexOf intrinsic
Reviewed-by: aph


1200   void zero_words(Register base, Register cnt);
1201   void block_zero(Register base, Register cnt, bool is_large = false);
1202 
1203   void byte_array_inflate(Register src, Register dst, Register len,
1204                           FloatRegister vtmp1, FloatRegister vtmp2,
1205                           FloatRegister vtmp3, Register tmp4);
1206 
1207   void char_array_compress(Register src, Register dst, Register len,
1208                            FloatRegister tmp1Reg, FloatRegister tmp2Reg,
1209                            FloatRegister tmp3Reg, FloatRegister tmp4Reg,
1210                            Register result);
1211 
1212   void encode_iso_array(Register src, Register dst,
1213                         Register len, Register result,
1214                         FloatRegister Vtmp1, FloatRegister Vtmp2,
1215                         FloatRegister Vtmp3, FloatRegister Vtmp4);
1216   void string_indexof(Register str1, Register str2,
1217                       Register cnt1, Register cnt2,
1218                       Register tmp1, Register tmp2,
1219                       Register tmp3, Register tmp4,
1220                       int int_cnt1, Register result);
1221 private:
1222   void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,
1223                        Register src1, Register src2);
1224   void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2) {
1225     add2_with_carry(dest_hi, dest_hi, dest_lo, src1, src2);
1226   }
1227   void multiply_64_x_64_loop(Register x, Register xstart, Register x_xstart,
1228                              Register y, Register y_idx, Register z,
1229                              Register carry, Register product,
1230                              Register idx, Register kdx);
1231   void multiply_128_x_128_loop(Register y, Register z,
1232                                Register carry, Register carry2,
1233                                Register idx, Register jdx,
1234                                Register yz_idx1, Register yz_idx2,
1235                                Register tmp, Register tmp3, Register tmp4,
1236                                Register tmp7, Register product_hi);
1237 public:
1238   void multiply_to_len(Register x, Register xlen, Register y, Register ylen, Register z,
1239                        Register zlen, Register tmp1, Register tmp2, Register tmp3,
1240                        Register tmp4, Register tmp5, Register tmp6, Register tmp7);




1200   void zero_words(Register base, Register cnt);
1201   void block_zero(Register base, Register cnt, bool is_large = false);
1202 
1203   void byte_array_inflate(Register src, Register dst, Register len,
1204                           FloatRegister vtmp1, FloatRegister vtmp2,
1205                           FloatRegister vtmp3, Register tmp4);
1206 
1207   void char_array_compress(Register src, Register dst, Register len,
1208                            FloatRegister tmp1Reg, FloatRegister tmp2Reg,
1209                            FloatRegister tmp3Reg, FloatRegister tmp4Reg,
1210                            Register result);
1211 
1212   void encode_iso_array(Register src, Register dst,
1213                         Register len, Register result,
1214                         FloatRegister Vtmp1, FloatRegister Vtmp2,
1215                         FloatRegister Vtmp3, FloatRegister Vtmp4);
1216   void string_indexof(Register str1, Register str2,
1217                       Register cnt1, Register cnt2,
1218                       Register tmp1, Register tmp2,
1219                       Register tmp3, Register tmp4,
1220                       int int_cnt1, Register result, int ae);
1221 private:
1222   void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,
1223                        Register src1, Register src2);
1224   void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2) {
1225     add2_with_carry(dest_hi, dest_hi, dest_lo, src1, src2);
1226   }
1227   void multiply_64_x_64_loop(Register x, Register xstart, Register x_xstart,
1228                              Register y, Register y_idx, Register z,
1229                              Register carry, Register product,
1230                              Register idx, Register kdx);
1231   void multiply_128_x_128_loop(Register y, Register z,
1232                                Register carry, Register carry2,
1233                                Register idx, Register jdx,
1234                                Register yz_idx1, Register yz_idx2,
1235                                Register tmp, Register tmp3, Register tmp4,
1236                                Register tmp7, Register product_hi);
1237 public:
1238   void multiply_to_len(Register x, Register xlen, Register y, Register ylen, Register z,
1239                        Register zlen, Register tmp1, Register tmp2, Register tmp3,
1240                        Register tmp4, Register tmp5, Register tmp6, Register tmp7);


< prev index next >