summaryrefslogtreecommitdiffstats
path: root/usr/klibc/arch/sparc64/syscall.S
diff options
context:
space:
mode:
Diffstat (limited to 'usr/klibc/arch/sparc64/syscall.S')
-rw-r--r--usr/klibc/arch/sparc64/syscall.S20
1 files changed, 20 insertions, 0 deletions
diff --git a/usr/klibc/arch/sparc64/syscall.S b/usr/klibc/arch/sparc64/syscall.S
new file mode 100644
index 0000000..c84c9ae
--- /dev/null
+++ b/usr/klibc/arch/sparc64/syscall.S
@@ -0,0 +1,20 @@
+/*
+ * arch/sparc64/syscall.S
+ *
+ * Common system-call stub; %g1 already set to syscall number
+ */
+
+#include <machine/asm.h>
+
+ .globl __syscall_common
+ .type __syscall_common,#function
+ .align 4
+__syscall_common:
+ t 0x6d
+ bcc %xcc, 1f
+ PIC_PROLOGUE(%g1,%g4)
+ SET(errno,%g1,%g4)
+ st %o0,[%g4]
+1:
+ retl
+ movcs %xcc, -1, %o0