Index: src/ia32/assembler-ia32.cc |
diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc |
index bb050b63f91b2820bb9702a3255e54f295d43437..04b0e65896a2ddb97535439503b24d97e26f0b61 100644 |
--- a/src/ia32/assembler-ia32.cc |
+++ b/src/ia32/assembler-ia32.cc |
@@ -575,7 +575,7 @@ void Assembler::leave() { |
void Assembler::mov_b(Register dst, const Operand& src) { |
- ASSERT(dst.code() < 4); |
+ CHECK(dst.is_byte_register()); |
EnsureSpace ensure_space(this); |
EMIT(0x8A); |
emit_operand(dst, src); |
@@ -591,7 +591,7 @@ void Assembler::mov_b(const Operand& dst, int8_t imm8) { |
void Assembler::mov_b(const Operand& dst, Register src) { |
- ASSERT(src.code() < 4); |
+ CHECK(src.is_byte_register()); |
EnsureSpace ensure_space(this); |
EMIT(0x88); |
emit_operand(src, dst); |
@@ -829,7 +829,7 @@ void Assembler::cmpb(const Operand& op, int8_t imm8) { |
void Assembler::cmpb(const Operand& op, Register reg) { |
- ASSERT(reg.is_byte_register()); |
+ CHECK(reg.is_byte_register()); |
EnsureSpace ensure_space(this); |
EMIT(0x38); |
emit_operand(reg, op); |
@@ -837,7 +837,7 @@ void Assembler::cmpb(const Operand& op, Register reg) { |
void Assembler::cmpb(Register reg, const Operand& op) { |
- ASSERT(reg.is_byte_register()); |
+ CHECK(reg.is_byte_register()); |
EnsureSpace ensure_space(this); |
EMIT(0x3A); |
emit_operand(reg, op); |
@@ -901,6 +901,7 @@ void Assembler::cmpw_ax(const Operand& op) { |
void Assembler::dec_b(Register dst) { |
+ CHECK(dst.is_byte_register()); |
EnsureSpace ensure_space(this); |
EMIT(0xFE); |
EMIT(0xC8 | dst.code()); |
@@ -1174,7 +1175,9 @@ void Assembler::test(Register reg, const Immediate& imm) { |
EnsureSpace ensure_space(this); |
// Only use test against byte for registers that have a byte |
// variant: eax, ebx, ecx, and edx. |
- if (imm.rmode_ == RelocInfo::NONE && is_uint8(imm.x_) && reg.code() < 4) { |
+ if (imm.rmode_ == RelocInfo::NONE && |
+ is_uint8(imm.x_) && |
+ reg.is_byte_register()) { |
uint8_t imm8 = imm.x_; |
if (reg.is(eax)) { |
EMIT(0xA8); |
@@ -1204,6 +1207,7 @@ void Assembler::test(Register reg, const Operand& op) { |
void Assembler::test_b(Register reg, const Operand& op) { |
+ CHECK(reg.is_byte_register()); |
EnsureSpace ensure_space(this); |
EMIT(0x84); |
emit_operand(reg, op); |
@@ -1219,7 +1223,7 @@ void Assembler::test(const Operand& op, const Immediate& imm) { |
void Assembler::test_b(const Operand& op, uint8_t imm8) { |
- if (op.is_reg_only() && op.reg().code() >= 4) { |
+ if (op.is_reg_only() && !op.reg().is_byte_register()) { |
test(op, Immediate(imm8)); |
return; |
} |