• Clemens Hammacher's avatar
    [wasm][x64] Use near jump in jump table · 3cd6705f
    Clemens Hammacher authored
    On x64, we allocate one big code region such that we can use near jumps
    and near calls. The jump table did not make use of that design yet.
    This CL changes that by emitting jump table slots as near jumps. This
    also speeds up patching jump table slots significantly, since far jumps
    populate the inline constant pool, which is unneeded overhead in this
    case.
    As a drive-by, this CL cleans up the API of near_call and near_jmp. The
    current semantics is broken, and only works because this is only used
    for WebAssembly calls which are patched anyway after code generation.
    Also, x64 now uses the same path in test-jump-table-assembler.cc as
    arm64 to ensure that all targets are within near-call-distance.
    
    R=mstarzinger@chromium.org
    
    Bug: v8:8916
    Change-Id: Iffc34e248b72167307ffdab62dd2212c4ae86a32
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1561313Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#60777}
    3cd6705f
assembler-x64.h 83.7 KB