• sgjesse@chromium.org's avatar
    Defer the writing of the source position data to the relocation information · b568d7a1
    sgjesse@chromium.org authored
    until a possible debug break location is reached. Currently this is call sites
    with calls to code objects and JS return. Source position information in the
    code therefore no longer refers to the "first" instruction generated for a
    given source position (which was not the case defered code anyway) but to the
    first break location after that source position was passed (again defered code
    always start with source position information). This doesn't make a difference
    for the debugger as it will always be stopped only at debug break locations.
    However, this makes the life of the peep-hole optimizer much easier as many
    oportunities for posh/pop eliminations where previosly blocked by relocation
    information already written to the code object.
    
    Two types of source positions are still collected. Statement positions indicate
    the position of the start of the statement leading to this code and (plain)
    positions indicate other places typically call sites to help indicate current
    position in backtraces. The two different types of positions are also used to
    distinguish between step next and step in.
    
    Runs all the tests (including debugger tests) as before.
    
    Moved the checking for the FLAG_debug_info to one place.
    
    I will do the same changes to the ARM codegenerator in a seperate changelist.
    
    Review URL: http://codereview.chromium.org/2957
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    b568d7a1
codegen.h 9.22 KB