Author: [EMAIL PROTECTED]
Date: Fri Nov 7 14:56:41 2008
New Revision: 720
Modified:
branches/bleeding_edge/src/codegen-arm.cc
Log:
Fix OOM handler code. Old code didn't pop up the state slot.
Review URL: http://codereview.chromium.org/10223
Modified: branches/bleeding_edge/src/codegen-arm.cc
==============================================================================
--- branches/bleeding_edge/src/codegen-arm.cc (original)
+++ branches/bleeding_edge/src/codegen-arm.cc Fri Nov 7 14:56:41 2008
@@ -3859,8 +3859,16 @@
// Restore the stack to the address of the ENTRY handler
__ mov(sp, Operand(r3));
- // restore parameter- and frame-pointer and pop state.
- __ ldm(ia_w, sp, r3.bit() | pp.bit() | fp.bit());
+ // Stack layout at this point. See also PushTryHandler
+ // 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.
// The frame pointer is NULL in the exception handler of a JS entry
frame.
__ cmp(fp, Operand(0));
--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---