Add support for lazy deoptimization from deferred stack checks
authorsgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 5 Jul 2011 13:21:29 +0000 (13:21 +0000)
committersgjesse@chromium.org <sgjesse@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Tue, 5 Jul 2011 13:21:29 +0000 (13:21 +0000)
commit10bb16f4951bd7a4ba100d1f5947966afe579a96
treeaffb78b2661f444d91067aba8e34cf902b0f117b
parent877d6198e5d9319dfa57940f88f8eb42771bd56a
Add support for lazy deoptimization from deferred stack checks

The debugger can be entered from the deferred stack check in optimized code. This can cause both lazy deoptimization and debugger deoptimization (setting the first break point and inspecting the stack for optimized code respectively). This required deoptimization support from the deferred stack check.

The lazy deoptimiztion call is inserted when the deferred code is done including restoring the registers. The bailout to the full code is the begining of the loop body as that is where the stack check is sitting in the optimized code. The bailout is not to the stack check in the full code as that is sitting at the end of the loop.

R=kmillikin@chromium.org

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/arm/lithium-codegen-arm.cc
src/ast.h
src/hydrogen.cc
src/hydrogen.h
src/ia32/lithium-codegen-ia32.cc
src/x64/lithium-codegen-x64.cc
test/cctest/test-debug.cc