Index: fusl/src/internal/powerpc/syscall.s |
diff --git a/fusl/src/internal/powerpc/syscall.s b/fusl/src/internal/powerpc/syscall.s |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5b16b8f20cbcde33fc9180291af2a5876130255c |
--- /dev/null |
+++ b/fusl/src/internal/powerpc/syscall.s |
@@ -0,0 +1,19 @@ |
+ .global __syscall |
+ .hidden __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 |