yann@1819: From 2911103dd4a03bbd3aad11eddfce524a5c9ba9b3 Mon Sep 17 00:00:00 2001 yann@1819: From: Khem Raj yann@1819: Date: Fri, 22 Jan 2010 13:00:20 +0100 yann@1819: Subject: [PATCH 03/15] Make use of macros from sys/asm.h in crt1.S yann@1819: yann@1819: Needed for mips nptl to boot once again. yann@1819: (cherry picked from commit 9c343fd4030dcd7a52616f365893177dded50346) yann@1819: yann@1819: Signed-off-by: Bernhard Reutner-Fischer yann@1819: --- yann@1819: libc/sysdeps/linux/mips/crt1.S | 46 +++++++++++---------------------------- yann@1819: 1 files changed, 13 insertions(+), 33 deletions(-) yann@1819: yann@1819: diff --git a/libc/sysdeps/linux/mips/crt1.S b/libc/sysdeps/linux/mips/crt1.S yann@1819: index e851d52..6a80412 100644 yann@1819: --- a/libc/sysdeps/linux/mips/crt1.S yann@1819: +++ b/libc/sysdeps/linux/mips/crt1.S yann@1819: @@ -85,29 +85,10 @@ yann@1819: yann@1819: __start: yann@1819: #ifdef __PIC__ yann@1819: -#if _MIPS_SIM == _MIPS_SIM_ABI32 yann@1819: - .frame sp, 24, sp yann@1819: - .set noreorder yann@1819: - move $0, $31 /* Save old ra. */ yann@1819: - bal 10f /* Find addr of cpload. */ yann@1819: - nop yann@1819: -10: yann@1819: - .cpload $31 yann@1819: - move $31, $0 yann@1819: - .set reorder yann@1819: - .cprestore 16 yann@1819: -#else yann@1819: - move $0, $31; /* Save old ra. */ yann@1819: - .set noreorder yann@1819: - bal 10f /* Find addr of .cpsetup. */ yann@1819: - nop yann@1819: -10: yann@1819: - .set reorder yann@1819: - .cpsetup $31, $25, 10b yann@1819: - move $31, $0 yann@1819: -#endif yann@1819: + SETUP_GPX($0) yann@1819: + SETUP_GPX64($25,$0) yann@1819: #else yann@1819: - la $28, _gp /* Setup GP correctly if we're non-PIC. */ yann@1819: + PTR_LA $28, _gp /* Setup GP correctly if we're non-PIC. */ yann@1819: move $31, $0 yann@1819: #endif yann@1819: yann@1819: @@ -118,18 +99,18 @@ __start: yann@1819: /* Allocate space on the stack for seven arguments and yann@1819: * make sure the stack is aligned to double words (8 bytes) */ yann@1819: yann@1819: + and $29, -2 * SZREG yann@1819: + yann@1819: #if _MIPS_SIM == _MIPS_SIM_ABI32 yann@1819: - and $29, -2 * 4 yann@1819: - subu $29, 32 yann@1819: - la $7, _init /* init */ yann@1819: - la $8, _fini yann@1819: - sw $8, 16($29) /* fini */ yann@1819: - sw $2, 20($29) /* rtld_fini */ yann@1819: - sw $29, 24($29) /* stack_end */ yann@1819: -#else yann@1819: - and $29, -2 * PTRSIZE yann@1819: + PTR_SUBIU $29, 32 yann@1819: +#endif yann@1819: PTR_LA $7, _init /* init */ yann@1819: - PTR_LA $8, _fini /* fini */ yann@1819: + PTR_LA $8, _fini yann@1819: +#if _MIPS_SIM == _MIPS_SIM_ABI32 yann@1819: + PTR_S $8, 16($29) /* fini */ yann@1819: + PTR_S $2, 20($29) /* rtld_fini */ yann@1819: + PTR_S $29, 24($29) /* stack_end */ yann@1819: +#else yann@1819: move $9, $2 /* rtld_fini */ yann@1819: move $10, $29 /* stack_end */ yann@1819: #endif yann@1819: @@ -148,4 +129,3 @@ __data_start: yann@1819: .weak data_start yann@1819: data_start = __data_start yann@1819: yann@1819: - yann@1819: -- yann@1819: 1.6.6.1 yann@1819: