diff options
Diffstat (limited to 'Source/JavaScriptCore/llint/LLIntExceptions.cpp')
-rw-r--r-- | Source/JavaScriptCore/llint/LLIntExceptions.cpp | 49 |
1 files changed, 7 insertions, 42 deletions
diff --git a/Source/JavaScriptCore/llint/LLIntExceptions.cpp b/Source/JavaScriptCore/llint/LLIntExceptions.cpp index d88c16e7e..039936e73 100644 --- a/Source/JavaScriptCore/llint/LLIntExceptions.cpp +++ b/Source/JavaScriptCore/llint/LLIntExceptions.cpp @@ -25,74 +25,39 @@ #include "config.h" #include "LLIntExceptions.h" - -#if ENABLE(LLINT) - #include "CallFrame.h" #include "CodeBlock.h" #include "Instruction.h" -#include "JITExceptions.h" #include "LLIntCommon.h" #include "LowLevelInterpreter.h" -#include "Operations.h" +#include "JSCInlines.h" namespace JSC { namespace LLInt { -static void fixupPCforExceptionIfNeeded(ExecState* exec) -{ - CodeBlock* codeBlock = exec->codeBlock(); - ASSERT(!!codeBlock); - Instruction* pc = exec->currentVPC(); - exec->setCurrentVPC(codeBlock->adjustPCIfAtCallSite(pc)); -} - -void interpreterThrowInCaller(ExecState* exec, ReturnAddressPtr pc) -{ - VM* vm = &exec->vm(); - NativeCallFrameTracer tracer(vm, exec); -#if LLINT_SLOW_PATH_TRACING - dataLog("Throwing exception ", vm->exception, ".\n"); -#endif - fixupPCforExceptionIfNeeded(exec); - genericThrow( - vm, exec, vm->exception, - exec->codeBlock()->bytecodeOffset(exec, pc)); -} - Instruction* returnToThrowForThrownException(ExecState* exec) { UNUSED_PARAM(exec); return LLInt::exceptionInstructions(); } -static void doThrow(ExecState* exec, Instruction* pc) -{ - VM* vm = &exec->vm(); - NativeCallFrameTracer tracer(vm, exec); - fixupPCforExceptionIfNeeded(exec); - genericThrow(vm, exec, vm->exception, pc - exec->codeBlock()->instructions().begin()); -} - -Instruction* returnToThrow(ExecState* exec, Instruction* pc) +Instruction* returnToThrow(ExecState* exec) { + UNUSED_PARAM(exec); #if LLINT_SLOW_PATH_TRACING VM* vm = &exec->vm(); - dataLog("Throwing exception ", vm->exception, " (returnToThrow).\n"); + dataLog("Throwing exception ", vm->exception(), " (returnToThrow).\n"); #endif - doThrow(exec, pc); return LLInt::exceptionInstructions(); } -void* callToThrow(ExecState* exec, Instruction* pc) +void* callToThrow(ExecState* exec) { + UNUSED_PARAM(exec); #if LLINT_SLOW_PATH_TRACING VM* vm = &exec->vm(); - dataLog("Throwing exception ", vm->exception, " (callToThrow).\n"); + dataLog("Throwing exception ", vm->exception(), " (callToThrow).\n"); #endif - doThrow(exec, pc); return LLInt::getCodePtr(llint_throw_during_call_trampoline); } } } // namespace JSC::LLInt - -#endif // ENABLE(LLINT) |