Don't use jmp macro to make sure the stack frame is released the very
instruction before the real jump out.
This commit is contained in:
parent
91650f79e3
commit
9aa1421fe0
@ -73,8 +73,9 @@ $ok: stq a0, __curbrk
|
|||||||
|
|
||||||
/* What a horrible way to die. */
|
/* What a horrible way to die. */
|
||||||
$err0: ldi v0, ENOMEM
|
$err0: ldi v0, ENOMEM
|
||||||
$err1: addq sp, 8, sp
|
$err1: lda pv, __syscall_error
|
||||||
jmp zero, __syscall_error
|
addq sp, 8, sp
|
||||||
|
jmp zero, (pv), __syscall_error
|
||||||
|
|
||||||
END(__brk)
|
END(__brk)
|
||||||
|
|
||||||
|
@ -41,18 +41,20 @@ LEAF(__ieee_get_fp_control, 16)
|
|||||||
ldi a0, GSI_IEEE_FP_CONTROL
|
ldi a0, GSI_IEEE_FP_CONTROL
|
||||||
ldi v0, __NR_osf_getsysinfo
|
ldi v0, __NR_osf_getsysinfo
|
||||||
call_pal PAL_callsys
|
call_pal PAL_callsys
|
||||||
bne a3, error
|
bne a3, $error
|
||||||
|
|
||||||
ldq v0, 0(sp)
|
ldq v0, 0(sp)
|
||||||
lda sp, 16(sp)
|
lda sp, 16(sp)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
error: lda sp, 16(sp)
|
$error:
|
||||||
#ifndef PROF
|
#ifndef PROF
|
||||||
br gp, 1f
|
br gp, 1f
|
||||||
1: ldgp gp, 0(gp)
|
1: ldgp gp, 0(gp)
|
||||||
#endif
|
#endif
|
||||||
jmp zero, __syscall_error
|
lda pv, __syscall_error
|
||||||
|
lda sp, 16(sp)
|
||||||
|
jmp zero, (pv), __syscall_error
|
||||||
|
|
||||||
END(__ieee_get_fp_control)
|
END(__ieee_get_fp_control)
|
||||||
|
|
||||||
|
@ -41,17 +41,19 @@ LEAF(__ieee_set_fp_control, 16)
|
|||||||
ldi v0, __NR_osf_setsysinfo
|
ldi v0, __NR_osf_setsysinfo
|
||||||
call_pal PAL_callsys
|
call_pal PAL_callsys
|
||||||
|
|
||||||
lda sp, 16(sp)
|
bne a3, $error
|
||||||
|
|
||||||
bne a3, error
|
lda sp, 16(sp)
|
||||||
ret
|
ret
|
||||||
|
|
||||||
error:
|
$error:
|
||||||
#ifndef PROF
|
#ifndef PROF
|
||||||
br gp, 1f
|
br gp, 1f
|
||||||
1: ldgp gp, 0(gp)
|
1: ldgp gp, 0(gp)
|
||||||
#endif
|
#endif
|
||||||
jmp zero, __syscall_error
|
lda pv, __syscall_error
|
||||||
|
lda sp, 16(sp)
|
||||||
|
jmp zero, (pv), __syscall_error
|
||||||
|
|
||||||
END(__ieee_set_fp_control)
|
END(__ieee_set_fp_control)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user