comparison src/cpu/x86/vm/macroAssembler_x86.hpp @ 20438:166d744df0de

8055494: Add C2 x86 intrinsic for BigInteger::multiplyToLen() method Summary: Add new C2 intrinsic for BigInteger::multiplyToLen() on x86 in 64-bit VM. Reviewed-by: roland
author kvn
date Tue, 02 Sep 2014 12:48:45 -0700
parents b1bc1af04c6e
children 7848fc12602b
comparison
equal deleted inserted replaced
20437:bddcb33dadf4 20438:166d744df0de
1219 1219
1220 void encode_iso_array(Register src, Register dst, Register len, 1220 void encode_iso_array(Register src, Register dst, Register len,
1221 XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3, 1221 XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3,
1222 XMMRegister tmp4, Register tmp5, Register result); 1222 XMMRegister tmp4, Register tmp5, Register result);
1223 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
1224 // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic. 1246 // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1225 void update_byte_crc32(Register crc, Register val, Register table); 1247 void update_byte_crc32(Register crc, Register val, Register table);
1226 void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp); 1248 void kernel_crc32(Register crc, Register buf, Register len, Register table, Register tmp);
1227 // Fold 128-bit data chunk 1249 // Fold 128-bit data chunk
1228 void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset); 1250 void fold_128bit_crc32(XMMRegister xcrc, XMMRegister xK, XMMRegister xtmp, Register buf, int offset);