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

Issue 1486263002: More coverage of load/stores in ARM integrated assembler. (Closed)

Created:
5 years ago by Karl
Modified:
5 years 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

More coverage of load/stores in ARM integrated assembler. Adds many more cases of ldr{b,h}/str{b,h} instructions to the ARM integerated assembler. Also refactored decodeAddress() to deal with the fact that immediate/register arguments for LDR/LDRB/STR/STRB differ for LDRH/LDRD/STRH/STRD, by passing in the layout wanted. Note: LDRD/STRD instructions are currently not used by Subzero. BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=1956788f4459e0fedf91c10e8c266ca72a5d5fa1

Patch Set 1 #

Patch Set 2 : Format and fix nits. #

Total comments: 2

Patch Set 3 : Fix nits. #

Patch Set 4 : Fix remaining issue in patch set 2. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+872 lines, -207 lines) Patch
M src/DartARM32/assembler_arm.h View 2 chunks +4 lines, -2 lines 0 comments Download
M src/DartARM32/assembler_arm.cc View 11 chunks +5 lines, -12 lines 0 comments Download
M src/IceAssemblerARM32.h View 1 chunk +13 lines, -5 lines 0 comments Download
M src/IceAssemblerARM32.cpp View 1 2 3 10 chunks +265 lines, -95 lines 0 comments Download
M src/IceInstARM32.h View 1 chunk +1 line, -1 line 0 comments Download
M tests_lit/assembler/arm32/branch-mult-fwd.ll View 5 chunks +38 lines, -44 lines 0 comments Download
M tests_lit/assembler/arm32/ldr-shift.ll View 1 2 chunks +71 lines, -44 lines 0 comments Download
A tests_lit/assembler/arm32/ldr-str-more.ll View 1 1 chunk +459 lines, -0 lines 0 comments Download
M tests_lit/assembler/arm32/mvn.ll View 3 chunks +16 lines, -4 lines 0 comments Download

Messages

Total messages: 7 (3 generated)
Karl
5 years ago (2015-12-01 21:39:26 UTC) #3
Jim Stichnoth
lgtm https://codereview.chromium.org/1486263002/diff/20001/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1486263002/diff/20001/src/IceAssemblerARM32.cpp#newcode998 src/IceAssemblerARM32.cpp:998: default: Should "case 8" and "case 16" be ...
5 years ago (2015-12-01 22:45:34 UTC) #4
Karl
Committed patchset #4 (id:60001) manually as 1956788f4459e0fedf91c10e8c266ca72a5d5fa1 (presubmit successful).
5 years ago (2015-12-02 18:24:25 UTC) #6
Karl
5 years ago (2015-12-02 18:24:44 UTC) #7
Message was sent while issue was closed.
https://codereview.chromium.org/1486263002/diff/20001/src/IceAssemblerARM32.cpp
File src/IceAssemblerARM32.cpp (right):

https://codereview.chromium.org/1486263002/diff/20001/src/IceAssemblerARM32.c...
src/IceAssemblerARM32.cpp:998: default:
On 2015/12/01 22:45:33, stichnot wrote:
> Should "case 8" and "case 16" be explicitly called out, perhaps as an explicit
> error?

I'm not sure what you mean? 1 byte corresponds to i1/i8, 2 bytes to i16, and i64
(the largest int) is 8 bytes. How could there be a case 16?

I added comments to clarify what byte size corresponds to, and added "case 8" to
make it explicit that we don't handle i64's with a single load/store. Updated
method str similarly.

Ok. After re-reading this, I see what you are stating. for case "8" and "16" you
want an error instead of reverting back to a textual fixup. This is a general
issues that I need to clean up, and will look into in a future CL.

Powered by Google App Engine
This is Rietveld 408576698