Index: src/x64/ic-x64.cc |
=================================================================== |
--- src/x64/ic-x64.cc (revision 5357) |
+++ src/x64/ic-x64.cc (working copy) |
@@ -572,32 +572,7 @@ |
} |
-// Picks out an array index from the hash field. |
-static void GenerateIndexFromHash(MacroAssembler* masm, |
- Register key, |
- Register hash) { |
- // Register use: |
- // key - holds the overwritten key on exit. |
- // hash - holds the key's hash. Clobbered. |
- // The assert checks that the constants for the maximum number of digits |
- // for an array index cached in the hash field and the number of bits |
- // reserved for it does not conflict. |
- ASSERT(TenToThe(String::kMaxCachedArrayIndexLength) < |
- (1 << String::kArrayIndexValueBits)); |
- // We want the smi-tagged index in key. Even if we subsequently go to |
- // the slow case, converting the key to a smi is always valid. |
- // key: string key |
- // hash: key's hash field, including its array index value. |
- __ and_(hash, Immediate(String::kArrayIndexValueMask)); |
- __ shr(hash, Immediate(String::kHashShift)); |
- // Here we actually clobber the key which will be used if calling into |
- // runtime later. However as the new key is the numeric value of a string key |
- // there is no difference in using either key. |
- __ Integer32ToSmi(key, hash); |
-} |
- |
- |
void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) { |
// ----------- S t a t e ------------- |
// -- rax : key |
@@ -743,7 +718,7 @@ |
__ ret(0); |
__ bind(&index_string); |
- GenerateIndexFromHash(masm, rax, rbx); |
+ __ IndexFromHash(rbx, rax); |
__ jmp(&index_smi); |
} |
@@ -1599,7 +1574,7 @@ |
GenerateMiss(masm, argc); |
__ bind(&index_string); |
- GenerateIndexFromHash(masm, rcx, rbx); |
+ __ IndexFromHash(rbx, rcx); |
// Now jump to the place where smi keys are handled. |
__ jmp(&index_smi); |
} |