http://codereview.chromium.org/492002/diff/24/27
File src/fast-codegen.cc (right):

http://codereview.chromium.org/492002/diff/24/27#newcode499
src/fast-codegen.cc:499: // the fially block through finally_entry
label.
Fixed

http://codereview.chromium.org/492002/diff/24/27#newcode504
src/fast-codegen.cc:504: // and a value in the result register
(rax/eax/r0), both of which must
Done

http://codereview.chromium.org/492002/diff/24/27#newcode525
src/fast-codegen.cc:525: Visit(stmt->finally_block());
It should be ok (you can't label the blocks, so there is no reason to
visit the blocks themselves). Will change.

http://codereview.chromium.org/492002/diff/24/27#newcode526
src/fast-codegen.cc:526: ReturnFromFinallyBlock();  // Performs a return
to the calling code.
Fixed.
(The point was that it actually did a return at the end, so it was named
to show that control didn't fall through. I'll just use a comment).

http://codereview.chromium.org/492002/diff/24/27#newcode532
src/fast-codegen.cc:532: __ PushTryHandler(IN_JAVASCRIPT,
TRY_FINALLY_HANDLER);
Done

http://codereview.chromium.org/492002/diff/24/29
File src/ia32/fast-codegen-ia32.cc (right):

http://codereview.chromium.org/492002/diff/24/29#newcode1642
src/ia32/fast-codegen-ia32.cc:1642: __ mov(edx, Operand(esp, 0));
Good idea. Done.

http://codereview.chromium.org/492002/diff/24/29#newcode1649
src/ia32/fast-codegen-ia32.cc:1649: __ push(eax);
Indeed. Half an abstractions is ... useless.

http://codereview.chromium.org/492002/diff/24/29#newcode1657
src/ia32/fast-codegen-ia32.cc:1657: __ mov(edx, Operand(esp, 0));
The CPU has a call/return stack that expects calls/returns to be
properly nested. If they aren't, the stack gets out of sync, and return
becomes slower.

I don't know if messing with stack values break it anyway (I'm guess it
won't, which is why I cook and uncook without popping, so that the next
expected return value is never outside the stack).

We definitely get out of sync with the try-handler chain management, so
maybe it's not worth keeping it here.
I'll keep it for now, and try to do a little research on whether we
break it, and how much it matters.

http://codereview.chromium.org/492002

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to