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

Issue 11428137: ARM: Make use of d16-d31 when available. (Closed)

Created:
8 years ago by hans
Modified:
7 years, 11 months ago
Reviewers:
ulan, Rodolph Perfetta
CC:
v8-dev
Visibility:
Public.

Description

ARM: Make use of d16-d31 when available. Committed: https://code.google.com/p/v8/source/detail?r=13484

Patch Set 1 #

Total comments: 6

Patch Set 2 : Address Rodolph's comments #

Total comments: 5

Patch Set 3 : Use vmov.32 #

Patch Set 4 : Fix Vldm/Vstm; pass more tests #

Total comments: 9

Patch Set 5 : Fix bad stack offset for d regs in Deoptimizer::EntryGenerator::Generate() #

Patch Set 6 : Rebase + fixes + clean-up #

Patch Set 7 : The tests does not use fp #

Total comments: 14

Patch Set 8 : Restore kScratchDoubleReg and kDoubleRegZero since they are constant after all #

Patch Set 9 : Address Rodolph's comments #

Patch Set 10 : Add flag, feature detection, and don't include certain builtin in snapshot #

Patch Set 11 : Get the feature detection right #

Total comments: 15

Patch Set 12 : Address Ulan's comments #

Patch Set 13 : Address more comments #

Total comments: 6

Patch Set 14 : Address Rodoloph's comments #

Total comments: 2

Patch Set 15 : . #

Total comments: 2

Patch Set 16 : Update the flag stuff #

Patch Set 17 : Attempt to rebase on #

Patch Set 18 : Rebase #

Patch Set 19 : Use an ExternalReference to check CpuFeatures in generated code #

Total comments: 4

Patch Set 20 : Move flag check to MacroAssembler::CheckFor32DRegs #

Patch Set 21 : . #

Total comments: 8

Patch Set 22 : Address comments, only use vmov.32 when necessary #

Patch Set 23 : . #

Patch Set 24 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+847 lines, -279 lines) Patch
M build/common.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +12 lines, -0 lines 0 comments Download
M src/arm/assembler-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 8 chunks +142 lines, -120 lines 0 comments Download
M src/arm/assembler-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 26 chunks +222 lines, -80 lines 0 comments Download
M src/arm/assembler-arm-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 3 chunks +16 lines, -2 lines 0 comments Download
M src/arm/code-stubs-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +10 lines, -4 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 chunks +12 lines, -3 lines 0 comments Download
M src/arm/constants-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -1 line 0 comments Download
M src/arm/constants-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +5 lines, -3 lines 0 comments Download
M src/arm/deoptimizer-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 4 chunks +37 lines, -17 lines 0 comments Download
M src/arm/disasm-arm.cc View 1 2 7 chunks +26 lines, -4 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +2 lines, -2 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 chunk +5 lines, -0 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 6 chunks +26 lines, -8 lines 0 comments Download
M src/arm/simulator-arm.h View 1 2 3 4 5 2 chunks +5 lines, -2 lines 0 comments Download
M src/arm/simulator-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 8 chunks +57 lines, -29 lines 0 comments Download
M src/assembler.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -0 lines 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +2 lines, -0 lines 0 comments Download
M src/frames.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -0 lines 0 comments Download
M src/ia32/assembler-ia32.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -0 lines 0 comments Download
src/ia32/assembler-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +6 lines, -0 lines 0 comments Download
M src/lithium-allocator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -1 line 0 comments Download
M src/mips/assembler-mips.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -0 lines 0 comments Download
M src/mips/assembler-mips.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +6 lines, -0 lines 0 comments Download
M src/platform-linux.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +7 lines, -0 lines 0 comments Download
M src/serialize.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +5 lines, -1 line 0 comments Download
M src/v8globals.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/assembler-x64.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/assembler-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +6 lines, -0 lines 0 comments Download
M test/cctest/test-assembler-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +118 lines, -0 lines 0 comments Download
M test/cctest/test-disasm-arm.cc View 1 2 3 4 5 6 7 8 9 4 chunks +105 lines, -0 lines 0 comments Download
M test/cctest/test-serialize.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 chunk +2 lines, -0 lines 0 comments Download
M tools/gyp/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +3 lines, -2 lines 0 comments Download

Messages

Total messages: 29 (0 generated)
hans
This is a work-in-progress patch, not ready for proper review yet. Just uploading to get ...
8 years ago (2012-12-03 14:54:09 UTC) #1
Rodolph Perfetta
Just a few comments for the arm specific files https://codereview.chromium.org/11428137/diff/1/src/arm/assembler-arm.h File src/arm/assembler-arm.h (right): https://codereview.chromium.org/11428137/diff/1/src/arm/assembler-arm.h#newcode207 src/arm/assembler-arm.h:207: ...
8 years ago (2012-12-04 14:08:40 UTC) #2
hans
Thanks for the comments Rodolph! New patch uploaded. https://codereview.chromium.org/11428137/diff/1/src/arm/assembler-arm.h File src/arm/assembler-arm.h (right): https://codereview.chromium.org/11428137/diff/1/src/arm/assembler-arm.h#newcode207 src/arm/assembler-arm.h:207: return ...
8 years ago (2012-12-04 14:30:54 UTC) #3
Rodolph Perfetta
https://codereview.chromium.org/11428137/diff/5001/src/arm/assembler-arm.cc File src/arm/assembler-arm.cc (right): https://codereview.chromium.org/11428137/diff/5001/src/arm/assembler-arm.cc#newcode2030 src/arm/assembler-arm.cc:2030: // Push r4, r5 on the stack. There is ...
8 years ago (2012-12-05 00:42:10 UTC) #4
hans
https://codereview.chromium.org/11428137/diff/5001/src/arm/assembler-arm.cc File src/arm/assembler-arm.cc (right): https://codereview.chromium.org/11428137/diff/5001/src/arm/assembler-arm.cc#newcode2030 src/arm/assembler-arm.cc:2030: // Push r4, r5 on the stack. On 2012/12/05 ...
8 years ago (2012-12-05 14:12:58 UTC) #5
Rodolph Perfetta
https://codereview.chromium.org/11428137/diff/12002/src/arm/code-stubs-arm.h File src/arm/code-stubs-arm.h (right): https://codereview.chromium.org/11428137/diff/12002/src/arm/code-stubs-arm.h#newcode477 src/arm/code-stubs-arm.h:477: // XXX: Why is d0 special? It's not the ...
8 years ago (2012-12-05 21:39:34 UTC) #6
hans
Thanks for the comments, and thank you very much for the help with debugging the ...
8 years ago (2012-12-11 17:08:04 UTC) #7
Rodolph Perfetta
https://codereview.chromium.org/11428137/diff/21001/src/arm/assembler-arm.cc File src/arm/assembler-arm.cc (right): https://codereview.chromium.org/11428137/diff/21001/src/arm/assembler-arm.cc#newcode1692 src/arm/assembler-arm.cc:1692: ASSERT(offset >= 0); There is the same assert two ...
8 years ago (2012-12-12 14:29:15 UTC) #8
hans
Thanks for the comments! I've addressed them below and uploaded a new patch. A new ...
8 years ago (2012-12-12 17:58:47 UTC) #9
hans
On 2012/12/12 17:58:47, hans wrote: > A new interesting issue has come up: snapshots. They ...
8 years ago (2012-12-14 15:36:20 UTC) #10
ulan
Some nits and comments: https://chromiumcodereview.appspot.com/11428137/diff/38001/src/arm/assembler-arm.h File src/arm/assembler-arm.h (right): https://chromiumcodereview.appspot.com/11428137/diff/38001/src/arm/assembler-arm.h#newcode318 src/arm/assembler-arm.h:318: if (index >= 14) Here ...
8 years ago (2012-12-17 10:44:52 UTC) #11
hans
Thanks very much for the comments! New patch uploaded. https://chromiumcodereview.appspot.com/11428137/diff/38001/src/arm/assembler-arm.h File src/arm/assembler-arm.h (right): https://chromiumcodereview.appspot.com/11428137/diff/38001/src/arm/assembler-arm.h#newcode318 src/arm/assembler-arm.h:318: ...
8 years ago (2012-12-17 12:31:43 UTC) #12
ulan
Thank you, Hans! The CL overall looks good to me. I am reviewing and verifying ...
8 years ago (2012-12-17 13:03:36 UTC) #13
hans
https://chromiumcodereview.appspot.com/11428137/diff/38001/src/arm/assembler-arm.h File src/arm/assembler-arm.h (right): https://chromiumcodereview.appspot.com/11428137/diff/38001/src/arm/assembler-arm.h#newcode318 src/arm/assembler-arm.h:318: if (index >= 14) On 2012/12/17 13:03:36, ulan wrote: ...
8 years ago (2012-12-17 13:53:21 UTC) #14
Rodolph Perfetta
https://codereview.chromium.org/11428137/diff/40002/src/arm/assembler-arm-inl.h File src/arm/assembler-arm-inl.h (right): https://codereview.chromium.org/11428137/diff/40002/src/arm/assembler-arm-inl.h#newcode61 src/arm/assembler-arm-inl.h:61: if (index >= kDoubleRegZero.code()) Do we need to assert ...
8 years ago (2012-12-17 14:38:30 UTC) #15
hans
Thanks, Rodolph! New patch uploaded. https://codereview.chromium.org/11428137/diff/40002/src/arm/assembler-arm-inl.h File src/arm/assembler-arm-inl.h (right): https://codereview.chromium.org/11428137/diff/40002/src/arm/assembler-arm-inl.h#newcode61 src/arm/assembler-arm-inl.h:61: if (index >= kDoubleRegZero.code()) ...
8 years ago (2012-12-17 15:32:45 UTC) #16
Rodolph Perfetta
https://codereview.chromium.org/11428137/diff/50003/src/platform-linux.cc File src/platform-linux.cc (right): https://codereview.chromium.org/11428137/diff/50003/src/platform-linux.cc#newcode167 src/platform-linux.cc:167: return ArmCpuHasFeature(ARMv3) && !CPUInfoContainsString("d16"); Typo: ARMv3 -> VFP3
8 years ago (2012-12-17 15:37:21 UTC) #17
hans
https://codereview.chromium.org/11428137/diff/50003/src/platform-linux.cc File src/platform-linux.cc (right): https://codereview.chromium.org/11428137/diff/50003/src/platform-linux.cc#newcode167 src/platform-linux.cc:167: return ArmCpuHasFeature(ARMv3) && !CPUInfoContainsString("d16"); On 2012/12/17 15:37:21, Rodolph Perfetta ...
8 years ago (2012-12-17 15:49:15 UTC) #18
Rodolph Perfetta
https://codereview.chromium.org/11428137/diff/39003/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/11428137/diff/39003/src/flag-definitions.h#newcode301 src/flag-definitions.h:301: DEFINE_bool(enable_32dregs, false, I would set this to true by ...
8 years ago (2012-12-17 20:03:25 UTC) #19
hans
https://codereview.chromium.org/11428137/diff/39003/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/11428137/diff/39003/src/flag-definitions.h#newcode301 src/flag-definitions.h:301: DEFINE_bool(enable_32dregs, false, On 2012/12/17 20:03:25, Rodolph Perfetta wrote: > ...
8 years ago (2012-12-18 11:09:08 UTC) #20
hans
A new problem has come up: https://code.google.com/p/v8/source/detail?r=13236 I've uploaded an attempt to rebase on top ...
8 years ago (2012-12-19 13:48:32 UTC) #21
hans
I've rebased and uploaded the patch again. I fixed the problem that caused an assert ...
7 years, 11 months ago (2013-01-10 14:32:23 UTC) #22
hans
I've uploaded a new version of the patch that solves the problem with snapshots. Code ...
7 years, 11 months ago (2013-01-17 15:07:50 UTC) #23
hans
I moved the common code for checking the feature flag into MacroAssembler::CheckFor32DRegs as suggested by ...
7 years, 11 months ago (2013-01-17 16:35:18 UTC) #24
ulan_google
LGTM https://codereview.chromium.org/11428137/diff/84001/src/arm/assembler-arm-inl.h File src/arm/assembler-arm-inl.h (right): https://codereview.chromium.org/11428137/diff/84001/src/arm/assembler-arm-inl.h#newcode80 src/arm/assembler-arm-inl.h:80: if (reg.code() > kDoubleRegZero.code()) Nit: brackets are needed ...
7 years, 11 months ago (2013-01-18 10:44:42 UTC) #25
Rodolph Perfetta
https://codereview.chromium.org/11428137/diff/85032/src/arm/deoptimizer-arm.cc File src/arm/deoptimizer-arm.cc (right): https://codereview.chromium.org/11428137/diff/85032/src/arm/deoptimizer-arm.cc#newcode993 src/arm/deoptimizer-arm.cc:993: __ add(sp, sp, Operand(16 * kDoubleSize), LeaveCC, eq); You ...
7 years, 11 months ago (2013-01-18 21:36:52 UTC) #26
hans
I've uploaded a new patch that addresses your comments. Also, I have changed Assembler::vmov(dst, imm, ...
7 years, 11 months ago (2013-01-22 13:55:40 UTC) #27
ulan
New patch set looks good to me, we can land after getting LGTM from Rodolph.
7 years, 11 months ago (2013-01-23 10:46:18 UTC) #28
Rodolph Perfetta
7 years, 11 months ago (2013-01-23 11:51:55 UTC) #29
lgtm

Powered by Google App Engine
This is Rietveld 408576698