Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Unified Diff: src/codegen-ia32.cc

Issue 28021: Experimental: cleanup the handling of try...catch and try...finally on... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/toiger/
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/codegen-arm.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/codegen-ia32.cc
===================================================================
--- src/codegen-ia32.cc (revision 1334)
+++ src/codegen-ia32.cc (working copy)
@@ -2654,10 +2654,10 @@
// If we can fall off the end of the try block, unlink from try chain.
if (has_valid_frame()) {
+ // The TOS is the next handler address.
frame_->EmitPop(eax);
- __ mov(Operand::StaticVariable(handler_address), eax); // TOS == next_sp
+ __ mov(Operand::StaticVariable(handler_address), eax);
frame_->Drop(StackHandlerConstants::kSize / kPointerSize - 1);
- // next_sp popped.
if (nof_unlinks > 0) {
exit.Jump();
}
@@ -2668,10 +2668,9 @@
for (int i = 0; i <= nof_escapes; i++) {
if (shadows[i]->is_linked()) {
// Unlink from try chain; be careful not to destroy the TOS.
- //
+ shadows[i]->Bind();
// Because we can be jumping here (to spilled code) from unspilled
// code, we need to reestablish a spilled frame at this block.
- shadows[i]->Bind();
frame_->SpillAll();
// Reload sp from the top handler, because some statements that we
@@ -2719,7 +2718,6 @@
__ Set(ecx, Immediate(Smi::FromInt(THROWING)));
finally_block.Jump();
-
// --- Try block ---
try_block.Bind();
« no previous file with comments | « src/codegen-arm.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698