• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...