Index: src/x64/macro-assembler-x64.cc |
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc |
index 1ae3e4b2ef3df6a856863a343d620cc21aab07b5..6bd62d065226dc2b3b0235863914f85e9212f853 100644 |
--- a/src/x64/macro-assembler-x64.cc |
+++ b/src/x64/macro-assembler-x64.cc |
@@ -3677,20 +3677,6 @@ void MacroAssembler::CmpInstanceType(Register map, InstanceType type) { |
Immediate(static_cast<int8_t>(type))); |
} |
- |
-void MacroAssembler::CheckFastElements(Register map, |
- Label* fail, |
- Label::Distance distance) { |
- STATIC_ASSERT(FAST_SMI_ELEMENTS == 0); |
- STATIC_ASSERT(FAST_HOLEY_SMI_ELEMENTS == 1); |
- STATIC_ASSERT(FAST_ELEMENTS == 2); |
- STATIC_ASSERT(FAST_HOLEY_ELEMENTS == 3); |
- cmpb(FieldOperand(map, Map::kBitField2Offset), |
- Immediate(Map::kMaximumBitField2FastHoleyElementValue)); |
- j(above, fail, distance); |
-} |
- |
- |
void MacroAssembler::CheckFastObjectElements(Register map, |
Label* fail, |
Label::Distance distance) { |
@@ -4800,87 +4786,6 @@ void MacroAssembler::GetNumberHash(Register r0, Register scratch) { |
andl(r0, Immediate(0x3fffffff)); |
} |
- |
- |
-void MacroAssembler::LoadFromNumberDictionary(Label* miss, |
- Register elements, |
- Register key, |
- Register r0, |
- Register r1, |
- Register r2, |
- Register result) { |
- // Register use: |
- // |
- // elements - holds the slow-case elements of the receiver on entry. |
- // Unchanged unless 'result' is the same register. |
- // |
- // key - holds the smi key on entry. |
- // Unchanged unless 'result' is the same register. |
- // |
- // Scratch registers: |
- // |
- // r0 - holds the untagged key on entry and holds the hash once computed. |
- // |
- // r1 - used to hold the capacity mask of the dictionary |
- // |
- // r2 - used for the index into the dictionary. |
- // |
- // result - holds the result on exit if the load succeeded. |
- // Allowed to be the same as 'key' or 'result'. |
- // Unchanged on bailout so 'key' or 'result' can be used |
- // in further computation. |
- |
- Label done; |
- |
- GetNumberHash(r0, r1); |
- |
- // Compute capacity mask. |
- SmiToInteger32(r1, FieldOperand(elements, |
- SeededNumberDictionary::kCapacityOffset)); |
- decl(r1); |
- |
- // Generate an unrolled loop that performs a few probes before giving up. |
- for (int i = 0; i < kNumberDictionaryProbes; i++) { |
- // Use r2 for index calculations and keep the hash intact in r0. |
- movp(r2, r0); |
- // Compute the masked index: (hash + i + i * i) & mask. |
- if (i > 0) { |
- addl(r2, Immediate(SeededNumberDictionary::GetProbeOffset(i))); |
- } |
- andp(r2, r1); |
- |
- // Scale the index by multiplying by the entry size. |
- DCHECK(SeededNumberDictionary::kEntrySize == 3); |
- leap(r2, Operand(r2, r2, times_2, 0)); // r2 = r2 * 3 |
- |
- // Check if the key matches. |
- cmpp(key, FieldOperand(elements, |
- r2, |
- times_pointer_size, |
- SeededNumberDictionary::kElementsStartOffset)); |
- if (i != (kNumberDictionaryProbes - 1)) { |
- j(equal, &done); |
- } else { |
- j(not_equal, miss); |
- } |
- } |
- |
- bind(&done); |
- // Check that the value is a field property. |
- const int kDetailsOffset = |
- SeededNumberDictionary::kElementsStartOffset + 2 * kPointerSize; |
- DCHECK_EQ(DATA, 0); |
- Test(FieldOperand(elements, r2, times_pointer_size, kDetailsOffset), |
- Smi::FromInt(PropertyDetails::TypeField::kMask)); |
- j(not_zero, miss); |
- |
- // Get the value at the masked, scaled index. |
- const int kValueOffset = |
- SeededNumberDictionary::kElementsStartOffset + kPointerSize; |
- movp(result, FieldOperand(elements, r2, times_pointer_size, kValueOffset)); |
-} |
- |
- |
void MacroAssembler::LoadAllocationTopHelper(Register result, |
Register scratch, |
AllocationFlags flags) { |