| 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)));
|
| }
|
|
|
|
|
|
|