Index: src/mips/macro-assembler-mips.cc |
diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc |
index 95eafaedb38cd3124308b6dceff6b3f34cf40934..c3eda6559ef7c59685dada596805cbdd6e0d0fe6 100644 |
--- a/src/mips/macro-assembler-mips.cc |
+++ b/src/mips/macro-assembler-mips.cc |
@@ -3209,9 +3209,13 @@ void MacroAssembler::AllocateAsciiSlicedString(Register result, |
void MacroAssembler::JumpIfNotUniqueName(Register reg, |
Label* not_unique_name) { |
- STATIC_ASSERT(((SYMBOL_TYPE - 1) & kIsInternalizedMask) == kInternalizedTag); |
- Branch(not_unique_name, lt, reg, Operand(kIsInternalizedMask)); |
- Branch(not_unique_name, gt, reg, Operand(SYMBOL_TYPE)); |
+ STATIC_ASSERT(kInternalizedTag == 0 && kStringTag == 0); |
+ Label succeed; |
+ And(at, reg, Operand(kIsNotStringMask | kIsNotInternalizedMask)); |
+ Branch(&succeed, eq, at, Operand(zero_reg)); |
+ Branch(not_unique_name, ne, reg, Operand(SYMBOL_TYPE)); |
+ |
+ bind(&succeed); |
} |