diff options
author | Eric Andersen <andersen@codepoet.org> | 2002-11-08 02:18:16 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2002-11-08 02:18:16 +0000 |
commit | 92e03da6a446faa5ad8946fc90794e918db90454 (patch) | |
tree | a79cd864f60b5153ea6ec8880a4e2761e28cc9f6 /ldso/ldso/sh/resolve.S | |
parent | 8d6489ff23a5649c5ffdfcea7ad466cc82752de6 (diff) |
Another SuperH patch from Stefan Allius. This make it so
the SuperH lib loader can be compiled by GCC 3.3
Diffstat (limited to 'ldso/ldso/sh/resolve.S')
-rw-r--r-- | ldso/ldso/sh/resolve.S | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ldso/ldso/sh/resolve.S b/ldso/ldso/sh/resolve.S index f3eac9b32..1d3bc5cdc 100644 --- a/ldso/ldso/sh/resolve.S +++ b/ldso/ldso/sh/resolve.S @@ -49,10 +49,14 @@ _dl_linux_resolve: mov r2, r0 ! link map address in r2 (SH PIC ABI) 1: mov r0, r4 ! link map address in r0 (GNUs PLT) + mova .LG, r0 + mov.l .LG, r5 + add r5, r0 mov.l 3f, r5 - bsrf r5 - mov r1, r5 ! Reloc offset -.jmp_loc: + mov.l @(r0, r5),r5 + jsr @r5 + mov r1, r5 ! Reloc offset + lds.l @r15+, pr ! Get register content back #ifdef HAVE_FPU @@ -78,7 +82,10 @@ _dl_linux_resolve: mov.l @r15+, r3 .balign 4 + 3: - .long _dl_linux_resolver@PLT-(.jmp_loc-(.)) + .long _dl_linux_resolver@GOT +.LG: + .long _GLOBAL_OFFSET_TABLE_ .size _dl_linux_resolve, . - _dl_linux_resolve |