Index: src/x64/macro-assembler-x64.cc |
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc |
index 0e70826df2297d003f28c3de27577394fd9b57a2..82e73a5a9c048bf73bb0a5451507ff6d7ee7895f 100644 |
--- a/src/x64/macro-assembler-x64.cc |
+++ b/src/x64/macro-assembler-x64.cc |
@@ -925,7 +925,11 @@ Register MacroAssembler::GetSmiConstant(Smi* source) { |
void MacroAssembler::LoadSmiConstant(Register dst, Smi* source) { |
Benedikt Meurer
2015/05/08 10:46:31
Hm, we tried that before, see https://codereview.c
|
- Move(dst, source, Assembler::RelocInfoNone()); |
+ if (source->value() == 0) { |
+ xorl(dst, dst); |
+ } else { |
+ Move(dst, source, Assembler::RelocInfoNone()); |
+ } |
} |