Index: src/x64/assembler-x64.cc |
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc |
index 9fe212e094867ddf4efa158e4d3713fb4298fcb3..5554db749a3484dc5690e53dfe528ba615d9c09e 100644 |
--- a/src/x64/assembler-x64.cc |
+++ b/src/x64/assembler-x64.cc |
@@ -2863,6 +2863,21 @@ void Assembler::ucomisd(XMMRegister dst, const Operand& src) { |
} |
+void Assembler::roundsd(XMMRegister dst, XMMRegister src, |
+ Assembler::RoundingMode mode) { |
+ ASSERT(CpuFeatures::IsEnabled(SSE4_1)); |
+ EnsureSpace ensure_space(this); |
+ emit(0x66); |
+ emit_optional_rex_32(dst, src); |
+ emit(0x0f); |
+ emit(0x3a); |
+ emit(0x0b); |
+ emit_sse_operand(dst, src); |
+ // Mask precision exeption. |
+ emit(static_cast<byte>(mode) | 0x8); |
+} |
+ |
+ |
void Assembler::movmskpd(Register dst, XMMRegister src) { |
EnsureSpace ensure_space(this); |
emit(0x66); |