shouldn't be here anymore
[libfirm] / ir / be / test / asm_test.c
index 83de4fd..d5fe607 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdio.h>
+#include <assert.h>
 
 #ifdef __i386__
 static inline unsigned char inb(const unsigned short port)
@@ -45,15 +46,46 @@ static inline unsigned int swap32(unsigned int x)
        return x;
 }
 
+#if 1
+typedef struct kernel_fd_set {
+       int bla;
+       int blup;
+} kernel_fd_set;
+#else
+typedef int kernel_fd_set;
+#endif
+
+void fd_set(int fd, kernel_fd_set* set) {
+       __asm__("btsl %1,%0" : "=m" (*(set)) : "r" (fd));
+}
+
+int fd_isset(int fd, kernel_fd_set *set) {
+       unsigned char result;
+
+       __asm__ __volatile__("btl %1,%2\n"
+                         "\tsetb %0"
+                       : "=q" (result)
+                       : "r" (fd),  "m" (*set));
+       return result;
+}
+
+int justcompile(void)
+{
+       outb(123, 42);
+       outb(12345, 42);
+       return inb(20) + inb(5);
+}
+
 int main()
 {
-       //sincostest(0.5);
-       /*outb(123, 42);
-       outb(12345, 42);*/
+       kernel_fd_set s;
+
+       fd_set(20, &s);
+       assert(fd_isset(20, &s));
 
        printf("Swap16: %d Swap32: %d\n", swap16(12), swap32(123551235));
 
-       return mov(0) /*+ inb(12345) + inb(123)*/;
+       return mov(0);
 }
 
 #else