diff --git a/libavcodec/dct-test.c b/libavcodec/dct-test.c index 232278c8aa..874d5733db 100644 --- a/libavcodec/dct-test.c +++ b/libavcodec/dct-test.c @@ -12,7 +12,6 @@ #include "dsputil.h" -#include "i386/mmx.h" #include "simple_idct.h" #include "faandct.h" diff --git a/libavcodec/i386/dsputil_mmx.c b/libavcodec/i386/dsputil_mmx.c index 2bef197cea..f7f1b2b587 100644 --- a/libavcodec/i386/dsputil_mmx.c +++ b/libavcodec/i386/dsputil_mmx.c @@ -23,6 +23,7 @@ #include "../dsputil.h" #include "../simple_idct.h" #include "../mpegvideo.h" +#include "x86_cpu.h" #include "mmx.h" //#undef NDEBUG diff --git a/libavcodec/i386/mmx.h b/libavcodec/i386/mmx.h index df1791823b..eab0513416 100644 --- a/libavcodec/i386/mmx.h +++ b/libavcodec/i386/mmx.h @@ -5,24 +5,6 @@ #ifndef AVCODEC_I386MMX_H #define AVCODEC_I386MMX_H -#ifdef ARCH_X86_64 -# define REG_a "rax" -# define REG_b "rbx" -# define REG_c "rcx" -# define REG_d "rdx" -# define REG_D "rdi" -# define REG_S "rsi" -# define PTR_SIZE "8" -#else -# define REG_a "eax" -# define REG_b "ebx" -# define REG_c "ecx" -# define REG_d "edx" -# define REG_D "edi" -# define REG_S "esi" -# define PTR_SIZE "4" -#endif - /* * The type of an value that fits in an MMX register (note that long * long constant values MUST be suffixed by LL and unsigned long long diff --git a/libavcodec/i386/motion_est_mmx.c b/libavcodec/i386/motion_est_mmx.c index c14b793848..edcabcf387 100644 --- a/libavcodec/i386/motion_est_mmx.c +++ b/libavcodec/i386/motion_est_mmx.c @@ -20,7 +20,7 @@ * mostly by Michael Niedermayer */ #include "../dsputil.h" -#include "mmx.h" +#include "x86_cpu.h" static const __attribute__ ((aligned(8))) uint64_t round_tab[3]={ 0x0000000000000000ULL, diff --git a/libavcodec/i386/mpegvideo_mmx.c b/libavcodec/i386/mpegvideo_mmx.c index ad03629342..c00a602bdd 100644 --- a/libavcodec/i386/mpegvideo_mmx.c +++ b/libavcodec/i386/mpegvideo_mmx.c @@ -23,7 +23,7 @@ #include "../dsputil.h" #include "../mpegvideo.h" #include "../avcodec.h" -#include "mmx.h" +#include "x86_cpu.h" extern uint8_t zigzag_direct_noperm[64]; extern uint16_t inv_zigzag_direct16[64]; diff --git a/libavcodec/i386/snowdsp_mmx.c b/libavcodec/i386/snowdsp_mmx.c index 5f17e35976..9fb36772a5 100644 --- a/libavcodec/i386/snowdsp_mmx.c +++ b/libavcodec/i386/snowdsp_mmx.c @@ -19,7 +19,7 @@ #include "../avcodec.h" #include "../snow.h" -#include "mmx.h" +#include "x86_cpu.h" void ff_snow_horizontal_compose97i_sse2(DWTELEM *b, int width){ const int w2= (width+1)>>1; diff --git a/libavutil/x86_cpu.h b/libavutil/x86_cpu.h new file mode 100644 index 0000000000..8fd5f8600e --- /dev/null +++ b/libavutil/x86_cpu.h @@ -0,0 +1,38 @@ +#ifndef AVUTIL_X86CPU_H +#define AVUTIL_X86CPU_H + +#ifdef ARCH_X86_64 +# define REG_a "rax" +# define REG_b "rbx" +# define REG_c "rcx" +# define REG_d "rdx" +# define REG_D "rdi" +# define REG_S "rsi" +# define PTR_SIZE "8" + +# define REG_SP "rsp" +# define REG_BP "rbp" +# define REGBP rbp +# define REGa rax +# define REGb rbx +# define REGSP rsp + +#else + +# define REG_a "eax" +# define REG_b "ebx" +# define REG_c "ecx" +# define REG_d "edx" +# define REG_D "edi" +# define REG_S "esi" +# define PTR_SIZE "4" + +# define REG_SP "esp" +# define REG_BP "ebp" +# define REGBP ebp +# define REGa eax +# define REGb ebx +# define REGSP esp +#endif + +#endif /* AVUTIL_X86CPU_H */