test_LDADD = libresample.la
-CFLAGS += -O2 -ffast-math
+if HAVE_CPU_I386
+ARCHCFLAGS = -march=i486
+else
+if HAVE_CPU_PPC
+ARCHCFLAGS = -Wa,-m7400
+else
+ARCHCFLAGS =
+endif
+endif
+
+CFLAGS += -O2 -ffast-math $(ARCHCFLAGS)
#define short_to_double_table
-#define short_to_double_altivec
+//#define short_to_double_altivec
#define short_to_double_unroll
#ifdef short_to_double_table
-float ints_high[256];
-float ints_low[256];
+static float ints_high[256];
+static float ints_low[256];
void conv_double_short_table(double *dest, short *src, int n)
{
}
}
-#ifdef short_to_double_altivec
+#ifdef HAVE_CPU_PPC
static union { int i[4]; float f[4]; } av_tmp __attribute__ ((__aligned__ (16)));
void conv_double_short_altivec(double *dest, short *src, int n)
}
}
+#ifdef HAVE_CPU_PPC
void conv_short_double_ppcasm(short *dest, double *src, int n)
{
int tmp[2];
: "r9", "r5" );
}
+#endif
void conv_double_short_table(double *dest, short *src, int n);
void conv_double_short_unroll(double *dest, short *src, int n);
void conv_double_short_ref(double *dest, short *src, int n);
+#ifdef HAVE_CPU_PPC
void conv_double_short_altivec(double *dest, short *src, int n);
+#endif
void conv_short_double_ref(short *dest, double *src, int n);
+#ifdef HAVE_CPU_PPC
void conv_short_double_ppcasm(short *dest, double *src, int n);
+#endif
+#ifdef HAVE_CPU_PPC
#define conv_double_short conv_double_short_table
#define conv_short_double conv_short_double_ppcasm
+#else
+#define conv_double_short conv_double_short_ref
+#define conv_short_double conv_short_double_ref
+#endif
#endif /* __RESAMPLE_H__ */