Index: src/x64/assembler-x64.cc |
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc |
index 3cf3398e876e3a51e291a2e2f60ca88355e8d87b..05c4d676418bbfb870460e852764e48220fd727b 100644 |
--- a/src/x64/assembler-x64.cc |
+++ b/src/x64/assembler-x64.cc |
@@ -3130,6 +3130,28 @@ void Assembler::cvttss2siq(Register dst, const Operand& src) { |
emit(0xF3); |
emit_rex_64(dst, src); |
emit(0x0F); |
+ emit(0x2D); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
+void Assembler::cvtss2siq(Register dst, XMMRegister src) { |
+ DCHECK(!IsEnabled(AVX)); |
+ EnsureSpace ensure_space(this); |
+ emit(0xF3); |
+ emit_rex_64(dst, src); |
+ emit(0x0F); |
+ emit(0x2D); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
+void Assembler::cvtss2siq(Register dst, const Operand& src) { |
+ DCHECK(!IsEnabled(AVX)); |
+ EnsureSpace ensure_space(this); |
+ emit(0xF3); |
+ emit_rex_64(dst, src); |
+ emit(0x0F); |
emit(0x2C); |
emit_sse_operand(dst, src); |
} |
@@ -3310,6 +3332,17 @@ void Assembler::cvtsd2siq(Register dst, XMMRegister src) { |
} |
+void Assembler::cvtsd2siq(Register dst, const Operand& src) { |
+ DCHECK(!IsEnabled(AVX)); |
+ EnsureSpace ensure_space(this); |
+ emit(0xF2); |
+ emit_rex_64(dst, src); |
+ emit(0x0F); |
+ emit(0x2D); |
+ emit_sse_operand(dst, src); |
+} |
+ |
+ |
void Assembler::addsd(XMMRegister dst, XMMRegister src) { |
EnsureSpace ensure_space(this); |
emit(0xF2); |
@@ -3546,6 +3579,22 @@ void Assembler::roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode) { |
} |
+void Assembler::ldmxcsr(const Operand& dst) { |
+ EnsureSpace ensure_space(this); |
+ emit(0x0F); |
+ emit(0xAE); |
+ emit_operand(2, dst); |
+} |
+ |
+ |
+void Assembler::stmxcsr(const Operand& dst) { |
+ EnsureSpace ensure_space(this); |
+ emit(0x0F); |
+ emit(0xAE); |
+ emit_operand(3, dst); |
+} |
+ |
+ |
void Assembler::movmskpd(Register dst, XMMRegister src) { |
EnsureSpace ensure_space(this); |
emit(0x66); |