| Index: src/arm/macro-assembler-arm.cc
|
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
|
| index 5e38785ed5644ca5dd6548beda3b93915891f27d..4266d4186133c8c50dbf3675cca3282c1db5b1e5 100644
|
| --- a/src/arm/macro-assembler-arm.cc
|
| +++ b/src/arm/macro-assembler-arm.cc
|
| @@ -3093,11 +3093,14 @@ void MacroAssembler::JumpIfNotBothSequentialAsciiStrings(Register first,
|
|
|
| void MacroAssembler::JumpIfNotUniqueName(Register reg,
|
| Label* not_unique_name) {
|
| - STATIC_ASSERT(((SYMBOL_TYPE - 1) & kIsInternalizedMask) == kInternalizedTag);
|
| - cmp(reg, Operand(kInternalizedTag));
|
| - b(lt, not_unique_name);
|
| + STATIC_ASSERT(kInternalizedTag == 0 && kStringTag == 0);
|
| + Label succeed;
|
| + tst(reg, Operand(kIsNotStringMask | kIsNotInternalizedMask));
|
| + b(eq, &succeed);
|
| cmp(reg, Operand(SYMBOL_TYPE));
|
| - b(gt, not_unique_name);
|
| + b(ne, not_unique_name);
|
| +
|
| + bind(&succeed);
|
| }
|
|
|
|
|
| @@ -3257,9 +3260,10 @@ void MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialAscii(
|
| Register scratch1,
|
| Register scratch2,
|
| Label* failure) {
|
| - int kFlatAsciiStringMask =
|
| + const int kFlatAsciiStringMask =
|
| kIsNotStringMask | kStringEncodingMask | kStringRepresentationMask;
|
| - int kFlatAsciiStringTag = ASCII_STRING_TYPE;
|
| + const int kFlatAsciiStringTag =
|
| + kStringTag | kOneByteStringTag | kSeqStringTag;
|
| and_(scratch1, first, Operand(kFlatAsciiStringMask));
|
| and_(scratch2, second, Operand(kFlatAsciiStringMask));
|
| cmp(scratch1, Operand(kFlatAsciiStringTag));
|
| @@ -3272,9 +3276,10 @@ void MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialAscii(
|
| void MacroAssembler::JumpIfInstanceTypeIsNotSequentialAscii(Register type,
|
| Register scratch,
|
| Label* failure) {
|
| - int kFlatAsciiStringMask =
|
| + const int kFlatAsciiStringMask =
|
| kIsNotStringMask | kStringEncodingMask | kStringRepresentationMask;
|
| - int kFlatAsciiStringTag = ASCII_STRING_TYPE;
|
| + const int kFlatAsciiStringTag =
|
| + kStringTag | kOneByteStringTag | kSeqStringTag;
|
| and_(scratch, type, Operand(kFlatAsciiStringMask));
|
| cmp(scratch, Operand(kFlatAsciiStringTag));
|
| b(ne, failure);
|
| @@ -3747,26 +3752,26 @@ void MacroAssembler::CheckEnumCache(Register null_value, Label* call_runtime) {
|
| }
|
|
|
|
|
| -void MacroAssembler::TestJSArrayForAllocationSiteInfo(
|
| +void MacroAssembler::TestJSArrayForAllocationMemento(
|
| Register receiver_reg,
|
| Register scratch_reg) {
|
| - Label no_info_available;
|
| + Label no_memento_available;
|
| ExternalReference new_space_start =
|
| ExternalReference::new_space_start(isolate());
|
| ExternalReference new_space_allocation_top =
|
| ExternalReference::new_space_allocation_top_address(isolate());
|
| add(scratch_reg, receiver_reg,
|
| - Operand(JSArray::kSize + AllocationSiteInfo::kSize - kHeapObjectTag));
|
| + Operand(JSArray::kSize + AllocationMemento::kSize - kHeapObjectTag));
|
| cmp(scratch_reg, Operand(new_space_start));
|
| - b(lt, &no_info_available);
|
| + b(lt, &no_memento_available);
|
| mov(ip, Operand(new_space_allocation_top));
|
| ldr(ip, MemOperand(ip));
|
| cmp(scratch_reg, ip);
|
| - b(gt, &no_info_available);
|
| - ldr(scratch_reg, MemOperand(scratch_reg, -AllocationSiteInfo::kSize));
|
| + b(gt, &no_memento_available);
|
| + ldr(scratch_reg, MemOperand(scratch_reg, -AllocationMemento::kSize));
|
| cmp(scratch_reg,
|
| - Operand(Handle<Map>(isolate()->heap()->allocation_site_info_map())));
|
| - bind(&no_info_available);
|
| + Operand(Handle<Map>(isolate()->heap()->allocation_memento_map())));
|
| + bind(&no_memento_available);
|
| }
|
|
|
|
|
|
|