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 Update PPC OWNERS 2015-07-27 21:37:55 +00:00
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 [turbofan] Factored out the test live range builder. 2015-08-31 09:57:48 +00:00
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 [turbofan] Drop V8_TURBOFAN_BACKEND and V8_TURBOFAN_TARGET defines. 2015-08-10 07:17:34 +00:00
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 [turbofan] Make Node::set_op safer via wrapper. 2015-09-24 14:46:37 +00:00
graph-reducer-unittest.h [turbofan] Add AdvancedReducer::ReplaceWithValue() method and convert JSInlining to an AdvancedReducer. 2015-05-12 12:41:36 +00:00
graph-trimmer-unittest.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
graph-unittest.cc [turbofan] Get rid of type lower bounds. 2015-09-16 11:55:43 +00:00
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 Remove support for "loads and stores to global vars through property cell shortcuts installed into parent script context" from all compilers. 2015-10-22 09:17:24 +00:00
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 [test] Turn compiler/test-node-cache into a unit test. 2015-04-29 14:40:05 +00:00
node-matchers-unittest.cc [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
node-properties-unittest.cc [turbofan] Proper dead code elimination as regular reducer. 2015-06-19 12:07:26 +00:00
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 Fix -Wsign-compare errors in TF tests under GCC 4.9.2 2015-06-15 12:03:45 +00:00
opcodes-unittest.cc [turbofan] Strength reduction for inline comparisons. 2015-02-24 12:26:29 +00:00
register-allocator-unittest.cc Re-reland: Remove register index/code indirection 2015-10-02 16:55:22 +00:00
schedule-unittest.cc Model exceptional edges from call nodes in TurboFan. 2015-02-20 09:55:00 +00:00
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 [turbofan] Move SimplifiedOperatorBuilder into JSGraph. 2015-10-16 12:38:52 +00:00
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 [turbofan] Check node input/use consistency for changed operators and new nodes. 2015-09-25 08:43:11 +00:00
zone-pool-unittest.cc Expose a lower bound of malloc'd memory via heap statistics 2016-04-01 10:01:56 +00:00