Index: JavaScriptCore/jit/JITStubs.cpp |
=================================================================== |
--- JavaScriptCore/jit/JITStubs.cpp (revision 10232) |
+++ JavaScriptCore/jit/JITStubs.cpp (working copy) |
@@ -28,16 +28,18 @@ |
*/ |
#include "config.h" |
-#include "Interpreter.h" |
+#include "JITStubs.h" |
+#if ENABLE(JIT) |
+ |
#include "Arguments.h" |
-#include "BatchedTransitionOptimizer.h" |
+#include "CallFrame.h" |
#include "CodeBlock.h" |
-#include "DebuggerCallFrame.h" |
-#include "EvalCodeCache.h" |
+#include "Collector.h" |
+#include "Debugger.h" |
#include "ExceptionHelpers.h" |
-#include "CallFrame.h" |
#include "GlobalEvalFunction.h" |
+#include "JIT.h" |
#include "JSActivation.h" |
#include "JSArray.h" |
#include "JSByteArray.h" |
@@ -47,56 +49,38 @@ |
#include "JSStaticScopeObject.h" |
#include "JSString.h" |
#include "ObjectPrototype.h" |
+#include "Operations.h" |
#include "Parser.h" |
#include "Profiler.h" |
#include "RegExpObject.h" |
#include "RegExpPrototype.h" |
#include "Register.h" |
-#include "Collector.h" |
-#include "Debugger.h" |
-#include "Operations.h" |
#include "SamplingTool.h" |
#include <stdio.h> |
-#if ENABLE(JIT) |
-#include "JIT.h" |
-#endif |
- |
-#if ENABLE(ASSEMBLER) |
-#include "AssemblerBuffer.h" |
-#endif |
- |
-#if PLATFORM(DARWIN) |
-#include <mach/mach.h> |
-#endif |
- |
-#if HAVE(SYS_TIME_H) |
-#include <sys/time.h> |
-#endif |
- |
-#if PLATFORM(WIN_OS) |
-#include <windows.h> |
-#endif |
- |
-#if PLATFORM(QT) |
-#include <QDateTime> |
-#endif |
- |
using namespace std; |
namespace JSC { |
-#if ENABLE(JIT) |
- |
#if ENABLE(OPCODE_SAMPLING) |
#define CTI_SAMPLER ARG_globalData->interpreter->sampler() |
#else |
#define CTI_SAMPLER 0 |
#endif |
+JITStubs::JITStubs(JSGlobalData* globalData) |
+ : m_ctiArrayLengthTrampoline(0) |
+ , m_ctiStringLengthTrampoline(0) |
+ , m_ctiVirtualCallPreLink(0) |
+ , m_ctiVirtualCallLink(0) |
+ , m_ctiVirtualCall(0) |
+{ |
+ JIT::compileCTIMachineTrampolines(globalData, &m_executablePool, &m_ctiArrayLengthTrampoline, &m_ctiStringLengthTrampoline, &m_ctiVirtualCallPreLink, &m_ctiVirtualCallLink, &m_ctiVirtualCall); |
+} |
+ |
#if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS) |
-NEVER_INLINE void Interpreter::tryCTICachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValuePtr baseValue, const PutPropertySlot& slot) |
+NEVER_INLINE void JITStubs::tryCachePutByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValuePtr baseValue, const PutPropertySlot& slot) |
{ |
// The interpreter checks for recursion here; I do not believe this can occur in CTI. |
@@ -105,7 +89,7 @@ |
// Uncacheable: give up. |
if (!slot.isCacheable()) { |
- ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic)); |
+ ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(JITStubs::cti_op_put_by_id_generic)); |
return; |
} |
@@ -113,13 +97,13 @@ |
Structure* structure = baseCell->structure(); |
if (structure->isDictionary()) { |
- ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic)); |
+ ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(JITStubs::cti_op_put_by_id_generic)); |
return; |
} |
// If baseCell != base, then baseCell must be a proxy for another object. |
if (baseCell != slot.base()) { |
- ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_put_by_id_generic)); |
+ ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(JITStubs::cti_op_put_by_id_generic)); |
return; |
} |
@@ -152,35 +136,38 @@ |
#endif |
} |
-NEVER_INLINE void Interpreter::tryCTICacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValuePtr baseValue, const Identifier& propertyName, const PropertySlot& slot) |
+NEVER_INLINE void JITStubs::tryCacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, void* returnAddress, JSValuePtr baseValue, const Identifier& propertyName, const PropertySlot& slot) |
{ |
// FIXME: Write a test that proves we need to check for recursion here just |
// like the interpreter does, then add a check for recursion. |
// FIXME: Cache property access for immediates. |
if (!baseValue.isCell()) { |
- ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic)); |
+ ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(JITStubs::cti_op_get_by_id_generic)); |
return; |
} |
+ |
+ JSGlobalData* globalData = &callFrame->globalData(); |
- if (isJSArray(baseValue) && propertyName == callFrame->propertyNames().length) { |
+ if (isJSArray(globalData, baseValue) && propertyName == callFrame->propertyNames().length) { |
#if USE(CTI_REPATCH_PIC) |
JIT::compilePatchGetArrayLength(callFrame->scopeChain()->globalData, codeBlock, returnAddress); |
#else |
- ctiPatchCallByReturnAddress(returnAddress, m_ctiArrayLengthTrampoline); |
+ ctiPatchCallByReturnAddress(returnAddress, globalData->jitStubs.ctiArrayLengthTrampoline()); |
#endif |
return; |
} |
- if (isJSString(baseValue) && propertyName == callFrame->propertyNames().length) { |
+ |
+ if (isJSString(globalData, baseValue) && propertyName == callFrame->propertyNames().length) { |
// The tradeoff of compiling an patched inline string length access routine does not seem |
// to pay off, so we currently only do this for arrays. |
- ctiPatchCallByReturnAddress(returnAddress, m_ctiStringLengthTrampoline); |
+ ctiPatchCallByReturnAddress(returnAddress, globalData->jitStubs.ctiStringLengthTrampoline()); |
return; |
} |
// Uncacheable: give up. |
if (!slot.isCacheable()) { |
- ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic)); |
+ ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(JITStubs::cti_op_get_by_id_generic)); |
return; |
} |
@@ -188,7 +175,7 @@ |
Structure* structure = baseCell->structure(); |
if (structure->isDictionary()) { |
- ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(cti_op_get_by_id_generic)); |
+ ctiPatchCallByReturnAddress(returnAddress, reinterpret_cast<void*>(JITStubs::cti_op_get_by_id_generic)); |
return; |
} |
@@ -343,7 +330,7 @@ |
} \ |
} while (0) |
-JSObject* Interpreter::cti_op_convert_this(STUB_ARGS) |
+JSObject* JITStubs::cti_op_convert_this(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -355,7 +342,7 @@ |
return result; |
} |
-void Interpreter::cti_op_end(STUB_ARGS) |
+void JITStubs::cti_op_end(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -364,7 +351,7 @@ |
scopeChain->deref(); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_add(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_add(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -409,7 +396,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_pre_inc(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_pre_inc(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -421,20 +408,22 @@ |
return JSValuePtr::encode(result); |
} |
-int Interpreter::cti_timeout_check(STUB_ARGS) |
+int JITStubs::cti_timeout_check(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
- Interpreter* interpreter = ARG_globalData->interpreter; |
+ |
+ JSGlobalData* globalData = ARG_globalData; |
+ TimeoutChecker& timeoutChecker = globalData->timeoutChecker; |
- if (interpreter->checkTimeout(ARG_callFrame->dynamicGlobalObject())) { |
- ARG_globalData->exception = createInterruptedExecutionException(ARG_globalData); |
+ if (timeoutChecker.didTimeOut(ARG_callFrame)) { |
+ globalData->exception = createInterruptedExecutionException(globalData); |
VM_THROW_EXCEPTION_AT_END(); |
} |
- return interpreter->m_ticksUntilNextTimeoutCheck; |
+ return timeoutChecker.ticksUntilNextCheck(); |
} |
-void Interpreter::cti_register_file_check(STUB_ARGS) |
+void JITStubs::cti_register_file_check(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -448,7 +437,7 @@ |
throwStackOverflowError(oldCallFrame, ARG_globalData, oldCallFrame->returnPC(), STUB_RETURN_ADDRESS); |
} |
-int Interpreter::cti_op_loop_if_less(STUB_ARGS) |
+int JITStubs::cti_op_loop_if_less(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -461,7 +450,7 @@ |
return result; |
} |
-int Interpreter::cti_op_loop_if_lesseq(STUB_ARGS) |
+int JITStubs::cti_op_loop_if_lesseq(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -474,14 +463,14 @@ |
return result; |
} |
-JSObject* Interpreter::cti_op_new_object(STUB_ARGS) |
+JSObject* JITStubs::cti_op_new_object(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return constructEmptyObject(ARG_callFrame); |
} |
-void Interpreter::cti_op_put_by_id_generic(STUB_ARGS) |
+void JITStubs::cti_op_put_by_id_generic(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -490,7 +479,7 @@ |
CHECK_FOR_EXCEPTION_AT_END(); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id_generic(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id_generic(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -507,7 +496,7 @@ |
#if ENABLE(JIT_OPTIMIZE_PROPERTY_ACCESS) |
-void Interpreter::cti_op_put_by_id(STUB_ARGS) |
+void JITStubs::cti_op_put_by_id(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -522,17 +511,17 @@ |
CHECK_FOR_EXCEPTION_AT_END(); |
} |
-void Interpreter::cti_op_put_by_id_second(STUB_ARGS) |
+void JITStubs::cti_op_put_by_id_second(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
PutPropertySlot slot; |
ARG_src1.put(ARG_callFrame, *ARG_id2, ARG_src3, slot); |
- ARG_globalData->interpreter->tryCTICachePutByID(ARG_callFrame, ARG_callFrame->codeBlock(), STUB_RETURN_ADDRESS, ARG_src1, slot); |
+ tryCachePutByID(ARG_callFrame, ARG_callFrame->codeBlock(), STUB_RETURN_ADDRESS, ARG_src1, slot); |
CHECK_FOR_EXCEPTION_AT_END(); |
} |
-void Interpreter::cti_op_put_by_id_fail(STUB_ARGS) |
+void JITStubs::cti_op_put_by_id_fail(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -545,7 +534,7 @@ |
CHECK_FOR_EXCEPTION_AT_END(); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -562,7 +551,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id_second(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id_second(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -573,13 +562,13 @@ |
PropertySlot slot(baseValue); |
JSValuePtr result = baseValue.get(callFrame, ident, slot); |
- ARG_globalData->interpreter->tryCTICacheGetByID(callFrame, callFrame->codeBlock(), STUB_RETURN_ADDRESS, baseValue, ident, slot); |
+ tryCacheGetByID(callFrame, callFrame->codeBlock(), STUB_RETURN_ADDRESS, baseValue, ident, slot); |
CHECK_FOR_EXCEPTION_AT_END(); |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id_self_fail(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id_self_fail(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -654,7 +643,7 @@ |
return prototypeStructureList; |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id_proto_list(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id_proto_list(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -715,7 +704,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id_proto_list_full(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id_proto_list_full(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -727,7 +716,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id_proto_fail(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id_proto_fail(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -739,7 +728,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id_array_fail(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id_array_fail(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -751,7 +740,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_id_string_fail(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_id_string_fail(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -765,7 +754,7 @@ |
#endif |
-JSValueEncodedAsPointer* Interpreter::cti_op_instanceof(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_instanceof(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -804,7 +793,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_del_by_id(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_del_by_id(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -817,7 +806,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_mul(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_mul(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -835,14 +824,14 @@ |
return JSValuePtr::encode(result); |
} |
-JSObject* Interpreter::cti_op_new_func(STUB_ARGS) |
+JSObject* JITStubs::cti_op_new_func(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return ARG_func1->makeFunction(ARG_callFrame, ARG_callFrame->scopeChain()); |
} |
-void* Interpreter::cti_op_call_JSFunction(STUB_ARGS) |
+void* JITStubs::cti_op_call_JSFunction(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -851,7 +840,7 @@ |
ASSERT(ARG_src1.getCallData(callData) == CallTypeJS); |
#endif |
- ScopeChainNode* callDataScopeChain = asFunction(ARG_src1)->m_scopeChain.node(); |
+ ScopeChainNode* callDataScopeChain = asFunction(ARG_src1)->scope().node(); |
CodeBlock* newCodeBlock = &asFunction(ARG_src1)->body()->bytecode(callDataScopeChain); |
if (!newCodeBlock->jitCode()) |
@@ -860,7 +849,7 @@ |
return newCodeBlock; |
} |
-VoidPtrPair Interpreter::cti_op_call_arityCheck(STUB_ARGS) |
+VoidPtrPair JITStubs::cti_op_call_arityCheck(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -905,26 +894,27 @@ |
RETURN_PAIR(newCodeBlock, callFrame); |
} |
-void* Interpreter::cti_vm_dontLazyLinkCall(STUB_ARGS) |
+void* JITStubs::cti_vm_dontLazyLinkCall(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
+ JSGlobalData* globalData = ARG_globalData; |
JSFunction* callee = asFunction(ARG_src1); |
- CodeBlock* codeBlock = &callee->body()->bytecode(callee->m_scopeChain.node()); |
+ CodeBlock* codeBlock = &callee->body()->bytecode(callee->scope().node()); |
if (!codeBlock->jitCode()) |
- JIT::compile(ARG_globalData, codeBlock); |
+ JIT::compile(globalData, codeBlock); |
- ctiPatchNearCallByReturnAddress(ARG_returnAddress2, ARG_globalData->interpreter->m_ctiVirtualCallLink); |
+ ctiPatchNearCallByReturnAddress(ARG_returnAddress2, globalData->jitStubs.ctiVirtualCallLink()); |
return codeBlock->jitCode().addressForCall(); |
} |
-void* Interpreter::cti_vm_lazyLinkCall(STUB_ARGS) |
+void* JITStubs::cti_vm_lazyLinkCall(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
JSFunction* callee = asFunction(ARG_src1); |
- CodeBlock* codeBlock = &callee->body()->bytecode(callee->m_scopeChain.node()); |
+ CodeBlock* codeBlock = &callee->body()->bytecode(callee->scope().node()); |
if (!codeBlock->jitCode()) |
JIT::compile(ARG_globalData, codeBlock); |
@@ -934,7 +924,7 @@ |
return codeBlock->jitCode().addressForCall(); |
} |
-JSObject* Interpreter::cti_op_push_activation(STUB_ARGS) |
+JSObject* JITStubs::cti_op_push_activation(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -943,7 +933,7 @@ |
return activation; |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_call_NotJSFunction(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_call_NotJSFunction(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -992,7 +982,7 @@ |
VM_THROW_EXCEPTION(); |
} |
-void Interpreter::cti_op_create_arguments(STUB_ARGS) |
+void JITStubs::cti_op_create_arguments(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1001,7 +991,7 @@ |
ARG_callFrame[RegisterFile::ArgumentsRegister] = arguments; |
} |
-void Interpreter::cti_op_create_arguments_no_params(STUB_ARGS) |
+void JITStubs::cti_op_create_arguments_no_params(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1010,7 +1000,7 @@ |
ARG_callFrame[RegisterFile::ArgumentsRegister] = arguments; |
} |
-void Interpreter::cti_op_tear_off_activation(STUB_ARGS) |
+void JITStubs::cti_op_tear_off_activation(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1018,7 +1008,7 @@ |
asActivation(ARG_src1)->copyRegisters(ARG_callFrame->optionalCalleeArguments()); |
} |
-void Interpreter::cti_op_tear_off_arguments(STUB_ARGS) |
+void JITStubs::cti_op_tear_off_arguments(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1026,7 +1016,7 @@ |
ARG_callFrame->optionalCalleeArguments()->copyRegisters(); |
} |
-void Interpreter::cti_op_profile_will_call(STUB_ARGS) |
+void JITStubs::cti_op_profile_will_call(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1034,7 +1024,7 @@ |
(*ARG_profilerReference)->willExecute(ARG_callFrame, ARG_src1); |
} |
-void Interpreter::cti_op_profile_did_call(STUB_ARGS) |
+void JITStubs::cti_op_profile_did_call(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1042,7 +1032,7 @@ |
(*ARG_profilerReference)->didExecute(ARG_callFrame, ARG_src1); |
} |
-void Interpreter::cti_op_ret_scopeChain(STUB_ARGS) |
+void JITStubs::cti_op_ret_scopeChain(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1050,7 +1040,7 @@ |
ARG_callFrame->scopeChain()->deref(); |
} |
-JSObject* Interpreter::cti_op_new_array(STUB_ARGS) |
+JSObject* JITStubs::cti_op_new_array(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1058,7 +1048,7 @@ |
return constructArray(ARG_callFrame, argList); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_resolve(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_resolve(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1086,7 +1076,7 @@ |
VM_THROW_EXCEPTION(); |
} |
-JSObject* Interpreter::cti_op_construct_JSConstruct(STUB_ARGS) |
+JSObject* JITStubs::cti_op_construct_JSConstruct(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1099,11 +1089,11 @@ |
if (ARG_src4.isObject()) |
structure = asObject(ARG_src4)->inheritorID(); |
else |
- structure = asFunction(ARG_src1)->m_scopeChain.node()->globalObject()->emptyObjectStructure(); |
+ structure = asFunction(ARG_src1)->scope().node()->globalObject()->emptyObjectStructure(); |
return new (ARG_globalData) JSObject(structure); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_construct_NotJSConstruct(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_construct_NotJSConstruct(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1137,12 +1127,12 @@ |
VM_THROW_EXCEPTION(); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_val(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_val(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
CallFrame* callFrame = ARG_callFrame; |
- Interpreter* interpreter = ARG_globalData->interpreter; |
+ JSGlobalData* globalData = ARG_globalData; |
JSValuePtr baseValue = ARG_src1; |
JSValuePtr subscript = ARG_src2; |
@@ -1151,15 +1141,15 @@ |
if (LIKELY(subscript.isUInt32Fast())) { |
uint32_t i = subscript.getUInt32Fast(); |
- if (interpreter->isJSArray(baseValue)) { |
+ if (isJSArray(globalData, baseValue)) { |
JSArray* jsArray = asArray(baseValue); |
if (jsArray->canGetIndex(i)) |
result = jsArray->getIndex(i); |
else |
result = jsArray->JSArray::get(callFrame, i); |
- } else if (interpreter->isJSString(baseValue) && asString(baseValue)->canGetIndex(i)) |
+ } else if (isJSString(globalData, baseValue) && asString(baseValue)->canGetIndex(i)) |
result = asString(baseValue)->getIndex(ARG_globalData, i); |
- else if (interpreter->isJSByteArray(baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { |
+ else if (isJSByteArray(globalData, baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { |
// All fast byte array accesses are safe from exceptions so return immediately to avoid exception checks. |
ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_val_byte_array)); |
return JSValuePtr::encode(asByteArray(baseValue)->getIndex(callFrame, i)); |
@@ -1174,12 +1164,12 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_get_by_val_byte_array(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_get_by_val_byte_array(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
CallFrame* callFrame = ARG_callFrame; |
- Interpreter* interpreter = ARG_globalData->interpreter; |
+ JSGlobalData* globalData = ARG_globalData; |
JSValuePtr baseValue = ARG_src1; |
JSValuePtr subscript = ARG_src2; |
@@ -1188,13 +1178,13 @@ |
if (LIKELY(subscript.isUInt32Fast())) { |
uint32_t i = subscript.getUInt32Fast(); |
- if (interpreter->isJSByteArray(baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { |
+ if (isJSByteArray(globalData, baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { |
// All fast byte array accesses are safe from exceptions so return immediately to avoid exception checks. |
return JSValuePtr::encode(asByteArray(baseValue)->getIndex(callFrame, i)); |
} |
result = baseValue.get(callFrame, i); |
- if (!interpreter->isJSByteArray(baseValue)) |
+ if (!isJSByteArray(globalData, baseValue)) |
ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_get_by_val)); |
} else { |
Identifier property(callFrame, subscript.toString(callFrame)); |
@@ -1205,7 +1195,7 @@ |
return JSValuePtr::encode(result); |
} |
-VoidPtrPair Interpreter::cti_op_resolve_func(STUB_ARGS) |
+VoidPtrPair JITStubs::cti_op_resolve_func(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1247,7 +1237,7 @@ |
VM_THROW_EXCEPTION_2(); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_sub(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_sub(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1265,12 +1255,12 @@ |
return JSValuePtr::encode(result); |
} |
-void Interpreter::cti_op_put_by_val(STUB_ARGS) |
+void JITStubs::cti_op_put_by_val(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
CallFrame* callFrame = ARG_callFrame; |
- Interpreter* interpreter = ARG_globalData->interpreter; |
+ JSGlobalData* globalData = ARG_globalData; |
JSValuePtr baseValue = ARG_src1; |
JSValuePtr subscript = ARG_src2; |
@@ -1278,13 +1268,13 @@ |
if (LIKELY(subscript.isUInt32Fast())) { |
uint32_t i = subscript.getUInt32Fast(); |
- if (interpreter->isJSArray(baseValue)) { |
+ if (isJSArray(globalData, baseValue)) { |
JSArray* jsArray = asArray(baseValue); |
if (jsArray->canSetIndex(i)) |
jsArray->setIndex(i, value); |
else |
jsArray->JSArray::put(callFrame, i, value); |
- } else if (interpreter->isJSByteArray(baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { |
+ } else if (isJSByteArray(globalData, baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { |
JSByteArray* jsByteArray = asByteArray(baseValue); |
ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_put_by_val_byte_array)); |
// All fast byte array accesses are safe from exceptions so return immediately to avoid exception checks. |
@@ -1313,17 +1303,16 @@ |
CHECK_FOR_EXCEPTION_AT_END(); |
} |
-void Interpreter::cti_op_put_by_val_array(STUB_ARGS) |
+void JITStubs::cti_op_put_by_val_array(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
CallFrame* callFrame = ARG_callFrame; |
- |
JSValuePtr baseValue = ARG_src1; |
int i = ARG_int2; |
JSValuePtr value = ARG_src3; |
- ASSERT(ARG_globalData->interpreter->isJSArray(baseValue)); |
+ ASSERT(isJSArray(ARG_globalData, baseValue)); |
if (LIKELY(i >= 0)) |
asArray(baseValue)->JSArray::put(callFrame, i, value); |
@@ -1341,12 +1330,12 @@ |
CHECK_FOR_EXCEPTION_AT_END(); |
} |
-void Interpreter::cti_op_put_by_val_byte_array(STUB_ARGS) |
+void JITStubs::cti_op_put_by_val_byte_array(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
CallFrame* callFrame = ARG_callFrame; |
- Interpreter* interpreter = ARG_globalData->interpreter; |
+ JSGlobalData* globalData = ARG_globalData; |
JSValuePtr baseValue = ARG_src1; |
JSValuePtr subscript = ARG_src2; |
@@ -1354,7 +1343,7 @@ |
if (LIKELY(subscript.isUInt32Fast())) { |
uint32_t i = subscript.getUInt32Fast(); |
- if (interpreter->isJSByteArray(baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { |
+ if (isJSByteArray(globalData, baseValue) && asByteArray(baseValue)->canAccessIndex(i)) { |
JSByteArray* jsByteArray = asByteArray(baseValue); |
// All fast byte array accesses are safe from exceptions so return immediately to avoid exception checks. |
@@ -1370,7 +1359,7 @@ |
} |
} |
- if (!interpreter->isJSByteArray(baseValue)) |
+ if (!isJSByteArray(globalData, baseValue)) |
ctiPatchCallByReturnAddress(STUB_RETURN_ADDRESS, reinterpret_cast<void*>(cti_op_put_by_val)); |
baseValue.put(callFrame, i, value); |
} else { |
@@ -1384,7 +1373,7 @@ |
CHECK_FOR_EXCEPTION_AT_END(); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_lesseq(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_lesseq(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1394,7 +1383,7 @@ |
return JSValuePtr::encode(result); |
} |
-int Interpreter::cti_op_loop_if_true(STUB_ARGS) |
+int JITStubs::cti_op_loop_if_true(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1407,7 +1396,7 @@ |
return result; |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_negate(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_negate(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1423,14 +1412,14 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_resolve_base(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_resolve_base(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return JSValuePtr::encode(JSC::resolveBase(ARG_callFrame, *ARG_id1, ARG_callFrame->scopeChain())); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_resolve_skip(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_resolve_skip(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1463,7 +1452,7 @@ |
VM_THROW_EXCEPTION(); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_resolve_global(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_resolve_global(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1495,7 +1484,7 @@ |
VM_THROW_EXCEPTION(); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_div(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_div(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1513,7 +1502,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_pre_dec(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_pre_dec(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1525,7 +1514,7 @@ |
return JSValuePtr::encode(result); |
} |
-int Interpreter::cti_op_jless(STUB_ARGS) |
+int JITStubs::cti_op_jless(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1538,7 +1527,7 @@ |
return result; |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_not(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_not(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1551,7 +1540,7 @@ |
return JSValuePtr::encode(result); |
} |
-int Interpreter::cti_op_jtrue(STUB_ARGS) |
+int JITStubs::cti_op_jtrue(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1564,7 +1553,7 @@ |
return result; |
} |
-VoidPtrPair Interpreter::cti_op_post_inc(STUB_ARGS) |
+VoidPtrPair JITStubs::cti_op_post_inc(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1578,7 +1567,7 @@ |
RETURN_PAIR(JSValuePtr::encode(number), JSValuePtr::encode(jsNumber(ARG_globalData, number.uncheckedGetNumber() + 1))); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_eq(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_eq(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1593,7 +1582,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_lshift(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_lshift(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1613,7 +1602,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_bitand(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_bitand(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1631,7 +1620,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_rshift(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_rshift(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1651,7 +1640,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_bitnot(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_bitnot(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1667,7 +1656,7 @@ |
return JSValuePtr::encode(result); |
} |
-VoidPtrPair Interpreter::cti_op_resolve_with_base(STUB_ARGS) |
+VoidPtrPair JITStubs::cti_op_resolve_with_base(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1701,14 +1690,14 @@ |
VM_THROW_EXCEPTION_2(); |
} |
-JSObject* Interpreter::cti_op_new_func_exp(STUB_ARGS) |
+JSObject* JITStubs::cti_op_new_func_exp(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return ARG_funcexp1->makeFunction(ARG_callFrame, ARG_callFrame->scopeChain()); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_mod(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_mod(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1722,7 +1711,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_less(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_less(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1732,7 +1721,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_neq(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_neq(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1747,7 +1736,7 @@ |
return JSValuePtr::encode(result); |
} |
-VoidPtrPair Interpreter::cti_op_post_dec(STUB_ARGS) |
+VoidPtrPair JITStubs::cti_op_post_dec(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1761,7 +1750,7 @@ |
RETURN_PAIR(JSValuePtr::encode(number), JSValuePtr::encode(jsNumber(ARG_globalData, number.uncheckedGetNumber() - 1))); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_urshift(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_urshift(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1779,7 +1768,7 @@ |
} |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_bitxor(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_bitxor(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1793,14 +1782,14 @@ |
return JSValuePtr::encode(result); |
} |
-JSObject* Interpreter::cti_op_new_regexp(STUB_ARGS) |
+JSObject* JITStubs::cti_op_new_regexp(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return new (ARG_globalData) RegExpObject(ARG_callFrame->lexicalGlobalObject()->regExpStructure(), ARG_regexp1); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_bitor(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_bitor(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1814,7 +1803,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_call_eval(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_call_eval(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1845,7 +1834,7 @@ |
return JSValuePtr::encode(jsImpossibleValue()); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_throw(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_throw(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1871,14 +1860,14 @@ |
return JSValuePtr::encode(exceptionValue); |
} |
-JSPropertyNameIterator* Interpreter::cti_op_get_pnames(STUB_ARGS) |
+JSPropertyNameIterator* JITStubs::cti_op_get_pnames(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return JSPropertyNameIterator::create(ARG_callFrame, ARG_src1); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_next_pname(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_next_pname(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1889,7 +1878,7 @@ |
return JSValuePtr::encode(temp); |
} |
-JSObject* Interpreter::cti_op_push_scope(STUB_ARGS) |
+JSObject* JITStubs::cti_op_push_scope(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1899,21 +1888,21 @@ |
return o; |
} |
-void Interpreter::cti_op_pop_scope(STUB_ARGS) |
+void JITStubs::cti_op_pop_scope(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
ARG_callFrame->setScopeChain(ARG_callFrame->scopeChain()->pop()); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_typeof(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_typeof(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return JSValuePtr::encode(jsTypeStringForValue(ARG_callFrame, ARG_src1)); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_is_undefined(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_is_undefined(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1921,42 +1910,42 @@ |
return JSValuePtr::encode(jsBoolean(v.isCell() ? v.asCell()->structure()->typeInfo().masqueradesAsUndefined() : v.isUndefined())); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_is_boolean(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_is_boolean(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return JSValuePtr::encode(jsBoolean(ARG_src1.isBoolean())); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_is_number(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_is_number(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return JSValuePtr::encode(jsBoolean(ARG_src1.isNumber())); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_is_string(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_is_string(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
- return JSValuePtr::encode(jsBoolean(ARG_globalData->interpreter->isJSString(ARG_src1))); |
+ return JSValuePtr::encode(jsBoolean(isJSString(ARG_globalData, ARG_src1))); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_is_object(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_is_object(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return JSValuePtr::encode(jsBoolean(jsIsObjectType(ARG_src1))); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_is_function(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_is_function(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
return JSValuePtr::encode(jsBoolean(jsIsFunctionType(ARG_src1))); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_stricteq(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_stricteq(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1966,7 +1955,7 @@ |
return JSValuePtr::encode(jsBoolean(JSValuePtr::strictEqual(src1, src2))); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_nstricteq(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_nstricteq(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1976,7 +1965,7 @@ |
return JSValuePtr::encode(jsBoolean(!JSValuePtr::strictEqual(src1, src2))); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_to_jsnumber(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_to_jsnumber(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -1988,7 +1977,7 @@ |
return JSValuePtr::encode(result); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_in(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_in(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2015,7 +2004,7 @@ |
return JSValuePtr::encode(jsBoolean(baseObj->hasProperty(callFrame, property))); |
} |
-JSObject* Interpreter::cti_op_push_new_scope(STUB_ARGS) |
+JSObject* JITStubs::cti_op_push_new_scope(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2026,7 +2015,7 @@ |
return scope; |
} |
-void Interpreter::cti_op_jmp_scopes(STUB_ARGS) |
+void JITStubs::cti_op_jmp_scopes(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2039,7 +2028,7 @@ |
callFrame->setScopeChain(tmp); |
} |
-void Interpreter::cti_op_put_by_index(STUB_ARGS) |
+void JITStubs::cti_op_put_by_index(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2049,7 +2038,7 @@ |
ARG_src1.put(callFrame, property, ARG_src3); |
} |
-void* Interpreter::cti_op_switch_imm(STUB_ARGS) |
+void* JITStubs::cti_op_switch_imm(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2069,7 +2058,7 @@ |
} |
} |
-void* Interpreter::cti_op_switch_char(STUB_ARGS) |
+void* JITStubs::cti_op_switch_char(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2089,7 +2078,7 @@ |
return result; |
} |
-void* Interpreter::cti_op_switch_string(STUB_ARGS) |
+void* JITStubs::cti_op_switch_string(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2108,7 +2097,7 @@ |
return result; |
} |
-JSValueEncodedAsPointer* Interpreter::cti_op_del_by_val(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_op_del_by_val(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2133,7 +2122,7 @@ |
return JSValuePtr::encode(result); |
} |
-void Interpreter::cti_op_put_getter(STUB_ARGS) |
+void JITStubs::cti_op_put_getter(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2145,7 +2134,7 @@ |
baseObj->defineGetter(callFrame, *ARG_id2, asObject(ARG_src3)); |
} |
-void Interpreter::cti_op_put_setter(STUB_ARGS) |
+void JITStubs::cti_op_put_setter(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2157,7 +2146,7 @@ |
baseObj->defineSetter(callFrame, *ARG_id2, asObject(ARG_src3)); |
} |
-JSObject* Interpreter::cti_op_new_error(STUB_ARGS) |
+JSObject* JITStubs::cti_op_new_error(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2171,7 +2160,7 @@ |
return Error::create(callFrame, static_cast<ErrorType>(type), message.toString(callFrame), lineNumber, codeBlock->ownerNode()->sourceID(), codeBlock->ownerNode()->sourceURL()); |
} |
-void Interpreter::cti_op_debug(STUB_ARGS) |
+void JITStubs::cti_op_debug(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2184,7 +2173,7 @@ |
ARG_globalData->interpreter->debug(callFrame, static_cast<DebugHookID>(debugHookID), firstLine, lastLine); |
} |
-JSValueEncodedAsPointer* Interpreter::cti_vm_throw(STUB_ARGS) |
+JSValueEncodedAsPointer* JITStubs::cti_vm_throw(STUB_ARGS) |
{ |
BEGIN_STUB_FUNCTION(); |
@@ -2222,6 +2211,6 @@ |
#undef VM_THROW_EXCEPTION_2 |
#undef VM_THROW_EXCEPTION_AT_END |
-#endif // ENABLE(JIT) |
- |
} // namespace JSC |
+ |
+#endif // ENABLE(JIT) |