• pierre.langlois's avatar
    [turbofan] ARM: Support shifted indexes in loads and stores · 11b661f4
    pierre.langlois authored
    This patch is a follow up to https://codereview.chromium.org/1972103002/
    adding support for the `Operand_R_LSL_I` addressing mode to loads and
    stores for ARM.
    
    Just as the ARM64 implementation, the shift + load/store pattern is only
    really relevant to the interpreter. For this reason, this patch does not
    add support for the other addressing modes (`R_LSR_I`, `R_ASR_I` and
    `R_ROR_I`) as I haven't seen those pattern being generated. Additionally,
    the optimization is restricted 32 bit loads and stores.
    
    kind = BYTECODE_HANDLER
    name = Star
    compiler = turbofan
    Instructions (size = 40)
    0x22a5f860     0  e2851001       add r1, r5, #1
    0x22a5f864     4  e19610d1       ldrsb r1, [r6, +r1]
    0x22a5f868     8  e1a0200b       mov r2, fp
    0x22a5f86c    12  e7820101       str r0, [r2, +r1, lsl #2]
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
    0x22a5f870    16  e2855002       add r5, r5, #2
    0x22a5f874    20  e7d61005       ldrb r1, [r6, +r5]
    0x22a5f878    24  e7981101       ldr r1, [r8, +r1, lsl #2]
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^
    0x22a5f87c    28  e12fff11       bx r1
    
    BUG=
    
    Review-Url: https://codereview.chromium.org/1974263002
    Cr-Commit-Position: refs/heads/master@{#36381}
    11b661f4
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gypfiles 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/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn 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.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl 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...