Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index 3fb08ef7ce9b5f9bb16b001c26b706bc1b7797b8..56aac42663bbe03819d5202ff78557c6f20e49d6 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -4093,7 +4093,13 @@ void LCodeGen::DoStoreCodeEntry(LStoreCodeEntry* instr) { |
void LCodeGen::DoInnerAllocatedObject(LInnerAllocatedObject* instr) { |
Register result = ToRegister(instr->result()); |
Register base = ToRegister(instr->base_object()); |
- __ Addu(result, base, Operand(instr->offset())); |
+ if (instr->offset()->IsConstantOperand()) { |
+ LConstantOperand* offset = LConstantOperand::cast(instr->offset()); |
+ __ Addu(result, base, Operand(ToInteger32(offset))); |
+ } else { |
+ Register offset = ToRegister(instr->offset()); |
+ __ Addu(result, base, offset); |
+ } |
} |