| Index: src/mips/full-codegen-mips.cc
|
| diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc
|
| index 56c43356edb87398d28fff798bf0e982c75f614e..dcb9ed90a478c7c46ece21338295f2bea83aa42c 100644
|
| --- a/src/mips/full-codegen-mips.cc
|
| +++ b/src/mips/full-codegen-mips.cc
|
| @@ -3659,7 +3659,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) {
|
| __ lw(scratch1, FieldMemOperand(string, HeapObject::kMapOffset));
|
| __ lbu(scratch1, FieldMemOperand(scratch1, Map::kInstanceTypeOffset));
|
| __ JumpIfInstanceTypeIsNotSequentialAscii(scratch1, scratch2, &bailout);
|
| - __ lw(scratch1, FieldMemOperand(string, SeqAsciiString::kLengthOffset));
|
| + __ lw(scratch1, FieldMemOperand(string, SeqOneByteString::kLengthOffset));
|
| __ AdduAndCheckForOverflow(string_length, string_length, scratch1, scratch3);
|
| __ BranchOnOverflow(&bailout, scratch3);
|
| __ Branch(&loop, lt, element, Operand(elements_end));
|
| @@ -3686,7 +3686,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) {
|
| // Add (separator length times array_length) - separator length to the
|
| // string_length to get the length of the result string. array_length is not
|
| // smi but the other values are, so the result is a smi.
|
| - __ lw(scratch1, FieldMemOperand(separator, SeqAsciiString::kLengthOffset));
|
| + __ lw(scratch1, FieldMemOperand(separator, SeqOneByteString::kLengthOffset));
|
| __ Subu(string_length, string_length, Operand(scratch1));
|
| __ Mult(array_length, scratch1);
|
| // Check for smi overflow. No overflow if higher 33 bits of 64-bit result are
|
| @@ -3726,10 +3726,10 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) {
|
| array_length = no_reg;
|
| __ Addu(result_pos,
|
| result,
|
| - Operand(SeqAsciiString::kHeaderSize - kHeapObjectTag));
|
| + Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag));
|
|
|
| // Check the length of the separator.
|
| - __ lw(scratch1, FieldMemOperand(separator, SeqAsciiString::kLengthOffset));
|
| + __ lw(scratch1, FieldMemOperand(separator, SeqOneByteString::kLengthOffset));
|
| __ li(at, Operand(Smi::FromInt(1)));
|
| __ Branch(&one_char_separator, eq, scratch1, Operand(at));
|
| __ Branch(&long_separator, gt, scratch1, Operand(at));
|
| @@ -3746,7 +3746,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) {
|
| __ Addu(element, element, kPointerSize);
|
| __ lw(string_length, FieldMemOperand(string, String::kLengthOffset));
|
| __ SmiUntag(string_length);
|
| - __ Addu(string, string, SeqAsciiString::kHeaderSize - kHeapObjectTag);
|
| + __ Addu(string, string, SeqOneByteString::kHeaderSize - kHeapObjectTag);
|
| __ CopyBytes(string, result_pos, string_length, scratch1);
|
| // End while (element < elements_end).
|
| __ Branch(&empty_separator_loop, lt, element, Operand(elements_end));
|
| @@ -3756,7 +3756,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) {
|
| // One-character separator case.
|
| __ bind(&one_char_separator);
|
| // Replace separator with its ASCII character value.
|
| - __ lbu(separator, FieldMemOperand(separator, SeqAsciiString::kHeaderSize));
|
| + __ lbu(separator, FieldMemOperand(separator, SeqOneByteString::kHeaderSize));
|
| // Jump into the loop after the code that copies the separator, so the first
|
| // element is not preceded by a separator.
|
| __ jmp(&one_char_separator_loop_entry);
|
| @@ -3778,7 +3778,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) {
|
| __ Addu(element, element, kPointerSize);
|
| __ lw(string_length, FieldMemOperand(string, String::kLengthOffset));
|
| __ SmiUntag(string_length);
|
| - __ Addu(string, string, SeqAsciiString::kHeaderSize - kHeapObjectTag);
|
| + __ Addu(string, string, SeqOneByteString::kHeaderSize - kHeapObjectTag);
|
| __ CopyBytes(string, result_pos, string_length, scratch1);
|
| // End while (element < elements_end).
|
| __ Branch(&one_char_separator_loop, lt, element, Operand(elements_end));
|
| @@ -3799,7 +3799,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) {
|
| __ SmiUntag(string_length);
|
| __ Addu(string,
|
| separator,
|
| - Operand(SeqAsciiString::kHeaderSize - kHeapObjectTag));
|
| + Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag));
|
| __ CopyBytes(string, result_pos, string_length, scratch1);
|
|
|
| __ bind(&long_separator);
|
| @@ -3807,7 +3807,7 @@ void FullCodeGenerator::EmitFastAsciiArrayJoin(CallRuntime* expr) {
|
| __ Addu(element, element, kPointerSize);
|
| __ lw(string_length, FieldMemOperand(string, String::kLengthOffset));
|
| __ SmiUntag(string_length);
|
| - __ Addu(string, string, SeqAsciiString::kHeaderSize - kHeapObjectTag);
|
| + __ Addu(string, string, SeqOneByteString::kHeaderSize - kHeapObjectTag);
|
| __ CopyBytes(string, result_pos, string_length, scratch1);
|
| // End while (element < elements_end).
|
| __ Branch(&long_separator_loop, lt, element, Operand(elements_end));
|
|
|