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

Issue 1516063002: Add some missing encodings in the 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

Add some missing encodings in the ARM integrated assembler. Adds the data-processing "register-shifted register" form, as well as the 5-bit immediate shift for mov instructions (which unfortunately represent this form differently than other instructions). This CL fixes the ARM integrated assembler to handle all non-V (i.e. neon) instructions used by the spec2k test suite except: rsc: 59 instances. rev: 14 instances. 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=662d4eba13941af0219b7012f31cbb53abf178c9

Patch Set 1 #

Patch Set 2 : Clean up CL. #

Total comments: 4

Patch Set 3 : Fix nit. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+114 lines, -16 lines) Patch
M src/IceAssemblerARM32.cpp View 1 2 4 chunks +42 lines, -15 lines 0 comments Download
A tests_lit/assembler/arm32/mov-reg.ll View 1 2 1 chunk +54 lines, -0 lines 0 comments Download
M tests_lit/assembler/arm32/rsb.ll View 2 chunks +18 lines, -1 line 0 comments Download

Messages

Total messages: 8 (3 generated)
Karl
5 years ago (2015-12-10 21:49:08 UTC) #3
John
lgtm https://codereview.chromium.org/1516063002/diff/20001/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1516063002/diff/20001/src/IceAssemblerARM32.cpp#newcode273 src/IceAssemblerARM32.cpp:273: int32_t Val = IntConst->getValue(); is this code path ...
5 years ago (2015-12-11 16:40:57 UTC) #4
Jim Stichnoth
lgtm https://codereview.chromium.org/1516063002/diff/20001/tests_lit/assembler/arm32/mov-reg.ll File tests_lit/assembler/arm32/mov-reg.ll (right): https://codereview.chromium.org/1516063002/diff/20001/tests_lit/assembler/arm32/mov-reg.ll#newcode24 tests_lit/assembler/arm32/mov-reg.ll:24: define internal i64 @_Z4castIaxET0_T_(i32 %a) { Friendlier function ...
5 years ago (2015-12-11 16:53:45 UTC) #5
Karl
Committed patchset #3 (id:40001) manually as 662d4eba13941af0219b7012f31cbb53abf178c9 (presubmit successful).
5 years ago (2015-12-11 17:41:59 UTC) #7
Karl
5 years ago (2015-12-11 17:42:16 UTC) #8
Message was sent while issue was closed.
https://codereview.chromium.org/1516063002/diff/20001/src/IceAssemblerARM32.cpp
File src/IceAssemblerARM32.cpp (right):

https://codereview.chromium.org/1516063002/diff/20001/src/IceAssemblerARM32.c...
src/IceAssemblerARM32.cpp:273: int32_t Val = IntConst->getValue();
On 2015/12/11 16:40:57, John wrote:
> is this code path still exercised? it shouldn't be. if it is, let me know and
I
> will fix the lowering.

Look at tests_lit/assembler/arm32/mov-reg.ll. If you comment out this "else if"
and then run "make -f Makefile.standalone check-lit", you will see the case.

https://codereview.chromium.org/1516063002/diff/20001/tests_lit/assembler/arm...
File tests_lit/assembler/arm32/mov-reg.ll (right):

https://codereview.chromium.org/1516063002/diff/20001/tests_lit/assembler/arm...
tests_lit/assembler/arm32/mov-reg.ll:24: define internal i64
@_Z4castIaxET0_T_(i32 %a) {
On 2015/12/11 16:53:45, stichnot wrote:
> Friendlier function name?

Done.

Powered by Google App Engine
This is Rietveld 408576698