Index: src/x64/macro-assembler-x64.cc |
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc |
index 35a6678f830ab1009d80fa2312579f02991c32fa..eaf0f9fddc0d84b47948b4b6d1932c35900d8b62 100644 |
--- a/src/x64/macro-assembler-x64.cc |
+++ b/src/x64/macro-assembler-x64.cc |
@@ -2629,6 +2629,46 @@ void MacroAssembler::Movmskpd(Register dst, XMMRegister src) { |
} |
+void MacroAssembler::Ucomiss(XMMRegister src1, XMMRegister src2) { |
+ if (CpuFeatures::IsSupported(AVX)) { |
+ CpuFeatureScope scope(this, AVX); |
+ vucomiss(src1, src2); |
+ } else { |
+ ucomiss(src1, src2); |
+ } |
+} |
+ |
+ |
+void MacroAssembler::Ucomiss(XMMRegister src1, const Operand& src2) { |
+ if (CpuFeatures::IsSupported(AVX)) { |
+ CpuFeatureScope scope(this, AVX); |
+ vucomiss(src1, src2); |
+ } else { |
+ ucomiss(src1, src2); |
+ } |
+} |
+ |
+ |
+void MacroAssembler::Ucomisd(XMMRegister src1, XMMRegister src2) { |
+ if (CpuFeatures::IsSupported(AVX)) { |
+ CpuFeatureScope scope(this, AVX); |
+ vucomisd(src1, src2); |
+ } else { |
+ ucomisd(src1, src2); |
+ } |
+} |
+ |
+ |
+void MacroAssembler::Ucomisd(XMMRegister src1, const Operand& src2) { |
+ if (CpuFeatures::IsSupported(AVX)) { |
+ CpuFeatureScope scope(this, AVX); |
+ vucomisd(src1, src2); |
+ } else { |
+ ucomisd(src1, src2); |
+ } |
+} |
+ |
+ |
void MacroAssembler::Xorpd(XMMRegister dst, XMMRegister src) { |
if (CpuFeatures::IsSupported(AVX)) { |
CpuFeatureScope scope(this, AVX); |
@@ -3347,7 +3387,7 @@ void MacroAssembler::ClampDoubleToUint8(XMMRegister input_reg, |
jmp(&done, Label::kNear); |
bind(&conv_failure); |
Set(result_reg, 0); |
- ucomisd(input_reg, temp_xmm_reg); |
+ Ucomisd(input_reg, temp_xmm_reg); |
j(below, &done, Label::kNear); |
Set(result_reg, 255); |
bind(&done); |
@@ -3421,7 +3461,7 @@ void MacroAssembler::DoubleToI(Register result_reg, XMMRegister input_reg, |
Label* minus_zero, Label::Distance dst) { |
Cvttsd2si(result_reg, input_reg); |
Cvtlsi2sd(xmm0, result_reg); |
- ucomisd(xmm0, input_reg); |
+ Ucomisd(xmm0, input_reg); |
j(not_equal, lost_precision, dst); |
j(parity_even, is_nan, dst); // NaN. |
if (minus_zero_mode == FAIL_ON_MINUS_ZERO) { |