summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/llint/LLIntExceptions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/llint/LLIntExceptions.cpp')
-rw-r--r--Source/JavaScriptCore/llint/LLIntExceptions.cpp49
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)