aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Cederman <cederman@gaisler.com>2018-05-30 09:52:18 +0000
committerDaniel Cederman <cederman@gaisler.com>2018-05-30 09:52:18 +0000
commitfc1eef35a4a46a5c3d322cb053c454acd4481500 (patch)
tree187a7dfa0993a1f49e951deed679bcd5c903b9e6
parenta049b2d5f4621dd623dd67064f996a5f644e69de (diff)
[Sparc] Treat %fxx registers with value type Other as single precision
They get type Other when used in the clobber list in inline assembly. This fixes tests fp128.ll and float.ll that failed after r333512. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@333523 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/Sparc/SparcISelLowering.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Target/Sparc/SparcISelLowering.cpp b/lib/Target/Sparc/SparcISelLowering.cpp
index f4484d12c89..3b04038ffcc 100644
--- a/lib/Target/Sparc/SparcISelLowering.cpp
+++ b/lib/Target/Sparc/SparcISelLowering.cpp
@@ -3517,7 +3517,7 @@ SparcTargetLowering::getRegForInlineAsmConstraint(const TargetRegisterInfo *TRI,
!name.substr(1).getAsInteger(10, intVal) && intVal <= 63) {
std::string newConstraint;
- if (VT == MVT::f32) {
+ if (VT == MVT::f32 || VT == MVT::Other) {
newConstraint = "{f" + utostr(intVal) + "}";
} else if (VT == MVT::f64 && (intVal % 2 == 0)) {
newConstraint = "{d" + utostr(intVal / 2) + "}";