Anders Carlsson | 9f2505b | 2009-01-11 21:23:27 +0000 | [diff] [blame] | 1 | // RUN: clang -emit-llvm %s -o %t -arch=i386 |
| 2 | void t1(int len) |
Anders Carlsson | 2763b3a | 2009-01-11 19:46:50 +0000 | [diff] [blame] | 3 | { |
Anders Carlsson | 9f2505b | 2009-01-11 21:23:27 +0000 | [diff] [blame] | 4 | __asm__ volatile("" : "=&r"(len), "+&r"(len)); |
Anders Carlsson | 2763b3a | 2009-01-11 19:46:50 +0000 | [diff] [blame] | 5 | } |
Anders Carlsson | 9f2505b | 2009-01-11 21:23:27 +0000 | [diff] [blame] | 6 | |
| 7 | void t2(unsigned long long t) |
| 8 | { |
| 9 | __asm__ volatile("" : "+m"(t)); |
| 10 | } |
| 11 | |
| 12 | void t3(unsigned char *src, unsigned long long temp) |
| 13 | { |
| 14 | __asm__ volatile("" : "+m"(temp), "+r"(src)); |
| 15 | } |
| 16 | |
Anders Carlsson | ebaae2a | 2009-01-12 02:22:13 +0000 | [diff] [blame] | 17 | void t4() |
| 18 | { |
| 19 | unsigned long long a; |
| 20 | struct reg { unsigned long long a, b; } b; |
| 21 | |
| 22 | __asm__ volatile ("":: "m"(a), "m"(b)); |
| 23 | } |
Anders Carlsson | 9f2505b | 2009-01-11 21:23:27 +0000 | [diff] [blame] | 24 | |
| 25 | |
| 26 | |
| 27 | |
| 28 | |