From 2331c7f052ef946d357037e694430a2f473e7af5 Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Thu, 17 Mar 2005 17:14:06 +0000 Subject: General arch cleanup and prepare support for standalone execution of ldso. Added new asm for MIPS to be tested. All arches should retest. --- ldso/ldso/sh/dl-startup.h | 31 +++++++++++++++---------------- ldso/ldso/sh/dl-sysdep.h | 4 ++-- 2 files changed, 17 insertions(+), 18 deletions(-) (limited to 'ldso/ldso/sh') 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; -- cgit v1.2.3