Index: src/a64/ic-a64.cc |
diff --git a/src/a64/ic-a64.cc b/src/a64/ic-a64.cc |
index 18677f79d7ff42f0a5dc883065519099a01383be..778b1a8d79c7b62bb30a2fa4c91723b8f53bf4b0 100644 |
--- a/src/a64/ic-a64.cc |
+++ b/src/a64/ic-a64.cc |
@@ -392,8 +392,11 @@ static MemOperand GenerateMappedArgumentsLookup(MacroAssembler* masm, |
// Load value from context and return it. |
__ Ldr(scratch2, FieldMemOperand(map, FixedArray::kHeaderSize)); |
__ SmiUntag(scratch1); |
- __ Add(scratch2, scratch2, Context::kHeaderSize - kHeapObjectTag); |
- return MemOperand(scratch2, scratch1, LSL, kPointerSizeLog2); |
+ __ Mov(scratch1, Operand(scratch1, LSL, kPointerSizeLog2)); |
m.m.capewell
2014/03/19 14:11:44
Might be clearer as Lsl(scratch1, scratch1, kPoint
ulan
2014/03/19 14:20:27
Done.
|
+ __ Add(scratch1, scratch1, Context::kHeaderSize - kHeapObjectTag); |
+ // The base of the result (scratch2) is passed to RecordWrite in |
+ // KeyedStoreIC::GenerateSloppyArguments and it must be a HeapObject. |
+ return MemOperand(scratch2, scratch1); |
} |