| Index: src/x87/macro-assembler-x87.cc
|
| diff --git a/src/x87/macro-assembler-x87.cc b/src/x87/macro-assembler-x87.cc
|
| index 549bd8639535dc637dc14d03ae86d175e73f2957..49a325f5c30bd835b2ab8ba885259447b530da7b 100644
|
| --- a/src/x87/macro-assembler-x87.cc
|
| +++ b/src/x87/macro-assembler-x87.cc
|
| @@ -2561,11 +2561,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);
|
| }
|
|
|
|
|