| Index: src/x64/assembler-x64.cc
|
| diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
|
| index fef973f2d8a760a1319263e9c041507d269e2232..4e17eebd5ceb823b5108dfc4228531c4a9d739bf 100644
|
| --- a/src/x64/assembler-x64.cc
|
| +++ b/src/x64/assembler-x64.cc
|
| @@ -563,14 +563,17 @@ void Assembler::immediate_arithmetic_op(byte subcode,
|
| if (is_int8(src.value_)) {
|
| emit(0x83);
|
| emit_modrm(subcode, dst);
|
| + if (!RelocInfo::IsNone(src.rmode_)) {
|
| + RecordRelocInfo(src.rmode_);
|
| + }
|
| emit(src.value_);
|
| } else if (dst.is(rax)) {
|
| emit(0x05 | (subcode << 3));
|
| - emitl(src.value_);
|
| + emit(src);
|
| } else {
|
| emit(0x81);
|
| emit_modrm(subcode, dst);
|
| - emitl(src.value_);
|
| + emit(src);
|
| }
|
| }
|
|
|
| @@ -583,11 +586,14 @@ void Assembler::immediate_arithmetic_op(byte subcode,
|
| if (is_int8(src.value_)) {
|
| emit(0x83);
|
| emit_operand(subcode, dst);
|
| + if (!RelocInfo::IsNone(src.rmode_)) {
|
| + RecordRelocInfo(src.rmode_);
|
| + }
|
| emit(src.value_);
|
| } else {
|
| emit(0x81);
|
| emit_operand(subcode, dst);
|
| - emitl(src.value_);
|
| + emit(src);
|
| }
|
| }
|
|
|
|
|