| Index: src/mips64/code-stubs-mips64.cc
 | 
| diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc
 | 
| index bb81a4f8c6a1957b02a3dc7d9b582580967075ef..29313a90a57b1f701c84ab65b7953266834dd015 100644
 | 
| --- a/src/mips64/code-stubs-mips64.cc
 | 
| +++ b/src/mips64/code-stubs-mips64.cc
 | 
| @@ -740,19 +740,19 @@ void CompareICStub::GenerateGeneric(MacroAssembler* masm) {
 | 
|          masm, lhs, rhs, &flat_string_check, &slow);
 | 
|    }
 | 
|  
 | 
| -  // Check for both being sequential ASCII strings, and inline if that is the
 | 
| -  // case.
 | 
| +  // Check for both being sequential one-byte strings,
 | 
| +  // and inline if that is the case.
 | 
|    __ bind(&flat_string_check);
 | 
|  
 | 
| -  __ JumpIfNonSmisNotBothSequentialAsciiStrings(lhs, rhs, a2, a3, &slow);
 | 
| +  __ JumpIfNonSmisNotBothSequentialOneByteStrings(lhs, rhs, a2, a3, &slow);
 | 
|  
 | 
|    __ IncrementCounter(isolate()->counters()->string_compare_native(), 1, a2,
 | 
|                        a3);
 | 
|    if (cc == eq) {
 | 
| -    StringHelper::GenerateFlatAsciiStringEquals(masm, lhs, rhs, a2, a3, a4);
 | 
| +    StringHelper::GenerateFlatOneByteStringEquals(masm, lhs, rhs, a2, a3, a4);
 | 
|    } else {
 | 
| -    StringHelper::GenerateCompareFlatAsciiStrings(masm, lhs, rhs, a2, a3, a4,
 | 
| -                                                  a5);
 | 
| +    StringHelper::GenerateCompareFlatOneByteStrings(masm, lhs, rhs, a2, a3, a4,
 | 
| +                                                    a5);
 | 
|    }
 | 
|    // Never falls through to here.
 | 
|  
 | 
| @@ -2157,9 +2157,9 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
 | 
|    STATIC_ASSERT(kStringEncodingMask == 4);
 | 
|    STATIC_ASSERT(kOneByteStringTag == 4);
 | 
|    STATIC_ASSERT(kTwoByteStringTag == 0);
 | 
| -  __ And(a0, a0, Operand(kStringEncodingMask));  // Non-zero for ASCII.
 | 
| -  __ ld(t9, FieldMemOperand(regexp_data, JSRegExp::kDataAsciiCodeOffset));
 | 
| -  __ dsra(a3, a0, 2);  // a3 is 1 for ASCII, 0 for UC16 (used below).
 | 
| +  __ And(a0, a0, Operand(kStringEncodingMask));  // Non-zero for one_byte.
 | 
| +  __ ld(t9, FieldMemOperand(regexp_data, JSRegExp::kDataOneByteCodeOffset));
 | 
| +  __ dsra(a3, a0, 2);  // a3 is 1 for one_byte, 0 for UC16 (used below).
 | 
|    __ ld(a5, FieldMemOperand(regexp_data, JSRegExp::kDataUC16CodeOffset));
 | 
|    __ Movz(t9, a5, a0);  // If UC16 (a0 is 0), replace t9 w/kDataUC16CodeOffset.
 | 
|  
 | 
| @@ -2171,7 +2171,7 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
 | 
|    __ JumpIfSmi(t9, &runtime);
 | 
|  
 | 
|    // a1: previous index
 | 
| -  // a3: encoding of subject string (1 if ASCII, 0 if two_byte);
 | 
| +  // a3: encoding of subject string (1 if one_byte, 0 if two_byte);
 | 
|    // t9: code
 | 
|    // subject: Subject string
 | 
|    // regexp_data: RegExp data (FixedArray)
 | 
| @@ -2256,7 +2256,7 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
 | 
|    }
 | 
|  
 | 
|    // For arguments 4 and 3 get string length, calculate start of string data
 | 
| -  // and calculate the shift of the index (0 for ASCII and 1 for two byte).
 | 
| +  // and calculate the shift of the index (0 for one_byte and 1 for two byte).
 | 
|    __ Daddu(t2, subject, Operand(SeqString::kHeaderSize - kHeapObjectTag));
 | 
|    __ Xor(a3, a3, Operand(1));  // 1 for 2-byte str, 0 for 1-byte.
 | 
|    // Load the length from the original subject string from the previous stack
 | 
| @@ -2748,11 +2748,6 @@ void CallConstructStub::Generate(MacroAssembler* masm) {
 | 
|  
 | 
|  // StringCharCodeAtGenerator.
 | 
|  void StringCharCodeAtGenerator::GenerateFast(MacroAssembler* masm) {
 | 
| -  Label flat_string;
 | 
| -  Label ascii_string;
 | 
| -  Label got_char_code;
 | 
| -  Label sliced_string;
 | 
| -
 | 
|    DCHECK(!a4.is(index_));
 | 
|    DCHECK(!a4.is(result_));
 | 
|    DCHECK(!a4.is(object_));
 | 
| @@ -3010,7 +3005,7 @@ void StringCharFromCodeGenerator::GenerateFast(MacroAssembler* masm) {
 | 
|  
 | 
|  
 | 
|    __ LoadRoot(result_, Heap::kSingleCharacterStringCacheRootIndex);
 | 
| -  // At this point code register contains smi tagged ASCII char code.
 | 
| +  // At this point code register contains smi tagged one_byte char code.
 | 
|    STATIC_ASSERT(kSmiTag == 0);
 | 
|    __ SmiScale(a4, code_, kPointerSizeLog2);
 | 
|    __ Daddu(result_, result_, a4);
 | 
| @@ -3039,10 +3034,7 @@ void StringCharFromCodeGenerator::GenerateSlow(
 | 
|  }
 | 
|  
 | 
|  
 | 
| -enum CopyCharactersFlags {
 | 
| -  COPY_ASCII = 1,
 | 
| -  DEST_ALWAYS_ALIGNED = 2
 | 
| -};
 | 
| +enum CopyCharactersFlags { COPY_ONE_BYTE = 1, DEST_ALWAYS_ALIGNED = 2 };
 | 
|  
 | 
|  
 | 
|  void StringHelper::GenerateCopyCharacters(MacroAssembler* masm,
 | 
| @@ -3210,7 +3202,7 @@ void SubStringStub::Generate(MacroAssembler* masm) {
 | 
|      STATIC_ASSERT((kStringEncodingMask & kTwoByteStringTag) == 0);
 | 
|      __ And(a4, a1, Operand(kStringEncodingMask));
 | 
|      __ Branch(&two_byte_slice, eq, a4, Operand(zero_reg));
 | 
| -    __ AllocateAsciiSlicedString(v0, a2, a6, a7, &runtime);
 | 
| +    __ AllocateOneByteSlicedString(v0, a2, a6, a7, &runtime);
 | 
|      __ jmp(&set_slice_header);
 | 
|      __ bind(&two_byte_slice);
 | 
|      __ AllocateTwoByteSlicedString(v0, a2, a6, a7, &runtime);
 | 
| @@ -3253,8 +3245,8 @@ void SubStringStub::Generate(MacroAssembler* masm) {
 | 
|    __ And(a4, a1, Operand(kStringEncodingMask));
 | 
|    __ Branch(&two_byte_sequential, eq, a4, Operand(zero_reg));
 | 
|  
 | 
| -  // Allocate and copy the resulting ASCII string.
 | 
| -  __ AllocateAsciiString(v0, a2, a4, a6, a7, &runtime);
 | 
| +  // Allocate and copy the resulting one_byte string.
 | 
| +  __ AllocateOneByteString(v0, a2, a4, a6, a7, &runtime);
 | 
|  
 | 
|    // Locate first character of substring to copy.
 | 
|    __ Daddu(a5, a5, a3);
 | 
| @@ -3312,11 +3304,9 @@ void SubStringStub::Generate(MacroAssembler* masm) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void StringHelper::GenerateFlatAsciiStringEquals(MacroAssembler* masm,
 | 
| -                                                 Register left, Register right,
 | 
| -                                                 Register scratch1,
 | 
| -                                                 Register scratch2,
 | 
| -                                                 Register scratch3) {
 | 
| +void StringHelper::GenerateFlatOneByteStringEquals(
 | 
| +    MacroAssembler* masm, Register left, Register right, Register scratch1,
 | 
| +    Register scratch2, Register scratch3) {
 | 
|    Register length = scratch1;
 | 
|  
 | 
|    // Compare lengths.
 | 
| @@ -3341,9 +3331,8 @@ void StringHelper::GenerateFlatAsciiStringEquals(MacroAssembler* masm,
 | 
|    // Compare characters.
 | 
|    __ bind(&compare_chars);
 | 
|  
 | 
| -  GenerateAsciiCharsCompareLoop(masm,
 | 
| -                                left, right, length, scratch2, scratch3, v0,
 | 
| -                                &strings_not_equal);
 | 
| +  GenerateOneByteCharsCompareLoop(masm, left, right, length, scratch2, scratch3,
 | 
| +                                  v0, &strings_not_equal);
 | 
|  
 | 
|    // Characters are equal.
 | 
|    __ Ret(USE_DELAY_SLOT);
 | 
| @@ -3351,7 +3340,7 @@ void StringHelper::GenerateFlatAsciiStringEquals(MacroAssembler* masm,
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void StringHelper::GenerateCompareFlatAsciiStrings(
 | 
| +void StringHelper::GenerateCompareFlatOneByteStrings(
 | 
|      MacroAssembler* masm, Register left, Register right, Register scratch1,
 | 
|      Register scratch2, Register scratch3, Register scratch4) {
 | 
|    Label result_not_equal, compare_lengths;
 | 
| @@ -3367,9 +3356,8 @@ void StringHelper::GenerateCompareFlatAsciiStrings(
 | 
|    __ Branch(&compare_lengths, eq, min_length, Operand(zero_reg));
 | 
|  
 | 
|    // Compare loop.
 | 
| -  GenerateAsciiCharsCompareLoop(masm,
 | 
| -                                left, right, min_length, scratch2, scratch4, v0,
 | 
| -                                &result_not_equal);
 | 
| +  GenerateOneByteCharsCompareLoop(masm, left, right, min_length, scratch2,
 | 
| +                                  scratch4, v0, &result_not_equal);
 | 
|  
 | 
|    // Compare lengths - strings up to min-length are equal.
 | 
|    __ bind(&compare_lengths);
 | 
| @@ -3392,7 +3380,7 @@ void StringHelper::GenerateCompareFlatAsciiStrings(
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void StringHelper::GenerateAsciiCharsCompareLoop(
 | 
| +void StringHelper::GenerateOneByteCharsCompareLoop(
 | 
|      MacroAssembler* masm, Register left, Register right, Register length,
 | 
|      Register scratch1, Register scratch2, Register scratch3,
 | 
|      Label* chars_not_equal) {
 | 
| @@ -3442,13 +3430,13 @@ void StringCompareStub::Generate(MacroAssembler* masm) {
 | 
|  
 | 
|    __ bind(¬_same);
 | 
|  
 | 
| -  // Check that both objects are sequential ASCII strings.
 | 
| -  __ JumpIfNotBothSequentialAsciiStrings(a1, a0, a2, a3, &runtime);
 | 
| +  // Check that both objects are sequential one_byte strings.
 | 
| +  __ JumpIfNotBothSequentialOneByteStrings(a1, a0, a2, a3, &runtime);
 | 
|  
 | 
| -  // Compare flat ASCII strings natively. Remove arguments from stack first.
 | 
| +  // Compare flat one_byte strings natively. Remove arguments from stack first.
 | 
|    __ IncrementCounter(counters->string_compare_native(), 1, a2, a3);
 | 
|    __ Daddu(sp, sp, Operand(2 * kPointerSize));
 | 
| -  StringHelper::GenerateCompareFlatAsciiStrings(masm, a1, a0, a2, a3, a4, a5);
 | 
| +  StringHelper::GenerateCompareFlatOneByteStrings(masm, a1, a0, a2, a3, a4, a5);
 | 
|  
 | 
|    __ bind(&runtime);
 | 
|    __ TailCallRuntime(Runtime::kStringCompare, 2, 1);
 | 
| @@ -3741,18 +3729,18 @@ void CompareICStub::GenerateStrings(MacroAssembler* masm) {
 | 
|      __ bind(&is_symbol);
 | 
|    }
 | 
|  
 | 
| -  // Check that both strings are sequential ASCII.
 | 
| +  // Check that both strings are sequential one_byte.
 | 
|    Label runtime;
 | 
| -  __ JumpIfBothInstanceTypesAreNotSequentialAscii(
 | 
| -      tmp1, tmp2, tmp3, tmp4, &runtime);
 | 
| +  __ JumpIfBothInstanceTypesAreNotSequentialOneByte(tmp1, tmp2, tmp3, tmp4,
 | 
| +                                                    &runtime);
 | 
|  
 | 
| -  // Compare flat ASCII strings. Returns when done.
 | 
| +  // Compare flat one_byte strings. Returns when done.
 | 
|    if (equality) {
 | 
| -    StringHelper::GenerateFlatAsciiStringEquals(masm, left, right, tmp1, tmp2,
 | 
| -                                                tmp3);
 | 
| +    StringHelper::GenerateFlatOneByteStringEquals(masm, left, right, tmp1, tmp2,
 | 
| +                                                  tmp3);
 | 
|    } else {
 | 
| -    StringHelper::GenerateCompareFlatAsciiStrings(masm, left, right, tmp1, tmp2,
 | 
| -                                                  tmp3, tmp4);
 | 
| +    StringHelper::GenerateCompareFlatOneByteStrings(masm, left, right, tmp1,
 | 
| +                                                    tmp2, tmp3, tmp4);
 | 
|    }
 | 
|  
 | 
|    // Handle more complex cases in runtime.
 | 
| 
 |