mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-01 23:40:22 +00:00
Really make egcs support.
This commit is contained in:
parent
48a0be2705
commit
2988b6bbfb
@ -2,28 +2,26 @@
|
||||
This is done in one of two ways: either in the stack context
|
||||
of program start, or having dlopen pass them in. */
|
||||
|
||||
#define SYSDEP_CALL_INIT(NAME, INIT) \
|
||||
asm(".weak _dl_starting_up\n\t" \
|
||||
".globl " #NAME "\n\t" \
|
||||
".ent " #NAME "\n" \
|
||||
#NAME ":\n\t" \
|
||||
"ldgp $29, 0($27)\n\t" \
|
||||
".prologue 1\n\t" \
|
||||
".set at\n\t" \
|
||||
/* Are we a dynamic libc being loaded into a static program? */ \
|
||||
"lda $0, _dl_starting_up\n\t" \
|
||||
"beq $0, 1f\n\t" \
|
||||
"ldl $0, 0($0)\n" \
|
||||
"cmpeq $31, $0, $0\n" \
|
||||
"1:\t" \
|
||||
"stl $0, __libc_multiple_libcs\n\t" \
|
||||
/* If so, argc et al are in a0-a2 already. Otherwise, load them. */ \
|
||||
"bne $0, 2f\n\t" \
|
||||
"ldl $16, 0($30)\n\t" \
|
||||
"lda $17, 8($30)\n\t" \
|
||||
"s8addq $16, $17, $18\n\t" \
|
||||
"addq $18, 8, $18\n" \
|
||||
"2:\t" \
|
||||
"br $31, " #INIT "..ng\n\t" \
|
||||
".set noat\n\t" \
|
||||
".end " #NAME);
|
||||
#define SYSDEP_CALL_INIT(NAME, INIT) asm("\
|
||||
.weak _dl_starting_up
|
||||
.globl " #NAME "
|
||||
.ent " #NAME "
|
||||
" #NAME ":
|
||||
ldgp $29, 0($27)
|
||||
.prologue 1
|
||||
.set at
|
||||
/* Are we a dynamic libc being loaded into a static program? */
|
||||
lda $0, _dl_starting_up
|
||||
beq $0, 1f
|
||||
ldl $0, 0($0)
|
||||
cmpeq $31, $0, $0
|
||||
1: stl $0, __libc_multiple_libcs
|
||||
/* If so, argc et al are in a0-a2 already. Otherwise, load them. */
|
||||
bne $0, 2f
|
||||
ldl $16, 0($30)
|
||||
lda $17, 8($30)
|
||||
s8addq $16, $17, $18
|
||||
addq $18, 8, $18
|
||||
2: br $31, " ASM_ALPHA_NG_SYMBOL_PREFIX #INIT "..ng
|
||||
.set noat
|
||||
.end " #NAME);
|
||||
|
Loading…
Reference in New Issue
Block a user