< prev index next >

## src/cpu/x86/vm/macroAssembler_x86.hpp

Print this page

    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
    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
    1245   void square_rshift(Register x, Register len, Register z, Register tmp1, Register tmp3,
    1246                      Register tmp4, Register tmp5, Register rdxReg, Register raxReg);
    1247   void multiply_add_64_bmi2(Register sum, Register op1, Register op2, Register carry,
    1248                             Register tmp2);
    1249   void multiply_add_64(Register sum, Register op1, Register op2, Register carry,
    1250                        Register rdxReg, Register raxReg);
    1251   void add_one_64(Register z, Register zlen, Register carry, Register tmp1);
    1252   void lshift_by_1(Register x, Register len, Register z, Register zlen, Register tmp1, Register tmp2,
    1253                        Register tmp3, Register tmp4);
    1254   void square_to_len(Register x, Register len, Register z, Register zlen, Register tmp1, Register tmp2,
    1255                      Register tmp3, Register tmp4, Register tmp5, Register rdxReg, Register raxReg);
    1256
    1257   void mul_add_128_x_32_loop(Register out, Register in, Register offset, Register len, Register tmp1,
    1258                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
    1259                Register raxReg);
    1260   void mul_add(Register out, Register in, Register offset, Register len, Register k, Register tmp1,
    1261                Register tmp2, Register tmp3, Register tmp4, Register tmp5, Register rdxReg,
    1262                Register raxReg);
    1263 #endif
    1264
    1265   // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
    1266   void update_byte_crc32(Register crc, Register val, Register table);
    1267   void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp);
    1268   // Fold 128-bit data chunk
    1269   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);
    1270   void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, XMMRegister xbuf);
    1271   // Fold 8-bit data
    1272   void fold_8bit_crc32(Register crc, Register table, Register tmp);
    1273   void fold_8bit_crc32(XMMRegister crc, Register table, XMMRegister xtmp, Register tmp);
    1274
    1275 #undef VIRTUAL
    1276
    1277 };
    1278
    1279 /**
    1280  * class SkipIfEqual:
    1281  *
    1282  * Instantiating this class will result in assembly code being output that will

< prev index next >