phunix/lib/libc/arch/or1k/sys/__syscall.S
Lionel Sambuc 0a6a1f1d05 NetBSD re-synchronization of the source tree
This brings our tree to NetBSD 7.0, as found on -current on the
10-10-2015.

This updates:
 - LLVM to 3.6.1
 - GCC to GCC 5.1
 - Replace minix/commands/zdump with usr.bin/zdump
 - external/bsd/libelf has moved to /external/bsd/elftoolchain/
 - Import ctwm
 - Drop sprintf from libminc

Change-Id: I149836ac18e9326be9353958bab9b266efb056f0
2016-01-13 20:32:14 +01:00

25 lines
549 B
ArmAsm

/* $NetBSD: __syscall.S,v 1.1 2014/09/03 19:34:26 matt Exp $ */
#include <machine/asm.h>
ENTRY(__syscall)
l.or r13,r3,r0 /* syscall number */
l.or r3,r4,r0
l.or r4,r5,r0
l.or r5,r6,r0
l.or r6,r7,r0
l.or r7,r8,r0
// at most 5 arguments can be passed via registers so the others
// must be on the stack.
l.lwz r8,0(r1)
l.lwz r11,4(r1) /* use return value regs for last 2 */
l.lwz r12,8(r1) /* use return value regs for last 2 */
l.sys 0
l.bf _C_LABEL(__cerror)
l.nop
l.jr lr
l.nop
END(__syscall)
STRONG_ALIAS(syscall, __syscall)