diff options
Diffstat (limited to 'lib/Basic/Targets.cpp')
-rw-r--r-- | lib/Basic/Targets.cpp | 11 |
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 { |