diff options
author | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-05-30 12:48:17 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-05-30 12:48:17 +0200 |
commit | 881da28418d380042aa95a97f0cbd42560a64f7c (patch) | |
tree | a794dff3274695e99c651902dde93d934ea7a5af /Source/JavaScriptCore/llint/LLIntExceptions.cpp | |
parent | 7e104c57a70fdf551bb3d22a5d637cdcbc69dbea (diff) | |
parent | 0fcedcd17cc00d3dd44c718b3cb36c1033319671 (diff) | |
download | qtwebkit-881da28418d380042aa95a97f0cbd42560a64f7c.tar.gz |
Merge 'wip/next' into dev
Change-Id: Iff9ee5e23bb326c4371ec8ed81d56f2f05d680e9
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) |