]> granicus.if.org Git - clang/commitdiff
Handle the 'e' constraint. Fixes PR3385
authorAnders Carlsson <andersca@mac.com>
Sat, 24 Jan 2009 18:03:09 +0000 (18:03 +0000)
committerAnders Carlsson <andersca@mac.com>
Sat, 24 Jan 2009 18:03:09 +0000 (18:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62923 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Basic/Targets.cpp
test/Sema/asm.c

index 4128946493ee7ef8377d4489e1b910a0104959ad..026641c7c7db9efff53055f9f77cd346c29a4fce 100644 (file)
@@ -505,8 +505,10 @@ X86TargetInfo::validateAsmConstraint(char c,
   case 'y': // Any MMX register.
   case 'x': // Any SSE register.
   case 'Q': // Any register accessible as [r]h: a, b, c, and d.
-  case 'Z': // 32-bit integer constant for use with zero-extending x86_64
-            // instructions.
+  case 'e': // 32-bit signed integer constant for use with zero-extending 
+            // x86_64 instructions.
+  case 'Z': // 32-bit unsigned integer constant for use with zero-extending 
+            // x86_64 instructions.
   case 'N': // unsigned 8-bit integer constant for use with in and out
             // instructions.
     info = (TargetInfo::ConstraintInfo)(info|TargetInfo::CI_AllowsRegister);
index 4093b1abeb943bcade979137f092e3b52631b0ce..fa9b125b6dd4183fd47107f3dfb9d76726a9c85c 100644 (file)
@@ -54,3 +54,9 @@ void test5()
 {
   asm("nop" : : "X" (8)); 
 }
+
+// PR3385
+void test6(long i)
+{
+  asm("nop" : : "er"(i));
+}
\ No newline at end of file