summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/ppc/unified.S
diff options
context:
space:
mode:
authorMystery Man <unknown@mandriva.org>2003-08-20 07:37:27 +0000
committerMystery Man <unknown@mandriva.org>2003-08-20 07:37:27 +0000
commit7f2ac73888b8ef372ea597049981b27e7d810ac2 (patch)
tree354132889b63bbe5f446cb82869b3c3367135a80 /mdk-stage1/dietlibc/ppc/unified.S
parent327bd24f8e4291bd1882de1990dd7339f781a9cb (diff)
downloaddrakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.tar
drakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.tar.gz
drakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.tar.bz2
drakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.tar.xz
drakx-7f2ac73888b8ef372ea597049981b27e7d810ac2.zip
This commit was manufactured by cvs2svn to create branch 'MDKC_1_0'.topic/MDKC_1_0
Diffstat (limited to 'mdk-stage1/dietlibc/ppc/unified.S')
-rw-r--r--mdk-stage1/dietlibc/ppc/unified.S37
1 files changed, 28 insertions, 9 deletions
diff --git a/mdk-stage1/dietlibc/ppc/unified.S b/mdk-stage1/dietlibc/ppc/unified.S
index d2b419f0b..eb136a96b 100644
--- a/mdk-stage1/dietlibc/ppc/unified.S
+++ b/mdk-stage1/dietlibc/ppc/unified.S
@@ -1,21 +1,40 @@
#include <dietfeatures.h>
+#include "syscalls.h"
.text
+.type exit,@function
+.weak exit
+exit:
+.type _exit,@function
+.global _exit
+_exit:
+ li 0,__NR_exit
.global __unified_syscall
__unified_syscall:
sc
- mfcr 0
- andis. 9,0,4096
- mr 0,3
- beq .L1
-#ifdef WANT_THREAD_SAVE
- bl __set_errno
+ bnslr+
+
+.global error_unified_syscall
+error_unified_syscall:
+#ifdef WANT_THREAD_SAFE
+ stwu 1,-16(1)
+ mflr 0
+ stw 0,20(1)
+ stw 3,12(1)
+ bl __errno_location
+ lwz 0,12(1)
+ stw 0,0(3)
+ lwz 0,20(1)
+ mtlr 0
+ addi 1,1,16
#else
lis 9,errno@ha
stw 3,errno@l(9)
#endif
- li 0,-1
-.L1:
- mr 3,0
+ li 3,-1
+
+/* here we go and "reuse" the return for weak-void functions */
+#include "dietuglyweaks.h"
+
blr