summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-04-11 19:41:38 +0000
committerarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-04-11 19:41:38 +0000
commit0ddb6b81b5030d4a15b6cad229e80aa9d0ed5678 (patch)
tree1ed95e133249628abd9d0e94f9c980fc5caf33c8 /libvo
parent69bf86446c90141b1f80e2935a4f01eb38eb1ea4 (diff)
downloadmpv-0ddb6b81b5030d4a15b6cad229e80aa9d0ed5678.tar.bz2
mpv-0ddb6b81b5030d4a15b6cad229e80aa9d0ed5678.tar.xz
memcpy() moved mmx.h -> fastmemcpy.h
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@355 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/mmx.h98
-rw-r--r--libvo/vo_3dfx.c2
-rw-r--r--libvo/vo_fbdev.c2
-rw-r--r--libvo/vo_fsdga.c3
-rw-r--r--libvo/vo_odivx.c2
-rw-r--r--libvo/vo_sdl.c2
-rw-r--r--libvo/vo_syncfb.c2
-rw-r--r--libvo/vo_x11.c2
-rw-r--r--libvo/vo_xv.c2
9 files changed, 8 insertions, 107 deletions
diff --git a/libvo/mmx.h b/libvo/mmx.h
index 30d01b5e2b..bc92a7d5db 100644
--- a/libvo/mmx.h
+++ b/libvo/mmx.h
@@ -27,104 +27,6 @@
#ifndef _MMX_H
#define _MMX_H
-/*
- This part of code was taken by from Linux-2.4.3 and slightly modified
-for MMX2 instruction set. I have done it since linux uses page aligned
-blocks but mplayer uses weakly ordered data and original sources can not
-speedup their. Only using prefetch and movntq together have effect!
-If you have questions please contact with me: Nick Kurshev: nickols_k@mail.ru.
-*/
-
-#ifndef HAVE_MMX2
-//static inline void * __memcpy(void * to, const void * from, unsigned n)
-inline static void * memcpy(void * to, const void * from, unsigned n)
-{
-int d0, d1, d2;
-__asm__ __volatile__(
- "rep ; movsl\n\t"
- "testb $2,%b4\n\t"
- "je 1f\n\t"
- "movsw\n"
- "1:\ttestb $1,%b4\n\t"
- "je 2f\n\t"
- "movsb\n"
- "2:"
- : "=&c" (d0), "=&D" (d1), "=&S" (d2)
- :"0" (n/4), "q" (n),"1" ((long) to),"2" ((long) from)
- : "memory");
-return (to);
-}
-#else
-//inline static void *__memcpy_mmx2(void *to, const void *from, unsigned len)
-inline static void * memcpy(void * to, const void * from, unsigned n)
-{
- void *p;
- int i;
-
- if(len >= 0x200) /* 512-byte blocks */
- {
- p = to;
- i = len >> 6; /* len/64 */
- __asm__ __volatile__ (
- "1: prefetch (%0)\n" /* This set is 28 bytes */
- " prefetch 64(%0)\n"
- " prefetch 128(%0)\n"
- " prefetch 192(%0)\n"
- " prefetch 256(%0)\n"
- "2: \n"
- ".section .fixup, \"ax\"\n"
- "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
- " jmp 2b\n"
- ".previous\n"
- ".section __ex_table,\"a\"\n"
- " .align 4\n"
- " .long 1b, 3b\n"
- ".previous"
- : : "r" (from) );
-
-
- for(; i>0; i--)
- {
- __asm__ __volatile__ (
- "1: prefetch 320(%0)\n"
- "2: movq (%0), %%mm0\n"
- " movq 8(%0), %%mm1\n"
- " movq 16(%0), %%mm2\n"
- " movq 24(%0), %%mm3\n"
- " movntq %%mm0, (%1)\n"
- " movntq %%mm1, 8(%1)\n"
- " movntq %%mm2, 16(%1)\n"
- " movntq %%mm3, 24(%1)\n"
- " movq 32(%0), %%mm0\n"
- " movq 40(%0), %%mm1\n"
- " movq 48(%0), %%mm2\n"
- " movq 56(%0), %%mm3\n"
- " movntq %%mm0, 32(%1)\n"
- " movntq %%mm1, 40(%1)\n"
- " movntq %%mm2, 48(%1)\n"
- " movntq %%mm3, 56(%1)\n"
- ".section .fixup, \"ax\"\n"
- "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
- " jmp 2b\n"
- ".previous\n"
- ".section __ex_table,\"a\"\n"
- " .align 4\n"
- " .long 1b, 3b\n"
- ".previous"
- : : "r" (from), "r" (to) : "memory");
- from+=64;
- to+=64;
- }
- __asm__ __volatile__ ("emms":::"memory");
- }
- /*
- * Now do the tail of the block
- */
- __memcpy(to, from, len&63);
- return p;
-}
-#endif
-
/* Warning: at this writing, the version of GAS packaged
with most Linux distributions does not handle the
diff --git a/libvo/vo_3dfx.c b/libvo/vo_3dfx.c
index be014d1384..30f290669e 100644
--- a/libvo/vo_3dfx.c
+++ b/libvo/vo_3dfx.c
@@ -49,7 +49,7 @@ LIBVO_EXTERN(3dfx)
#include "drivers/3dfx.h"
-#include "mmx.h"
+#include "fastmemcpy.h"
static vo_info_t vo_info =
{
diff --git a/libvo/vo_fbdev.c b/libvo/vo_fbdev.c
index de25614523..cd241585ee 100644
--- a/libvo/vo_fbdev.c
+++ b/libvo/vo_fbdev.c
@@ -24,7 +24,7 @@
#include "yuv2rgb.h"
extern void rgb15to16_mmx(char *s0, char *d0, int count);
-#include "mmx.h"
+#include "fastmemcpy.h"
LIBVO_EXTERN(fbdev)
diff --git a/libvo/vo_fsdga.c b/libvo/vo_fsdga.c
index bde5119eea..949e378b82 100644
--- a/libvo/vo_fsdga.c
+++ b/libvo/vo_fsdga.c
@@ -22,6 +22,7 @@
#include <stdlib.h>
#include <string.h>
+//#include "fastmemcpy.h"
#include "linux/keycodes.h"
#include "config.h"
@@ -64,8 +65,6 @@ static unsigned char *vo_dga_base;
static Display *vo_dga_dpy;
-#include "mmx.h"
-
#if defined (HAVE_SSE) || defined (HAVE_3DNOW)
#define movntq "movntq" // use this for processors that have SSE or 3Dnow
#else
diff --git a/libvo/vo_odivx.c b/libvo/vo_odivx.c
index 7e1bce55c0..7ba7914ef4 100644
--- a/libvo/vo_odivx.c
+++ b/libvo/vo_odivx.c
@@ -19,7 +19,7 @@ LIBVO_EXTERN(odivx)
#include "../encore/encore.h"
-#include "mmx.h"
+#include "fastmemcpy.h"
static vo_info_t vo_info =
{
diff --git a/libvo/vo_sdl.c b/libvo/vo_sdl.c
index 90cb1dd60e..dd59c9e321 100644
--- a/libvo/vo_sdl.c
+++ b/libvo/vo_sdl.c
@@ -73,8 +73,8 @@
#include "video_out.h"
#include "video_out_internal.h"
+#include "fastmemcpy.h"
-#include "mmx.h"
LIBVO_EXTERN(sdl)
//#include "log.h"
diff --git a/libvo/vo_syncfb.c b/libvo/vo_syncfb.c
index 3108cba1d9..bc7ab55e4d 100644
--- a/libvo/vo_syncfb.c
+++ b/libvo/vo_syncfb.c
@@ -43,7 +43,7 @@ LIBVO_EXTERN(syncfb)
#include "drivers/syncfb/syncfb.h"
-#include "mmx.h"
+#include "fastmemcpy.h"
static vo_info_t vo_info =
{
diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c
index c020b53928..8cb85fd6bb 100644
--- a/libvo/vo_x11.c
+++ b/libvo/vo_x11.c
@@ -36,7 +36,7 @@ LIBVO_EXTERN( x11 )
#include "x11_common.h"
-#include "mmx.h"
+#include "fastmemcpy.h"
static vo_info_t vo_info =
{
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index 27948ec948..e6a35567d9 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -28,7 +28,7 @@ LIBVO_EXTERN(xv)
#include "x11_common.h"
-#include "mmx.h"
+#include "fastmemcpy.h"
static vo_info_t vo_info =
{