| Index: src/arm/macro-assembler-arm.cc
|
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
|
| index 4fc3b03abf1caced7e8009593a8c24aaeee1cdb4..bbd7c7b92070acba61000fab60a6b034129e992c 100644
|
| --- a/src/arm/macro-assembler-arm.cc
|
| +++ b/src/arm/macro-assembler-arm.cc
|
| @@ -3486,8 +3486,13 @@ void MacroAssembler::EnsureNotWhite(
|
| ASSERT_EQ(0, kSeqStringTag & kExternalStringTag);
|
| ASSERT_EQ(0, kConsStringTag & kExternalStringTag);
|
| tst(instance_type, Operand(kExternalStringTag));
|
| - mov(length, Operand(ExternalString::kSize), LeaveCC, ne);
|
| - b(ne, &is_data_object);
|
| + Label not_external_string;
|
| + b(eq, ¬_external_string);
|
| + tst(instance_type, Operand(kBufferedStringTag));
|
| + mov(length, Operand(ExternalString::kSize), LeaveCC, eq);
|
| + mov(length, Operand(ExternalString::kExtendedSize), LeaveCC, ne);
|
| + b(&is_data_object);
|
| + bind(¬_external_string);
|
|
|
| // Sequential string, either ASCII or UC16.
|
| // For ASCII (char-size of 1) we shift the smi tag away to get the length.
|
|
|