asm.c revision ebaae2a3103b443d50444d335ab5ab0ff7680da2
19f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson// RUN: clang -emit-llvm %s -o %t -arch=i386
29f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlssonvoid t1(int len)
32763b3af0a527c3a63cb058b90c22db0b7bcf558Anders Carlsson{
49f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson  __asm__ volatile("" : "=&r"(len), "+&r"(len));
52763b3af0a527c3a63cb058b90c22db0b7bcf558Anders Carlsson}
69f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson
79f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlssonvoid t2(unsigned long long t)
89f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson{
99f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson  __asm__ volatile("" : "+m"(t));
109f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson}
119f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson
129f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlssonvoid t3(unsigned char *src, unsigned long long temp)
139f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson{
149f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson  __asm__ volatile("" : "+m"(temp), "+r"(src));
159f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson}
169f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson
17ebaae2a3103b443d50444d335ab5ab0ff7680da2Anders Carlssonvoid t4()
18ebaae2a3103b443d50444d335ab5ab0ff7680da2Anders Carlsson{
19ebaae2a3103b443d50444d335ab5ab0ff7680da2Anders Carlsson  unsigned long long a;
20ebaae2a3103b443d50444d335ab5ab0ff7680da2Anders Carlsson  struct reg { unsigned long long a, b; } b;
21ebaae2a3103b443d50444d335ab5ab0ff7680da2Anders Carlsson
22ebaae2a3103b443d50444d335ab5ab0ff7680da2Anders Carlsson	__asm__ volatile ("":: "m"(a), "m"(b));
23ebaae2a3103b443d50444d335ab5ab0ff7680da2Anders Carlsson}
249f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson
259f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson
269f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson
279f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson
289f2505b934745b18d580ade4dac7b8b16952a30cAnders Carlsson
29