[SCM] libav/experimental: PPC: add some asm support macros

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:10:20 UTC 2013


The following commit has been merged in the experimental branch:
commit fe3d2e4b02155d67805f3d3cf54231278d56719c
Author: Måns Rullgård <mans at mansr.com>
Date:   Sun Jul 4 18:33:40 2010 +0000

    PPC: add some asm support macros
    
    Originally committed as revision 24042 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/ppc/asm.S b/libavcodec/ppc/asm.S
index abf63b1..e372d53 100644
--- a/libavcodec/ppc/asm.S
+++ b/libavcodec/ppc/asm.S
@@ -20,6 +20,62 @@
 
 #include "config.h"
 
+#define GLUE(a, b) a ## b
+#define JOIN(a, b) GLUE(a, b)
+#define X(s) JOIN(EXTERN_ASM, s)
+
+#if ARCH_PPC64
+
+#define PTR  .quad
+#define lp   ld
+#define lpx  ldx
+#define stp  std
+#define stpu stdu
+#define PS   8
+#define L(s) JOIN(., s)
+
+.macro extfunc name
+    .global X(\name)
+    .section .opd, "aw"
+X(\name):
+    .quad L(\name), .TOC. at tocbase, 0
+    .previous
+    .type X(\name), STT_FUNC
+L(\name):
+.endm
+
+.macro movrel rd, sym
+    ld      \rd, \sym at got(r2)
+.endm
+
+#else /* ARCH_PPC64 */
+
+#define PTR  .int
+#define lp   lwz
+#define lpx  lwzx
+#define stp  stw
+#define stpu stwu
+#define PS   4
+#define L(s) s
+
+.macro extfunc name
+    .global X(\name)
+    .type   X(\name), STT_FUNC
+X(\name):
+\name:
+.endm
+
+.macro movrel rd, sym
+#if CONFIG_PIC
+    lwz     \rd, \sym at got(r2)
+#else
+    lis     \rd, \sym at ha
+    la      \rd, \sym at l(\rd)
+#endif
+.endm
+
+#endif /* ARCH_PPC64 */
+
 #if HAVE_IBM_ASM
 
 .macro DEFINE_REG n

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list