Index: src/x87/macro-assembler-x87.cc |
diff --git a/src/x87/macro-assembler-x87.cc b/src/x87/macro-assembler-x87.cc |
index 7f9d4bf5880be2b60a7398e655d26cff2f1b1d63..234085e1e42788d63533472a3a213084a32ab1ec 100644 |
--- a/src/x87/macro-assembler-x87.cc |
+++ b/src/x87/macro-assembler-x87.cc |
@@ -2133,22 +2133,18 @@ void MacroAssembler::LoadTransitionedArrayMapConditional( |
Register map_in_out, |
Register scratch, |
Label* no_map_match) { |
- // Load the global or builtins object from the current context. |
- mov(scratch, NativeContextOperand()); |
+ DCHECK(IsFastElementsKind(expected_kind)); |
+ DCHECK(IsFastElementsKind(transitioned_kind)); |
// Check that the function's map is the same as the expected cached map. |
- mov(scratch, Operand(scratch, |
- Context::SlotOffset(Context::JS_ARRAY_MAPS_INDEX))); |
- |
- size_t offset = expected_kind * kPointerSize + |
- FixedArrayBase::kHeaderSize; |
- cmp(map_in_out, FieldOperand(scratch, offset)); |
+ mov(scratch, NativeContextOperand()); |
+ cmp(map_in_out, |
+ ContextOperand(scratch, Context::ArrayMapIndex(expected_kind))); |
j(not_equal, no_map_match); |
// Use the transitioned cached map. |
- offset = transitioned_kind * kPointerSize + |
- FixedArrayBase::kHeaderSize; |
- mov(map_in_out, FieldOperand(scratch, offset)); |
+ mov(map_in_out, |
+ ContextOperand(scratch, Context::ArrayMapIndex(transitioned_kind))); |
} |