diff options
Diffstat (limited to 'mdk-stage1/dietlibc/sparc/unified.S')
-rw-r--r-- | mdk-stage1/dietlibc/sparc/unified.S | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/sparc/unified.S b/mdk-stage1/dietlibc/sparc/unified.S new file mode 100644 index 000000000..53b1612a9 --- /dev/null +++ b/mdk-stage1/dietlibc/sparc/unified.S @@ -0,0 +1,28 @@ +#include <dietfeatures.h> + +.text +.global __unified_syscall +__unified_syscall: + ta 0x10 + + bcc 1f + save %sp, -104, %sp + + neg %i0, %i0 +1: + add %i0, 0xff, %l2 + cmp %l2, 0xfe + bgu 2f + neg %i0, %l3 +#ifdef WANT_THREAD_SAVE + call __errno_location + nop +#else + sethi %hi(errno), %o0 + or %o0, %lo(errno), %o0 +#endif + st %l3, [ %o0 ] + mov -1, %o0 +2: + ret + restore |