Browse Source

Portability and testing issues

Originally committed as revision 55 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Nick Kurshev 24 years ago
parent
commit
c10e9f70c0
2 changed files with 18 additions and 4 deletions
  1. +5
    -1
      libavcodec/Makefile
  2. +13
    -3
      libavcodec/i386/cputest.c

+ 5
- 1
libavcodec/Makefile View File

@@ -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


+ 13
- 3
libavcodec/i386/cputest.c View File

@@ -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

Loading…
Cancel
Save