Index: src/x64/assembler-x64.cc |
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc |
index 0bcdf24d6f0f236900ca9be05b9ddacfba2e082d..13cbf8ca343c7e0d0bbb92aa5d3fc03cce2db273 100644 |
--- a/src/x64/assembler-x64.cc |
+++ b/src/x64/assembler-x64.cc |
@@ -1383,6 +1383,20 @@ void Assembler::movl(const Operand& dst, Label* src) { |
} |
+void Assembler::movsxbl(Register dst, Register src) { |
+ EnsureSpace ensure_space(this); |
+ if (!src.is_byte_register()) { |
+ // Register is not one of al, bl, cl, dl. Its encoding needs REX. |
+ emit_rex_32(dst, src); |
+ } else { |
+ emit_optional_rex_32(dst, src); |
+ } |
+ emit(0x0F); |
+ emit(0xBE); |
+ emit_modrm(dst, src); |
+} |
+ |
+ |
void Assembler::movsxbl(Register dst, const Operand& src) { |
EnsureSpace ensure_space(this); |
emit_optional_rex_32(dst, src); |