Reviewers: Mads Ager,
Description:
Change ARM exit frame layout and alingment handling
Change the ARM exit frame to have the same layout as the IA32 exit frame.
This
basically re-arranges the order of fp and sp and changes the sp location of
the
entry frame to hold the sp used by the gc and not the sp for popping the
arguments. This removes the option of tearing down the frame and returning
using
one ldm instruction.
The main motivation for this is to avoid pushing an alignment word before
generating the entry frame. The GC handling of optimized frames process the
registers pushed as part of a safepoint and asumes that these are at the
top of
the frame, so if an alignment word is pushed this processing will be one
off.
The alignment handling in the C entry stub have also been simplified. Now
the
value of lr is stored to a stack slot already reserved avoiding pushing it
and
keeping track of "frame skew".
This does result in more instructions in the exit frame on ARM, but we can
look
into improving this later.
Please review this at http://codereview.chromium.org/6247019/
SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/
Affected files:
M src/arm/code-stubs-arm.cc
M src/arm/frames-arm.h
M src/arm/frames-arm.cc
M src/arm/macro-assembler-arm.cc
M src/code-stubs.h
M src/ia32/code-stubs-ia32.cc
M src/ia32/macro-assembler-ia32.cc
M src/x64/code-stubs-x64.cc
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev