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

Issue 1348393002: Subzero. Fixes ARM32 VFP calling convention. (Closed)

Created:
5 years, 3 months ago by John
Modified:
5 years, 3 months ago
Reviewers:
Jim Stichnoth
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

Fixes ARM32 VFP calling convention. Packs VFP arguments as tight as the ABI wants, and adds tests for float and double arguments. vector argument tests will come soon. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=385351bab561a0992dbbfe617bf5f81f58db1674

Patch Set 1 #

Total comments: 7
Unified diffs Side-by-side diffs Delta from patch set Stats (+654 lines, -38 lines) Patch
M src/IceInstARM32.cpp View 2 chunks +18 lines, -13 lines 2 comments Download
M src/IceTargetLoweringARM32.h View 3 chunks +19 lines, -3 lines 3 comments Download
M src/IceTargetLoweringARM32.cpp View 5 chunks +38 lines, -22 lines 0 comments Download
A tests_lit/llvm2ice_tests/fp.arm.call.ll View 1 chunk +579 lines, -0 lines 2 comments Download

Messages

Total messages: 5 (1 generated)
John
5 years, 3 months ago (2015-09-16 21:09:28 UTC) #2
Jim Stichnoth
Calling this "fixes register allocation" conveys to me something completely different than what the CL ...
5 years, 3 months ago (2015-09-16 21:31:54 UTC) #3
John
Committed patchset #1 (id:1) manually as 385351bab561a0992dbbfe617bf5f81f58db1674 (presubmit successful).
5 years, 3 months ago (2015-09-16 23:11:15 UTC) #4
John
5 years, 3 months ago (2015-09-16 23:12:47 UTC) #5
Message was sent while issue was closed.
https://codereview.chromium.org/1348393002/diff/1/src/IceInstARM32.cpp
File src/IceInstARM32.cpp (right):

https://codereview.chromium.org/1348393002/diff/1/src/IceInstARM32.cpp#newcod...
src/IceInstARM32.cpp:544: bool isVariableWithoutRegister(Operand *Op) {
On 2015/09/16 21:31:54, stichnot wrote:
> Consider declaring these as const Operand * ?

Done.

https://codereview.chromium.org/1348393002/diff/1/src/IceTargetLoweringARM32.h
File src/IceTargetLoweringARM32.h (right):

https://codereview.chromium.org/1348393002/diff/1/src/IceTargetLoweringARM32....
src/IceTargetLoweringARM32.h:467: /// assignments. The first few integer type
parameters can use r0-r3,
On 2015/09/16 21:31:54, stichnot wrote:
> Is there a public reference that you can cite here for the interested reader?

Done.

https://codereview.chromium.org/1348393002/diff/1/tests_lit/llvm2ice_tests/fp...
File tests_lit/llvm2ice_tests/fp.arm.call.ll (right):

https://codereview.chromium.org/1348393002/diff/1/tests_lit/llvm2ice_tests/fp...
tests_lit/llvm2ice_tests/fp.arm.call.ll:1: ; Tests validating the vfp calling
convention for ARM32.
On 2015/09/16 21:31:54, stichnot wrote:
> Is it possible yet to enable crosstest/test_calling_conv?  Maybe not, if the
> vector constants in the test are simplified to insertelement instructions?

Not yet. Vector types are not handled at all, and some other lowerings are still
unimplemented.

Powered by Google App Engine
This is Rietveld 408576698