[Ffmpeg-devel] OSX Intel temporary fix.

Marco Manfredini mldb
Thu Aug 10 12:21:17 CEST 2006

Attached is a temporary fix for OSX Intel/as-1.38 users to support compilation 
of the MMX/SSE2 routines. Not meant for inclusion, because it makes a 
terrible mess :-)

Tested with mpeg2->(mpeg1,mov(mp4),dv) and mov->(mpeg1,mpeg2) transcoding on a 

cd ffmpeg
patch -p0 <darwin-old_as.patch

For the curious, the following has been done: 

- as-1.38 cannot assemble pshufw with long operands. Instances have been 
replaced with literals
example: .long 0x88C0700F /*pshufw $0b10001000,%%mm0,%%mm0 */

- ".balign X" a macro to ".align 8" (That's sufficient) 
- macros rewritten to old macro syntax
- \nop to xnop macro
- two instances of psrad %3 replaced by the actual value of %3 ($17), because 
the macro processor would generate invalid code instead. (I admit that 
replacing the macros with CPP macros would have been a better idea)
- I had to replace "movdqa %%xmm1, \\i(%4)" with "movdqu", because the "out" 
parameter given to asm was not properly 16 byte aligned (could somebody look 
that up? "out" is actually the "block" parameter from "ff_fdct_sse2(int16_t 


For the discussion about the how to change the assembly routines to support 
Apple's stone-age 1.38 assembler, I'd join in insofar as I don't believe that 
it isn't worth it and the mess it would generate. The thing sucks totally, 
doesn't even support the SSEx opcodes right and it will cheat you when you 
don't look at it. I'd rather cross fingers that Apple upgrades this thing for 
its upcoming XCode 3.0 release. 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: darwin-old_as.patch
Type: text/x-diff
Size: 14183 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20060810/99e8e29d/attachment.patch>

More information about the ffmpeg-devel mailing list