comparison src/cpu/x86/vm/macroAssembler_x86.hpp @ 20804:7848fc12602b

Merge with jdk8u40-b25
author Gilles Duboscq <gilles.m.duboscq@oracle.com>
date Tue, 07 Apr 2015 14:58:49 +0200
parents 52b4284cb496 166d744df0de
children
comparison
equal deleted inserted replaced
20184:84105dcdb05b 20804:7848fc12602b
964 964
965 void mulss(XMMRegister dst, XMMRegister src) { Assembler::mulss(dst, src); } 965 void mulss(XMMRegister dst, XMMRegister src) { Assembler::mulss(dst, src); }
966 void mulss(XMMRegister dst, Address src) { Assembler::mulss(dst, src); } 966 void mulss(XMMRegister dst, Address src) { Assembler::mulss(dst, src); }
967 void mulss(XMMRegister dst, AddressLiteral src); 967 void mulss(XMMRegister dst, AddressLiteral src);
968 968
969 // Carry-Less Multiplication Quadword
970 void pclmulldq(XMMRegister dst, XMMRegister src) {
971 // 0x00 - multiply lower 64 bits [0:63]
972 Assembler::pclmulqdq(dst, src, 0x00);
973 }
974 void pclmulhdq(XMMRegister dst, XMMRegister src) {
975 // 0x11 - multiply upper 64 bits [64:127]
976 Assembler::pclmulqdq(dst, src, 0x11);
977 }
978
969 void sqrtsd(XMMRegister dst, XMMRegister src) { Assembler::sqrtsd(dst, src); } 979 void sqrtsd(XMMRegister dst, XMMRegister src) { Assembler::sqrtsd(dst, src); }
970 void sqrtsd(XMMRegister dst, Address src) { Assembler::sqrtsd(dst, src); } 980 void sqrtsd(XMMRegister dst, Address src) { Assembler::sqrtsd(dst, src); }
971 void sqrtsd(XMMRegister dst, AddressLiteral src); 981 void sqrtsd(XMMRegister dst, AddressLiteral src);
972 982
973 void sqrtss(XMMRegister dst, XMMRegister src) { Assembler::sqrtss(dst, src); } 983 void sqrtss(XMMRegister dst, XMMRegister src) { Assembler::sqrtss(dst, src); }
1208 Register rtmp, XMMRegister xtmp); 1218 Register rtmp, XMMRegister xtmp);
1209 1219
1210 void encode_iso_array(Register src, Register dst, Register len, 1220 void encode_iso_array(Register src, Register dst, Register len,
1211 XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3, 1221 XMMRegister tmp1, XMMRegister tmp2, XMMRegister tmp3,
1212 XMMRegister tmp4, Register tmp5, Register result); 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
1213 1245
1214 // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic. 1246 // CRC32 code for java.util.zip.CRC32::updateBytes() instrinsic.
1215 void update_byte_crc32(Register crc, Register val, Register table); 1247 void update_byte_crc32(Register crc, Register val, Register table);
1216 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);
1217 // Fold 128-bit data chunk 1249 // Fold 128-bit data chunk