From c10e9f70c0509ee17c5f339672550e610ff82a36 Mon Sep 17 00:00:00 2001 From: Nick Kurshev Date: Wed, 8 Aug 2001 16:26:51 +0000 Subject: [PATCH] Portability and testing issues Originally committed as revision 55 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/Makefile | 6 +++++- libavcodec/i386/cputest.c | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index c345a650af..d2be0e760c 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -37,7 +37,7 @@ LIB= libavcodec.a 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 @@ distclean: clean 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 diff --git a/libavcodec/i386/cputest.c b/libavcodec/i386/cputest.c index 4847bac15d..e8f22dde41 100644 --- a/libavcodec/i386/cputest.c +++ b/libavcodec/i386/cputest.c @@ -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 @@ int mm_support(void) 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