diff options
author | Richard Henderson <rth@redhat.com> | 2004-03-13 05:29:24 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 2004-03-13 05:29:24 +0000 |
commit | 841153fa02afb1e115bfc3dd504c2ee7354c1f56 (patch) | |
tree | 2496b24cb7677359159eda40dcf26a3c97ac2c72 /nptl/sysdeps/unix/sysv/linux/alpha | |
parent | f4089ca1d62c68c980d36147b220261bd9e22ae5 (diff) | |
download | glibc-841153fa02afb1e115bfc3dd504c2ee7354c1f56.tar.gz glibc-841153fa02afb1e115bfc3dd504c2ee7354c1f56.tar.xz glibc-841153fa02afb1e115bfc3dd504c2ee7354c1f56.zip |
* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate oldvalue from CENABLE to CDISABLE.
2004-03-12 Richard Henderson <rth@redhat.com> * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate oldvalue from CENABLE to CDISABLE.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/alpha')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h index 3b08b22c1a..794d7fc442 100644 --- a/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h +++ b/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h @@ -63,9 +63,14 @@ __LABEL($pseudo_cancel) \ SAVE_ARGS_##args; \ CENABLE; \ LOAD_ARGS_##args; \ + /* Save the CENABLE return value in RA. That register \ + is preserved across syscall and the real return \ + address is saved on the stack. */ \ + mov v0, ra; \ lda v0, SYS_ify(syscall_name); \ call_pal PAL_callsys; \ stq v0, 8(sp); \ + mov ra, a0; \ bne a3, $multi_error; \ CDISABLE; \ ldq ra, 0(sp); \ |