Commit fc8a0e3f authored by feng@chromium.org's avatar feng@chromium.org

Fix OOM handler code. Old code didn't pop up the state slot.

Review URL: http://codereview.chromium.org/10223

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent b7a0a9f3
...@@ -3859,8 +3859,16 @@ void CEntryStub::GenerateThrowOutOfMemory(MacroAssembler* masm) { ...@@ -3859,8 +3859,16 @@ void CEntryStub::GenerateThrowOutOfMemory(MacroAssembler* masm) {
// Restore the stack to the address of the ENTRY handler // Restore the stack to the address of the ENTRY handler
__ mov(sp, Operand(r3)); __ mov(sp, Operand(r3));
// restore parameter- and frame-pointer and pop state. // Stack layout at this point. See also PushTryHandler
__ ldm(ia_w, sp, r3.bit() | pp.bit() | fp.bit()); // r3, sp -> next handler
// state (ENTRY)
// pp
// fp
// lr
// Discard ENTRY state (r2 is not used), and restore parameter-
// and frame-pointer and pop state.
__ ldm(ia_w, sp, r2.bit() | r3.bit() | pp.bit() | fp.bit());
// Before returning we restore the context from the frame pointer if not NULL. // Before returning we restore the context from the frame pointer if not NULL.
// The frame pointer is NULL in the exception handler of a JS entry frame. // The frame pointer is NULL in the exception handler of a JS entry frame.
__ cmp(fp, Operand(0)); __ cmp(fp, Operand(0));
......
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