| Index: src/x87/macro-assembler-x87.cc
|
| diff --git a/src/x87/macro-assembler-x87.cc b/src/x87/macro-assembler-x87.cc
|
| index 0353e8ab854138ea682062f3b69c7255eda241dc..7b56eedb14b1bf946e9956cc0136ed4d80663126 100644
|
| --- a/src/x87/macro-assembler-x87.cc
|
| +++ b/src/x87/macro-assembler-x87.cc
|
| @@ -1628,12 +1628,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);
|
| @@ -1642,7 +1640,7 @@ void MacroAssembler::AllocateAsciiString(Register result,
|
| add(scratch1, Immediate(kObjectAlignmentMask));
|
| and_(scratch1, Immediate(~kObjectAlignmentMask));
|
|
|
| - // Allocate ASCII string in new space.
|
| + // Allocate one-byte string in new space.
|
| Allocate(SeqOneByteString::kHeaderSize,
|
| times_1,
|
| scratch1,
|
| @@ -1655,7 +1653,7 @@ void MacroAssembler::AllocateAsciiString(Register result,
|
|
|
| // Set the map, length and hash field.
|
| mov(FieldOperand(result, HeapObject::kMapOffset),
|
| - Immediate(isolate()->factory()->ascii_string_map()));
|
| + Immediate(isolate()->factory()->one_byte_string_map()));
|
| mov(scratch1, length);
|
| SmiTag(scratch1);
|
| mov(FieldOperand(result, String::kLengthOffset), scratch1);
|
| @@ -1664,20 +1662,18 @@ void MacroAssembler::AllocateAsciiString(Register result,
|
| }
|
|
|
|
|
| -void MacroAssembler::AllocateAsciiString(Register result,
|
| - int length,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| +void MacroAssembler::AllocateOneByteString(Register result, int length,
|
| + Register scratch1, Register scratch2,
|
| + Label* gc_required) {
|
| DCHECK(length > 0);
|
|
|
| - // Allocate ASCII string in new space.
|
| + // Allocate one-byte string in new space.
|
| Allocate(SeqOneByteString::SizeFor(length), result, scratch1, scratch2,
|
| gc_required, TAG_OBJECT);
|
|
|
| // Set the map, length and hash field.
|
| mov(FieldOperand(result, HeapObject::kMapOffset),
|
| - Immediate(isolate()->factory()->ascii_string_map()));
|
| + Immediate(isolate()->factory()->one_byte_string_map()));
|
| mov(FieldOperand(result, String::kLengthOffset),
|
| Immediate(Smi::FromInt(length)));
|
| mov(FieldOperand(result, String::kHashFieldOffset),
|
| @@ -1699,10 +1695,10 @@ void MacroAssembler::AllocateTwoByteConsString(Register result,
|
| }
|
|
|
|
|
| -void MacroAssembler::AllocateAsciiConsString(Register result,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| +void MacroAssembler::AllocateOneByteConsString(Register result,
|
| + Register scratch1,
|
| + Register scratch2,
|
| + Label* gc_required) {
|
| Allocate(ConsString::kSize,
|
| result,
|
| scratch1,
|
| @@ -1712,7 +1708,7 @@ void MacroAssembler::AllocateAsciiConsString(Register result,
|
|
|
| // Set the map. The other fields are left uninitialized.
|
| mov(FieldOperand(result, HeapObject::kMapOffset),
|
| - Immediate(isolate()->factory()->cons_ascii_string_map()));
|
| + Immediate(isolate()->factory()->cons_one_byte_string_map()));
|
| }
|
|
|
|
|
| @@ -1730,17 +1726,17 @@ void MacroAssembler::AllocateTwoByteSlicedString(Register result,
|
| }
|
|
|
|
|
| -void MacroAssembler::AllocateAsciiSlicedString(Register result,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* gc_required) {
|
| +void MacroAssembler::AllocateOneByteSlicedString(Register result,
|
| + Register scratch1,
|
| + Register scratch2,
|
| + Label* gc_required) {
|
| // Allocate heap number in new space.
|
| Allocate(SlicedString::kSize, result, scratch1, scratch2, gc_required,
|
| TAG_OBJECT);
|
|
|
| // Set the map. The other fields are left uninitialized.
|
| mov(FieldOperand(result, HeapObject::kMapOffset),
|
| - Immediate(isolate()->factory()->sliced_ascii_string_map()));
|
| + Immediate(isolate()->factory()->sliced_one_byte_string_map()));
|
| }
|
|
|
|
|
| @@ -2798,10 +2794,8 @@ void MacroAssembler::LookupNumberStringCache(Register object,
|
| }
|
|
|
|
|
| -void MacroAssembler::JumpIfInstanceTypeIsNotSequentialAscii(
|
| - Register instance_type,
|
| - Register scratch,
|
| - Label* failure) {
|
| +void MacroAssembler::JumpIfInstanceTypeIsNotSequentialOneByte(
|
| + Register instance_type, Register scratch, Label* failure) {
|
| if (!scratch.is(instance_type)) {
|
| mov(scratch, instance_type);
|
| }
|
| @@ -2812,11 +2806,11 @@ void MacroAssembler::JumpIfInstanceTypeIsNotSequentialAscii(
|
| }
|
|
|
|
|
| -void MacroAssembler::JumpIfNotBothSequentialAsciiStrings(Register object1,
|
| - Register object2,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Label* failure) {
|
| +void MacroAssembler::JumpIfNotBothSequentialOneByteStrings(Register object1,
|
| + Register object2,
|
| + Register scratch1,
|
| + Register scratch2,
|
| + Label* failure) {
|
| // Check that both objects are not smis.
|
| STATIC_ASSERT(kSmiTag == 0);
|
| mov(scratch1, object1);
|
| @@ -2829,17 +2823,17 @@ void MacroAssembler::JumpIfNotBothSequentialAsciiStrings(Register object1,
|
| movzx_b(scratch1, FieldOperand(scratch1, Map::kInstanceTypeOffset));
|
| movzx_b(scratch2, FieldOperand(scratch2, Map::kInstanceTypeOffset));
|
|
|
| - // Check that both are flat ASCII strings.
|
| - const int kFlatAsciiStringMask =
|
| + // Check that both are flat one-byte strings.
|
| + const int kFlatOneByteStringMask =
|
| kIsNotStringMask | kStringRepresentationMask | kStringEncodingMask;
|
| - const int kFlatAsciiStringTag =
|
| + const int kFlatOneByteStringTag =
|
| kStringTag | kOneByteStringTag | kSeqStringTag;
|
| // Interleave bits from both instance types and compare them in one check.
|
| - DCHECK_EQ(0, kFlatAsciiStringMask & (kFlatAsciiStringMask << 3));
|
| - and_(scratch1, kFlatAsciiStringMask);
|
| - and_(scratch2, kFlatAsciiStringMask);
|
| + DCHECK_EQ(0, kFlatOneByteStringMask & (kFlatOneByteStringMask << 3));
|
| + and_(scratch1, kFlatOneByteStringMask);
|
| + and_(scratch2, kFlatOneByteStringMask);
|
| lea(scratch1, Operand(scratch1, scratch2, times_8, 0));
|
| - cmp(scratch1, kFlatAsciiStringTag | (kFlatAsciiStringTag << 3));
|
| + cmp(scratch1, kFlatOneByteStringTag | (kFlatOneByteStringTag << 3));
|
| j(not_equal, failure);
|
| }
|
|
|
| @@ -3178,12 +3172,12 @@ void MacroAssembler::EnsureNotWhite(
|
| jmp(&is_data_object, Label::kNear);
|
|
|
| bind(¬_external);
|
| - // Sequential string, either ASCII or UC16.
|
| + // Sequential string, either Latin1 or UC16.
|
| DCHECK(kOneByteStringTag == 0x04);
|
| and_(length, Immediate(kStringEncodingMask));
|
| xor_(length, Immediate(kStringEncodingMask));
|
| add(length, Immediate(0x04));
|
| - // Value now either 4 (if ASCII) or 8 (if UC16), i.e., char-size shifted
|
| + // Value now either 4 (if Latin1) or 8 (if UC16), i.e., char-size shifted
|
| // by 2. If we multiply the string length as smi by this, it still
|
| // won't overflow a 32-bit value.
|
| DCHECK_EQ(SeqOneByteString::kMaxSize, SeqTwoByteString::kMaxSize);
|
|
|