summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/alpha/unified.S
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-01-04 20:04:45 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-01-04 20:04:45 +0000
commit02fec4701cee79f875c1d02b8b4aee09380dbcb8 (patch)
treef4f291aedbb2e60ee58351481858a8cd3ec80b6b /mdk-stage1/dietlibc/alpha/unified.S
parent9887fe04751edf39e8389f2c3ec3f020b5e1c17d (diff)
downloaddrakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.tar
drakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.tar.gz
drakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.tar.bz2
drakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.tar.xz
drakx-02fec4701cee79f875c1d02b8b4aee09380dbcb8.zip
integrate dietlibc/stdio per default for cdrom and disk only installs
Diffstat (limited to 'mdk-stage1/dietlibc/alpha/unified.S')
-rw-r--r--mdk-stage1/dietlibc/alpha/unified.S29
1 files changed, 29 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/alpha/unified.S b/mdk-stage1/dietlibc/alpha/unified.S
new file mode 100644
index 000000000..02a1c9bcd
--- /dev/null
+++ b/mdk-stage1/dietlibc/alpha/unified.S
@@ -0,0 +1,29 @@
+#include <dietfeatures.h>
+
+.global __unified_syscall
+__unified_syscall:
+ callsys
+ bne $19, .Lerror
+ ret $31, ($26), 0x01
+
+.Lerror:
+.global error_unified_syscall
+error_unified_syscall:
+#ifdef WANT_THREAD_SAVE
+ lda $sp, -16($sp) /* alloc 2 qwords on stack */
+ stq $26, 0($sp) /* save ra to stack */
+ stq $0, 8($sp) /* save v0 to stack */
+
+ jsr $26, __errno_location /* call __errno_location */
+
+ ldq $1, 8($sp) /* write old v0 to errno */
+ stl $1, 0($0)
+
+ lda $0, -1($31) /* new return value is -1 */
+ ldq $26, 0($sp) /* restore return address */
+ lda $sp, 16($sp) /* free 2 qwords on stack */
+#else
+ lda $1, errno
+ stl $0, 0($1)
+#endif
+ ret $31, ($26), 0x01 /* return */