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); |
} |
} |