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

Issue 271543004: Reland - Arm64: Ensure that csp is always aligned to 16 byte values even if jssp is not. (Closed)

Created:
6 years, 7 months ago by rmcilroy
Modified:
6 years, 7 months ago
Reviewers:
ulan, jbramley, Yang
CC:
v8-dev
Visibility:
Public.

Description

Reland - Arm64: Ensure that csp is always aligned to 16 byte values even if jssp is not. Even although the Arm64 specification specifies that csp only needs to be aligned to 16 bytes if it is dereferenced, some implementations show poor performance. Also makes the following change: - Enable CPU support for arm64 to enable probing of cpu implementer and cpu part. - Add ALWAYS_ALIGN_CSP CpuFeature for Arm64 and set it based on runtime probing of the cpu imp - Rename PrepareForPush and PrepareForPop to PushPreamble and PopPostamble and move PopPostabl Original Review URL: https://codereview.chromium.org/264773004 R=ulan@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=21221

Patch Set 1 #

Patch Set 2 : Fix code buffer size and ProfileEntryHoolStub errors - originally submitted as https://codereview.c… #

Patch Set 3 : Use macro-assembler Sub() in BumpSystemStackPointer where possible and only do csp alignment check … #

Total comments: 2

Patch Set 4 : Disable AssertStackConsistency in BumpSystemStackPointer due to unrelated PrepareForBreakPoints ass… #

Total comments: 1

Patch Set 5 : Avoid generating reentering AssertStackConsistency from Abort and skip codespace single page check … #

Total comments: 4

Patch Set 6 : Add comments #

Patch Set 7 : Always align in when FLAG_debug_code #

Patch Set 8 : Change test-assembler-arm64 PushPopJsspSimpleHelper to disallow ip0 and ip1 instead of x8 and x9 #

Total comments: 3

Patch Set 9 : ip0 ip1 -> TmpList #

Unified diffs Side-by-side diffs Delta from patch set Stats (+203 lines, -94 lines) Patch
M src/arm64/code-stubs-arm64.cc View 1 2 chunks +15 lines, -6 lines 0 comments Download
M src/arm64/cpu-arm64.h View 3 chunks +14 lines, -11 lines 0 comments Download
M src/arm64/cpu-arm64.cc View 1 2 3 4 5 6 2 chunks +20 lines, -2 lines 0 comments Download
M src/arm64/macro-assembler-arm64.h View 1 2 3 4 5 6 3 chunks +20 lines, -8 lines 0 comments Download
M src/arm64/macro-assembler-arm64.cc View 1 2 3 4 5 6 15 chunks +32 lines, -36 lines 0 comments Download
M src/arm64/macro-assembler-arm64-inl.h View 1 2 3 4 5 6 4 chunks +50 lines, -21 lines 0 comments Download
M src/arm64/regexp-macro-assembler-arm64.cc View 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M src/builtins.cc View 1 1 chunk +7 lines, -3 lines 0 comments Download
M src/cpu.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/cpu.cc View 2 chunks +27 lines, -1 line 0 comments Download
M src/flag-definitions.h View 1 chunk +5 lines, -0 lines 0 comments Download
M src/v8globals.h View 1 chunk +2 lines, -1 line 0 comments Download
M test/cctest/test-assembler-arm64.cc View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -4 lines 0 comments Download
M test/cctest/test-code-stubs-arm64.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M test/cctest/test-spaces.cc View 1 2 3 4 2 chunks +4 lines, -0 lines 0 comments Download

Messages

Total messages: 25 (0 generated)
rmcilroy
This is a reland of r21177. To make this easier to review I've updated the ...
6 years, 7 months ago (2014-05-07 18:08:21 UTC) #1
ulan
I am looking into debug-multiple-breakpoints.js failure. https://codereview.chromium.org/271543004/diff/40001/src/arm64/macro-assembler-arm64-inl.h File src/arm64/macro-assembler-arm64-inl.h (right): https://codereview.chromium.org/271543004/diff/40001/src/arm64/macro-assembler-arm64-inl.h#newcode1253 src/arm64/macro-assembler-arm64-inl.h:1253: Sub(temp, StackPointer(), space); ...
6 years, 7 months ago (2014-05-08 08:18:43 UTC) #2
ulan
I uncommented src/arm64/macro-assembler-arm64-inl.h:1288: // AssertStackConsistency(true); but cannot reproduce the debug failure at r21195. Ross, did ...
6 years, 7 months ago (2014-05-08 09:05:29 UTC) #3
rmcilroy
On 2014/05/08 09:05:29, ulan wrote: > I uncommented > > src/arm64/macro-assembler-arm64-inl.h:1288: // AssertStackConsistency(true); > > ...
6 years, 7 months ago (2014-05-08 09:35:42 UTC) #4
rmcilroy
On 2014/05/08 09:35:42, rmcilroy wrote: > On 2014/05/08 09:05:29, ulan wrote: > > I uncommented ...
6 years, 7 months ago (2014-05-08 09:40:09 UTC) #5
ulan
On 2014/05/08 09:40:09, rmcilroy wrote: > On 2014/05/08 09:35:42, rmcilroy wrote: > > On 2014/05/08 ...
6 years, 7 months ago (2014-05-08 09:46:20 UTC) #6
ulan
Here is what happens in debug-multiple-breakpoints.js: 1. A hot function is marked for optimization by ...
6 years, 7 months ago (2014-05-08 10:17:09 UTC) #7
Yang
On 2014/05/08 10:17:09, ulan wrote: > Here is what happens in debug-multiple-breakpoints.js: > > 1. ...
6 years, 7 months ago (2014-05-08 10:36:53 UTC) #8
ulan
On 2014/05/08 10:36:53, Yang wrote: > On 2014/05/08 10:17:09, ulan wrote: > > Here is ...
6 years, 7 months ago (2014-05-08 10:47:11 UTC) #9
Yang
On 2014/05/08 10:47:11, ulan wrote: > On 2014/05/08 10:36:53, Yang wrote: > > On 2014/05/08 ...
6 years, 7 months ago (2014-05-08 10:47:47 UTC) #10
Yang
On 2014/05/08 10:47:47, Yang wrote: > On 2014/05/08 10:47:11, ulan wrote: > > On 2014/05/08 ...
6 years, 7 months ago (2014-05-08 11:13:33 UTC) #11
rmcilroy
On 2014/05/08 11:13:33, Yang wrote: > On 2014/05/08 10:47:47, Yang wrote: > > On 2014/05/08 ...
6 years, 7 months ago (2014-05-08 12:40:48 UTC) #12
Yang
On 2014/05/08 12:40:48, rmcilroy wrote: > On 2014/05/08 11:13:33, Yang wrote: > > On 2014/05/08 ...
6 years, 7 months ago (2014-05-08 12:42:40 UTC) #13
Yang
On 2014/05/08 12:42:40, Yang wrote: > On 2014/05/08 12:40:48, rmcilroy wrote: > > On 2014/05/08 ...
6 years, 7 months ago (2014-05-08 12:43:42 UTC) #14
rmcilroy
On 2014/05/08 12:43:42, Yang wrote: > On 2014/05/08 12:42:40, Yang wrote: > > On 2014/05/08 ...
6 years, 7 months ago (2014-05-08 13:53:45 UTC) #15
jbramley
I've hit code-size problems before. The ARM64 back-end has a lot more assertions than the ...
6 years, 7 months ago (2014-05-08 14:01:47 UTC) #16
ulan
LGTM. Out of curiosity why we need to use macro-assembler Sub() in BumpSystemStackPointer?
6 years, 7 months ago (2014-05-08 14:23:29 UTC) #17
rmcilroy
> LGTM. Out of curiosity why we need to use macro-assembler Sub() in > BumpSystemStackPointer? ...
6 years, 7 months ago (2014-05-08 14:33:07 UTC) #18
rmcilroy
On 2014/05/08 14:33:07, rmcilroy wrote: > > LGTM. Out of curiosity why we need to ...
6 years, 7 months ago (2014-05-09 09:41:34 UTC) #19
rmcilroy
https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc File test/cctest/test-assembler-arm64.cc (right): https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc#newcode8390 test/cctest/test-assembler-arm64.cc:8390: static RegList const allowed = ~(ip0.Bit() | ip1.Bit() | ...
6 years, 7 months ago (2014-05-09 11:18:45 UTC) #20
jbramley
https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc File test/cctest/test-assembler-arm64.cc (right): https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc#newcode8390 test/cctest/test-assembler-arm64.cc:8390: static RegList const allowed = ~(ip0.Bit() | ip1.Bit() | ...
6 years, 7 months ago (2014-05-09 11:23:51 UTC) #21
rmcilroy
https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc File test/cctest/test-assembler-arm64.cc (right): https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc#newcode8390 test/cctest/test-assembler-arm64.cc:8390: static RegList const allowed = ~(ip0.Bit() | ip1.Bit() | ...
6 years, 7 months ago (2014-05-09 11:30:55 UTC) #22
jbramley
On 2014/05/09 11:30:55, rmcilroy wrote: > https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc > File test/cctest/test-assembler-arm64.cc (right): > > https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc#newcode8390 > ...
6 years, 7 months ago (2014-05-09 11:40:54 UTC) #23
rmcilroy
On 2014/05/09 11:40:54, jbramley wrote: > On 2014/05/09 11:30:55, rmcilroy wrote: > > > https://codereview.chromium.org/271543004/diff/140001/test/cctest/test-assembler-arm64.cc ...
6 years, 7 months ago (2014-05-09 11:58:28 UTC) #24
rmcilroy
6 years, 7 months ago (2014-05-09 12:52:08 UTC) #25
Message was sent while issue was closed.
Committed patchset #9 manually as r21221.

Powered by Google App Engine
This is Rietveld 408576698