On Saturday, September 24, 2011, Måns Rullgård <[email protected]> wrote:
> Mans Rullgard <[email protected]> writes:
>
>> On 32-bit ppc, the GOT pointer must be loaded manually.
>> This adds a "get_got" assembler macro to compute the
>> GOT address.  The "movrel" macro is updated to take an
>> additional parameter containing the GOT address since
>> no registers is reserved for this purpose on ppc32.
>> These changes have no effect on ppc64 builds.
>>
>> Signed-off-by: Mans Rullgard <[email protected]>
>> ---
>>  libavcodec/ppc/asm.S           |   17 ++++++++++++++---
>>  libavcodec/ppc/fft_altivec_s.S |    7 ++++---
>>  2 files changed, 18 insertions(+), 6 deletions(-)
>>
>> +.macro get_got rd
>> +    bcl     20, 31, .Lgot\@
>> +.Lgot\@:
>> +    mflr    \rd
>> +    addis   \rd, \rd, _GLOBAL_OFFSET_TABLE_ - .Lgot\@@ha
>> +    addi    \rd, \rd, _GLOBAL_OFFSET_TABLE_ - .Lgot\@@l
>> +.endm
>
> Come to think of it, this should probably be made conditional on PIC.
> Simply making the macro a no-op in non-PIC mode will of course work,
> since the only uses of the value it computes use the same condition.
> It is, however, slightly fragile, should someone need the GOT value for
> something else at some point.
>
> Opinions?
>

I guess the non-PIC ppc32 ABI doesn't have anything to say about this?

-- Sean
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to