Index: src/ia32/code-stubs-ia32.cc |
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc |
index d9cd90d64f17868726d25f06ad2826b4934945f6..ff391d8a270850e6a94d53e930b38fdfbaef28ca 100644 |
--- a/src/ia32/code-stubs-ia32.cc |
+++ b/src/ia32/code-stubs-ia32.cc |
@@ -3281,7 +3281,7 @@ void ArrayLengthStub::Generate(MacroAssembler* masm) { |
Label miss; |
if (kind() == Code::KEYED_LOAD_IC) { |
- __ cmp(ecx, Immediate(masm->isolate()->factory()->length_symbol())); |
+ __ cmp(ecx, Immediate(masm->isolate()->factory()->length_string())); |
__ j(not_equal, &miss); |
} |
@@ -3300,7 +3300,7 @@ void FunctionPrototypeStub::Generate(MacroAssembler* masm) { |
Label miss; |
if (kind() == Code::KEYED_LOAD_IC) { |
- __ cmp(ecx, Immediate(masm->isolate()->factory()->prototype_symbol())); |
+ __ cmp(ecx, Immediate(masm->isolate()->factory()->prototype_string())); |
__ j(not_equal, &miss); |
} |
@@ -3319,7 +3319,7 @@ void StringLengthStub::Generate(MacroAssembler* masm) { |
Label miss; |
if (kind() == Code::KEYED_LOAD_IC) { |
- __ cmp(ecx, Immediate(masm->isolate()->factory()->length_symbol())); |
+ __ cmp(ecx, Immediate(masm->isolate()->factory()->length_string())); |
__ j(not_equal, &miss); |
} |
@@ -3350,7 +3350,7 @@ void StoreArrayLengthStub::Generate(MacroAssembler* masm) { |
Register scratch = ebx; |
if (kind() == Code::KEYED_LOAD_IC) { |
- __ cmp(ecx, Immediate(masm->isolate()->factory()->length_symbol())); |
+ __ cmp(ecx, Immediate(masm->isolate()->factory()->length_string())); |
__ j(not_equal, &miss); |
} |
@@ -4440,21 +4440,21 @@ static void CheckInputType(MacroAssembler* masm, |
Immediate(masm->isolate()->factory()->heap_number_map())); |
__ j(not_equal, fail); |
} |
- // We could be strict about symbol/string here, but as long as |
+ // We could be strict about internalized/non-internalized here, but as long as |
// hydrogen doesn't care, the stub doesn't have to care either. |
__ bind(&ok); |
} |
-static void BranchIfNonSymbol(MacroAssembler* masm, |
- Label* label, |
- Register object, |
- Register scratch) { |
+static void BranchIfNotInternalizedString(MacroAssembler* masm, |
+ Label* label, |
+ Register object, |
+ Register scratch) { |
__ JumpIfSmi(object, label); |
__ mov(scratch, FieldOperand(object, HeapObject::kMapOffset)); |
__ movzx_b(scratch, FieldOperand(scratch, Map::kInstanceTypeOffset)); |
- __ and_(scratch, kIsSymbolMask | kIsNotStringMask); |
- __ cmp(scratch, kSymbolTag | kStringTag); |
+ __ and_(scratch, kIsInternalizedMask | kIsNotStringMask); |
+ __ cmp(scratch, kInternalizedTag | kStringTag); |
__ j(not_equal, label); |
} |
@@ -4682,14 +4682,14 @@ void ICCompareStub::GenerateGeneric(MacroAssembler* masm) { |
// The number comparison code did not provide a valid result. |
__ bind(&non_number_comparison); |
- // Fast negative check for symbol-to-symbol equality. |
+ // Fast negative check for internalized-to-internalized equality. |
Label check_for_strings; |
if (cc == equal) { |
- BranchIfNonSymbol(masm, &check_for_strings, eax, ecx); |
- BranchIfNonSymbol(masm, &check_for_strings, edx, ecx); |
+ BranchIfNotInternalizedString(masm, &check_for_strings, eax, ecx); |
+ BranchIfNotInternalizedString(masm, &check_for_strings, edx, ecx); |
// We've already checked for object identity, so if both operands |
- // are symbols they aren't equal. Register eax already holds a |
+ // are internalized they aren't equal. Register eax already holds a |
// non-zero value, which indicates not equal, so just return. |
__ ret(0); |
} |
@@ -5770,8 +5770,8 @@ void StringAddStub::Generate(MacroAssembler* masm) { |
STATIC_ASSERT(Smi::kMaxValue == String::kMaxLength); |
// Handle exceptionally long strings in the runtime system. |
__ j(overflow, &call_runtime); |
- // Use the symbol table when adding two one character strings, as it |
- // helps later optimizations to return a symbol here. |
+ // Use the string table when adding two one character strings, as it |
+ // helps later optimizations to return an internalized string here. |
__ cmp(ebx, Immediate(Smi::FromInt(2))); |
__ j(not_equal, &longer_than_two); |
@@ -5782,10 +5782,10 @@ void StringAddStub::Generate(MacroAssembler* masm) { |
__ movzx_b(ebx, FieldOperand(eax, SeqOneByteString::kHeaderSize)); |
__ movzx_b(ecx, FieldOperand(edx, SeqOneByteString::kHeaderSize)); |
- // Try to lookup two character string in symbol table. If it is not found |
+ // Try to lookup two character string in string table. If it is not found |
// just allocate a new one. |
Label make_two_character_string, make_two_character_string_no_reload; |
- StringHelper::GenerateTwoCharacterSymbolTableProbe( |
+ StringHelper::GenerateTwoCharacterStringTableProbe( |
masm, ebx, ecx, eax, edx, edi, |
&make_two_character_string_no_reload, &make_two_character_string); |
__ IncrementCounter(counters->string_add_native(), 1); |
@@ -6131,7 +6131,7 @@ void StringHelper::GenerateCopyCharactersREP(MacroAssembler* masm, |
} |
-void StringHelper::GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm, |
+void StringHelper::GenerateTwoCharacterStringTableProbe(MacroAssembler* masm, |
Register c1, |
Register c2, |
Register scratch1, |
@@ -6143,7 +6143,7 @@ void StringHelper::GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm, |
Register scratch = scratch3; |
// Make sure that both characters are not digits as such strings has a |
- // different hash algorithm. Don't try to look for these in the symbol table. |
+ // different hash algorithm. Don't try to look for these in the string table. |
Label not_array_index; |
__ mov(scratch, c1); |
__ sub(scratch, Immediate(static_cast<int>('0'))); |
@@ -6169,47 +6169,47 @@ void StringHelper::GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm, |
// chars: two character string, char 1 in byte 0 and char 2 in byte 1. |
// hash: hash of two character string. |
- // Load the symbol table. |
- Register symbol_table = c2; |
+ // Load the string table. |
+ Register string_table = c2; |
ExternalReference roots_array_start = |
ExternalReference::roots_array_start(masm->isolate()); |
- __ mov(scratch, Immediate(Heap::kSymbolTableRootIndex)); |
- __ mov(symbol_table, |
+ __ mov(scratch, Immediate(Heap::kStringTableRootIndex)); |
+ __ mov(string_table, |
Operand::StaticArray(scratch, times_pointer_size, roots_array_start)); |
- // Calculate capacity mask from the symbol table capacity. |
+ // Calculate capacity mask from the string table capacity. |
Register mask = scratch2; |
- __ mov(mask, FieldOperand(symbol_table, SymbolTable::kCapacityOffset)); |
+ __ mov(mask, FieldOperand(string_table, StringTable::kCapacityOffset)); |
__ SmiUntag(mask); |
__ sub(mask, Immediate(1)); |
// Registers |
// chars: two character string, char 1 in byte 0 and char 2 in byte 1. |
// hash: hash of two character string |
- // symbol_table: symbol table |
+ // string_table: string table |
// mask: capacity mask |
// scratch: - |
- // Perform a number of probes in the symbol table. |
+ // Perform a number of probes in the string table. |
static const int kProbes = 4; |
- Label found_in_symbol_table; |
+ Label found_in_string_table; |
Label next_probe[kProbes], next_probe_pop_mask[kProbes]; |
Register candidate = scratch; // Scratch register contains candidate. |
for (int i = 0; i < kProbes; i++) { |
- // Calculate entry in symbol table. |
+ // Calculate entry in string table. |
__ mov(scratch, hash); |
if (i > 0) { |
- __ add(scratch, Immediate(SymbolTable::GetProbeOffset(i))); |
+ __ add(scratch, Immediate(StringTable::GetProbeOffset(i))); |
} |
__ and_(scratch, mask); |
- // Load the entry from the symbol table. |
- STATIC_ASSERT(SymbolTable::kEntrySize == 1); |
+ // Load the entry from the string table. |
+ STATIC_ASSERT(StringTable::kEntrySize == 1); |
__ mov(candidate, |
- FieldOperand(symbol_table, |
+ FieldOperand(string_table, |
scratch, |
times_pointer_size, |
- SymbolTable::kElementsStartOffset)); |
+ StringTable::kElementsStartOffset)); |
// If entry is undefined no string with this hash can be found. |
Factory* factory = masm->isolate()->factory(); |
@@ -6238,7 +6238,7 @@ void StringHelper::GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm, |
__ mov(temp, FieldOperand(candidate, SeqOneByteString::kHeaderSize)); |
__ and_(temp, 0x0000ffff); |
__ cmp(chars, temp); |
- __ j(equal, &found_in_symbol_table); |
+ __ j(equal, &found_in_string_table); |
__ bind(&next_probe_pop_mask[i]); |
__ pop(mask); |
__ bind(&next_probe[i]); |
@@ -6249,7 +6249,7 @@ void StringHelper::GenerateTwoCharacterSymbolTableProbe(MacroAssembler* masm, |
// Scratch register contains result when we fall through to here. |
Register result = candidate; |
- __ bind(&found_in_symbol_table); |
+ __ bind(&found_in_string_table); |
__ pop(mask); // Pop saved mask from the stack. |
if (!result.is(eax)) { |
__ mov(eax, result); |
@@ -6847,8 +6847,8 @@ void ICCompareStub::GenerateHeapNumbers(MacroAssembler* masm) { |
} |
-void ICCompareStub::GenerateSymbols(MacroAssembler* masm) { |
- ASSERT(state_ == CompareIC::SYMBOL); |
+void ICCompareStub::GenerateInternalizedStrings(MacroAssembler* masm) { |
+ ASSERT(state_ == CompareIC::INTERNALIZED_STRING); |
ASSERT(GetCondition() == equal); |
// Registers containing left and right operands respectively. |
@@ -6864,17 +6864,17 @@ void ICCompareStub::GenerateSymbols(MacroAssembler* masm) { |
__ and_(tmp1, right); |
__ JumpIfSmi(tmp1, &miss, Label::kNear); |
- // Check that both operands are symbols. |
+ // Check that both operands are internalized strings. |
__ mov(tmp1, FieldOperand(left, HeapObject::kMapOffset)); |
__ mov(tmp2, FieldOperand(right, HeapObject::kMapOffset)); |
__ movzx_b(tmp1, FieldOperand(tmp1, Map::kInstanceTypeOffset)); |
__ movzx_b(tmp2, FieldOperand(tmp2, Map::kInstanceTypeOffset)); |
- STATIC_ASSERT(kSymbolTag != 0); |
+ STATIC_ASSERT(kInternalizedTag != 0); |
__ and_(tmp1, tmp2); |
- __ test(tmp1, Immediate(kIsSymbolMask)); |
+ __ test(tmp1, Immediate(kIsInternalizedMask)); |
__ j(zero, &miss, Label::kNear); |
- // Symbols are compared by identity. |
+ // Internalized strings are compared by identity. |
Label done; |
__ cmp(left, right); |
// Make sure eax is non-zero. At this point input operands are |
@@ -6935,14 +6935,14 @@ void ICCompareStub::GenerateStrings(MacroAssembler* masm) { |
// Handle not identical strings. |
__ bind(¬_same); |
- // Check that both strings are symbols. If they are, we're done |
+ // Check that both strings are internalized. If they are, we're done |
// because we already know they are not identical. But in the case of |
// non-equality compare, we still need to determine the order. |
if (equality) { |
Label do_compare; |
- STATIC_ASSERT(kSymbolTag != 0); |
+ STATIC_ASSERT(kInternalizedTag != 0); |
__ and_(tmp1, tmp2); |
- __ test(tmp1, Immediate(kIsSymbolMask)); |
+ __ test(tmp1, Immediate(kIsInternalizedMask)); |
__ j(zero, &do_compare, Label::kNear); |
// Make sure eax is non-zero. At this point input operands are |
// guaranteed to be non-zero. |
@@ -7050,14 +7050,14 @@ void ICCompareStub::GenerateMiss(MacroAssembler* masm) { |
// the property. This function may return false negatives, so miss_label |
// must always call a backup property check that is complete. |
// This function is safe to call if the receiver has fast properties. |
-// Name must be a symbol and receiver must be a heap object. |
+// Name must be an internalized string and receiver must be a heap object. |
void StringDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm, |
Label* miss, |
Label* done, |
Register properties, |
Handle<String> name, |
Register r0) { |
- ASSERT(name->IsSymbol()); |
+ ASSERT(name->IsInternalizedString()); |
// If names of slots in range from 1 to kProbes - 1 for the hash value are |
// not equal to the name and kProbes-th slot is not used (its name is the |
@@ -7094,10 +7094,10 @@ void StringDictionaryLookupStub::GenerateNegativeLookup(MacroAssembler* masm, |
__ cmp(entity_name, masm->isolate()->factory()->the_hole_value()); |
__ j(equal, &the_hole, Label::kNear); |
- // Check if the entry name is not a symbol. |
+ // Check if the entry name is not an internalized string. |
__ mov(entity_name, FieldOperand(entity_name, HeapObject::kMapOffset)); |
__ test_b(FieldOperand(entity_name, Map::kInstanceTypeOffset), |
- kIsSymbolMask); |
+ kIsInternalizedMask); |
__ j(zero, miss); |
__ bind(&the_hole); |
} |
@@ -7232,14 +7232,14 @@ void StringDictionaryLookupStub::Generate(MacroAssembler* masm) { |
__ j(equal, &in_dictionary); |
if (i != kTotalProbes - 1 && mode_ == NEGATIVE_LOOKUP) { |
- // If we hit a non symbol key during negative lookup |
- // we have to bailout as this key might be equal to the |
+ // If we hit a key that is not an internalized string during negative |
+ // lookup we have to bailout as this key might be equal to the |
// key we are looking for. |
- // Check if the entry name is not a symbol. |
+ // Check if the entry name is not an internalized string. |
__ mov(scratch, FieldOperand(scratch, HeapObject::kMapOffset)); |
__ test_b(FieldOperand(scratch, Map::kInstanceTypeOffset), |
- kIsSymbolMask); |
+ kIsInternalizedMask); |
__ j(zero, &maybe_in_dictionary); |
} |
} |