mirror of
https://github.com/mpv-player/mpv
synced 2024-12-24 15:52:25 +00:00
gcc2.95.x has no support for mvi instructions
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10489 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
1c7f242c96
commit
b4547c12fc
12
configure
vendored
12
configure
vendored
@ -919,6 +919,15 @@ EOF
|
|||||||
fi
|
fi
|
||||||
_mcpu="-mcpu=$proc"
|
_mcpu="-mcpu=$proc"
|
||||||
echores "$proc"
|
echores "$proc"
|
||||||
|
|
||||||
|
echocheck "MVI instruction support in GCC"
|
||||||
|
if test "$_cc_major" -ge "3"; then
|
||||||
|
_def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
|
||||||
|
echores "yes"
|
||||||
|
else
|
||||||
|
_def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
|
||||||
|
echores "no"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
mips)
|
mips)
|
||||||
@ -5788,6 +5797,9 @@ $_def_arch
|
|||||||
#define ARCH_ARM 1
|
#define ARCH_ARM 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* only gcc3 can compile mvi instructions */
|
||||||
|
$_def_gcc_mvi_support
|
||||||
|
|
||||||
/* Define this for Cygwin build for win32 */
|
/* Define this for Cygwin build for win32 */
|
||||||
$_def_confwin32
|
$_def_confwin32
|
||||||
|
|
||||||
|
@ -154,6 +154,7 @@ static inline uint32_t arch_accel (void)
|
|||||||
#ifdef ARCH_ALPHA
|
#ifdef ARCH_ALPHA
|
||||||
static inline uint32_t arch_accel (void)
|
static inline uint32_t arch_accel (void)
|
||||||
{
|
{
|
||||||
|
#ifdef CAN_COMPILE_ALPHA_MVI
|
||||||
uint64_t no_mvi;
|
uint64_t no_mvi;
|
||||||
|
|
||||||
asm volatile ("amask %1, %0"
|
asm volatile ("amask %1, %0"
|
||||||
@ -161,6 +162,9 @@ static inline uint32_t arch_accel (void)
|
|||||||
: "rI" (256)); /* AMASK_MVI */
|
: "rI" (256)); /* AMASK_MVI */
|
||||||
return no_mvi ? MPEG2_ACCEL_ALPHA : (MPEG2_ACCEL_ALPHA |
|
return no_mvi ? MPEG2_ACCEL_ALPHA : (MPEG2_ACCEL_ALPHA |
|
||||||
MPEG2_ACCEL_ALPHA_MVI);
|
MPEG2_ACCEL_ALPHA_MVI);
|
||||||
|
#else
|
||||||
|
return MPEG2_ACCEL_ALPHA;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif /* ARCH_ALPHA */
|
#endif /* ARCH_ALPHA */
|
||||||
#endif
|
#endif
|
||||||
|
@ -250,11 +250,14 @@ void mpeg2_idct_init (uint32_t accel)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef ARCH_ALPHA
|
#ifdef ARCH_ALPHA
|
||||||
|
#ifdef CAN_COMPILE_ALPHA_MVI
|
||||||
if (accel & MPEG2_ACCEL_ALPHA_MVI) {
|
if (accel & MPEG2_ACCEL_ALPHA_MVI) {
|
||||||
mpeg2_idct_copy = mpeg2_idct_copy_mvi;
|
mpeg2_idct_copy = mpeg2_idct_copy_mvi;
|
||||||
mpeg2_idct_add = mpeg2_idct_add_mvi;
|
mpeg2_idct_add = mpeg2_idct_add_mvi;
|
||||||
mpeg2_idct_alpha_init (0);
|
mpeg2_idct_alpha_init (0);
|
||||||
} else if (accel & MPEG2_ACCEL_ALPHA) {
|
} else
|
||||||
|
#endif
|
||||||
|
if (accel & MPEG2_ACCEL_ALPHA) {
|
||||||
mpeg2_idct_copy = mpeg2_idct_copy_alpha;
|
mpeg2_idct_copy = mpeg2_idct_copy_alpha;
|
||||||
mpeg2_idct_add = mpeg2_idct_add_alpha;
|
mpeg2_idct_add = mpeg2_idct_add_alpha;
|
||||||
mpeg2_idct_alpha_init (1);
|
mpeg2_idct_alpha_init (1);
|
||||||
|
@ -155,6 +155,7 @@ static inline void idct_col (int16_t * const block)
|
|||||||
block[8*7] = (a0 - b0) >> 17;
|
block[8*7] = (a0 - b0) >> 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CAN_COMPILE_ALPHA_MVI
|
||||||
void mpeg2_idct_copy_mvi (int16_t * block, uint8_t * dest, const int stride)
|
void mpeg2_idct_copy_mvi (int16_t * block, uint8_t * dest, const int stride)
|
||||||
{
|
{
|
||||||
uint64_t clampmask;
|
uint64_t clampmask;
|
||||||
@ -287,6 +288,7 @@ void mpeg2_idct_add_mvi (const int last, int16_t * block,
|
|||||||
stq (p7, dest + 7 * stride);
|
stq (p7, dest + 7 * stride);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void mpeg2_idct_copy_alpha (int16_t * block, uint8_t * dest, const int stride)
|
void mpeg2_idct_copy_alpha (int16_t * block, uint8_t * dest, const int stride)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user