aboutsummaryrefslogtreecommitdiff
path: root/ports/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'ports/sysdeps')
-rw-r--r--ports/sysdeps/unix/sysv/linux/ia64/syscall.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/syscall.S b/ports/sysdeps/unix/sysv/linux/ia64/syscall.S
index 8bb77d2..4cd75b8 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/syscall.S
+++ b/ports/sysdeps/unix/sysv/linux/ia64/syscall.S
@@ -19,6 +19,10 @@
#include <sysdep.h>
ENTRY(syscall)
+ /* We are called like so:
+ {out0,out1,...,out6} registers -> {NR, arg1, ..., arg6}
+ Shift the register window so that {out1...out6} are available
+ in {out0...out5} like the kernel syscall handler expects. */
alloc r2=ar.pfs,1,0,8,0
mov r15=r32 /* syscall number */
break __BREAK_SYSCALL