• sgjesse@chromium.org's avatar
    Change ARM exit frame layout and alingment handling · 161d631b
    sgjesse@chromium.org authored
    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.
    Review URL: http://codereview.chromium.org/6247019
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    161d631b
macro-assembler-ia32.cc 62.7 KB