diff options
| author | Anders Carlsson <andersca@mac.com> | 2009-01-24 18:03:09 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2009-01-24 18:03:09 +0000 |
| commit | a0b892113a9977575b3ca647339225c0302cfeee (patch) | |
| tree | 9491e54f1c6a15a22d47136e02b7506a2f6b32c2 /clang | |
| parent | b66a312f93d8ec3d1aa3584228fe45abed5b1667 (diff) | |
| download | bcm5719-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.cpp | 6 | ||||
| -rw-r--r-- | clang/test/Sema/asm.c | 6 |
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 |

