[FFmpeg-devel] [PATCH]replace movw instruction in ac3dsp_armv6.S
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: *** [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
> But here it is armv6 optimization, so that we have to use ldr.
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
Size: 198 bytes
Desc: Digital signature
More information about the ffmpeg-devel