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

Issue 1634913005: Add VMLA (floating point) to the integrated 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 VMLA (floating point) to the integrated ARM assembler. Adds the scalar floating point versions of instruction VMLA to the integrated ARM assembler. 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=bd8e28e3b02fc830c37a94acfdd9e5585a7a2ab2

Patch Set 1 #

Total comments: 11

Patch Set 2 : Fix nits. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+152 lines, -39 lines) Patch
M src/DartARM32/assembler_arm.h View 1 1 chunk +4 lines, -0 lines 0 comments Download
M src/DartARM32/assembler_arm.cc View 1 1 chunk +7 lines, -7 lines 0 comments Download
M src/IceAssemblerARM32.h View 1 2 chunks +14 lines, -0 lines 0 comments Download
M src/IceAssemblerARM32.cpp View 1 11 chunks +50 lines, -32 lines 0 comments Download
M src/IceInstARM32.cpp View 1 1 chunk +21 lines, -0 lines 0 comments Download
A tests_lit/assembler/arm32/vmla.ll View 1 1 chunk +56 lines, -0 lines 0 comments Download

Messages

Total messages: 10 (3 generated)
Karl
4 years, 11 months ago (2016-01-26 18:56:52 UTC) #3
Eric Holk
https://codereview.chromium.org/1634913005/diff/1/src/DartARM32/assembler_arm.h File src/DartARM32/assembler_arm.h (right): https://codereview.chromium.org/1634913005/diff/1/src/DartARM32/assembler_arm.h#newcode687 src/DartARM32/assembler_arm.h:687: #if 0 Out of curiosity, why use `#if 0` ...
4 years, 11 months ago (2016-01-26 19:11:13 UTC) #4
John
lgtm https://codereview.chromium.org/1634913005/diff/1/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1634913005/diff/1/src/IceAssemblerARM32.cpp#newcode1049 src/IceAssemblerARM32.cpp:1049: const Operand *OpDd, const Operand *OpDn, incredibly ridiculous ...
4 years, 11 months ago (2016-01-26 19:13:15 UTC) #5
Karl
https://codereview.chromium.org/1634913005/diff/1/src/DartARM32/assembler_arm.h File src/DartARM32/assembler_arm.h (right): https://codereview.chromium.org/1634913005/diff/1/src/DartARM32/assembler_arm.h#newcode687 src/DartARM32/assembler_arm.h:687: #if 0 On 2016/01/26 19:11:13, Eric Holk wrote: > ...
4 years, 11 months ago (2016-01-26 19:15:26 UTC) #6
Jim Stichnoth
lgtm https://codereview.chromium.org/1634913005/diff/1/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1634913005/diff/1/src/IceAssemblerARM32.cpp#newcode1049 src/IceAssemblerARM32.cpp:1049: const Operand *OpDd, const Operand *OpDn, On 2016/01/26 ...
4 years, 11 months ago (2016-01-26 19:25:48 UTC) #7
Karl
Committed patchset #2 (id:20001) manually as bd8e28e3b02fc830c37a94acfdd9e5585a7a2ab2 (presubmit successful).
4 years, 11 months ago (2016-01-26 20:25:47 UTC) #9
Karl
4 years, 11 months ago (2016-01-26 20:38:39 UTC) #10
Message was sent while issue was closed.
https://codereview.chromium.org/1634913005/diff/1/src/IceAssemblerARM32.cpp
File src/IceAssemblerARM32.cpp (right):

https://codereview.chromium.org/1634913005/diff/1/src/IceAssemblerARM32.cpp#n...
src/IceAssemblerARM32.cpp:1049: const Operand *OpDd, const Operand *OpDn,
On 2016/01/26 19:25:48, stichnot wrote:
> On 2016/01/26 19:13:15, John wrote:
> > incredibly ridiculous nit, optional: because C(++), you should probably do
> > 
> > const Operand *const
> > 
> > (if, for consistency, you want to keep as is, that's fine, too)
> 
> For historical bad reasons (my fault), pretty much everything of type Operand*
> or subclass is declared without the "*const", even though these objects are
> generally immutable once constructed.  I would probably just keep things as
they
> are for consistency, and possibly do one giant blast in a separate CL if
> desired.
> 
> Maybe even better to operate on these objects as a const ref instead of a
> pointer, since the vast majority are guaranteed not to be nullptr...

For now, I won't change the signature.

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

https://codereview.chromium.org/1634913005/diff/1/src/IceInstARM32.cpp#newcod...
src/IceInstARM32.cpp:655: Asm->vmlas(getDest(), getSrc(1), getSrc(2),
CondARM32::AL);
On 2016/01/26 19:13:15, John wrote:
> perhaps
> 
> assert(!Asm->needsTextFixup());
> 
> here (and below), and just emitUsingTextFixup() in de default:?

Done.

https://codereview.chromium.org/1634913005/diff/1/tests_lit/assembler/arm32/v...
File tests_lit/assembler/arm32/vmla.ll (right):

https://codereview.chromium.org/1634913005/diff/1/tests_lit/assembler/arm32/v...
tests_lit/assembler/arm32/vmla.ll:1: ; Tests that we can take advantage of the
vmla instruction for floating point
On 2016/01/26 19:25:48, stichnot wrote:
> Incredibly nitty nit: The other .ll files start with "Show that ..." rather
than
> "Tests that ..."

Done.

https://codereview.chromium.org/1634913005/diff/1/tests_lit/assembler/arm32/v...
tests_lit/assembler/arm32/vmla.ll:57: 
On 2016/01/26 19:25:48, stichnot wrote:
> remove trailing whitespace
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 

Done.

Powered by Google App Engine
This is Rietveld 408576698