< prev index next >

src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page




1241   void square_rshift(Register x, Register len, Register z, Register tmp1, Register tmp3,
1242                      Register tmp4, Register tmp5, Register rdxReg, Register raxReg);
1243   void multiply_add_64_bmi2(Register sum, Register op1, Register op2, Register carry,
1244                             Register tmp2);
1245   void multiply_add_64(Register sum, Register op1, Register op2, Register carry,
1246                        Register rdxReg, Register raxReg);
1247   void add_one_64(Register z, Register zlen, Register carry, Register tmp1);
1248   void lshift_by_1(Register x, Register len, Register z, Register zlen, Register tmp1, Register tmp2,
1249                        Register tmp3, Register tmp4);
1250   void square_to_len(Register x, Register len, Register z, Register zlen, Register tmp1, Register tmp2,
1251                      Register tmp3, Register tmp4, Register tmp5, Register rdxReg, Register raxReg);
1252 
1253   void mul_add_128_x_32_loop(Register out, Register in, Register offset, Register len, Register tmp1,
1254                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
1255                Register raxReg);
1256   void mul_add(Register out, Register in, Register offset, Register len, Register k, Register tmp1,
1257                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
1258                Register raxReg);
1259 #endif
1260 
1261   // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1262   void update_byte_crc32(Register crc, Register val, Register table);
1263   void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp);






1264   // Fold 128-bit data chunk
1265   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1266   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
1267   // Fold 8-bit data
1268   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1269   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
1270 
1271 #undef VIRTUAL
1272 
1273 };
1274 
1275 /**
1276  * class SkipIfEqual:
1277  *
1278  * Instantiating this class will result in assembly code being output that will
1279  * jump around any code emitted between the creation of the instance and it's
1280  * automatic destruction at the end of a scope block, depending on the value of
1281  * the flag passed to the constructor, which will be checked at run-time.
1282  */
1283 class SkipIfEqual {


1241   void square_rshift(Register x, Register len, Register z, Register tmp1, Register tmp3,
1242                      Register tmp4, Register tmp5, Register rdxReg, Register raxReg);
1243   void multiply_add_64_bmi2(Register sum, Register op1, Register op2, Register carry,
1244                             Register tmp2);
1245   void multiply_add_64(Register sum, Register op1, Register op2, Register carry,
1246                        Register rdxReg, Register raxReg);
1247   void add_one_64(Register z, Register zlen, Register carry, Register tmp1);
1248   void lshift_by_1(Register x, Register len, Register z, Register zlen, Register tmp1, Register tmp2,
1249                        Register tmp3, Register tmp4);
1250   void square_to_len(Register x, Register len, Register z, Register zlen, Register tmp1, Register tmp2,
1251                      Register tmp3, Register tmp4, Register tmp5, Register rdxReg, Register raxReg);
1252 
1253   void mul_add_128_x_32_loop(Register out, Register in, Register offset, Register len, Register tmp1,
1254                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
1255                Register raxReg);
1256   void mul_add(Register out, Register in, Register offset, Register len, Register k, Register tmp1,
1257                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
1258                Register raxReg);
1259 #endif
1260 
1261   // CRC32 code for java.util.zip.CRC32::updateBytes() intrinsic.
1262   void update_byte_crc32(Register crc, Register val, Register table);
1263   void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp);
1264   // CRC32C code for java.util.zip.CRC32C::updateBytes() intrinsic
1265   void crc32c_IPL_Alg2Alt2Fast(Register crc, Register buf, Register len,
1266                                Register A, Register B, Register C,
1267                                Register D, Register E, Register F,
1268                                XMMRegister AXMM, XMMRegister BXMM, XMMRegister CXMM,
1269                                bool IsPclmulqdqSupported);
1270   // Fold 128-bit data chunk
1271   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
1272   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
1273   // Fold 8-bit data
1274   void fold_8bit_crc32(Register crc, Register table, Register tmp);
1275   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
1276 
1277 #undef VIRTUAL
1278 
1279 };
1280 
1281 /**
1282  * class SkipIfEqual:
1283  *
1284  * Instantiating this class will result in assembly code being output that will
1285  * jump around any code emitted between the creation of the instance and it's
1286  * automatic destruction at the end of a scope block, depending on the value of
1287  * the flag passed to the constructor, which will be checked at run-time.
1288  */
1289 class SkipIfEqual {
< prev index next >