• Clemens Hammacher's avatar
    Add code flag for non-tagged parameters · 86fa01c7
    Clemens Hammacher authored
    The WasmCompileLazy builtin creates an internal frame, thus the garbage
    collector will visit all pointers in the stack frame.
    However, we will call this builtin from compiled wasm code, and it
    receives raw (untagged) arguments. This is because this builtin is
    later exchanged by compiled wasm code, so the ABI needs to be
    compatible.
    
    This CL introduces the has_tagged_params code flag, which is true by
    default and false for each WASM_FUNCTION, JS_TO_WASM_FUNCTION and
    the WasmCompileLazy builtin.
    The gargabe collector just ignores the parameters for each frame
    whose code object has this flag set to false. For internal frames,
    all pointers in the whole stack frame are ignored if the flag is set.
    
    R=titzer@chromium.org, mstarzinger@chromium.org
    BUG=v8:5991
    
    Change-Id: I12a15157db344725bcc280e2041fd5bcad2ba700
    Reviewed-on: https://chromium-review.googlesource.com/451400
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#43884}
    86fa01c7
frames.cc 77.5 KB