blob: 83967358255c2a6f26b4631b79dc79df65194580 [file] [log] [blame]
/*
* arch/sparc64/syscall.S
*
* The fork and vfork system calls are special on sparc[64]:
* they return the "other process" pid in %o0 and the
* "is child" flag in %o1
*
* Common system-call stub; %g1 already set to syscall number
*
* IS THIS CORRECT FOR SPARC64?
*/
.globl __syscall_forkish
.type __syscall_forkish,#function
.align 4
__syscall_forkish:
t 0x6d
sub %o1, 1, %o1
bcc,a %xcc, 1f
and %o0, %o1, %o0
sethi %hi(errno), %g4
or %g4, %lo(errno), %g4
st %o0,[%g4]
1:
retl
movcs %xcc, -1, %o0