summaryrefslogtreecommitdiff
path: root/ldso/ldso/sh
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2005-03-17 17:14:06 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2005-03-17 17:14:06 +0000
commit2331c7f052ef946d357037e694430a2f473e7af5 (patch)
tree25f311c14b0dfc3d90bfa1cfd0a452f8a7569432 /ldso/ldso/sh
parentfde774dc47375abbad649b5de91b8e96dcc014a8 (diff)
General arch cleanup and prepare support for standalone
execution of ldso. Added new asm for MIPS to be tested. All arches should retest.
Diffstat (limited to 'ldso/ldso/sh')
-rw-r--r--ldso/ldso/sh/dl-startup.h31
-rw-r--r--ldso/ldso/sh/dl-sysdep.h4
2 files changed, 17 insertions, 18 deletions
diff --git a/ldso/ldso/sh/dl-startup.h b/ldso/ldso/sh/dl-startup.h
index 429c0e6eb..d669b4d2a 100644
--- a/ldso/ldso/sh/dl-startup.h
+++ b/ldso/ldso/sh/dl-startup.h
@@ -2,24 +2,23 @@
* will work as expected and cope with whatever platform specific wierdness is
* needed for this architecture. */
-asm("" \
-" .text\n" \
-" .globl _dl_boot\n" \
-"_dl_boot:\n" \
-" mov r15, r4\n" \
-" mov.l .L_dl_boot2, r0\n" \
-" bsrf r0\n" \
-" add #4, r4\n" \
-".jmp_loc:\n" \
-" jmp @r0\n" \
-" mov #0, r4 !call _start with arg == 0\n" \
-".L_dl_boot2:\n" \
-" .long _dl_boot2-.jmp_loc\n" \
-" .previous\n" \
+asm(
+ " .globl _start\n"
+ " .type _start,@function\n"
+ "_start:\n"
+ " mov r15, r4\n"
+ " mov.l .L_dl_start, r0\n"
+ " bsrf r0\n"
+ " add #4, r4\n"
+ ".jmp_loc:\n"
+ " jmp @r0\n"
+ " mov #0, r4 !call _start with arg == 0\n"
+ ".L_dl_start:\n"
+ " .long _dl_start-.jmp_loc\n"
+ " .size _start,.-_start\n"
+ " .previous\n"
);
-#define DL_BOOT(X) static void* __attribute_used__ _dl_boot2 (X)
-
/*
* Get a pointer to the argv array. On many platforms this can be just
* the address if the first argument, on other platforms we need to
diff --git a/ldso/ldso/sh/dl-sysdep.h b/ldso/ldso/sh/dl-sysdep.h
index b332cc1ac..0234fb7bf 100644
--- a/ldso/ldso/sh/dl-sysdep.h
+++ b/ldso/ldso/sh/dl-sysdep.h
@@ -120,8 +120,8 @@ elf_machine_load_address (void)
bra 2f\n\
sub r0,r2\n\
.align 2\n\
- 1: .long _dl_boot@GOT\n\
- 3: .long _dl_boot@GOTOFF\n\
+ 1: .long _dl_start@GOT\n\
+ 3: .long _dl_start@GOTOFF\n\
2: mov r2,%0"
: "=r" (addr) : : "r0", "r1", "r2");
return addr;