]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/ppc/asm.S
Merge remote-tracking branch 'tjoppen/opatom_demuxing_and_seeking'
[ffmpeg] / libavcodec / ppc / asm.S
index 2706d6b1d8b7214856365649102e3f5cb2743421..bbbf8a4a66ffcfbf4fdaf62091e463769e990089 100644 (file)
@@ -44,10 +44,13 @@ X(\name):
 L(\name):
 .endm
 
-.macro movrel rd, sym
+.macro movrel rd, sym, gp
     ld      \rd, \sym@got(r2)
 .endm
 
+.macro get_got rd
+.endm
+
 #else /* ARCH_PPC64 */
 
 #define PTR  .int
@@ -65,19 +68,25 @@ X(\name):
 \name:
 .endm
 
-.macro movrel rd, sym
+.macro movrel rd, sym, gp
 #if CONFIG_PIC
-    bcl             20, 31, lab_pic_\@
-lab_pic_\@:
-    mflr    \rd
-    addis   \rd, \rd, (\sym - lab_pic_\@)@ha
-    addi    \rd, \rd, (\sym - lab_pic_\@)@l
+    lwz     \rd, \sym@got(\gp)
 #else
     lis     \rd, \sym@ha
     la      \rd, \sym@l(\rd)
 #endif
 .endm
 
+.macro get_got rd
+#if CONFIG_PIC
+    bcl     20, 31, .Lgot\@
+.Lgot\@:
+    mflr    \rd
+    addis   \rd, \rd, _GLOBAL_OFFSET_TABLE_ - .Lgot\@@ha
+    addi    \rd, \rd, _GLOBAL_OFFSET_TABLE_ - .Lgot\@@l
+#endif
+.endm
+
 #endif /* ARCH_PPC64 */
 
 #if HAVE_IBM_ASM