| Index: src/mips64/macro-assembler-mips64.cc
|
| diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc
|
| index cd595c7881411dda3b5105daf0c6eb735e399fb3..020ffe9f4e08c14d317e25d48087d341ef69b981 100644
|
| --- a/src/mips64/macro-assembler-mips64.cc
|
| +++ b/src/mips64/macro-assembler-mips64.cc
|
| @@ -3406,12 +3406,10 @@ void MacroAssembler::AllocateTwoByteString(Register result,
|
| }
|
|
|
|
|
| -void MacroAssembler::AllocateAsciiString(Register result,
|
| - Register length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Register scratch3,
|
| - Label* gc_required) {
|
| +void MacroAssembler::AllocateOneByteString(Register result, Register length,
|
| + Register scratch1, Register scratch2,
|
| + Register scratch3,
|
| + Label* gc_required) {
|
| // Calculate the number of bytes needed for the characters in the string
|
| // while observing object alignment.
|
| DCHECK((SeqOneByteString::kHeaderSize & kObjectAlignmentMask) == 0);
|
| @@ -3420,7 +3418,7 @@ void MacroAssembler::AllocateAsciiString(Register result,
|
| kObjectAlignmentMask + SeqOneByteString::kHeaderSize);
|
| And(scratch1, scratch1, Operand(~kObjectAlignmentMask));
|
|
|
| - // Allocate ASCII string in new space.
|
| + // Allocate one-byte string in new space.
|
| Allocate(scratch1,
|
| result,
|
| scratch2,
|
| @@ -3429,11 +3427,8 @@ void MacroAssembler::AllocateAsciiString(Register result,
|
| TAG_OBJECT);
|
|
|
| // Set the map, length and hash field.
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kAsciiStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| + InitializeNewString(result, length, Heap::kOneByteStringMapRootIndex,
|
| + scratch1, scratch2);
|
| }
|
|
|
|
|
| @@ -3452,11 +3447,10 @@ void MacroAssembler::AllocateTwoByteConsString(Register result,
|
| }
|
|
|
|
|
| -void MacroAssembler::AllocateAsciiConsString(Register result,
|
| - Register length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| +void MacroAssembler::AllocateOneByteConsString(Register result, Register length,
|
| + Register scratch1,
|
| + Register scratch2,
|
| + Label* gc_required) {
|
| Allocate(ConsString::kSize,
|
| result,
|
| scratch1,
|
| @@ -3464,11 +3458,8 @@ void MacroAssembler::AllocateAsciiConsString(Register result,
|
| gc_required,
|
| TAG_OBJECT);
|
|
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kConsAsciiStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| + InitializeNewString(result, length, Heap::kConsOneByteStringMapRootIndex,
|
| + scratch1, scratch2);
|
| }
|
|
|
|
|
| @@ -3488,19 +3479,16 @@ void MacroAssembler::AllocateTwoByteSlicedString(Register result,
|
| }
|
|
|
|
|
| -void MacroAssembler::AllocateAsciiSlicedString(Register result,
|
| - Register length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| +void MacroAssembler::AllocateOneByteSlicedString(Register result,
|
| + Register length,
|
| + Register scratch1,
|
| + Register scratch2,
|
| + Label* gc_required) {
|
| Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
|
| TAG_OBJECT);
|
|
|
| - InitializeNewString(result,
|
| - length,
|
| - Heap::kSlicedAsciiStringMapRootIndex,
|
| - scratch1,
|
| - scratch2);
|
| + InitializeNewString(result, length, Heap::kSlicedOneByteStringMapRootIndex,
|
| + scratch1, scratch2);
|
| }
|
|
|
|
|
| @@ -5301,71 +5289,59 @@ void MacroAssembler::LookupNumberStringCache(Register object,
|
| }
|
|
|
|
|
| -void MacroAssembler::JumpIfNonSmisNotBothSequentialAsciiStrings(
|
| - Register first,
|
| - Register second,
|
| - Register scratch1,
|
| - Register scratch2,
|
| +void MacroAssembler::JumpIfNonSmisNotBothSequentialOneByteStrings(
|
| + Register first, Register second, Register scratch1, Register scratch2,
|
| Label* failure) {
|
| - // Test that both first and second are sequential ASCII strings.
|
| + // Test that both first and second are sequential one-byte strings.
|
| // Assume that they are non-smis.
|
| ld(scratch1, FieldMemOperand(first, HeapObject::kMapOffset));
|
| ld(scratch2, FieldMemOperand(second, HeapObject::kMapOffset));
|
| lbu(scratch1, FieldMemOperand(scratch1, Map::kInstanceTypeOffset));
|
| lbu(scratch2, FieldMemOperand(scratch2, Map::kInstanceTypeOffset));
|
|
|
| - JumpIfBothInstanceTypesAreNotSequentialAscii(scratch1,
|
| - scratch2,
|
| - scratch1,
|
| - scratch2,
|
| - failure);
|
| + JumpIfBothInstanceTypesAreNotSequentialOneByte(scratch1, scratch2, scratch1,
|
| + scratch2, failure);
|
| }
|
|
|
|
|
| -void MacroAssembler::JumpIfNotBothSequentialAsciiStrings(Register first,
|
| - Register second,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* failure) {
|
| +void MacroAssembler::JumpIfNotBothSequentialOneByteStrings(Register first,
|
| + Register second,
|
| + Register scratch1,
|
| + Register scratch2,
|
| + Label* failure) {
|
| // Check that neither is a smi.
|
| STATIC_ASSERT(kSmiTag == 0);
|
| And(scratch1, first, Operand(second));
|
| JumpIfSmi(scratch1, failure);
|
| - JumpIfNonSmisNotBothSequentialAsciiStrings(first,
|
| - second,
|
| - scratch1,
|
| - scratch2,
|
| - failure);
|
| + JumpIfNonSmisNotBothSequentialOneByteStrings(first, second, scratch1,
|
| + scratch2, failure);
|
| }
|
|
|
|
|
| -void MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialAscii(
|
| - Register first,
|
| - Register second,
|
| - Register scratch1,
|
| - Register scratch2,
|
| +void MacroAssembler::JumpIfBothInstanceTypesAreNotSequentialOneByte(
|
| + Register first, Register second, Register scratch1, Register scratch2,
|
| Label* failure) {
|
| - const int kFlatAsciiStringMask =
|
| + const int kFlatOneByteStringMask =
|
| kIsNotStringMask | kStringEncodingMask | kStringRepresentationMask;
|
| - const int kFlatAsciiStringTag =
|
| + const int kFlatOneByteStringTag =
|
| kStringTag | kOneByteStringTag | kSeqStringTag;
|
| - DCHECK(kFlatAsciiStringTag <= 0xffff); // Ensure this fits 16-bit immed.
|
| - andi(scratch1, first, kFlatAsciiStringMask);
|
| - Branch(failure, ne, scratch1, Operand(kFlatAsciiStringTag));
|
| - andi(scratch2, second, kFlatAsciiStringMask);
|
| - Branch(failure, ne, scratch2, Operand(kFlatAsciiStringTag));
|
| + DCHECK(kFlatOneByteStringTag <= 0xffff); // Ensure this fits 16-bit immed.
|
| + andi(scratch1, first, kFlatOneByteStringMask);
|
| + Branch(failure, ne, scratch1, Operand(kFlatOneByteStringTag));
|
| + andi(scratch2, second, kFlatOneByteStringMask);
|
| + Branch(failure, ne, scratch2, Operand(kFlatOneByteStringTag));
|
| }
|
|
|
|
|
| -void MacroAssembler::JumpIfInstanceTypeIsNotSequentialAscii(Register type,
|
| - Register scratch,
|
| - Label* failure) {
|
| - const int kFlatAsciiStringMask =
|
| +void MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte(Register type,
|
| + Register scratch,
|
| + Label* failure) {
|
| + const int kFlatOneByteStringMask =
|
| kIsNotStringMask | kStringEncodingMask | kStringRepresentationMask;
|
| - const int kFlatAsciiStringTag =
|
| + const int kFlatOneByteStringTag =
|
| kStringTag | kOneByteStringTag | kSeqStringTag;
|
| - And(scratch, type, Operand(kFlatAsciiStringMask));
|
| - Branch(failure, ne, scratch, Operand(kFlatAsciiStringTag));
|
| + And(scratch, type, Operand(kFlatOneByteStringMask));
|
| + Branch(failure, ne, scratch, Operand(kFlatOneByteStringTag));
|
| }
|
|
|
|
|
| @@ -5790,8 +5766,8 @@ void MacroAssembler::EnsureNotWhite(
|
| bind(&skip);
|
| }
|
|
|
| - // Sequential string, either ASCII or UC16.
|
| - // For ASCII (char-size of 1) we shift the smi tag away to get the length.
|
| + // Sequential string, either Latin1 or UC16.
|
| + // For Latin1 (char-size of 1) we shift the smi tag away to get the length.
|
| // For UC16 (char-size of 2) we just leave the smi tag in place, thereby
|
| // getting the length multiplied by 2.
|
| DCHECK(kOneByteStringTag == 4 && kStringEncodingMask == 4);
|
|
|