about summary refs log tree commit diff
path: root/src/internal
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-11-14 14:01:39 -0500
committerRich Felker <dalias@aerifal.cx>2012-11-14 14:01:39 -0500
commitc6d441e3a246370d9c459396ec22b096db93850e (patch)
treefa3d4a4ca03531ceab9e60abb50e37780fce60ed /src/internal
parentc4a35f8c2a4b1a7e62a4b9e5b2748fb4fbcace79 (diff)
parent1c8eb8bad791fe9d01d0d4ab77882db634fa933d (diff)
downloadmusl-c6d441e3a246370d9c459396ec22b096db93850e.tar.gz
musl-c6d441e3a246370d9c459396ec22b096db93850e.tar.xz
musl-c6d441e3a246370d9c459396ec22b096db93850e.zip
Merge remote-tracking branch 'ppc-port/ppc-squashed'
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/powerpc/syscall.s18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/internal/powerpc/syscall.s b/src/internal/powerpc/syscall.s
new file mode 100644
index 00000000..bca620db
--- /dev/null
+++ b/src/internal/powerpc/syscall.s
@@ -0,0 +1,18 @@
+	.global __syscall
+	.type   __syscall,@function
+__syscall:
+	mr      0, 3                  # Save the system call number
+	mr      3, 4                  # Shift the arguments: arg1
+	mr      4, 5                  # arg2
+	mr      5, 6                  # arg3
+	mr      6, 7                  # arg4
+	mr      7, 8                  # arg5
+	mr      8, 9                  # arg6
+	sc
+	bnslr+ # return if not summary overflow
+	#else error:
+	# return negated value.
+	neg 3, 3
+	blr
+	.end    __syscall
+	.size   __syscall, .-__syscall