Index: src/mips64/macro-assembler-mips64.cc |
diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc |
index 7096ba61e367cab3ae5196d59717d4ffa201cb55..66d6a7912a4f6249616fee17c1e061852a9bcb5f 100644 |
--- a/src/mips64/macro-assembler-mips64.cc |
+++ b/src/mips64/macro-assembler-mips64.cc |
@@ -5057,16 +5057,17 @@ void MacroAssembler::LoadTransitionedArrayMapConditional( |
Register map_in_out, |
Register scratch, |
Label* no_map_match) { |
+ DCHECK(IsFastElementsKind(expected_kind)); |
+ DCHECK(IsFastElementsKind(transitioned_kind)); |
+ |
// Check that the function's map is the same as the expected cached map. |
- LoadNativeContextSlot(Context::JS_ARRAY_MAPS_INDEX, scratch); |
- int offset = expected_kind * kPointerSize + FixedArrayBase::kHeaderSize; |
- ld(at, FieldMemOperand(scratch, offset)); |
+ ld(scratch, NativeContextMemOperand()); |
+ ld(at, ContextMemOperand(scratch, Context::ArrayMapIndex(expected_kind))); |
Branch(no_map_match, ne, map_in_out, Operand(at)); |
// Use the transitioned cached map. |
- offset = transitioned_kind * kPointerSize + |
- FixedArrayBase::kHeaderSize; |
- ld(map_in_out, FieldMemOperand(scratch, offset)); |
+ ld(map_in_out, |
+ ContextMemOperand(scratch, Context::ArrayMapIndex(transitioned_kind))); |
} |