summaryrefslogtreecommitdiff
path: root/ports/sysdeps/m68k
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2008-04-02 11:55:20 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2008-04-02 11:55:20 +0000
commit7c5d4001fb94aa2027530f79ac48918b15361a2b (patch)
tree2d07b83882bbb915c9c2e8f0f9097ee9f435b5fe /ports/sysdeps/m68k
parentb3f36e492255400533794538574910135da10b92 (diff)
downloadeglibc2-7c5d4001fb94aa2027530f79ac48918b15361a2b.tar.gz
Merge changes between r5678 and r5759 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@5760 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'ports/sysdeps/m68k')
-rw-r--r--ports/sysdeps/m68k/dl-machine.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/ports/sysdeps/m68k/dl-machine.h b/ports/sysdeps/m68k/dl-machine.h
index fad1ef9e0..08a439641 100644
--- a/ports/sysdeps/m68k/dl-machine.h
+++ b/ports/sysdeps/m68k/dl-machine.h
@@ -33,14 +33,16 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr)
}
-/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. This must be inlined in a function which
- uses global data. */
+/* Return the link-time address of _DYNAMIC.
+ This must be inlined in a function which uses global data. */
static inline Elf32_Addr
elf_machine_dynamic (void)
{
- register Elf32_Addr *got asm ("%a5");
- return *got;
+ Elf32_Addr addr;
+
+ asm ("move.l _DYNAMIC@GOT.w(%%a5), %0"
+ : "=a" (addr));
+ return addr;
}