[FFmpeg-devel] [PATCH]replace movw instruction in ac3dsp_armv6.S

Michael Niedermayer michaelni at gmx.at
Sat Apr 9 17:04:36 CEST 2011

On Sat, Apr 09, 2011 at 04:05:11PM +0800, pin xue wrote:
> AS      libavcodec/arm/ac3dsp_armv6.o
> ffmpeg-src/libavcodec/arm/ac3dsp_armv6.S: Assembler messages:
> ffmpeg-src/libavcodec/arm/ac3dsp_armv6.S:40: Error: selected processor
> does not support `movw r8,#0x1fe0'
> make[1]: *** [libavcodec/arm/ac3dsp_armv6.o] Error 1
> MOVW is ARMv7 way to load constant:
>    * movw, or move wide, will move a 16-bit constant into a register,
> implicitly zeroing the top 16 bits of the target register.
>    * movt, or move top, will move a 16-bit constant into the top half
> of a given register without altering the bottom 16 bits
> To load 32 bit constant, movw  lower16; movt upper16; is better than
> ldr if available, because:
> While this approach takes two instructions, it does not require any
> extra space to store the constant so both the movw/movt method and the
> ldr method will end up using the same amount of memory. Memory
> bandwidth is precious in and the movw/movt approach avoids an extra
> read on the data side, not to mention the read could have missed the
> cache.
> But here it is armv6 optimization, so that we have to use ldr.

thanks, applied


Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

He who knows, does not speak. He who speaks, does not know. -- Lao Tsu
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20110409/df842d24/attachment.asc>

More information about the ffmpeg-devel mailing list