| Index: fusl/src/internal/sh/syscall.s
|
| diff --git a/fusl/src/internal/sh/syscall.s b/fusl/src/internal/sh/syscall.s
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..331918a5aaddd0a673606dbb25c2c300d2a83cc7
|
| --- /dev/null
|
| +++ b/fusl/src/internal/sh/syscall.s
|
| @@ -0,0 +1,23 @@
|
| +.global __syscall
|
| +.hidden __syscall
|
| +.type __syscall, @function
|
| +__syscall:
|
| + ! The kernel syscall entry point documents that the trap number indicates
|
| + ! the number of arguments being passed, but it then ignores that information.
|
| + ! Since we do not actually know how many arguments are being passed, we will
|
| + ! say there are six, since that is the maximum we support here.
|
| + mov r4, r3
|
| + mov r5, r4
|
| + mov r6, r5
|
| + mov r7, r6
|
| + mov.l @r15, r7
|
| + mov.l @(4,r15), r0
|
| + mov.l @(8,r15), r1
|
| + trapa #31
|
| + or r0, r0
|
| + or r0, r0
|
| + or r0, r0
|
| + or r0, r0
|
| + or r0, r0
|
| + rts
|
| + nop
|
|
|