Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
054b90aa
Commit
054b90aa
authored
Apr 04, 2002
by
Christophe Massiot
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* Fixed intf_eject for iPAQ (untested)
* asm memcpyaltivec for Linux/PPC
parent
d94ba355
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
209 additions
and
128 deletions
+209
-128
configure
configure
+107
-106
configure.in
configure.in
+5
-4
include/defs.h.in
include/defs.h.in
+4
-4
plugins/memcpy/memcpyaltivec.c
plugins/memcpy/memcpyaltivec.c
+85
-2
src/interface/intf_eject.c
src/interface/intf_eject.c
+8
-12
No files found.
configure
View file @
054b90aa
This diff is collapsed.
Click to expand it.
configure.in
View file @
054b90aa
...
...
@@ -166,7 +166,7 @@ AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h sys/times.h)
AC_CHECK_HEADERS(dlfcn.h image.h)
AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
AC_CHECK_HEADERS(
scsi/scsi_ioctl
.h)
AC_CHECK_HEADERS(
linux/version
.h)
AC_HEADER_TIME
...
...
@@ -378,9 +378,9 @@ MMX_MODULES="memcpymmx idctmmx motionmmx chroma_i420_rgb_mmx chroma_i420_yuy2_mm
MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
if test x$SYS != xmingw32; then
SSE_MODULES="imdctsse downmixsse"
SSE_MODULES="imdctsse downmixsse"
fi
ALTIVEC_MODULES="idctaltivec motionaltivec"
ALTIVEC_MODULES="idctaltivec motionaltivec
memcpyaltivec
"
AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
[ac_cv_mmx_inline],
...
...
@@ -435,6 +435,7 @@ if test x"$ac_cv_altivec_inline" != x"no"; then
if test x"$ac_cv_altivec_inline" != x"yes"; then
CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_altivec_inline"
CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_altivec_inline"
CFLAGS_MEMCPYALTIVEC="$CFLAGS_MEMCPYALTIVEC $ac_cv_altivec_inline"
CFLAGS_VLC="$CFLAGS_VLC $ac_cv_altivec_inline"
fi
ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
...
...
@@ -460,7 +461,7 @@ if test x"$ac_cv_c_altivec" != x"no"; then
CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_c_altivec"
CFLAGS_MEMCPYALTIVEC="$CFLAGS_MEMCPYALTIVEC $ac_cv_c_altivec"
CFLAGS_VLC="$CFLAGS_VLC $ac_cv_c_altivec"
ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}
memcpyaltivec
"
ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
fi
AC_CACHE_CHECK([if linker needs -framework vecLib],
...
...
include/defs.h.in
View file @
054b90aa
/* include/defs.h.in. Generated automatically from configure.in by autoheader
2.13
. */
/* include/defs.h.in. Generated automatically from configure.in by autoheader. */
/* Define if using alloca.c. */
#undef C_ALLOCA
...
...
@@ -226,6 +226,9 @@
/* Define if you have the <linux/fb.h> header file. */
#undef HAVE_LINUX_FB_H
/* Define if you have the <linux/version.h> header file. */
#undef HAVE_LINUX_VERSION_H
/* Define if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
...
...
@@ -256,9 +259,6 @@
/* Define if you have the <pthread.h> header file. */
#undef HAVE_PTHREAD_H
/* Define if you have the <scsi/scsi_ioctl.h> header file. */
#undef HAVE_SCSI_SCSI_IOCTL_H
/* Define if you have the <soundcard.h> header file. */
#undef HAVE_SOUNDCARD_H
...
...
plugins/memcpy/memcpyaltivec.c
View file @
054b90aa
...
...
@@ -2,7 +2,7 @@
* memcpy.c : classic memcpy module
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: memcpyaltivec.c,v 1.
1 2002/04/03 22:36:50
massiot Exp $
* $Id: memcpyaltivec.c,v 1.
2 2002/04/04 22:08:05
massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
...
...
@@ -70,8 +70,8 @@ static void memcpy_getfunctions( function_list_t * p_function_list )
}
#else
# include <sys/types.h>
# define _M( toto ) toto
typedef
unsigned
long
size_t
;
#endif
/* __BUILD_ALTIVEC_ASM__ */
#if defined(CAN_COMPILE_C_ALTIVEC) || defined( __BUILD_ALTIVEC_ASM__ )
...
...
@@ -138,3 +138,86 @@ void * _M( fast_memcpy )(void * _to, const void * _from, size_t len)
}
#endif
#if !defined(CAN_COMPILE_C_ALTIVEC) && !defined(__BUILD_ALTIVEC_ASM__)
/*
* The asm code is generated with:
*
* gcc-2.95 -fvec -D__BUILD_ALTIVEC_ASM__ -O9 -fomit-frame-pointer -mregnames -S * memcpyaltivec.c
*
* sed 's/.L/._L/g' memcpyaltivec.s |
* awk '{args=""; len=split ($2, arg, ",");
* for (i=1; i<=len; i++) { a=arg[i]; if (i<len) a=a",";
* args = args sprintf ("%-6s", a) }
* printf ("\t\"\t%-16s%-24s\\n\"\n", $1, args) }' |
* unexpand -a
*/
void
*
_M
(
fast_memcpy
)(
void
*
_to
,
const
void
*
_from
,
size_t
len
)
{
asm
(
"
\n
"
" stwu %r1, -32(%r1)
\n
"
" mflr %r0
\n
"
" stw %r28, 16(%r1)
\n
"
" stw %r29, 20(%r1)
\n
"
" stw %r30, 24(%r1)
\n
"
" stw %r31, 28(%r1)
\n
"
" stw %r0, 36(%r1)
\n
"
" mr %r29, %r5
\n
"
" cmplwi %cr0, %r29, 16
\n
"
" mr %r28, %r3
\n
"
" mr %r31, %r4
\n
"
" bc 4, 1, ._L3
\n
"
" andi. %r30, %r28, 15
\n
"
" bc 12, 2, ._L4
\n
"
" subfic %r30, %r30, 16
\n
"
" mr %r5, %r30
\n
"
" crxor 6, 6, 6
\n
"
" bl memcpy
\n
"
" add %r31, %r31, %r30
\n
"
" subf %r29, %r30, %r29
\n
"
" add %r3, %r28, %r30
\n
"
" ._L4:
\n
"
" rlwinm. %r0, %r29, 0, 0, 27
\n
"
" bc 12, 2, ._L3
\n
"
" li %r9, 15
\n
"
" lvsl %v12, 0, %r31
\n
"
" lvx %v1, 0, %r31
\n
"
" lvx %v0, %r9, %r31
\n
"
" addi %r31, %r31, 16
\n
"
" vperm %v13, %v1, %v0, %v12
\n
"
" addi %r29, %r29, -16
\n
"
" ._L9:
\n
"
" addi %r29, %r29, -16
\n
"
" li %r9, 15
\n
"
" lvx %v1, 0, %r31
\n
"
" lvx %v0, %r9, %r31
\n
"
" rlwinm. %r0, %r29, 0, 0, 27
\n
"
" stvx %v13, 0, %r3
\n
"
" vperm %v13, %v1, %v0, %v12
\n
"
" addi %r31, %r31, 16
\n
"
" addi %r3, %r3, 16
\n
"
" bc 4, 2, ._L9
\n
"
" stvx %v13, 0, %r3
\n
"
" ._L3:
\n
"
" cmpwi %cr0, %r29, 0
\n
"
" bc 12, 2, ._L10
\n
"
" mr %r4, %r31
\n
"
" mr %r5, %r29
\n
"
" crxor 6, 6, 6
\n
"
" bl memcpy
\n
"
" ._L10:
\n
"
" mr %r3, %r28
\n
"
" lwz %r0, 36(%r1)
\n
"
" mtlr %r0
\n
"
" lwz %r28, 16(%r1)
\n
"
" lwz %r29, 20(%r1)
\n
"
" lwz %r30, 24(%r1)
\n
"
" lwz %r31, 28(%r1)
\n
"
" la %r1, 32(%r1)
\n
"
" blr
\n
"
);
}
#endif
src/interface/intf_eject.c
View file @
054b90aa
...
...
@@ -2,7 +2,7 @@
* intf_eject.c: CD/DVD-ROM ejection handling functions
*****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN
* $Id: intf_eject.c,v 1.
8 2002/04/04 05:08:05 sam
Exp $
* $Id: intf_eject.c,v 1.
9 2002/04/04 22:08:05 massiot
Exp $
*
* Author: Julien Blache <jb@technologeek.org> for the Linux part
* with code taken from the Linux "eject" command
...
...
@@ -41,7 +41,7 @@
# include <dvd.h>
#endif
#if
def SYS_LINUX
#if
defined(SYS_LINUX) && defined(HAVE_LINUX_VERSION_H)
# include <linux/version.h>
/* handy macro found in 2.1 kernels, but not in older ones */
# ifndef KERNEL_VERSION
...
...
@@ -60,17 +60,15 @@
# include <linux/ucdrom.h>
# endif
# ifdef HAVE_SCSI_SCSI_IOCTL_H
# include <scsi/scsi.h>
# include <scsi/sg.h>
# include <scsi/scsi_ioctl.h>
# endif
# include <scsi/scsi.h>
# include <scsi/sg.h>
# include <scsi/scsi_ioctl.h>
#endif
/*****************************************************************************
* Local prototypes
*****************************************************************************/
#if defined(SYS_LINUX) && defined(HAVE_
SCSI_SCSI_IOCTL
_H)
#if defined(SYS_LINUX) && defined(HAVE_
LINUX_VERSION
_H)
static
int
EjectSCSI
(
int
i_fd
);
#endif
...
...
@@ -141,16 +139,14 @@ int intf_Eject( const char *psz_device )
return
1
;
}
#if
def SYS_LINUX
#if
defined(SYS_LINUX) && defined(HAVE_LINUX_VERSION_H)
/* Try a simple ATAPI eject */
i_ret
=
ioctl
(
i_fd
,
CDROMEJECT
,
0
);
#ifdef HAVE_SCSI_SCSI_IOCTL_H
if
(
i_ret
!=
0
)
{
i_ret
=
EjectSCSI
(
i_fd
);
}
#endif
if
(
i_ret
!=
0
)
{
...
...
@@ -172,7 +168,7 @@ int intf_Eject( const char *psz_device )
/* The following functions are local */
#if defined(SYS_LINUX) && defined(HAVE_
SCSI_SCSI_IOCTL
_H)
#if defined(SYS_LINUX) && defined(HAVE_
LINUX_VERSION
_H)
/*****************************************************************************
* Eject using SCSI commands. Return 0 if successful
*****************************************************************************/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment