Mercurial > hg > truffle
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); |