--- trunk/xvidcore/src/image/qpel.c 2005/11/22 10:23:01 1653 +++ trunk/xvidcore/src/image/qpel.c 2008/11/26 01:04:34 1795 @@ -19,7 +19,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: qpel.c,v 1.8 2005-11-22 10:23:01 suxen_drol Exp $ + * $Id: qpel.c,v 1.9 2008-11-26 01:04:34 Isibaar Exp $ * ****************************************************************************/ @@ -243,7 +243,7 @@ /* mmx impl. declaration (see. qpel_mmx.asm ****************************************************************************/ -#ifdef ARCH_IS_IA32 +#if defined (ARCH_IS_IA32) || defined(ARCH_IS_X86_64) extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_16_mmx); extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_16_mmx); extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_16_mmx); @@ -342,63 +342,13 @@ #endif /* ARCH_IS_PPC */ -/* mmx impl. (for 64bit bus) declaration (see. qpel_mmx.asm - ****************************************************************************/ - -#ifdef ARCH_IS_X86_64 -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Up_16_x86_64); - -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_8_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_8_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_8_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_8_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_8_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Up_8_x86_64); - -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Add_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Add_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_Add_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Add_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Add_16_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Up_Add_16_x86_64); - -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_8_Add_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_8_Add_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_H_Pass_Avrg_Up_8_Add_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_8_Add_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_8_Add_x86_64); -extern XVID_QP_PASS_SIGNATURE(xvid_V_Pass_Avrg_Up_8_Add_x86_64); - -XVID_QP_FUNCS xvid_QP_Funcs_x86_64 = { - xvid_H_Pass_16_x86_64, xvid_H_Pass_Avrg_16_x86_64, xvid_H_Pass_Avrg_Up_16_x86_64, - xvid_V_Pass_16_x86_64, xvid_V_Pass_Avrg_16_x86_64, xvid_V_Pass_Avrg_Up_16_x86_64, - - xvid_H_Pass_8_x86_64, xvid_H_Pass_Avrg_8_x86_64, xvid_H_Pass_Avrg_Up_8_x86_64, - xvid_V_Pass_8_x86_64, xvid_V_Pass_Avrg_8_x86_64, xvid_V_Pass_Avrg_Up_8_x86_64 -}; - -XVID_QP_FUNCS xvid_QP_Add_Funcs_x86_64 = { - xvid_H_Pass_Add_16_x86_64, xvid_H_Pass_Avrg_Add_16_x86_64, xvid_H_Pass_Avrg_Up_Add_16_x86_64, - xvid_V_Pass_Add_16_x86_64, xvid_V_Pass_Avrg_Add_16_x86_64, xvid_V_Pass_Avrg_Up_Add_16_x86_64, - - xvid_H_Pass_8_Add_x86_64, xvid_H_Pass_Avrg_8_Add_x86_64, xvid_H_Pass_Avrg_Up_8_Add_x86_64, - xvid_V_Pass_8_Add_x86_64, xvid_V_Pass_Avrg_8_Add_x86_64, xvid_V_Pass_Avrg_Up_8_Add_x86_64, -}; -#endif /* ARCH_IS_X86_64 */ - /* tables for ASM ****************************************************************************/ #if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) -/* These symbols will be used outsie this file, so tell the compiler - * they're global. Only ia32 will define them in this file, x86_64 - * will do in the assembly files */ +/* These symbols will be used outside this file, so tell the compiler + * they're global. */ extern uint16_t xvid_Expand_mmx[256][4]; /* 8b -> 64b expansion table */ extern int16_t xvid_FIR_1_0_0_0[256][4]; @@ -421,18 +371,11 @@ #endif /* Arrays definitions, according to the target platform */ -#ifdef ARCH_IS_IA32 -uint16_t xvid_Expand_mmx[256][4]; /* 8b -> 64b expansion table */ -#endif - -#if !defined(ARCH_IS_X86_64) -/* Only ia32 will use these tables outside this file so mark them + +#if !defined(ARCH_IS_X86_64) && !defined(ARCH_IS_IA32) +/* Only ia32/ia64 will use these tables outside this file so mark them * static for all other archs */ -#if defined(ARCH_IS_IA32) -#define __SCOPE -#else #define __SCOPE static -#endif __SCOPE int16_t xvid_FIR_1_0_0_0[256][4]; __SCOPE int16_t xvid_FIR_3_1_0_0[256][4]; __SCOPE int16_t xvid_FIR_6_3_1_0[256][4]; @@ -467,7 +410,7 @@ void xvid_Init_QP(void) { -#ifdef ARCH_IS_IA32 +#if defined (ARCH_IS_IA32) || defined (ARCH_IS_X86_64) int i; for(i=0; i<256; ++i) {