[PATCH] D29116: Regression in 4.0-rc: SPARC: allow %f-registers for inline-assembly
Patrick Boettcher via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 24 23:35:57 PST 2017
pboettch created this revision.
This reverts the reverts done in svn 278511. It was
part of 3.9-release (where it worked for me)
and does not exist anymore in 4.0-rc.
Unfortunately there is no explanation given in the
commit.
A accompanying change for clang will be provided.
Repository:
rL LLVM
https://reviews.llvm.org/D29116
Files:
lib/Target/Sparc/SparcISelLowering.cpp
Index: lib/Target/Sparc/SparcISelLowering.cpp
===================================================================
--- lib/Target/Sparc/SparcISelLowering.cpp
+++ lib/Target/Sparc/SparcISelLowering.cpp
@@ -3383,7 +3383,9 @@
if (Constraint.size() == 1) {
switch (Constraint[0]) {
default: break;
- case 'r': return C_RegisterClass;
+ case 'r':
+ case 'f':
+ return C_RegisterClass;
case 'I': // SIMM13
return C_Other;
}
@@ -3457,6 +3459,18 @@
MVT VT) const {
if (Constraint.size() == 1) {
switch (Constraint[0]) {
+ case 'f':
+ if (VT == MVT::f32)
+ return std::make_pair(0U, &SP::FPRegsRegClass);
+ else if (VT == MVT::f64)
+ return std::make_pair(0U, &SP::DFPRegsRegClass);
+ else if (VT == MVT::f128)
+ return std::make_pair(0U, &SP::QFPRegsRegClass);
+
+ llvm_unreachable("Unknown ValueType for f-register-type!");
+
+ break;
+
case 'r':
if (VT == MVT::v2i32)
return std::make_pair(0U, &SP::IntPairRegClass);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29116.85701.patch
Type: text/x-patch
Size: 1084 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170125/5312f33a/attachment.bin>
More information about the llvm-commits
mailing list