Commit 44f733b4 authored by titzer@chromium.org's avatar titzer@chromium.org

Delete Runtime_NotifyOSR.

BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/23600072

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent ad477f3f
...@@ -891,21 +891,6 @@ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) { ...@@ -891,21 +891,6 @@ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) {
} }
void Builtins::Generate_NotifyOSR(MacroAssembler* masm) {
// For now, we are relying on the fact that Runtime::NotifyOSR
// doesn't do any garbage collection which allows us to save/restore
// the registers without worrying about which of them contain
// pointers. This seems a bit fragile.
__ stm(db_w, sp, kJSCallerSaved | kCalleeSaved | lr.bit() | fp.bit());
{
FrameScope scope(masm, StackFrame::INTERNAL);
__ CallRuntime(Runtime::kNotifyOSR, 0);
}
__ ldm(ia_w, sp, kJSCallerSaved | kCalleeSaved | lr.bit() | fp.bit());
__ Ret();
}
void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) { void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) {
// Lookup the function in the JavaScript frame. // Lookup the function in the JavaScript frame.
__ ldr(r0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); __ ldr(r0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
......
...@@ -107,8 +107,6 @@ enum BuiltinExtraArguments { ...@@ -107,8 +107,6 @@ enum BuiltinExtraArguments {
V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, \ V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, \
Code::kNoExtraICState) \ Code::kNoExtraICState) \
V(NotifyStubFailure, BUILTIN, UNINITIALIZED, \ V(NotifyStubFailure, BUILTIN, UNINITIALIZED, \
Code::kNoExtraICState) \
V(NotifyOSR, BUILTIN, UNINITIALIZED, \
Code::kNoExtraICState) \ Code::kNoExtraICState) \
\ \
V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \ V(LoadIC_Miss, BUILTIN, UNINITIALIZED, \
...@@ -388,7 +386,6 @@ class Builtins { ...@@ -388,7 +386,6 @@ class Builtins {
static void Generate_NotifyDeoptimized(MacroAssembler* masm); static void Generate_NotifyDeoptimized(MacroAssembler* masm);
static void Generate_NotifySoftDeoptimized(MacroAssembler* masm); static void Generate_NotifySoftDeoptimized(MacroAssembler* masm);
static void Generate_NotifyLazyDeoptimized(MacroAssembler* masm); static void Generate_NotifyLazyDeoptimized(MacroAssembler* masm);
static void Generate_NotifyOSR(MacroAssembler* masm);
static void Generate_NotifyStubFailure(MacroAssembler* masm); static void Generate_NotifyStubFailure(MacroAssembler* masm);
static void Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm); static void Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm);
......
...@@ -630,25 +630,6 @@ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) { ...@@ -630,25 +630,6 @@ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) {
} }
void Builtins::Generate_NotifyOSR(MacroAssembler* masm) {
// TODO(kasperl): Do we need to save/restore the XMM registers too?
// TODO(mvstanton): We should save these regs, do this in a future
// checkin.
// For now, we are relying on the fact that Runtime::NotifyOSR
// doesn't do any garbage collection which allows us to save/restore
// the registers without worrying about which of them contain
// pointers. This seems a bit fragile.
__ pushad();
{
FrameScope scope(masm, StackFrame::INTERNAL);
__ CallRuntime(Runtime::kNotifyOSR, 0);
}
__ popad();
__ ret(0);
}
void Builtins::Generate_FunctionCall(MacroAssembler* masm) { void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
Factory* factory = masm->isolate()->factory(); Factory* factory = masm->isolate()->factory();
......
...@@ -924,23 +924,6 @@ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) { ...@@ -924,23 +924,6 @@ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) {
} }
void Builtins::Generate_NotifyOSR(MacroAssembler* masm) {
// For now, we are relying on the fact that Runtime::NotifyOSR
// doesn't do any garbage collection which allows us to save/restore
// the registers without worrying about which of them contain
// pointers. This seems a bit fragile.
RegList saved_regs =
(kJSCallerSaved | kCalleeSaved | ra.bit() | fp.bit()) & ~sp.bit();
__ MultiPush(saved_regs);
{
FrameScope scope(masm, StackFrame::INTERNAL);
__ CallRuntime(Runtime::kNotifyOSR, 0);
}
__ MultiPop(saved_regs);
__ Ret();
}
void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) { void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) {
// Lookup the function in the JavaScript frame. // Lookup the function in the JavaScript frame.
__ lw(a0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); __ lw(a0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
......
...@@ -8443,14 +8443,6 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) { ...@@ -8443,14 +8443,6 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) {
} }
RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyOSR) {
SealHandleScope shs(isolate);
Deoptimizer* deoptimizer = Deoptimizer::Grab(isolate);
delete deoptimizer;
return isolate->heap()->undefined_value();
}
RUNTIME_FUNCTION(MaybeObject*, Runtime_DeoptimizeFunction) { RUNTIME_FUNCTION(MaybeObject*, Runtime_DeoptimizeFunction) {
HandleScope scope(isolate); HandleScope scope(isolate);
ASSERT(args.length() == 1); ASSERT(args.length() == 1);
......
...@@ -91,7 +91,6 @@ namespace internal { ...@@ -91,7 +91,6 @@ namespace internal {
F(TryInstallRecompiledCode, 1, 1) \ F(TryInstallRecompiledCode, 1, 1) \
F(NotifyDeoptimized, 1, 1) \ F(NotifyDeoptimized, 1, 1) \
F(NotifyStubFailure, 0, 1) \ F(NotifyStubFailure, 0, 1) \
F(NotifyOSR, 0, 1) \
F(DeoptimizeFunction, 1, 1) \ F(DeoptimizeFunction, 1, 1) \
F(ClearFunctionTypeFeedback, 1, 1) \ F(ClearFunctionTypeFeedback, 1, 1) \
F(RunningInSimulator, 0, 1) \ F(RunningInSimulator, 0, 1) \
......
...@@ -694,21 +694,6 @@ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) { ...@@ -694,21 +694,6 @@ void Builtins::Generate_NotifyLazyDeoptimized(MacroAssembler* masm) {
} }
void Builtins::Generate_NotifyOSR(MacroAssembler* masm) {
// For now, we are relying on the fact that Runtime::NotifyOSR
// doesn't do any garbage collection which allows us to save/restore
// the registers without worrying about which of them contain
// pointers. This seems a bit fragile.
__ Pushad();
{
FrameScope scope(masm, StackFrame::INTERNAL);
__ CallRuntime(Runtime::kNotifyOSR, 0);
}
__ Popad();
__ ret(0);
}
void Builtins::Generate_FunctionCall(MacroAssembler* masm) { void Builtins::Generate_FunctionCall(MacroAssembler* masm) {
// Stack Layout: // Stack Layout:
// rsp[0] : Return address // rsp[0] : Return address
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment