more asm trickery
authorMatthias Braun <matze@braunis.de>
Mon, 11 Aug 2008 17:09:03 +0000 (17:09 +0000)
committerMatthias Braun <matze@braunis.de>
Mon, 11 Aug 2008 17:09:03 +0000 (17:09 +0000)
[r21100]

ir/be/test/asmq3.c [new file with mode: 0644]

diff --git a/ir/be/test/asmq3.c b/ir/be/test/asmq3.c
new file mode 100644 (file)
index 0000000..e3e7456
--- /dev/null
@@ -0,0 +1,21 @@
+/*$ -fomit-frame-pointer $*/
+
+int main(void)
+{
+       int in = 42;
+       int out;
+       __asm__(
+                       "xorl %%eax,%%eax\n"
+                       "xorl %%ebx,%%ebx\n"
+                       "xorl %%ecx,%%ecx\n"
+                       "xorl %%edx,%%edx\n"
+                       "xorl %%esi,%%esi\n"
+                       "xorl %%edi,%%edi\n"
+                       "movl %1,%0\n"
+                       "incl %0\n"
+                       : "=r" (out) : "r" (in)
+                       : "eax", "ebx", "ecx", "edx", "esi", "edi", "cc"
+       );
+
+       return out != 43;
+}