• Predrag Rudic's avatar
    MIPS: Port [turbofan] Use relative calls/jumps on arm for builtins · a1974d49
    Predrag Rudic authored
    Port commit 23dbb81d.
    
    Original CL message:
    
    >This CL uses pc-relative jumps and calls (B/BL) for calls from embedded
    >builtins to embedded builtins. To make this work, the code range size is
    >limited to 32MB on arm during mksnapshot, which ensures that all builtin
    >to builtin offsets for jumps/calls fit into the B/BL immediate. At code
    >generation time, we put a placeholder into the instruction offset which
    >we resolve to the right code object when the code is copied to the heap.
    >We use a new relocation mode RELATIVE_CODE_TARGET for these relative jumps.
    >The relocation mode RELATIVE_CODE_TARGET should never appear after
    >generating the snapshot.
    >
    >We modify the target_address/set_target_address methods of RelocInfo
    >such that they return the absolute target addresses for pc-relative B/BL
    >instructions. This ensures that the GC can treat RELATIVE_CODE_TARGET in
    >the same way as code targets. This, however, only matters during
    >snapshot creation time, and production code never contains
    >RELATIVE_CODE_TARGET relocations.
    >
    >Bug: v8:6666
    >Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
    >Change-Id: If7eab83ad588859ca87c654a5ddc3e37caea884c
    >Reviewed-on: https://chromium-review.googlesource.com/1117181
    >Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
    >Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
    >Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    >Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
    >Cr-Commit-Position: refs/heads/master@{#54320}
    
    This CL is completed Miran's draft without MIPS64 port.
    (https://chromium-review.googlesource.com/c/v8/v8/+/1136640/3).
    
    Change-Id: I979378ac445548641755968d890f7f4a82dc7986
    Reviewed-on: https://chromium-review.googlesource.com/c/1221313
    Commit-Queue: Ivica Bogosavljevic <ibogosavljevic@wavecomp.com>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarIvica Bogosavljevic <ibogosavljevic@wavecomp.com>
    Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#56640}
    a1974d49
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...