diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/alpha/elf/initfini.c | 117 |
1 files changed, 58 insertions, 59 deletions
diff --git a/sysdeps/alpha/elf/initfini.c b/sysdeps/alpha/elf/initfini.c index e1c0f1c..6c4d04b 100644 --- a/sysdeps/alpha/elf/initfini.c +++ b/sysdeps/alpha/elf/initfini.c @@ -1,5 +1,5 @@ /* Special .init and .fini section support for Alpha. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -37,62 +37,61 @@ files, all of which may have different GP values. So we must reload the GP value from crti.o in crtn.o. */ -__asm__ (" - -#include \"defs.h\" - -/*@HEADER_ENDS*/ - -/*@_init_PROLOG_BEGINS*/ - .section .init, \"ax\", @progbits - .globl _init - .ent _init -_init: - ldgp $29, 0($27) - subq $30, 16, $30 - lda $27, __gmon_start__ - stq $26, 0($30) - stq $29, 8($30) - .prologue 1 - beq $27, 1f - jsr $26, ($27), __gmon_start__ - ldq $29, 8($30) -1: - .align 3 - .end _init - .size _init, 0 -/*@_init_PROLOG_ENDS*/ - -/*@_init_EPILOG_BEGINS*/ - .section .init, \"ax\", @progbits - ldq $26, 0($30) - ldq $29, 8($30) - addq $30, 16, $30 - ret -/*@_init_EPILOG_ENDS*/ - -/*@_fini_PROLOG_BEGINS*/ - .section .fini, \"ax\", @progbits - .globl _fini - .ent _fini -_fini: - ldgp $29, 0($27) - subq $30, 16, $30 - stq $26, 0($30) - stq $29, 8($30) - .prologue 1 - .align 3 - .end _fini - .size _fini, 0 -/*@_fini_PROLOG_ENDS*/ - -/*@_fini_EPILOG_BEGINS*/ - .section .fini, \"ax\", @progbits - ldq $26, 0($30) - ldq $29, 8($30) - addq $30, 16, $30 - ret -/*@_fini_EPILOG_ENDS*/ - -/*@TRAILER_BEGINS*/ +__asm__ (" \n\ +#include \"defs.h\" \n\ + \n\ +/*@HEADER_ENDS*/ \n\ + \n\ +/*@_init_PROLOG_BEGINS*/ \n\ + .section .init, \"ax\", @progbits \n\ + .globl _init \n\ + .ent _init \n\ +_init: \n\ + ldgp $29, 0($27) \n\ + subq $30, 16, $30 \n\ + lda $27, __gmon_start__ \n\ + stq $26, 0($30) \n\ + stq $29, 8($30) \n\ + .prologue 1 \n\ + beq $27, 1f \n\ + jsr $26, ($27), __gmon_start__ \n\ + ldq $29, 8($30) \n\ + .align 3 \n\ +1: \n\ + .end _init \n\ + .size _init, 0 \n\ +/*@_init_PROLOG_ENDS*/ \n\ + \n\ +/*@_init_EPILOG_BEGINS*/ \n\ + .section .init, \"ax\", @progbits \n\ + ldq $26, 0($30) \n\ + ldq $29, 8($30) \n\ + addq $30, 16, $30 \n\ + ret \n\ +/*@_init_EPILOG_ENDS*/ \n\ + \n\ +/*@_fini_PROLOG_BEGINS*/ \n\ + .section .fini, \"ax\", @progbits \n\ + .globl _fini \n\ + .ent _fini \n\ +_fini: \n\ + ldgp $29, 0($27) \n\ + subq $30, 16, $30 \n\ + stq $26, 0($30) \n\ + stq $29, 8($30) \n\ + .prologue 1 \n\ + .align 3 \n\ + .end _fini \n\ + .size _fini, 0 \n\ +/*@_fini_PROLOG_ENDS*/ \n\ + \n\ +/*@_fini_EPILOG_BEGINS*/ \n\ + .section .fini, \"ax\", @progbits \n\ + ldq $26, 0($30) \n\ + ldq $29, 8($30) \n\ + addq $30, 16, $30 \n\ + ret \n\ +/*@_fini_EPILOG_ENDS*/ \n\ + \n\ +/*@TRAILER_BEGINS*/ \n\ "); |