Index: src/x64/assembler-x64.cc |
=================================================================== |
--- src/x64/assembler-x64.cc (revision 13579) |
+++ src/x64/assembler-x64.cc (working copy) |
@@ -1505,13 +1505,12 @@ |
void Assembler::movq(Register dst, int64_t value, RelocInfo::Mode rmode) { |
// Non-relocatable values might not need a 64-bit representation. |
if (RelocInfo::IsNone(rmode)) { |
- // Sadly, there is no zero or sign extending move for 8-bit immediates. |
- if (is_int32(value)) { |
- movq(dst, Immediate(static_cast<int32_t>(value))); |
- return; |
- } else if (is_uint32(value)) { |
+ if (is_uint32(value)) { |
movl(dst, Immediate(static_cast<int32_t>(value))); |
return; |
+ } else if (is_int32(value)) { |
Yang
2013/02/06 10:28:59
What is the purpose of this change?
Zheng Liu
2013/02/06 11:34:08
Code might be smaller, as [mov r64, imm32] always
Yang
2013/02/06 11:39:18
But this change seems to be to the effect of chang
|
+ movq(dst, Immediate(static_cast<int32_t>(value))); |
+ return; |
} |
// Value cannot be represented by 32 bits, so do a full 64 bit immediate |
// value. |