Index: src/x87/assembler-x87.cc |
diff --git a/src/x87/assembler-x87.cc b/src/x87/assembler-x87.cc |
index 8f9224915897871e5149d4ed469b37e5f5bbd0b9..9e1c8836fca3ed659fceee90c8fbe05e1e3960bd 100644 |
--- a/src/x87/assembler-x87.cc |
+++ b/src/x87/assembler-x87.cc |
@@ -1519,6 +1519,20 @@ void Assembler::fst_s(const Operand& adr) { |
} |
+void Assembler::fldcw(const Operand& adr) { |
+ EnsureSpace ensure_space(this); |
+ EMIT(0xD9); |
+ emit_operand(ebp, adr); |
+} |
+ |
+ |
+void Assembler::fnstcw(const Operand& adr) { |
+ EnsureSpace ensure_space(this); |
+ EMIT(0xD9); |
+ emit_operand(edi, adr); |
+} |
+ |
+ |
void Assembler::fstp_d(const Operand& adr) { |
EnsureSpace ensure_space(this); |
EMIT(0xDD); |
@@ -1598,6 +1612,13 @@ void Assembler::fchs() { |
} |
+void Assembler::fsqrt() { |
+ EnsureSpace ensure_space(this); |
+ EMIT(0xD9); |
+ EMIT(0xFA); |
+} |
+ |
+ |
void Assembler::fcos() { |
EnsureSpace ensure_space(this); |
EMIT(0xD9); |
@@ -1659,6 +1680,13 @@ void Assembler::fadd_i(int i) { |
} |
+void Assembler::fadd_d(const Operand& adr) { |
+ EnsureSpace ensure_space(this); |
+ EMIT(0xDC); |
+ emit_operand(eax, adr); |
+} |
+ |
+ |
void Assembler::fsub(int i) { |
EnsureSpace ensure_space(this); |
emit_farith(0xDC, 0xE8, i); |
@@ -1772,6 +1800,13 @@ void Assembler::ftst() { |
} |
+void Assembler::fxam() { |
+ EnsureSpace ensure_space(this); |
+ EMIT(0xD9); |
+ EMIT(0xE5); |
+} |
+ |
+ |
void Assembler::fucomp(int i) { |
EnsureSpace ensure_space(this); |
emit_farith(0xDD, 0xE8, i); |
@@ -1833,6 +1868,20 @@ void Assembler::fnclex() { |
} |
+void Assembler::fnsave(const Operand& adr) { |
+ EnsureSpace ensure_space(this); |
+ EMIT(0xDD); |
+ emit_operand(esi, adr); |
+} |
+ |
+ |
+void Assembler::frstor(const Operand& adr) { |
+ EnsureSpace ensure_space(this); |
+ EMIT(0xDD); |
+ emit_operand(esp, adr); |
+} |
+ |
+ |
void Assembler::sahf() { |
EnsureSpace ensure_space(this); |
EMIT(0x9E); |