diff options
Diffstat (limited to 'libitm')
-rw-r--r-- | libitm/ChangeLog | 10 | ||||
-rw-r--r-- | libitm/config/powerpc/sjlj.S | 24 |
2 files changed, 33 insertions, 1 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 28f8a227f20..e6dc6468d19 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,13 @@ +2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + * config/powerpc/sjlj.S [__powerpc64__ && _CALL_ELF == 2]: + (FUNC): Define ELFv2 variant. + (END): Likewise. + (HIDDEN): Likewise. + (CALL): Likewise. + (BASE): Likewise. + (LR_SAVE): Likewise. + 2013-09-20 Alan Modra <amodra@gmail.com> * configure: Regenerate. diff --git a/libitm/config/powerpc/sjlj.S b/libitm/config/powerpc/sjlj.S index 1f4a100f943..4a0b43dbbbd 100644 --- a/libitm/config/powerpc/sjlj.S +++ b/libitm/config/powerpc/sjlj.S @@ -26,7 +26,26 @@ #include "asmcfi.h" -#if defined(__powerpc64__) && defined(__ELF__) +#if defined(__powerpc64__) && _CALL_ELF == 2 +.macro FUNC name + .globl \name + .type \name, @function +\name: +0: addis 2,12,(.TOC.-0b)@ha + addi 2,2,(.TOC.-0b)@l + .localentry \name, . - \name +.endm +.macro END name + .size \name, . - \name +.endm +.macro HIDDEN name + .hidden \name +.endm +.macro CALL name + bl \name + nop +.endm +#elif defined(__powerpc64__) && defined(__ELF__) .macro FUNC name .globl \name, .\name .section ".opd","aw" @@ -117,6 +136,9 @@ _$0: #if defined(_CALL_AIXDESC) # define BASE 6*WS # define LR_SAVE 2*WS +#elif _CALL_ELF == 2 +# define BASE 6*WS +# define LR_SAVE 2*WS #elif defined(_CALL_SYSV) # define BASE 2*WS # define LR_SAVE 1*WS |