• 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
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
branch-elimination-unittest.cc Loading commit data...
coalesced-live-ranges-unittest.cc Loading commit data...
common-operator-reducer-unittest.cc Loading commit data...
common-operator-unittest.cc Loading commit data...
compiler-test-utils.h Loading commit data...
control-equivalence-unittest.cc Loading commit data...
control-flow-optimizer-unittest.cc Loading commit data...
dead-code-elimination-unittest.cc Loading commit data...
diamond-unittest.cc Loading commit data...
effect-control-linearizer-unittest.cc Loading commit data...
escape-analysis-unittest.cc Loading commit data...
graph-reducer-unittest.cc Loading commit data...
graph-reducer-unittest.h Loading commit data...
graph-trimmer-unittest.cc Loading commit data...
graph-unittest.cc Loading commit data...
graph-unittest.h Loading commit data...
instruction-selector-unittest.cc Loading commit data...
instruction-selector-unittest.h Loading commit data...
instruction-sequence-unittest.cc Loading commit data...
instruction-sequence-unittest.h Loading commit data...
int64-lowering-unittest.cc Loading commit data...
js-builtin-reducer-unittest.cc Loading commit data...
js-create-lowering-unittest.cc Loading commit data...
js-intrinsic-lowering-unittest.cc Loading commit data...
js-operator-unittest.cc Loading commit data...
js-type-feedback-unittest.cc Loading commit data...
js-typed-lowering-unittest.cc Loading commit data...
linkage-tail-call-unittest.cc Loading commit data...
live-range-builder.h Loading commit data...
live-range-unittest.cc Loading commit data...
liveness-analyzer-unittest.cc Loading commit data...
load-elimination-unittest.cc Loading commit data...
loop-peeling-unittest.cc Loading commit data...
machine-operator-reducer-unittest.cc Loading commit data...
machine-operator-unittest.cc Loading commit data...
move-optimizer-unittest.cc Loading commit data...
node-cache-unittest.cc Loading commit data...
node-matchers-unittest.cc Loading commit data...
node-properties-unittest.cc Loading commit data...
node-test-utils.cc Loading commit data...
node-test-utils.h Loading commit data...
node-unittest.cc Loading commit data...
opcodes-unittest.cc Loading commit data...
register-allocator-unittest.cc Loading commit data...
schedule-unittest.cc Loading commit data...
scheduler-rpo-unittest.cc Loading commit data...
scheduler-unittest.cc Loading commit data...
simplified-operator-reducer-unittest.cc Loading commit data...
simplified-operator-unittest.cc Loading commit data...
state-values-utils-unittest.cc Loading commit data...
tail-call-optimization-unittest.cc Loading commit data...
typer-unittest.cc Loading commit data...
value-numbering-reducer-unittest.cc Loading commit data...
zone-pool-unittest.cc Loading commit data...