Changeset 39440 in webkit for trunk/JavaScriptCore/interpreter/Interpreter.cpp
- Timestamp:
- Dec 22, 2008, 1:21:18 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/interpreter/Interpreter.cpp
r39380 r39440 4048 4048 // Uncacheable: give up. 4049 4049 if (!slot.isCacheable()) { 4050 cti RepatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic));4050 ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic)); 4051 4051 return; 4052 4052 } … … 4056 4056 4057 4057 if (structure->isDictionary()) { 4058 cti RepatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic));4058 ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic)); 4059 4059 return; 4060 4060 } … … 4062 4062 // If baseCell != base, then baseCell must be a proxy for another object. 4063 4063 if (baseCell != slot.base()) { 4064 cti RepatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic));4064 ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic)); 4065 4065 return; 4066 4066 } … … 4103 4103 // FIXME: Cache property access for immediates. 4104 4104 if (JSImmediate::isImmediate(baseValue)) { 4105 cti RepatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic));4105 ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic)); 4106 4106 return; 4107 4107 } … … 4111 4111 JIT::compilePatchGetArrayLength(callFrame->scopeChain()->globalData, codeBlock, returnAddress); 4112 4112 #else 4113 cti RepatchCallByReturnAddress(returnAddress, m_ctiArrayLengthTrampoline);4113 ctiPatchCallByReturnAddress(returnAddress, m_ctiArrayLengthTrampoline); 4114 4114 #endif 4115 4115 return; 4116 4116 } 4117 4117 if (isJSString(baseValue) && propertyName == callFrame->propertyNames().length) { 4118 // The tradeoff of compiling an repatched inline string length access routine does not seem4118 // The tradeoff of compiling an patched inline string length access routine does not seem 4119 4119 // to pay off, so we currently only do this for arrays. 4120 cti RepatchCallByReturnAddress(returnAddress, m_ctiStringLengthTrampoline);4120 ctiPatchCallByReturnAddress(returnAddress, m_ctiStringLengthTrampoline); 4121 4121 return; 4122 4122 } … … 4124 4124 // Uncacheable: give up. 4125 4125 if (!slot.isCacheable()) { 4126 cti RepatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic));4126 ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic)); 4127 4127 return; 4128 4128 } … … 4132 4132 4133 4133 if (structure->isDictionary()) { 4134 cti RepatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic));4134 ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic)); 4135 4135 return; 4136 4136 } … … 4461 4461 ARG_src1->put(callFrame, ident, ARG_src3, slot); 4462 4462 4463 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_put_by_id_second));4463 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_put_by_id_second)); 4464 4464 4465 4465 CHECK_FOR_EXCEPTION_AT_END(); … … 4500 4500 JSValue* result = baseValue->get(callFrame, ident, slot); 4501 4501 4502 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_second));4502 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_second)); 4503 4503 4504 4504 CHECK_FOR_EXCEPTION_AT_END(); … … 4562 4562 4563 4563 if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1)) 4564 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_generic));4564 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_generic)); 4565 4565 } else { 4566 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_generic));4566 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_generic)); 4567 4567 } 4568 4568 return result; … … 4611 4611 4612 4612 if (JSImmediate::isImmediate(baseValue) || !slot.isCacheable() || asCell(baseValue)->structure()->isDictionary()) { 4613 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail));4613 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail)); 4614 4614 return result; 4615 4615 } … … 4623 4623 4624 4624 if (slot.slotBase() == baseValue) 4625 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail));4625 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail)); 4626 4626 else if (slot.slotBase() == asCell(baseValue)->structure()->prototypeForLookup(callFrame)) { 4627 4627 // Since we're accessing a prototype in a loop, it's a good bet that it … … 4639 4639 4640 4640 if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1)) 4641 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_list_full));4641 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_list_full)); 4642 4642 } else if (size_t count = countPrototypeChainEntriesAndCheckForProxies(callFrame, baseValue, slot)) { 4643 4643 StructureChain* chain = structure->cachedPrototypeChain(); … … 4652 4652 4653 4653 if (listIndex == (POLYMORPHIC_LIST_CACHE_SIZE - 1)) 4654 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_list_full));4654 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_list_full)); 4655 4655 } else 4656 cti RepatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail));4656 ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_id_proto_fail)); 4657 4657 4658 4658 return result; … … 4858 4858 JIT::compile(ARG_globalData, codeBlock); 4859 4859 4860 cti RepatchCallByReturnAddress(ARG_returnAddress2, ARG_globalData->interpreter->m_ctiVirtualCallLink);4860 ctiPatchCallByReturnAddress(ARG_returnAddress2, ARG_globalData->interpreter->m_ctiVirtualCallLink); 4861 4861 4862 4862 return codeBlock->jitCode();
Note:
See TracChangeset
for help on using the changeset viewer.