| Index: src/arm64/code-stubs-arm64.cc
 | 
| diff --git a/src/arm64/code-stubs-arm64.cc b/src/arm64/code-stubs-arm64.cc
 | 
| index 1096de753566cea102bd8bd1f5e96e827c92ff11..6cd70432d2ee6a41324b04e34e94cdb8cd59e5eb 100644
 | 
| --- a/src/arm64/code-stubs-arm64.cc
 | 
| +++ b/src/arm64/code-stubs-arm64.cc
 | 
| @@ -603,19 +603,20 @@ void CompareICStub::GenerateGeneric(MacroAssembler* masm) {
 | 
|                                               &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);
 | 
| -  __ JumpIfBothInstanceTypesAreNotSequentialAscii(lhs_type, rhs_type, x14,
 | 
| -                                                  x15, &slow);
 | 
| +  __ JumpIfBothInstanceTypesAreNotSequentialOneByte(lhs_type, rhs_type, x14,
 | 
| +                                                    x15, &slow);
 | 
|  
 | 
|    __ IncrementCounter(isolate()->counters()->string_compare_native(), 1, x10,
 | 
|                        x11);
 | 
|    if (cond == eq) {
 | 
| -    StringHelper::GenerateFlatAsciiStringEquals(masm, lhs, rhs, x10, x11, x12);
 | 
| +    StringHelper::GenerateFlatOneByteStringEquals(masm, lhs, rhs, x10, x11,
 | 
| +                                                  x12);
 | 
|    } else {
 | 
| -    StringHelper::GenerateCompareFlatAsciiStrings(masm, lhs, rhs, x10, x11, x12,
 | 
| -                                                  x13);
 | 
| +    StringHelper::GenerateCompareFlatOneByteStrings(masm, lhs, rhs, x10, x11,
 | 
| +                                                    x12, x13);
 | 
|    }
 | 
|  
 | 
|    // Never fall through to here.
 | 
| @@ -2106,7 +2107,7 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
 | 
|    //   w0       string_type                     type of subject string
 | 
|    //   x2       jsstring_length                 subject string length
 | 
|    //   x3       jsregexp_object                 JSRegExp object
 | 
| -  //   w4       string_encoding                 ASCII or UC16
 | 
| +  //   w4       string_encoding                 Latin1 or UC16
 | 
|    //   w5       sliced_string_offset            if the string is a SlicedString
 | 
|    //                                            offset to the underlying string
 | 
|    //   w6       string_representation           groups attributes of the string:
 | 
| @@ -2304,17 +2305,17 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
 | 
|    STATIC_ASSERT(kStringEncodingMask == 0x04);
 | 
|  
 | 
|    // Find the code object based on the assumptions above.
 | 
| -  // kDataAsciiCodeOffset and kDataUC16CodeOffset are adjacent, adds an offset
 | 
| +  // kDataOneByteCodeOffset and kDataUC16CodeOffset are adjacent, adds an offset
 | 
|    // of kPointerSize to reach the latter.
 | 
| -  DCHECK_EQ(JSRegExp::kDataAsciiCodeOffset + kPointerSize,
 | 
| +  DCHECK_EQ(JSRegExp::kDataOneByteCodeOffset + kPointerSize,
 | 
|              JSRegExp::kDataUC16CodeOffset);
 | 
|    __ Mov(x10, kPointerSize);
 | 
| -  // We will need the encoding later: ASCII = 0x04
 | 
| -  //                                  UC16  = 0x00
 | 
| +  // We will need the encoding later: Latin1 = 0x04
 | 
| +  //                                  UC16   = 0x00
 | 
|    __ Ands(string_encoding, string_type, kStringEncodingMask);
 | 
|    __ CzeroX(x10, ne);
 | 
|    __ Add(x10, regexp_data, x10);
 | 
| -  __ Ldr(code_object, FieldMemOperand(x10, JSRegExp::kDataAsciiCodeOffset));
 | 
| +  __ Ldr(code_object, FieldMemOperand(x10, JSRegExp::kDataOneByteCodeOffset));
 | 
|  
 | 
|    // (E) Carry on.  String handling is done.
 | 
|  
 | 
| @@ -2357,13 +2358,13 @@ void RegExpExecStub::Generate(MacroAssembler* masm) {
 | 
|    __ Ldr(length, UntagSmiFieldMemOperand(subject, String::kLengthOffset));
 | 
|  
 | 
|    // Handle UC16 encoding, two bytes make one character.
 | 
| -  //   string_encoding: if ASCII: 0x04
 | 
| -  //                    if UC16:  0x00
 | 
| +  //   string_encoding: if Latin1: 0x04
 | 
| +  //                    if UC16:   0x00
 | 
|    STATIC_ASSERT(kStringEncodingMask == 0x04);
 | 
|    __ Ubfx(string_encoding, string_encoding, 2, 1);
 | 
|    __ Eor(string_encoding, string_encoding, 1);
 | 
| -  //   string_encoding: if ASCII: 0
 | 
| -  //                    if UC16:  1
 | 
| +  //   string_encoding: if Latin1: 0
 | 
| +  //                    if UC16:   1
 | 
|  
 | 
|    // Convert string positions from characters to bytes.
 | 
|    // Previous index is in x1.
 | 
| @@ -3159,7 +3160,7 @@ void StringCharFromCodeGenerator::GenerateFast(MacroAssembler* masm) {
 | 
|    __ B(hi, &slow_case_);
 | 
|  
 | 
|    __ 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.
 | 
|    __ Add(result_, result_, Operand::UntagSmiAndScale(code_, kPointerSizeLog2));
 | 
|    __ Ldr(result_, FieldMemOperand(result_, FixedArray::kHeaderSize));
 | 
|    __ JumpIfRoot(result_, Heap::kUndefinedValueRootIndex, &slow_case_);
 | 
| @@ -3405,17 +3406,18 @@ void CompareICStub::GenerateStrings(MacroAssembler* masm) {
 | 
|      __ Bind(¬_internalized_strings);
 | 
|    }
 | 
|  
 | 
| -  // Check that both strings are sequential ASCII.
 | 
| +  // Check that both strings are sequential one-byte.
 | 
|    Label runtime;
 | 
| -  __ JumpIfBothInstanceTypesAreNotSequentialAscii(
 | 
| -      lhs_type, rhs_type, x12, x13, &runtime);
 | 
| +  __ JumpIfBothInstanceTypesAreNotSequentialOneByte(lhs_type, rhs_type, x12,
 | 
| +                                                    x13, &runtime);
 | 
|  
 | 
| -  // Compare flat ASCII strings. Returns when done.
 | 
| +  // Compare flat one-byte strings. Returns when done.
 | 
|    if (equality) {
 | 
| -    StringHelper::GenerateFlatAsciiStringEquals(masm, lhs, rhs, x10, x11, x12);
 | 
| +    StringHelper::GenerateFlatOneByteStringEquals(masm, lhs, rhs, x10, x11,
 | 
| +                                                  x12);
 | 
|    } else {
 | 
| -    StringHelper::GenerateCompareFlatAsciiStrings(masm, lhs, rhs, x10, x11, x12,
 | 
| -                                                  x13);
 | 
| +    StringHelper::GenerateCompareFlatOneByteStrings(masm, lhs, rhs, x10, x11,
 | 
| +                                                    x12, x13);
 | 
|    }
 | 
|  
 | 
|    // Handle more complex cases in runtime.
 | 
| @@ -3662,8 +3664,8 @@ void SubStringStub::Generate(MacroAssembler* masm) {
 | 
|      STATIC_ASSERT((kStringEncodingMask & kOneByteStringTag) != 0);
 | 
|      STATIC_ASSERT((kStringEncodingMask & kTwoByteStringTag) == 0);
 | 
|      __ Tbz(input_type, MaskToBit(kStringEncodingMask), &two_byte_slice);
 | 
| -    __ AllocateAsciiSlicedString(result_string, result_length, x3, x4,
 | 
| -                                 &runtime);
 | 
| +    __ AllocateOneByteSlicedString(result_string, result_length, x3, x4,
 | 
| +                                   &runtime);
 | 
|      __ B(&set_slice_header);
 | 
|  
 | 
|      __ Bind(&two_byte_slice);
 | 
| @@ -3713,12 +3715,12 @@ void SubStringStub::Generate(MacroAssembler* masm) {
 | 
|           SeqOneByteString::kHeaderSize - kHeapObjectTag);
 | 
|  
 | 
|    __ Bind(&allocate_result);
 | 
| -  // Sequential ASCII string. Allocate the result.
 | 
| +  // Sequential one-byte string. Allocate the result.
 | 
|    STATIC_ASSERT((kOneByteStringTag & kStringEncodingMask) != 0);
 | 
|    __ Tbz(input_type, MaskToBit(kStringEncodingMask), &two_byte_sequential);
 | 
|  
 | 
| -  // Allocate and copy the resulting ASCII string.
 | 
| -  __ AllocateAsciiString(result_string, result_length, x3, x4, x5, &runtime);
 | 
| +  // Allocate and copy the resulting one-byte string.
 | 
| +  __ AllocateOneByteString(result_string, result_length, x3, x4, x5, &runtime);
 | 
|  
 | 
|    // Locate first character of substring to copy.
 | 
|    __ Add(substring_char0, unpacked_char0, from);
 | 
| @@ -3771,11 +3773,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) {
 | 
|    DCHECK(!AreAliased(left, right, scratch1, scratch2, scratch3));
 | 
|    Register result = x0;
 | 
|    Register left_length = scratch1;
 | 
| @@ -3803,8 +3803,8 @@ void StringHelper::GenerateFlatAsciiStringEquals(MacroAssembler* masm,
 | 
|  
 | 
|    // Compare characters. Falls through if all characters are equal.
 | 
|    __ Bind(&compare_chars);
 | 
| -  GenerateAsciiCharsCompareLoop(masm, left, right, left_length, scratch2,
 | 
| -                                scratch3, &strings_not_equal);
 | 
| +  GenerateOneByteCharsCompareLoop(masm, left, right, left_length, scratch2,
 | 
| +                                  scratch3, &strings_not_equal);
 | 
|  
 | 
|    // Characters in strings are equal.
 | 
|    __ Mov(result, Smi::FromInt(EQUAL));
 | 
| @@ -3812,7 +3812,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) {
 | 
|    DCHECK(!AreAliased(left, right, scratch1, scratch2, scratch3, scratch4));
 | 
| @@ -3829,9 +3829,8 @@ void StringHelper::GenerateCompareFlatAsciiStrings(
 | 
|    __ Cbz(min_length, &compare_lengths);
 | 
|  
 | 
|    // Compare loop.
 | 
| -  GenerateAsciiCharsCompareLoop(masm,
 | 
| -                                left, right, min_length, scratch2, scratch4,
 | 
| -                                &result_not_equal);
 | 
| +  GenerateOneByteCharsCompareLoop(masm, left, right, min_length, scratch2,
 | 
| +                                  scratch4, &result_not_equal);
 | 
|  
 | 
|    // Compare lengths - strings up to min-length are equal.
 | 
|    __ Bind(&compare_lengths);
 | 
| @@ -3853,7 +3852,7 @@ void StringHelper::GenerateCompareFlatAsciiStrings(
 | 
|  }
 | 
|  
 | 
|  
 | 
| -void StringHelper::GenerateAsciiCharsCompareLoop(
 | 
| +void StringHelper::GenerateOneByteCharsCompareLoop(
 | 
|      MacroAssembler* masm, Register left, Register right, Register length,
 | 
|      Register scratch1, Register scratch2, Label* chars_not_equal) {
 | 
|    DCHECK(!AreAliased(left, right, length, scratch1, scratch2));
 | 
| @@ -3903,14 +3902,14 @@ void StringCompareStub::Generate(MacroAssembler* masm) {
 | 
|  
 | 
|    __ Bind(¬_same);
 | 
|  
 | 
| -  // Check that both objects are sequential ASCII strings.
 | 
| -  __ JumpIfEitherIsNotSequentialAsciiStrings(left, right, x12, x13, &runtime);
 | 
| +  // Check that both objects are sequential one-byte strings.
 | 
| +  __ JumpIfEitherIsNotSequentialOneByteStrings(left, right, x12, x13, &runtime);
 | 
|  
 | 
| -  // Compare flat ASCII strings natively. Remove arguments from stack first,
 | 
| +  // Compare flat one-byte strings natively. Remove arguments from stack first,
 | 
|    // as this function will generate a return.
 | 
|    __ IncrementCounter(counters->string_compare_native(), 1, x3, x4);
 | 
| -  StringHelper::GenerateCompareFlatAsciiStrings(masm, left, right, x12, x13,
 | 
| -                                                x14, x15);
 | 
| +  StringHelper::GenerateCompareFlatOneByteStrings(masm, left, right, x12, x13,
 | 
| +                                                  x14, x15);
 | 
|  
 | 
|    __ Bind(&runtime);
 | 
|  
 | 
| 
 |