Index: src/ppc/macro-assembler-ppc.cc |
diff --git a/src/ppc/macro-assembler-ppc.cc b/src/ppc/macro-assembler-ppc.cc |
index 904072897cfeda499460f4631ae603c32e7fa1e9..0b9459fb2d44358f1c279751f7e03c5f316860d6 100644 |
--- a/src/ppc/macro-assembler-ppc.cc |
+++ b/src/ppc/macro-assembler-ppc.cc |
@@ -2470,16 +2470,18 @@ void MacroAssembler::LoadContext(Register dst, int context_chain_length) { |
void MacroAssembler::LoadTransitionedArrayMapConditional( |
ElementsKind expected_kind, ElementsKind transitioned_kind, |
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); |
- size_t offset = expected_kind * kPointerSize + FixedArrayBase::kHeaderSize; |
- LoadP(ip, FieldMemOperand(scratch, offset)); |
+ LoadP(scratch, NativeContextMemOperand()); |
+ LoadP(ip, ContextMemOperand(scratch, Context::ArrayMapIndex(expected_kind))); |
cmp(map_in_out, ip); |
bne(no_map_match); |
// Use the transitioned cached map. |
- offset = transitioned_kind * kPointerSize + FixedArrayBase::kHeaderSize; |
- LoadP(map_in_out, FieldMemOperand(scratch, offset)); |
+ LoadP(map_in_out, |
+ ContextMemOperand(scratch, Context::ArrayMapIndex(transitioned_kind))); |
} |