summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-01-24 18:03:09 +0000
committerAnders Carlsson <andersca@mac.com>2009-01-24 18:03:09 +0000
commita0b892113a9977575b3ca647339225c0302cfeee (patch)
tree9491e54f1c6a15a22d47136e02b7506a2f6b32c2 /clang
parentb66a312f93d8ec3d1aa3584228fe45abed5b1667 (diff)
downloadbcm5719-llvm-a0b892113a9977575b3ca647339225c0302cfeee.tar.gz
bcm5719-llvm-a0b892113a9977575b3ca647339225c0302cfeee.zip
Handle the 'e' constraint. Fixes PR3385
llvm-svn: 62923
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Basic/Targets.cpp6
-rw-r--r--clang/test/Sema/asm.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 4128946493e..026641c7c7d 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -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);
diff --git a/clang/test/Sema/asm.c b/clang/test/Sema/asm.c
index 4093b1abeb9..fa9b125b6dd 100644
--- a/clang/test/Sema/asm.c
+++ b/clang/test/Sema/asm.c
@@ -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
OpenPOWER on IntegriCloud