| Index: src/arm64/macro-assembler-arm64.cc
|
| diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc
|
| index c58fe5e8fd627621deaac8124cfb3e0da309aaa2..b966341dfb92263ade38284861bf5569c6b30701 100644
|
| --- a/src/arm64/macro-assembler-arm64.cc
|
| +++ b/src/arm64/macro-assembler-arm64.cc
|
| @@ -2203,65 +2203,6 @@ void MacroAssembler::InitializeFieldsWithFiller(Register current_address,
|
| Bind(&done);
|
| }
|
|
|
| -
|
| -void MacroAssembler::JumpIfEitherIsNotSequentialOneByteStrings(
|
| - Register first, Register second, Register scratch1, Register scratch2,
|
| - Label* failure, SmiCheckType smi_check) {
|
| - if (smi_check == DO_SMI_CHECK) {
|
| - JumpIfEitherSmi(first, second, failure);
|
| - } else if (emit_debug_code()) {
|
| - DCHECK(smi_check == DONT_DO_SMI_CHECK);
|
| - Label not_smi;
|
| - JumpIfEitherSmi(first, second, NULL, ¬_smi);
|
| -
|
| - // At least one input is a smi, but the flags indicated a smi check wasn't
|
| - // needed.
|
| - Abort(kUnexpectedSmi);
|
| -
|
| - Bind(¬_smi);
|
| - }
|
| -
|
| - // Test that both first and second are sequential one-byte strings.
|
| - Ldr(scratch1, FieldMemOperand(first, HeapObject::kMapOffset));
|
| - Ldr(scratch2, FieldMemOperand(second, HeapObject::kMapOffset));
|
| - Ldrb(scratch1, FieldMemOperand(scratch1, Map::kInstanceTypeOffset));
|
| - Ldrb(scratch2, FieldMemOperand(scratch2, Map::kInstanceTypeOffset));
|
| -
|
| - JumpIfEitherInstanceTypeIsNotSequentialOneByte(scratch1, scratch2, scratch1,
|
| - scratch2, failure);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::JumpIfEitherInstanceTypeIsNotSequentialOneByte(
|
| - Register first, Register second, Register scratch1, Register scratch2,
|
| - Label* failure) {
|
| - DCHECK(!AreAliased(scratch1, second));
|
| - DCHECK(!AreAliased(scratch1, scratch2));
|
| - const int kFlatOneByteStringMask =
|
| - kIsNotStringMask | kStringEncodingMask | kStringRepresentationMask;
|
| - const int kFlatOneByteStringTag =
|
| - kStringTag | kOneByteStringTag | kSeqStringTag;
|
| - And(scratch1, first, kFlatOneByteStringMask);
|
| - And(scratch2, second, kFlatOneByteStringMask);
|
| - Cmp(scratch1, kFlatOneByteStringTag);
|
| - Ccmp(scratch2, kFlatOneByteStringTag, NoFlag, eq);
|
| - B(ne, failure);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte(Register type,
|
| - Register scratch,
|
| - Label* failure) {
|
| - const int kFlatOneByteStringMask =
|
| - kIsNotStringMask | kStringEncodingMask | kStringRepresentationMask;
|
| - const int kFlatOneByteStringTag =
|
| - kStringTag | kOneByteStringTag | kSeqStringTag;
|
| - And(scratch, type, kFlatOneByteStringMask);
|
| - Cmp(scratch, kFlatOneByteStringTag);
|
| - B(ne, failure);
|
| -}
|
| -
|
| -
|
| void MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialOneByte(
|
| Register first, Register second, Register scratch1, Register scratch2,
|
| Label* failure) {
|
| @@ -3208,114 +3149,6 @@ void MacroAssembler::FastAllocate(Register object_size, Register result,
|
| ObjectTag(result, result);
|
| }
|
|
|
| -void MacroAssembler::AllocateTwoByteString(Register result,
|
| - Register length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Register scratch3,
|
| - Label* gc_required) {
|
| - DCHECK(!AreAliased(result, length, scratch1, scratch2, scratch3));
|
| - // Calculate the number of bytes needed for the characters in the string while
|
| - // observing object alignment.
|
| - STATIC_ASSERT((SeqTwoByteString::kHeaderSize & kObjectAlignmentMask) == 0);
|
| - Add(scratch1, length, length); // Length in bytes, not chars.
|
| - Add(scratch1, scratch1, kObjectAlignmentMask + SeqTwoByteString::kHeaderSize);
|
| - Bic(scratch1, scratch1, kObjectAlignmentMask);
|
| -
|
| - // Allocate two-byte string in new space.
|
| - Allocate(scratch1, result, scratch2, scratch3, gc_required,
|
| - NO_ALLOCATION_FLAGS);
|
| -
|
| - // Set the map, length and hash field.
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::AllocateOneByteString(Register result, Register length,
|
| - Register scratch1, Register scratch2,
|
| - Register scratch3,
|
| - Label* gc_required) {
|
| - DCHECK(!AreAliased(result, length, scratch1, scratch2, scratch3));
|
| - // Calculate the number of bytes needed for the characters in the string while
|
| - // observing object alignment.
|
| - STATIC_ASSERT((SeqOneByteString::kHeaderSize & kObjectAlignmentMask) == 0);
|
| - STATIC_ASSERT(kCharSize == 1);
|
| - Add(scratch1, length, kObjectAlignmentMask + SeqOneByteString::kHeaderSize);
|
| - Bic(scratch1, scratch1, kObjectAlignmentMask);
|
| -
|
| - // Allocate one-byte string in new space.
|
| - Allocate(scratch1, result, scratch2, scratch3, gc_required,
|
| - NO_ALLOCATION_FLAGS);
|
| -
|
| - // Set the map, length and hash field.
|
| - InitializeNewString(result, length, Heap::kOneByteStringMapRootIndex,
|
| - scratch1, scratch2);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::AllocateTwoByteConsString(Register result,
|
| - Register length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| - Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
|
| - NO_ALLOCATION_FLAGS);
|
| -
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kConsStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::AllocateOneByteConsString(Register result, Register length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| - Allocate(ConsString::kSize, result, scratch1, scratch2, gc_required,
|
| - NO_ALLOCATION_FLAGS);
|
| -
|
| - InitializeNewString(result, length, Heap::kConsOneByteStringMapRootIndex,
|
| - scratch1, scratch2);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::AllocateTwoByteSlicedString(Register result,
|
| - Register length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| - DCHECK(!AreAliased(result, length, scratch1, scratch2));
|
| - Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
|
| - NO_ALLOCATION_FLAGS);
|
| -
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kSlicedStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| -}
|
| -
|
| -
|
| -void MacroAssembler::AllocateOneByteSlicedString(Register result,
|
| - Register length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| - DCHECK(!AreAliased(result, length, scratch1, scratch2));
|
| - Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
|
| - NO_ALLOCATION_FLAGS);
|
| -
|
| - InitializeNewString(result, length, Heap::kSlicedOneByteStringMapRootIndex,
|
| - scratch1, scratch2);
|
| -}
|
| -
|
| -
|
| // Allocates a heap number or jumps to the need_gc label if the young space
|
| // is full and a scavenge is needed.
|
| void MacroAssembler::AllocateHeapNumber(Register result,
|
|
|