about summary refs log tree commit diff
path: root/src/internal/mips/syscall.s
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/mips/syscall.s
parent1bcdaeee6e659f1d856717c9aa562a068f2f3bd4 (diff)
downloadmusl-788d5e24ca19c6291cebd8d1ad5b5ed6abf42665.tar.gz
musl-788d5e24ca19c6291cebd8d1ad5b5ed6abf42665.tar.xz
musl-788d5e24ca19c6291cebd8d1ad5b5ed6abf42665.zip
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/mips/syscall.s')
-rw-r--r--src/internal/mips/syscall.s26
1 files changed, 0 insertions, 26 deletions
diff --git a/src/internal/mips/syscall.s b/src/internal/mips/syscall.s
deleted file mode 100644
index 5d0def52..00000000
--- a/src/internal/mips/syscall.s
+++ /dev/null
@@ -1,26 +0,0 @@
-.set    noreorder
-
-.global __syscall
-.hidden __syscall
-.type   __syscall,@function
-__syscall:
-	move    $2, $4
-	move    $4, $5
-	move    $5, $6
-	move    $6, $7
-	lw      $7, 16($sp)
-	lw      $8, 20($sp)
-	lw      $9, 24($sp)
-	lw      $10,28($sp)
-	subu    $sp, $sp, 32
-	sw      $8, 16($sp)
-	sw      $9, 20($sp)
-	sw      $10,24($sp)
-	sw      $2 ,28($sp)
-	lw      $2, 28($sp)
-	syscall
-	beq     $7, $0, 1f
-	addu    $sp, $sp, 32
-	subu    $2, $0, $2
-1:	jr      $ra
-	nop