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

Reply via email to