Index: src/x64/assembler-x64.cc |
=================================================================== |
--- src/x64/assembler-x64.cc (revision 2337) |
+++ src/x64/assembler-x64.cc (working copy) |
@@ -471,8 +471,8 @@ |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
emit_optional_rex_32(dst); |
+ if (is_int8(src.value_)) { |
emit(0x83); |
- if (is_int8(src.value_)) { |
emit_modrm(subcode, dst); |
emit(src.value_); |
} else if (dst.is(rax)) { |
@@ -1561,6 +1561,7 @@ |
void Assembler::fld_s(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xD9); |
emit_operand(0, adr); |
} |
@@ -1569,6 +1570,7 @@ |
void Assembler::fld_d(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDD); |
emit_operand(0, adr); |
} |
@@ -1577,6 +1579,7 @@ |
void Assembler::fstp_s(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xD9); |
emit_operand(3, adr); |
} |
@@ -1585,6 +1588,7 @@ |
void Assembler::fstp_d(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDD); |
emit_operand(3, adr); |
} |
@@ -1593,6 +1597,7 @@ |
void Assembler::fild_s(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDB); |
emit_operand(0, adr); |
} |
@@ -1601,6 +1606,7 @@ |
void Assembler::fild_d(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDF); |
emit_operand(5, adr); |
} |
@@ -1609,6 +1615,7 @@ |
void Assembler::fistp_s(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDB); |
emit_operand(3, adr); |
} |
@@ -1618,6 +1625,7 @@ |
ASSERT(CpuFeatures::IsEnabled(CpuFeatures::SSE3)); |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDB); |
emit_operand(1, adr); |
} |
@@ -1626,6 +1634,7 @@ |
void Assembler::fist_s(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDB); |
emit_operand(2, adr); |
} |
@@ -1634,6 +1643,7 @@ |
void Assembler::fistp_d(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDF); |
emit_operand(8, adr); |
} |
@@ -1688,6 +1698,7 @@ |
void Assembler::fisub_s(const Operand& adr) { |
EnsureSpace ensure_space(this); |
last_pc_ = pc_; |
+ emit_optional_rex_32(adr); |
emit(0xDA); |
emit_operand(4, adr); |
} |