src/cpu/x86/vm/assembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8076373 Sdiff src/cpu/x86/vm

src/cpu/x86/vm/assembler_x86.cpp

Print this page




1657     emit_simd_arith(0x2A, dst, src, VEX_SIMD_F2);
1658   }
1659 }
1660 
1661 void Assembler::cvtsi2ssl(XMMRegister dst, Register src) {
1662   NOT_LP64(assert(VM_Version::supports_sse(), ""));
1663   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, true);
1664   emit_int8(0x2A);
1665   emit_int8((unsigned char)(0xC0 | encode));
1666 }
1667 
1668 void Assembler::cvtsi2ssl(XMMRegister dst, Address src) {
1669   if (VM_Version::supports_evex()) {
1670     tuple_type = EVEX_T1S;
1671     input_size_in_bits = EVEX_32bit;
1672   }
1673   NOT_LP64(assert(VM_Version::supports_sse(), ""));
1674   emit_simd_arith(0x2A, dst, src, VEX_SIMD_F3, true);
1675 }
1676 







1677 void Assembler::cvtss2sd(XMMRegister dst, XMMRegister src) {
1678   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
1679   emit_simd_arith(0x5A, dst, src, VEX_SIMD_F3);
1680 }
1681 
1682 void Assembler::cvtss2sd(XMMRegister dst, Address src) {
1683   if (VM_Version::supports_evex()) {
1684     tuple_type = EVEX_T1S;
1685     input_size_in_bits = EVEX_32bit;
1686   }
1687   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
1688   emit_simd_arith(0x5A, dst, src, VEX_SIMD_F3);
1689 }
1690 
1691 
1692 void Assembler::cvttsd2sil(Register dst, XMMRegister src) {
1693   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
1694   int encode = simd_prefix_and_encode(dst, src, VEX_SIMD_F2, VEX_OPCODE_0F, true);
1695   emit_int8(0x2C);
1696   emit_int8((unsigned char)(0xC0 | encode));


6585   emit_operand(reg, adr);
6586 }
6587 
6588 void Assembler::cvtsi2sdq(XMMRegister dst, Register src) {
6589   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
6590   int encode = simd_prefix_and_encode_q(dst, dst, src, VEX_SIMD_F2, true);
6591   emit_int8(0x2A);
6592   emit_int8((unsigned char)(0xC0 | encode));
6593 }
6594 
6595 void Assembler::cvtsi2sdq(XMMRegister dst, Address src) {
6596   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
6597   if (VM_Version::supports_evex()) {
6598     tuple_type = EVEX_T1S;
6599     input_size_in_bits = EVEX_32bit;
6600   }
6601   InstructionMark im(this);
6602   simd_prefix_q(dst, dst, src, VEX_SIMD_F2, true);
6603   emit_int8(0x2A);
6604   emit_operand(dst, src);
6605 }
6606 
6607 void Assembler::cvtsi2ssq(XMMRegister dst, Register src) {
6608   NOT_LP64(assert(VM_Version::supports_sse(), ""));
6609   int encode = simd_prefix_and_encode_q(dst, dst, src, VEX_SIMD_F3, true);
6610   emit_int8(0x2A);
6611   emit_int8((unsigned char)(0xC0 | encode));
6612 }
6613 
6614 void Assembler::cvtsi2ssq(XMMRegister dst, Address src) {
6615   NOT_LP64(assert(VM_Version::supports_sse(), ""));
6616   if (VM_Version::supports_evex()) {
6617     tuple_type = EVEX_T1S;
6618     input_size_in_bits = EVEX_32bit;
6619   }
6620   InstructionMark im(this);
6621   simd_prefix_q(dst, dst, src, VEX_SIMD_F3, true);
6622   emit_int8(0x2A);
6623   emit_operand(dst, src);
6624 }
6625 
6626 void Assembler::cvttsd2siq(Register dst, XMMRegister src) {
6627   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
6628   int encode = simd_prefix_and_encode_q(dst, src, VEX_SIMD_F2, VEX_OPCODE_0F, true);
6629   emit_int8(0x2C);
6630   emit_int8((unsigned char)(0xC0 | encode));
6631 }




1657     emit_simd_arith(0x2A, dst, src, VEX_SIMD_F2);
1658   }
1659 }
1660 
1661 void Assembler::cvtsi2ssl(XMMRegister dst, Register src) {
1662   NOT_LP64(assert(VM_Version::supports_sse(), ""));
1663   int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3, true);
1664   emit_int8(0x2A);
1665   emit_int8((unsigned char)(0xC0 | encode));
1666 }
1667 
1668 void Assembler::cvtsi2ssl(XMMRegister dst, Address src) {
1669   if (VM_Version::supports_evex()) {
1670     tuple_type = EVEX_T1S;
1671     input_size_in_bits = EVEX_32bit;
1672   }
1673   NOT_LP64(assert(VM_Version::supports_sse(), ""));
1674   emit_simd_arith(0x2A, dst, src, VEX_SIMD_F3, true);
1675 }
1676 
1677 void Assembler::cvtsi2ssq(XMMRegister dst, Register src) {
1678   NOT_LP64(assert(VM_Version::supports_sse(), ""));
1679   int encode = simd_prefix_and_encode_q(dst, dst, src, VEX_SIMD_F3, true);
1680   emit_int8(0x2A);
1681   emit_int8((unsigned char)(0xC0 | encode));
1682 }
1683 
1684 void Assembler::cvtss2sd(XMMRegister dst, XMMRegister src) {
1685   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
1686   emit_simd_arith(0x5A, dst, src, VEX_SIMD_F3);
1687 }
1688 
1689 void Assembler::cvtss2sd(XMMRegister dst, Address src) {
1690   if (VM_Version::supports_evex()) {
1691     tuple_type = EVEX_T1S;
1692     input_size_in_bits = EVEX_32bit;
1693   }
1694   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
1695   emit_simd_arith(0x5A, dst, src, VEX_SIMD_F3);
1696 }
1697 
1698 
1699 void Assembler::cvttsd2sil(Register dst, XMMRegister src) {
1700   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
1701   int encode = simd_prefix_and_encode(dst, src, VEX_SIMD_F2, VEX_OPCODE_0F, true);
1702   emit_int8(0x2C);
1703   emit_int8((unsigned char)(0xC0 | encode));


6592   emit_operand(reg, adr);
6593 }
6594 
6595 void Assembler::cvtsi2sdq(XMMRegister dst, Register src) {
6596   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
6597   int encode = simd_prefix_and_encode_q(dst, dst, src, VEX_SIMD_F2, true);
6598   emit_int8(0x2A);
6599   emit_int8((unsigned char)(0xC0 | encode));
6600 }
6601 
6602 void Assembler::cvtsi2sdq(XMMRegister dst, Address src) {
6603   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
6604   if (VM_Version::supports_evex()) {
6605     tuple_type = EVEX_T1S;
6606     input_size_in_bits = EVEX_32bit;
6607   }
6608   InstructionMark im(this);
6609   simd_prefix_q(dst, dst, src, VEX_SIMD_F2, true);
6610   emit_int8(0x2A);
6611   emit_operand(dst, src);







6612 }
6613 
6614 void Assembler::cvtsi2ssq(XMMRegister dst, Address src) {
6615   NOT_LP64(assert(VM_Version::supports_sse(), ""));
6616   if (VM_Version::supports_evex()) {
6617     tuple_type = EVEX_T1S;
6618     input_size_in_bits = EVEX_32bit;
6619   }
6620   InstructionMark im(this);
6621   simd_prefix_q(dst, dst, src, VEX_SIMD_F3, true);
6622   emit_int8(0x2A);
6623   emit_operand(dst, src);
6624 }
6625 
6626 void Assembler::cvttsd2siq(Register dst, XMMRegister src) {
6627   NOT_LP64(assert(VM_Version::supports_sse2(), ""));
6628   int encode = simd_prefix_and_encode_q(dst, src, VEX_SIMD_F2, VEX_OPCODE_0F, true);
6629   emit_int8(0x2C);
6630   emit_int8((unsigned char)(0xC0 | encode));
6631 }


src/cpu/x86/vm/assembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File