• Jakob Gruber's avatar
    [code] Separate instruction and metadata areas · b66993bc
    Jakob Gruber authored
    In this CL, Code object layout changes s.t. the instruction
    area is distinct / non-overlapping from the metadata area.
    
    On-heap Code objects now have a variable-size `body` area,
    containing distinct-but-adjacent `instruction` and `metadata`
    areas.
    
    Off-heap code (= embedded builtins) currently have the same,
    but in the future the metadata area will move elsewhere and
    no longer be adjacent to instructions.
    
    To implement this, the main changes are:
    
     - The Code object header now contains instruction and metadata
       sizes, and no longer contains the safepoint table offset
       (it's implicitly the first table of the metadata section).
     - The embedded metadata table contains information about both
       instruction and metadata areas.
    
    I've also added assertions in spots that currently rely on a
    contiguous body area.
    
    Bug: v8:11036
    Change-Id: I940f0c70c07ad511dafd2d2c3e337de8c92cd4b9
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491025Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70743}
    b66993bc
wasm-code-manager.cc 84.7 KB