summaryrefslogtreecommitdiff
path: root/src/xine-utils/memcpy.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-utils/memcpy.c')
-rw-r--r--src/xine-utils/memcpy.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/xine-utils/memcpy.c b/src/xine-utils/memcpy.c
index 564a61cdd..a1e114b70 100644
--- a/src/xine-utils/memcpy.c
+++ b/src/xine-utils/memcpy.c
@@ -33,6 +33,11 @@
#include "config.h"
#endif
+#ifdef ARCH_PPC
+#include "ppcasm_string.h"
+#endif
+#include <sys/times.h>
+
#include <stdlib.h>
#include <string.h>
#include "xine_internal.h"
@@ -368,6 +373,10 @@ static struct {
{ "MMXEXT optimized memcpy()", mmx2_memcpy, 0, MM_MMXEXT },
{ "SSE optimized memcpy()", sse_memcpy, 0, MM_MMXEXT|MM_SSE },
#endif /* ARCH_X86 */
+#ifdef ARCH_PPC
+ { "ppcasm_memcpy()", ppcasm_memcpy, 0, 0 },
+ { "ppcasm_cacheable_memcpy()", ppcasm_cacheable_memcpy, 0, 0 },
+#endif /* ARCH_PPC */
{ NULL, NULL, 0, 0 }
};
@@ -383,7 +392,8 @@ static unsigned long long int rdtsc()
{
/* FIXME: implement an equivalent for using optimized memcpy on other
architectures */
- return 0;
+#warning "Using rdtsc() hack (via times(NULL))"
+ return times(NULL);
}
#endif
@@ -415,6 +425,9 @@ void xine_probe_fast_memcpy(config_values_t *config)
#ifdef ARCH_X86
"kernel", "mmx", "mmxext", "sse",
#endif
+#ifdef ARCH_PPC
+ "ppcasm_memcpy", "ppcasm_cacheable_memcpy",
+#endif
NULL};
config_flags = xine_mm_accel();