11.2Sthorpej/*	$NetBSD: __syscall.S,v 1.2 2020/04/18 23:55:51 thorpej Exp $	*/
21.1Smatt
31.1Smatt#include <machine/asm.h>
41.1Smatt
51.1SmattENTRY(__syscall)
61.1Smatt	l.or	r13,r3,r0		/* syscall number */
71.1Smatt	l.or	r3,r4,r0
81.1Smatt	l.or	r4,r5,r0
91.1Smatt	l.or	r5,r6,r0
101.1Smatt	l.or	r6,r7,r0
111.1Smatt	l.or	r7,r8,r0
121.1Smatt	// at most 5 arguments can be passed via registers so the others
131.1Smatt	// must be on the stack.
141.1Smatt	l.lwz	r8,0(r1)
151.1Smatt	l.lwz	r11,4(r1)		/* use return value regs for last 2 */
161.1Smatt	l.lwz	r12,8(r1)		/* use return value regs for last 2 */
171.1Smatt	l.sys	0
181.1Smatt	l.bf	_C_LABEL(__cerror)
191.1Smatt	l.nop
201.1Smatt	l.jr	lr
211.1Smatt	l.nop
221.1SmattEND(__syscall)
231.1Smatt
241.2SthorpejSTRONG_ALIAS(_syscall,__syscall)
251.2SthorpejWEAK_ALIAS(syscall,__syscall)
26