Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Issue 1972103002: [turbofan] ARM64: Support shifted indexes in loads and stores (Closed)

Created:
4 years, 7 months ago by Pierre Langlois
Modified:
4 years, 7 months ago
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] ARM64: Support shifted indexes in loads and stores This patch adds support for the `Operand2_R_LSL_I` addressing mode to loads and stores. This allows merging a shift instruction into a MemoryOperand. Since the shift immediate is restricted to the log2 of the operation width, the opportunities to hit this are slim. However, Ignition's bytecode handlers hit this case all the time: kind = BYTECODE_HANDLER name = Star compiler = turbofan Instructions (size = 44) 0x23e67280 0 add x1, x19, #0x1 (1) 0x23e67284 4 ldrsb x1, [x20, x1] 0x23e67288 8 sxtw x1, w1 0x23e6728c 12 mov x2, fp 0x23e67290 16 str x0, [x2, x1, lsl #3] ^^^^^^^^^^^^^^^^^^^^^ 0x23e67294 20 add x19, x19, #0x2 (2) 0x23e67298 24 ldrb w1, [x20, x19] 0x23e6729c 28 ldr x1, [x21, x1, lsl #3] ^^^^^^^^^^^^^^^^^^^^^ 0x23e672a0 32 br x1 Additionally, I noticed the optimisation occurs once in both the `StringPrototypeCharAt` and `StringPrototypeCharCodeAt` turbofan stubs. BUG= Committed: https://crrev.com/60fb6ea1b83c47af64be2577a278f05158a1447f Cr-Commit-Position: refs/heads/master@{#36227}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+185 lines, -25 lines) Patch
M src/compiler/arm64/code-generator-arm64.cc View 4 chunks +10 lines, -7 lines 0 comments Download
M src/compiler/arm64/instruction-selector-arm64.cc View 6 chunks +70 lines, -13 lines 0 comments Download
M test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc View 2 chunks +105 lines, -5 lines 0 comments Download

Messages

Total messages: 11 (5 generated)
Pierre Langlois
4 years, 7 months ago (2016-05-12 12:20:24 UTC) #3
Benedikt Meurer
Nice, thanks for the patch. LGTM.
4 years, 7 months ago (2016-05-12 17:40:26 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1972103002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1972103002/1
4 years, 7 months ago (2016-05-13 07:26:15 UTC) #6
rmcilroy
Nice, thanks Pierre.
4 years, 7 months ago (2016-05-13 07:39:17 UTC) #7
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 7 months ago (2016-05-13 07:56:32 UTC) #9
commit-bot: I haz the power
4 years, 7 months ago (2016-05-13 07:59:04 UTC) #11
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/60fb6ea1b83c47af64be2577a278f05158a1447f
Cr-Commit-Position: refs/heads/master@{#36227}

Powered by Google App Engine
This is Rietveld 408576698