Add #ifdef __APPLE__ to wrap around non-standard assembly code to make it compatible with old platform.
Is it ok for trunk? Thanks! --- libavcodec/ppc/asm.S | 4 ++++ libavcodec/ppc/fft_altivec.S | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/libavcodec/ppc/asm.S b/libavcodec/ppc/asm.S index 700aa0d..baf68b0 100644 --- a/libavcodec/ppc/asm.S +++ b/libavcodec/ppc/asm.S @@ -53,7 +53,11 @@ L(\name): .endm .macro movrel rd, sym, gp +#ifdef __APPLE__ + ld \rd, \sym@got(r2) +#else ld \rd, \sym@got(2) +#endif .endm .macro get_got rd diff --git a/libavcodec/ppc/fft_altivec.S b/libavcodec/ppc/fft_altivec.S index e0149a4..a6e144d 100644 --- a/libavcodec/ppc/fft_altivec.S +++ b/libavcodec/ppc/fft_altivec.S @@ -354,14 +354,24 @@ fft_data: .macro fft_calc interleave extfunc ff_fft_calc\interleave\()_altivec mflr r0 +#ifdef __APPLE__ + stp r0, 2*PS(r1) + stpu r1, -(160+16*PS)(r1) +#else stp r0, 2*PS(1) stpu r1, -(160+16*PS)(1) +#endif get_got r11 addi r6, r1, 16*PS stvm r6, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29 mfvrsave r0 +#ifdef __APPLE__ + stw r0, 15*PS(r1) + li r6, 0xfffffffc +#else stw r0, 15*PS(1) li r6, -4 #0xfffffffc +#endif mtvrsave r6 movrel r6, fft_data, r11 @@ -372,7 +382,11 @@ extfunc ff_fft_calc\interleave\()_altivec movrel r12, X(ff_cos_tabs), r11 movrel r6, fft_dispatch_tab\interleave\()_altivec, r11 +#ifdef __APPLE__ + lwz r3, 0(r3) +#else lwz r3, 0(3) +#endif subi r3, r3, 2 slwi r3, r3, 2+ARCH_PPC64 lpx r3, r3, r6 @@ -382,10 +396,19 @@ extfunc ff_fft_calc\interleave\()_altivec addi r6, r1, 16*PS lvm r6, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29 +#ifdef __APPLE__ + lwz r6, 15*PS(r1) +#else lwz r6, 15*PS(1) +#endif mtvrsave r6 +#ifdef __APPLE__ + lp r1, 0(r1) + lp r0, 2*PS(r1) +#else lp r1, 0(1) lp r0, 2*PS(1) +#endif mtlr r0 blr .endm @@ -393,15 +416,24 @@ extfunc ff_fft_calc\interleave\()_altivec .macro DECL_FFT suffix, bits, n, n2, n4 fft\n\suffix\()_altivec: mflr r0 +#ifdef __APPLE__ + stp r0,PS*(\bits-3)(r1) +#else stp r0,PS*(\bits-3)(1) +#endif bl fft\n2\()_altivec addi2 r3,\n*4 bl fft\n4\()_altivec addi2 r3,\n*2 bl fft\n4\()_altivec addi2 r3,\n*-6 +#ifdef __APPLE__ + lp r0,PS*(\bits-3)(r1) + lp r4,\bits*PS(r12) +#else lp r0,PS*(\bits-3)(1) lp r4,\bits*PS(12) +#endif mtlr r0 li r5,\n/16 b fft_pass\suffix\()_altivec -- 2.8.0.rc3.226.g39d4020 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel