1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-28 20:53:54 +02:00

pld instruction are used in libavcodec/armv4l/dsputil_arm_s.S which can be used

on armv4 that doesn't support this instruction. Futhermore pld is a nop on some
armv5 processor like arm926. Detect if pld is supported and have the
preprocessor remove it when it's not supported.
Fixes issue 393.
patch by matthieu castet, castet.matthieu free fr

Originally committed as revision 12569 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Matthieu Castet 2008-03-24 11:49:59 +00:00 committed by Diego Biurrun
parent 0e58bf670d
commit b4e806b2b9
2 changed files with 10 additions and 0 deletions

3
configure vendored
View File

@ -748,6 +748,7 @@ HAVE_LIST="
memalign
mkstemp
mlib
pld
ppc64
round
roundf
@ -1561,6 +1562,8 @@ int main(void) {
EOF
fi
# We have to check if pld is a nop and disable it.
enabled armv4l && check_asm pld '"pld [r0]"'
enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"'
enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"'
enabled iwmmxt && check_asm iwmmxt '"wunpckelub wr6, wr4"'

View File

@ -19,6 +19,13 @@
@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
@
#include "config.h"
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
.macro ADJ_ALIGN_QUADWORD_D shift, Rd0, Rd1, Rd2, Rd3, Rn0, Rn1, Rn2, Rn3, Rn4
mov \Rd0, \Rn0, lsr #(\shift * 8)
mov \Rd1, \Rn1, lsr #(\shift * 8)