changeset 43:ab64a3fc62bf libavcodec

Portability and testing issues
author nickols_k
date Wed, 08 Aug 2001 16:26:51 +0000
parents 8068c4bce9c1
children 92d51f683931
files Makefile i386/cputest.c
diffstat 2 files changed, 18 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Tue Aug 07 22:49:50 2001 +0000
+++ b/Makefile	Wed Aug 08 16:26:51 2001 +0000
@@ -37,7 +37,7 @@
 TESTS= imgresample-test dct-test
 
 all: $(LIB)
-tests: apiexample $(TESTS)
+tests: apiexample cpuid_test $(TESTS)
 
 $(LIB): $(OBJS) $(ASM_OBJS)
 	rm -f $@
@@ -70,6 +70,10 @@
 apiexample: apiexample.c $(LIB)
 	$(CC) $(CFLAGS) -o $@ $< $(LIB) -lm
 
+# cpuid test
+cpuid_test: i386/cputest.c
+	$(CC) $(CFLAGS) -D__TEST__ -o $@ $<
+
 # testing progs
 
 imgresample-test: imgresample.c
--- a/i386/cputest.c	Tue Aug 07 22:49:50 2001 +0000
+++ b/i386/cputest.c	Wed Aug 08 16:26:51 2001 +0000
@@ -6,13 +6,13 @@
 
 /* ebx saving is necessary for PIC. gcc seems unable to see it alone */
 #define cpuid(index,eax,ebx,ecx,edx)\
-    asm ("movl %%ebx, %%esi\n\t"\
+    __asm __volatile\
+	("movl %%ebx, %%esi\n\t"\
          "cpuid\n\t"\
          "xchgl %%ebx, %%esi"\
          : "=a" (eax), "=S" (ebx),\
            "=c" (ecx), "=d" (edx)\
-         : "0" (index)\
-         : "cc")\
+         : "0" (index));
 
 /* Function to test if multimedia instructions are supported...  */
 int mm_support(void)
@@ -102,3 +102,13 @@
         return 0;
     }
 }
+
+#ifdef __TEST__
+int main ( void )
+{
+  int mm_flags;
+  mm_flags = mm_support();
+  printf("mm_support = 0x%08u\n",mm_flags);
+  return 0;
+}
+#endif