aboutsummaryrefslogtreecommitdiff
path: root/src/internal/sh
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2019-04-10 20:11:19 -0400
committerRich Felker <dalias@aerifal.cx>2019-04-10 20:11:19 -0400
commit788d5e24ca19c6291cebd8d1ad5b5ed6abf42665 (patch)
tree1ae614424b48069950baec8ae09699d750fe3414 /src/internal/sh
parent1bcdaeee6e659f1d856717c9aa562a068f2f3bd4 (diff)
downloadmusl-788d5e24ca19c6291cebd8d1ad5b5ed6abf42665.zip
musl-788d5e24ca19c6291cebd8d1ad5b5ed6abf42665.tar.gz
musl-788d5e24ca19c6291cebd8d1ad5b5ed6abf42665.tar.bz2
remove external __syscall function and last remaining users
the weak version of __syscall_cp_c was using a tail call to __syscall to avoid duplicating the 6-argument syscall code inline in small static-linked programs, but now that __syscall no longer exists, the inline expansion is no longer duplication. the syscall.h machinery suppported up to 7 syscall arguments, only via an external __syscall function, but we presently have no syscall call points that actually make use of that many, and the kernel only defines 7-argument calling conventions for arm, powerpc (32-bit), and sh. if it turns out we need them in the future, they can easily be added.
Diffstat (limited to 'src/internal/sh')
-rw-r--r--src/internal/sh/syscall.s23
1 files changed, 0 insertions, 23 deletions
diff --git a/src/internal/sh/syscall.s b/src/internal/sh/syscall.s
deleted file mode 100644
index 331918a..0000000
--- a/src/internal/sh/syscall.s
+++ /dev/null
@@ -1,23 +0,0 @@
-.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