/* * arch/sh/syscall.S * * On sh, r3 contains the syscall number (set by generated stub); * r4..r7 contain arguments 0-3 per the standard calling convention, * and arguments 4-5 are passed in r0 and r1. * * The return value is in r3 rather than standard r0. */ .section ".text.syscall","ax" .align 2 .globl ___syscall_common .type ___syscall_common,@function ___syscall_common: mov.l @(sp),r0 mov.l @(4,sp),r1 trapa #0x15 mov.l 1f,r0 cmp/hs r0,r3 bt/s 3f neg r3,r4 mov.l 2f,r5 mov.l r4,@r5 rts mov #-1,r0 3: rts mov r3,r0 .align 2 1: .long -4096 /* Errno limit */ 2: .long errno .size ___syscall_common,.-___syscall_common