Portability and testing issues
Originally committed as revision 55 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
16fbebe173
commit
c10e9f70c0
@ -37,7 +37,7 @@ LIB= libavcodec.a
|
|||||||
TESTS= imgresample-test dct-test
|
TESTS= imgresample-test dct-test
|
||||||
|
|
||||||
all: $(LIB)
|
all: $(LIB)
|
||||||
tests: apiexample $(TESTS)
|
tests: apiexample cpuid_test $(TESTS)
|
||||||
|
|
||||||
$(LIB): $(OBJS) $(ASM_OBJS)
|
$(LIB): $(OBJS) $(ASM_OBJS)
|
||||||
rm -f $@
|
rm -f $@
|
||||||
@ -70,6 +70,10 @@ distclean: clean
|
|||||||
apiexample: apiexample.c $(LIB)
|
apiexample: apiexample.c $(LIB)
|
||||||
$(CC) $(CFLAGS) -o $@ $< $(LIB) -lm
|
$(CC) $(CFLAGS) -o $@ $< $(LIB) -lm
|
||||||
|
|
||||||
|
# cpuid test
|
||||||
|
cpuid_test: i386/cputest.c
|
||||||
|
$(CC) $(CFLAGS) -D__TEST__ -o $@ $<
|
||||||
|
|
||||||
# testing progs
|
# testing progs
|
||||||
|
|
||||||
imgresample-test: imgresample.c
|
imgresample-test: imgresample.c
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
/* ebx saving is necessary for PIC. gcc seems unable to see it alone */
|
/* ebx saving is necessary for PIC. gcc seems unable to see it alone */
|
||||||
#define cpuid(index,eax,ebx,ecx,edx)\
|
#define cpuid(index,eax,ebx,ecx,edx)\
|
||||||
asm ("movl %%ebx, %%esi\n\t"\
|
__asm __volatile\
|
||||||
|
("movl %%ebx, %%esi\n\t"\
|
||||||
"cpuid\n\t"\
|
"cpuid\n\t"\
|
||||||
"xchgl %%ebx, %%esi"\
|
"xchgl %%ebx, %%esi"\
|
||||||
: "=a" (eax), "=S" (ebx),\
|
: "=a" (eax), "=S" (ebx),\
|
||||||
"=c" (ecx), "=d" (edx)\
|
"=c" (ecx), "=d" (edx)\
|
||||||
: "0" (index)\
|
: "0" (index));
|
||||||
: "cc")\
|
|
||||||
|
|
||||||
/* Function to test if multimedia instructions are supported... */
|
/* Function to test if multimedia instructions are supported... */
|
||||||
int mm_support(void)
|
int mm_support(void)
|
||||||
@ -102,3 +102,13 @@ int mm_support(void)
|
|||||||
return 0;
|
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…
x
Reference in New Issue
Block a user