src/cpu/x86/vm/macroAssembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8055494 Sdiff src/cpu/x86/vm

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page




1204 
1205   // Compare strings.
1206   void string_compare(Register str1, Register str2,
1207                       Register cnt1, Register cnt2, Register result,
1208                       XMMRegister vec1);
1209 
1210   // Compare char[] arrays.
1211   void char_arrays_equals(bool is_array_equ, Register ary1, Register ary2,
1212                           Register limit, Register result, Register chr,
1213                           XMMRegister vec1, XMMRegister vec2);
1214 
1215   // Fill primitive arrays
1216   void generate_fill(BasicType t, bool aligned,
1217                      Register to, Register value, Register count,
1218                      Register rtmp, XMMRegister xtmp);
1219 
1220   void encode_iso_array(Register src, Register dst, Register len,
1221                         XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3,
1222                         XMMRegister tmp4, Register tmp5, Register result);
1223 






















1224   // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1225   void update_byte_crc32(Register crc, Register val, Register table);
1226   void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp);
1227   // Fold 128-bit data chunk
1228   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1229   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
1230   // Fold 8-bit data
1231   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1232   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
1233 
1234 #undef VIRTUAL
1235 
1236 };
1237 
1238 /**
1239  * class SkipIfEqual:
1240  *
1241  * Instantiating this class will result in assembly code being output that will
1242  * jump around any code emitted between the creation of the instance and it's
1243  * automatic destruction at the end of a scope block, depending on the value of


1204 
1205   // Compare strings.
1206   void string_compare(Register str1, Register str2,
1207                       Register cnt1, Register cnt2, Register result,
1208                       XMMRegister vec1);
1209 
1210   // Compare char[] arrays.
1211   void char_arrays_equals(bool is_array_equ, Register ary1, Register ary2,
1212                           Register limit, Register result, Register chr,
1213                           XMMRegister vec1, XMMRegister vec2);
1214 
1215   // Fill primitive arrays
1216   void generate_fill(BasicType t, bool aligned,
1217                      Register to, Register value, Register count,
1218                      Register rtmp, XMMRegister xtmp);
1219 
1220   void encode_iso_array(Register src, Register dst, Register len,
1221                         XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3,
1222                         XMMRegister tmp4, Register tmp5, Register result);
1223 
1224 #ifdef _LP64
1225   void add2_with_carry(Register dest_hi, Register dest_lo, Register src1, Register src2);
1226   void multiply_64_x_64_loop(Register x, Register xstart, Register x_xstart,
1227                              Register y, Register y_idx, Register z,
1228                              Register carry, Register product,
1229                              Register idx, Register kdx);
1230   void multiply_add_128_x_128(Register x_xstart, Register y, Register z,
1231                               Register yz_idx, Register idx,
1232                               Register carry, Register product, int offset);
1233   void multiply_128_x_128_bmi2_loop(Register y, Register z,
1234                                     Register carry, Register carry2,
1235                                     Register idx, Register jdx,
1236                                     Register yz_idx1, Register yz_idx2,
1237                                     Register tmp, Register tmp3, Register tmp4);
1238   void multiply_128_x_128_loop(Register x_xstart, Register y, Register z,
1239                                Register yz_idx, Register idx, Register jdx,
1240                                Register carry, Register product,
1241                                Register carry2);
1242   void multiply_to_len(Register x, Register xlen, Register y, Register ylen, Register z, Register zlen,
1243                        Register tmp1, Register tmp2, Register tmp3, Register tmp4, Register tmp5);
1244 #endif
1245 
1246   // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1247   void update_byte_crc32(Register crc, Register val, Register table);
1248   void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp);
1249   // Fold 128-bit data chunk
1250   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1251   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
1252   // Fold 8-bit data
1253   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1254   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
1255 
1256 #undef VIRTUAL
1257 
1258 };
1259 
1260 /**
1261  * class SkipIfEqual:
1262  *
1263  * Instantiating this class will result in assembly code being output that will
1264  * jump around any code emitted between the creation of the instance and it's
1265  * automatic destruction at the end of a scope block, depending on the value of
src/cpu/x86/vm/macroAssembler_x86.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File