Index: src/x64/macro-assembler-x64.cc |
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc |
index 32581396fb010aad6c33d99d1c947438083b9a30..a202d099d32e31a2b51fba7fceb5556a7d2cb0bf 100644 |
--- a/src/x64/macro-assembler-x64.cc |
+++ b/src/x64/macro-assembler-x64.cc |
@@ -851,6 +851,18 @@ void MacroAssembler::Cvtlsi2sd(XMMRegister dst, const Operand& src) { |
} |
+void MacroAssembler::Cvtqsi2sd(XMMRegister dst, Register src) { |
+ if (CpuFeatures::IsSupported(AVX)) { |
+ CpuFeatureScope scope(this, AVX); |
+ vxorpd(dst, dst, dst); |
+ vcvtqsi2sd(dst, dst, src); |
+ } else { |
+ xorpd(dst, dst); |
+ cvtqsi2sd(dst, src); |
+ } |
+} |
+ |
+ |
void MacroAssembler::Cvttsd2si(Register dst, XMMRegister src) { |
if (CpuFeatures::IsSupported(AVX)) { |
CpuFeatureScope scope(this, AVX); |
@@ -3457,7 +3469,7 @@ void MacroAssembler::LoadUint32(XMMRegister dst, |
cmpq(src, Immediate(0xffffffff)); |
Assert(below_equal, kInputGPRIsExpectedToHaveUpper32Cleared); |
} |
- cvtqsi2sd(dst, src); |
+ Cvtqsi2sd(dst, src); |
} |