Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index edf1582816bad033d68a62acf7e754fd5d35428b..da003de2baaf7d44d2fe5143c9d98275c14b478b 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -4107,7 +4107,9 @@ void LCodeGen::DoNumberTagI(LNumberTagI* instr) { |
DeferredNumberTagI(LCodeGen* codegen, LNumberTagI* instr) |
: LDeferredCode(codegen), instr_(instr) { } |
virtual void Generate() { |
- codegen()->DoDeferredNumberTagI(instr_, SIGNED_INT32); |
+ codegen()->DoDeferredNumberTagI(instr_, |
+ instr_->InputAt(0), |
+ SIGNED_INT32); |
} |
virtual LInstruction* instr() { return instr_; } |
private: |
@@ -4131,7 +4133,9 @@ void LCodeGen::DoNumberTagU(LNumberTagU* instr) { |
DeferredNumberTagU(LCodeGen* codegen, LNumberTagU* instr) |
: LDeferredCode(codegen), instr_(instr) { } |
virtual void Generate() { |
- codegen()->DoDeferredNumberTagI(instr_, UNSIGNED_INT32); |
+ codegen()->DoDeferredNumberTagI(instr_, |
+ instr_->InputAt(0), |
+ UNSIGNED_INT32); |
} |
virtual LInstruction* instr() { return instr_; } |
private: |
@@ -4151,9 +4155,10 @@ void LCodeGen::DoNumberTagU(LNumberTagU* instr) { |
void LCodeGen::DoDeferredNumberTagI(LInstruction* instr, |
+ LOperand* value, |
IntegerSignedness signedness) { |
Label slow; |
- Register reg = ToRegister(instr->InputAt(0)); |
+ Register reg = ToRegister(value); |
Register tmp = reg.is(eax) ? ecx : eax; |
// Preserve the value of all registers. |