File:  [DVB] / dietlibc / ia64 / clone.S
Revision 1.4: download - view: text, annotated - select for diffs
Mon Sep 24 22:02:06 2018 UTC (5 years, 8 months ago) by leitner
Branches: MAIN
CVS tags: HEAD
make ia64 compile again, add __thread errno support

/* This is untested code which probably won't work out of the box! */

#include "syscalls.h"
#include <errno.h>

.text
.globl __clone
.proc  __clone
.weak  __clone2
__clone2:
__clone:
	mov r8 = EINVAL
	cmp.eq p6,p0=0,r32     
	;;
(p6)	br.cond.spnt.few __error_unified_syscall
	cmp.eq p6,p0=0,r33     
	;;
(p6)	br.cond.spnt.few __error_unified_syscall
	flushrs
	;;

	mov.m r17 = ar.rsc
	mov r14 = r32
	mov r18 = r33
	mov r16 = r36;;
	mov r15 = __NR_clone2
	break 0x100000
	cmp.eq p6,p0=-1,r10
	;;
(p6)	br.cond.spnt.few __error_unified_syscall
	cmp.eq p6,p7=0,r8
	;;
(p6)	ld8 r34=[r14],8
(p6)	mov.m ar.bspstore=r18
(p6)	mov r32 = r16
	mov.m ar.rsc = r17
(p7)	br.ret.sptk b0
	;;
	ld8 r1 = [r14]
	mov b6 = r34
	br.call.dptk.few b0=b6
	mov r32 = r8
	br.call.dptk.few b0=__error_unified_syscall
	br.ret.sptk.few b0
.endp __clone
.size __clone, . - __clone

LinuxTV legacy CVS <linuxtv.org/cvs>