]> granicus.if.org Git - clang/commitdiff
Allow 'o' and 'V' as constraints for output asm operands.
authorDale Johannesen <dalej@apple.com>
Tue, 7 Sep 2010 18:40:41 +0000 (18:40 +0000)
committerDale Johannesen <dalej@apple.com>
Tue, 7 Sep 2010 18:40:41 +0000 (18:40 +0000)
Allow '<' and '>' as constraints for input or output.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113246 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/TargetInfo.cpp

index 6d42883cd13c36307367bb84c67d979ee68291dd..c7036bfd049daa5fcf0c88298f48f18c9d78e4e5 100644 (file)
@@ -283,6 +283,10 @@ bool TargetInfo::validateOutputConstraint(ConstraintInfo &Info) const {
       Info.setAllowsRegister();
       break;
     case 'm': // memory operand.
+    case 'o': // offsetable memory operand.
+    case 'V': // non-offsetable memory operand.
+    case '<': // autodecrement memory operand.
+    case '>': // autoincrement memory operand.
       Info.setAllowsMemory();
       break;
     case 'g': // general register, memory operand or immediate integer.
@@ -297,7 +301,7 @@ bool TargetInfo::validateOutputConstraint(ConstraintInfo &Info) const {
         Name++;
       break;
     case '?': // Disparage slightly code.
-    case '!': // Disparage severly.
+    case '!': // Disparage severely.
       break;  // Pass them.
     }
 
@@ -384,8 +388,10 @@ bool TargetInfo::validateInputConstraint(ConstraintInfo *OutputConstraints,
       Info.setAllowsRegister();
       break;
     case 'm': // memory operand.
-    case 'o': // offsettable memory operand
-    case 'V': // non-offsettable memory operand
+    case 'o': // offsettable memory operand.
+    case 'V': // non-offsettable memory operand.
+    case '<': // autodecrement memory operand.
+    case '>': // autoincrement memory operand.
       Info.setAllowsMemory();
       break;
     case 'g': // general register, memory operand or immediate integer.