• kmillikin@chromium.org's avatar
    Simplify the processing of deferred code in the code generator. Our · bd82b972
    kmillikin@chromium.org authored
    deferred code snippets are highly stylized.  They always make a call
    to a stub or the runtime and then return.  This change takes advantage
    of that.
    
    Creating a deferred code object now captures a snapshot of the
    registers in the virtual frame.  The registers are automatically saved
    on entry to the deferred code and restored on exit.
    
    The clients of deferred code must ensure that there is no change to
    the registers in the virtual frame (eg, by allocating which can cause
    spilling) or to the stack pointer.  That is currently the case.
    
    As a separate change, I will add either code to verify this constraint
    or else code to forbid any frame effect.
    
    The deferred code itself does not use the virtual frame or register
    allocator (or even the code generator).  It is raw macro assembler
    code.
    Review URL: http://codereview.chromium.org/118226
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    bd82b972
codegen-ia32.cc 250 KB