[Ffmpeg-devel] ARCH_X86 vs ARCH_X86_32 vs ARCH_X86_64
Diego Biurrun
diego
Mon Oct 16 23:04:19 CEST 2006
On Mon, Oct 16, 2006 at 11:00:59PM +0200, Diego Biurrun wrote:
> On Sun, Oct 08, 2006 at 11:55:55PM +0200, Diego Biurrun wrote:
> > I'd like to introduce a define that encompasses both x86 and x86_64 to
> > simplify statements like
> >
> > #if defined(ARCH_X86) || defined(ARCH_X86_64)
> >
> > of which we have tons in the code and be able to use it in the Makefiles
> > where or expressions are troublesome.
> >
> > My first idea was to rename ARCH_X86 --> ARCH_X86_32 and use ARCH_X86
> > for the general case. It seems like the cleanest and most
> > straightforward solution to me, but I'm getting second thoughts. I'm
> > afraid that ARCH_X86 semantics are kind of set in stone through years of
> > usage (in autoconf as well).
>
> OK, here is a first patch that introduces ARCH_X86_32. Testing welcome.
>
> --- libavcodec/cabac.h (revision 6713)
> +++ libavcodec/cabac.h (working copy)
> @@ -362,7 +362,7 @@
>
> static int always_inline get_cabac_inline(CABACContext *c, uint8_t * const state){
> //FIXME gcc generates duplicate load/stores for c->low and c->range
> -#if defined(ARCH_X86) && !(defined(PIC) && defined(__GNUC__))
> +#if defined(ARCH_X86_32) && !(defined(PIC) && defined(__GNUC__))
> int bit;
>
> #define LOW "0"
> --- libavcodec/mathops.h (revision 6713)
> +++ libavcodec/mathops.h (working copy)
> @@ -22,7 +22,7 @@
> #ifndef MATHOPS_H
> #define MATHOPS_H
>
> -#ifdef ARCH_X86
> +#ifdef ARCH_X86_32
>
> #include "i386/mathops.h"
>
> Index: libavutil/internal.h
> ===================================================================
> --- libavutil/internal.h (revision 6713)
> +++ libavutil/internal.h (working copy)
> @@ -217,7 +217,7 @@
> static always_inline long int lrintf(float x)
> {
> #ifdef __MINGW32__
> -# ifdef ARCH_X86
> +# ifdef ARCH_X86_32
> int32_t i;
> asm volatile(
> "fistpl %0\n\t"
> --- libavutil/common.h (revision 6713)
> +++ libavutil/common.h (working copy)
> @@ -344,7 +344,7 @@
> );
> return (d << 32) | (a & 0xffffffff);
> }
> -#elif defined(ARCH_X86)
> +#elif defined(ARCH_X86_32)
> static inline long long read_time(void)
> {
> long long l;
Note: I suspect that most or all of these conditions are bogus and might
well work on x86_64 as well. Somebody please replace them all by
ARCH_X86_64 and test that as well.
Diego
More information about the ffmpeg-devel
mailing list