v8/test/unittests/compiler
pierre.langlois 11b661f414 [turbofan] ARM: Support shifted indexes in loads and stores
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}
2016-05-19 19:18:25 +00:00
..
arm [turbofan] ARM: Support shifted indexes in loads and stores 2016-05-19 19:18:25 +00:00
arm64 [turbofan] ARM64: Support shifted indexes in loads and stores 2016-05-13 07:58:59 +00:00
ia32 [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
mips MIPS: [turbofan] Optimize Float32 to Int32 rep. changes with Float32 round ops. 2015-12-18 16:12:51 +00:00
mips64 MIPS: [turbofan] Optimize Float32 to Int32 rep. changes with Float32 round ops. 2015-12-18 16:12:51 +00:00
ppc
s390 S390: Initial test changes and files checkin. 2016-03-15 18:09:36 +00:00
x64 [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
branch-elimination-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
coalesced-live-ranges-unittest.cc
common-operator-reducer-unittest.cc [turbofan] We never use Int64Constant for branch/select conditions. 2016-05-18 07:20:19 +00:00
common-operator-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
compiler-test-utils.h
control-equivalence-unittest.cc [tubofan] Remove .dot output of --trace-turbo 2015-12-11 16:58:31 +00:00
control-flow-optimizer-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
dead-code-elimination-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
diamond-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
effect-control-linearizer-unittest.cc [turbofan] Wire in floating control during effect linearization phase. 2016-04-25 04:29:23 +00:00
escape-analysis-unittest.cc Turn on -Wmissing-field-initializers on Linux. 2016-05-06 10:20:30 +00:00
graph-reducer-unittest.cc
graph-reducer-unittest.h
graph-trimmer-unittest.cc
graph-unittest.cc
graph-unittest.h [wasm] New attempt to implement the Int64Lowering of phis. 2016-03-30 08:14:35 +00:00
instruction-selector-unittest.cc [turbofan] Introduce TruncateTaggedToWord32 simplified operator. 2016-04-24 11:41:20 +00:00
instruction-selector-unittest.h [turbofan] Enforce that C calls do not use floating point params. 2016-02-15 13:25:23 +00:00
instruction-sequence-unittest.cc RegisterAllocator: Clean up before adding aliasing. 2016-04-25 20:11:40 +00:00
instruction-sequence-unittest.h [turbofan] Create ExplicitOperands to specify operands without virtual registers 2015-10-27 13:27:00 +00:00
int64-lowering-unittest.cc [wasm] Mark all 64-bit instructions as supported on 32-bit platforms. 2016-05-03 11:47:59 +00:00
js-builtin-reducer-unittest.cc [turbofan] Fix optimized lowering of Math.imul. 2016-05-12 18:43:32 +00:00
js-create-lowering-unittest.cc [turbofan] Slighly improve JSCreateArguments lowering. 2016-05-11 06:12:00 +00:00
js-intrinsic-lowering-unittest.cc [turbofan] Turn common Guard operator into simplified TypeGuard. 2016-05-18 06:19:30 +00:00
js-operator-unittest.cc [compiler] Remove obsolete JSYield operator. 2016-05-18 08:55:33 +00:00
js-type-feedback-unittest.cc
js-typed-lowering-unittest.cc [turbofan] Unify function prototype constant folding. 2016-05-11 08:12:49 +00:00
linkage-tail-call-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
live-range-builder.h [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
live-range-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
liveness-analyzer-unittest.cc [turbofan] Remove the JSContextRelaxation reducer. 2016-02-19 07:55:48 +00:00
load-elimination-unittest.cc [turbofan] Turn common Guard operator into simplified TypeGuard. 2016-05-18 06:19:30 +00:00
loop-peeling-unittest.cc Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00
machine-operator-reducer-unittest.cc [turbofan] Introduce TruncateTaggedToWord32 simplified operator. 2016-04-24 11:41:20 +00:00
machine-operator-unittest.cc [turbofan] Store nodes use only MachineRepresentation, not MachineType. 2015-12-11 15:34:16 +00:00
move-optimizer-unittest.cc [turbofan] fine grained in-block move optimization 2016-02-04 06:30:34 +00:00
node-cache-unittest.cc
node-matchers-unittest.cc
node-properties-unittest.cc
node-test-utils.cc [turbofan] Turn common Guard operator into simplified TypeGuard. 2016-05-18 06:19:30 +00:00
node-test-utils.h [turbofan] Turn common Guard operator into simplified TypeGuard. 2016-05-18 06:19:30 +00:00
node-unittest.cc
opcodes-unittest.cc
register-allocator-unittest.cc
schedule-unittest.cc
scheduler-rpo-unittest.cc Move RPO unittests into their own file. 2016-02-14 11:27:46 +00:00
scheduler-unittest.cc [turbofan] Handle dead diamonds in scheduling and add a test. 2016-04-04 17:45:59 +00:00
simplified-operator-reducer-unittest.cc [turbofan] Remove left-over change bits from ChangeLowering. 2016-05-02 10:23:43 +00:00
simplified-operator-unittest.cc Turn on -Wmissing-field-initializers on Linux. 2016-05-06 10:20:30 +00:00
state-values-utils-unittest.cc
tail-call-optimization-unittest.cc [turbofan] Make MachineType a pair of enums. 2015-12-10 09:03:53 +00:00
typer-unittest.cc Remove strong mode support from binary operations. 2016-02-16 13:55:29 +00:00
value-numbering-reducer-unittest.cc
zone-pool-unittest.cc Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00