• Pierre Langlois's avatar
    [ic] Do not decode instructions to detect deoptimized code. · 0d8ec36b
    Pierre Langlois authored
    This fixes a crash when using --trace-ic on Arm64 debug. For a given return
    address, the assembler's `target_address_from_return_address()` method will
    displace it to give you the call-site address. However, this is fragile because
    it needs to decode the instruction stream to distinguish between different call
    sequences. So it triggered an assertion on Arm64 because we now use BL for
    builtin to buitin calls.
    
    We only use this when tracing IC states to detect if the caller is a deoptimized
    function. But to do this it doesn't matter if the address we have is the return
    or the call-site address. So we can just remove the need for the fragile
    Assembler method.
    
    As a drive-by, also remove `return_address_from_call_start()` which was doing
    the opposite and was unused.
    
    Change-Id: I5988d17eadd1652ed85d662e62bc4c579665dd31
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594566
    Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#61337}
    0d8ec36b
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...