| Index: src/x87/macro-assembler-x87.cc
|
| diff --git a/src/x87/macro-assembler-x87.cc b/src/x87/macro-assembler-x87.cc
|
| index e20fe315e6499bb8f8d11573ccb8c48584fcb45c..5bdf10147375d5e9cfebc470200664f37d30c6bc 100644
|
| --- a/src/x87/macro-assembler-x87.cc
|
| +++ b/src/x87/macro-assembler-x87.cc
|
| @@ -2413,11 +2413,13 @@ void MacroAssembler::JumpIfNotBothSequentialOneByteStrings(Register object1,
|
| const int kFlatOneByteStringTag =
|
| kStringTag | kOneByteStringTag | kSeqStringTag;
|
| // Interleave bits from both instance types and compare them in one check.
|
| - DCHECK_EQ(0, kFlatOneByteStringMask & (kFlatOneByteStringMask << 3));
|
| + const int kShift = 8;
|
| + DCHECK_EQ(0, kFlatOneByteStringMask & (kFlatOneByteStringMask << kShift));
|
| and_(scratch1, kFlatOneByteStringMask);
|
| and_(scratch2, kFlatOneByteStringMask);
|
| - lea(scratch1, Operand(scratch1, scratch2, times_8, 0));
|
| - cmp(scratch1, kFlatOneByteStringTag | (kFlatOneByteStringTag << 3));
|
| + shl(scratch2, kShift);
|
| + or_(scratch1, scratch2);
|
| + cmp(scratch1, kFlatOneByteStringTag | (kFlatOneByteStringTag << kShift));
|
| j(not_equal, failure);
|
| }
|
|
|
|
|