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

Issue 1647683002: Add vmov between integers and floats in ARM assembler. (Closed)

Created:
4 years, 11 months ago by Karl
Modified:
4 years, 11 months ago
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 vmov between integers and floats in ARM assembler. Adds vmovrs that implements moving from an integer (GP) register and a float (S) register to the integrated ARM assembler. The test also shows that moving from a float (S) register to an integer (GP) register also works. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=eholk@chromium.org, stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=e1b6574f23b67c92fe367128b6597d54c55e88fb

Patch Set 1 #

Patch Set 2 : Merge in master. #

Patch Set 3 : Additional cleanups. #

Total comments: 10

Patch Set 4 : Fix nits. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+168 lines, -7 lines) Patch
M src/DartARM32/assembler_arm.h View 1 2 3 1 chunk +4 lines, -3 lines 0 comments Download
M src/DartARM32/assembler_arm.cc View 1 2 chunks +2 lines, -1 line 0 comments Download
M src/IceAssemblerARM32.h View 1 1 chunk +2 lines, -0 lines 0 comments Download
M src/IceAssemblerARM32.cpp View 1 2 chunks +19 lines, -1 line 0 comments Download
M src/IceInstARM32.cpp View 1 2 3 1 chunk +17 lines, -2 lines 0 comments Download
A tests_lit/assembler/arm32/vmov-f2i.ll View 1 2 3 1 chunk +124 lines, -0 lines 0 comments Download

Messages

Total messages: 8 (3 generated)
Karl
4 years, 11 months ago (2016-01-27 22:38:40 UTC) #3
Jim Stichnoth
lgtm https://codereview.chromium.org/1647683002/diff/40001/src/DartARM32/assembler_arm.h File src/DartARM32/assembler_arm.h (right): https://codereview.chromium.org/1647683002/diff/40001/src/DartARM32/assembler_arm.h#newcode615 src/DartARM32/assembler_arm.h:615: static uword GetBreakInstructionFiller() { Will we ever use ...
4 years, 11 months ago (2016-01-27 22:59:22 UTC) #4
Eric Holk
lgtm
4 years, 11 months ago (2016-01-27 23:29:53 UTC) #5
Karl
Committed patchset #4 (id:60001) manually as e1b6574f23b67c92fe367128b6597d54c55e88fb (presubmit successful).
4 years, 11 months ago (2016-01-27 23:36:22 UTC) #7
Karl
4 years, 11 months ago (2016-01-27 23:36:42 UTC) #8
Message was sent while issue was closed.
https://codereview.chromium.org/1647683002/diff/40001/src/DartARM32/assembler...
File src/DartARM32/assembler_arm.h (right):

https://codereview.chromium.org/1647683002/diff/40001/src/DartARM32/assembler...
src/DartARM32/assembler_arm.h:615: static uword GetBreakInstructionFiller() {
On 2016/01/27 22:59:22, stichnot wrote:
> Will we ever use this?  If not, maybe document that and combine the #if 0
> regions.

Done.

https://codereview.chromium.org/1647683002/diff/40001/src/IceInstARM32.cpp
File src/IceInstARM32.cpp (right):

https://codereview.chromium.org/1647683002/diff/40001/src/IceInstARM32.cpp#ne...
src/IceInstARM32.cpp:1213: case IceType_i32:
On 2016/01/27 22:59:22, stichnot wrote:
> If you're planning on eventually listing all of the IceTypes, you might want
to
> just "handle" i64 now (presumably as an error).

Because of "preprocessing" before this method is called, not all cases will be
covered. I64 for example is not. However, I will add that case in, and a TODO to
consider flattening methods into a single switch.

https://codereview.chromium.org/1647683002/diff/40001/tests_lit/assembler/arm...
File tests_lit/assembler/arm32/vmov-f2i.ll (right):

https://codereview.chromium.org/1647683002/diff/40001/tests_lit/assembler/arm...
tests_lit/assembler/arm32/vmov-f2i.ll:24: ; DIS-LABEL: {{.*}} <FloatToSignedI1>:
On 2016/01/27 22:59:22, stichnot wrote:
> Putting {{.*}} at the beginning or end of the match string is redundant. 
Either
> omit it entirely, or use {{.+}}.

Done.

https://codereview.chromium.org/1647683002/diff/40001/tests_lit/assembler/arm...
tests_lit/assembler/arm32/vmov-f2i.ll:47: 
On 2016/01/27 22:59:22, stichnot wrote:
> two newlines

Done.

https://codereview.chromium.org/1647683002/diff/40001/tests_lit/assembler/arm...
tests_lit/assembler/arm32/vmov-f2i.ll:79: %v = sitofp i1 1 to float
On 2016/01/27 22:59:22, stichnot wrote:
> I would use uitofp for these tests, particularly because a "signed" i1 is
either
> 0 or -1, and it would be just weird to put the "correct" value of -1 here.

Done.

Powered by Google App Engine
This is Rietveld 408576698