aboutsummaryrefslogtreecommitdiff
path: root/lib/Basic/Targets.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Basic/Targets.cpp')
-rw-r--r--lib/Basic/Targets.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index a06d5e647f..c4ffa0d65e 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -804,7 +804,16 @@ public:
NumAliases = 0;
}
virtual bool validateAsmConstraint(char c,
- TargetInfo::ConstraintInfo &Info) const {
+ TargetInfo::ConstraintInfo &info) const {
+ switch (c) {
+ default:
+ case 'l': // r0-r7
+ case 'h': // r8-r15
+ case 'w': // VFP Floating point register single precision
+ case 'P': // VFP Floating point register double precision
+ info = (TargetInfo::ConstraintInfo)(info|TargetInfo::CI_AllowsRegister);
+ return true;
+ }
return false;
}
virtual const char *getClobbers() const {