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

Issue 1619703008: Fix vldrd/vstrd handling of immediate offsets in ARM. (Closed)

Created:
4 years, 11 months ago by Karl
Modified:
4 years, 11 months ago
Reviewers:
Jim Stichnoth, sehr, John
CC:
native-client-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Fix vldrd/vstrd handling of immediate offsets in ARM. Fixes the ARM integrated assembler by dividing the immediate offset of the instruction by 4 before encoding. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org, stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=08f7910790691880b5701eed43cc8cc0b2281afc

Patch Set 1 #

Total comments: 10

Patch Set 2 : Fix issues in last patch. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+60 lines, -23 lines) Patch
M src/IceAssemblerARM32.cpp View 1 4 chunks +19 lines, -8 lines 0 comments Download
M src/IceInstARM32.cpp View 1 2 chunks +21 lines, -5 lines 0 comments Download
A + tests_lit/assembler/arm32/vldr.vstr.imm.ll View 1 1 chunk +20 lines, -10 lines 0 comments Download

Messages

Total messages: 8 (3 generated)
Karl
4 years, 11 months ago (2016-01-21 22:07:51 UTC) #3
Jim Stichnoth
lgtm https://codereview.chromium.org/1619703008/diff/1/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1619703008/diff/1/src/IceAssemblerARM32.cpp#newcode2230 src/IceAssemblerARM32.cpp:2230: (void)AddressEncoding; remove this https://codereview.chromium.org/1619703008/diff/1/src/IceAssemblerARM32.cpp#newcode2307 src/IceAssemblerARM32.cpp:2307: (void)AddressEncoding; remove this ...
4 years, 11 months ago (2016-01-22 05:10:30 UTC) #4
John
lgtm https://codereview.chromium.org/1619703008/diff/1/src/IceInstARM32.cpp File src/IceInstARM32.cpp (right): https://codereview.chromium.org/1619703008/diff/1/src/IceInstARM32.cpp#newcode1380 src/IceInstARM32.cpp:1380: // TODO(kschimpf) Does this happen? It does not ...
4 years, 11 months ago (2016-01-22 15:04:28 UTC) #5
Karl
Committed patchset #2 (id:20001) manually as 08f7910790691880b5701eed43cc8cc0b2281afc (presubmit successful).
4 years, 11 months ago (2016-01-22 16:22:47 UTC) #7
Karl
4 years, 11 months ago (2016-01-22 16:24:29 UTC) #8
Message was sent while issue was closed.
https://codereview.chromium.org/1619703008/diff/1/src/IceAssemblerARM32.cpp
File src/IceAssemblerARM32.cpp (right):

https://codereview.chromium.org/1619703008/diff/1/src/IceAssemblerARM32.cpp#n...
src/IceAssemblerARM32.cpp:2230: (void)AddressEncoding;
On 2016/01/22 05:10:30, stichnot wrote:
> remove this

Done.

https://codereview.chromium.org/1619703008/diff/1/src/IceAssemblerARM32.cpp#n...
src/IceAssemblerARM32.cpp:2307: (void)AddressEncoding;
On 2016/01/22 05:10:30, stichnot wrote:
> remove this

Done.

https://codereview.chromium.org/1619703008/diff/1/src/IceInstARM32.cpp
File src/IceInstARM32.cpp (right):

https://codereview.chromium.org/1619703008/diff/1/src/IceInstARM32.cpp#newcod...
src/IceInstARM32.cpp:1375: Type DestTy = Dest->getType();
On 2016/01/22 05:10:30, stichnot wrote:
> const, if you feel so inclined...

Done.

https://codereview.chromium.org/1619703008/diff/1/src/IceInstARM32.cpp#newcod...
src/IceInstARM32.cpp:1380: // TODO(kschimpf) Does this happen?
On 2016/01/22 15:04:28, John wrote:
> It does not happen at the moment, but it will once we have vldr for vector
> types.

Actually, due to the if above, this shouldn't happen. However, there are so many
type cases to this code that we should flatten to a single switch. However, I
will do that in a separate CL.

https://codereview.chromium.org/1619703008/diff/1/tests_lit/assembler/arm32/v...
File tests_lit/assembler/arm32/vldr.vstr.imm.ll (right):

https://codereview.chromium.org/1619703008/diff/1/tests_lit/assembler/arm32/v...
tests_lit/assembler/arm32/vldr.vstr.imm.ll:1: ; Test vldrd and vstrd when
address is offset with an immediate.
On 2016/01/22 05:10:30, stichnot wrote:
> Did you mean "vldr and vstr"?

This file doesn't test vstrs/vlds (or many other variants not implemented yet).

Powered by Google App Engine
This is Rietveld 408576698