< prev index next >

src/cpu/aarch64/vm/macroAssembler_aarch64.hpp

Print this page
rev 10997 : 8154957: AArch64: Better byte behavior
Summary:  The fix for 8132051 is needed for AArch64.
Reviewed-by: roland


1167     }
1168   }
1169 
1170   address read_polling_page(Register r, address page, relocInfo::relocType rtype);
1171   address read_polling_page(Register r, relocInfo::relocType rtype);
1172 
1173   // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1174   void update_byte_crc32(Register crc, Register val, Register table);
1175   void update_word_crc32(Register crc, Register v, Register tmp,
1176         Register table0, Register table1, Register table2, Register table3,
1177         bool upper = false);
1178 
1179   void string_compare(Register str1, Register str2,
1180                       Register cnt1, Register cnt2, Register result,
1181                       Register tmp1);
1182 
1183   void arrays_equals(Register a1, Register a2,
1184                      Register result, Register cnt1,
1185                      int elem_size, bool is_string);
1186 




1187   void byte_array_inflate(Register src, Register dst, Register len,
1188                           FloatRegister vtmp1, FloatRegister vtmp2,
1189                           FloatRegister vtmp3, Register tmp4);
1190 
1191   void char_array_compress(Register src, Register dst, Register len,
1192                            FloatRegister tmp1Reg, FloatRegister tmp2Reg,
1193                            FloatRegister tmp3Reg, FloatRegister tmp4Reg,
1194                            Register result);
1195 
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,




1167     }
1168   }
1169 
1170   address read_polling_page(Register r, address page, relocInfo::relocType rtype);
1171   address read_polling_page(Register r, relocInfo::relocType rtype);
1172 
1173   // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1174   void update_byte_crc32(Register crc, Register val, Register table);
1175   void update_word_crc32(Register crc, Register v, Register tmp,
1176         Register table0, Register table1, Register table2, Register table3,
1177         bool upper = false);
1178 
1179   void string_compare(Register str1, Register str2,
1180                       Register cnt1, Register cnt2, Register result,
1181                       Register tmp1);
1182 
1183   void arrays_equals(Register a1, Register a2,
1184                      Register result, Register cnt1,
1185                      int elem_size, bool is_string);
1186 
1187   void fill_words(Register base, Register cnt, Register value);
1188   void zero_words(Register base, Register cnt);
1189   void zero_words(Register base, u_int64_t cnt);
1190 
1191   void byte_array_inflate(Register src, Register dst, Register len,
1192                           FloatRegister vtmp1, FloatRegister vtmp2,
1193                           FloatRegister vtmp3, Register tmp4);
1194 
1195   void char_array_compress(Register src, Register dst, Register len,
1196                            FloatRegister tmp1Reg, FloatRegister tmp2Reg,
1197                            FloatRegister tmp3Reg, FloatRegister tmp4Reg,
1198                            Register result);
1199 
1200   void encode_iso_array(Register src, Register dst,
1201                         Register len, Register result,
1202                         FloatRegister Vtmp1, FloatRegister Vtmp2,
1203                         FloatRegister Vtmp3, FloatRegister Vtmp4);
1204   void string_indexof(Register str1, Register str2,
1205                       Register cnt1, Register cnt2,
1206                       Register tmp1, Register tmp2,
1207                       Register tmp3, Register tmp4,
1208                       int int_cnt1, Register result);
1209 private:
1210   void add2_with_carry(Register final_dest_hi, Register dest_hi, Register dest_lo,


< prev index next >