Index: src/ia32/builtins-ia32.cc |
diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc |
index 01785bb53e25400eda7668ffd94fb3e12088a374..cadff4986f158ceddfd7c33f440725998700a994 100644 |
--- a/src/ia32/builtins-ia32.cc |
+++ b/src/ia32/builtins-ia32.cc |
@@ -574,6 +574,25 @@ CODE_AGE_LIST(DEFINE_CODE_AGE_BUILTIN_GENERATOR) |
#undef DEFINE_CODE_AGE_BUILTIN_GENERATOR |
+void Builtins::Generate_NotifyICMiss(MacroAssembler* masm) { |
+ // Enter an internal frame. |
+ { |
+ FrameScope scope(masm, StackFrame::INTERNAL); |
+ |
+ // Preserve registers across notification, this is important for compiled |
+ // stubs that tail call the runtime on deopts passing their parameters in |
+ // registers. |
+ __ pushad(); |
+ __ CallRuntime(Runtime::kNotifyICMiss, 0); |
+ __ popad(); |
+ // Tear down internal frame. |
+ } |
+ |
+ __ pop(MemOperand(esp, 0)); // Ignore state offset |
+ __ ret(0); // Return to IC Miss stub, continuation still on stack. |
+} |
+ |
+ |
static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm, |
Deoptimizer::BailoutType type) { |
{ |