.comp 915 110111010
.code       0       0       0
.start __exec_Start
.depend "_SystemEnum"
.depend "StdEnum"
.depend "StdMisc"
.depend "StdFunc"
.depend "StdCharList"
.depend "StdTuple"
.depend "StdOrdList"
.depend "StdList"
.depend "StdClass"
.depend "StdFile"
.depend "StdString"
.depend "_SystemArray"
.depend "StdArray"
.depend "StdChar"
.depend "StdReal"
.depend "StdInt"
.depend "StdOverloaded"
.depend "StdBool"
.depend "StdEnv"
.endinfo
.implab _cycle_in_spine
.implab _type_error
.implab _hnf
.impdesc _ind
.implab _indirection _eaind
.impdesc e_system_dif
.implab e_system_nif e_system_eaif
.impdesc e_system_dAP
.implab e_system_nAP e_system_eaAP
.implab e_system_sif
.implab e_system_sAP
.impdesc _Cons
.impdesc _Nil
.impdesc _Tuple
.impdesc d_S.1
.implab n_S.1 ea_S.1
.impdesc d_S.2
.implab n_S.2 ea_S.2
.impdesc d_S.3
.implab n_S.3 ea_S.3
.impdesc d_S.4
.implab n_S.4 ea_S.4
.impdesc d_S.5
.implab n_S.5 ea_S.5
.impdesc d_S.6
.implab n_S.6 ea_S.6
.implab _driver
.string m_exec "exec"
||	Concurrent Clean Code Generator (Version 0.915)
.impdesc e__SystemArray_dsize;#;c
.implab e_StdList_ssum;i
.implab e_StdBool_snot
.implab e_StdInt_stoInt;c
.implab e_StdInt_s==;i
.implab e_StdInt_s*;i
.implab e_StdInt_s+;i
.implab e_StdInt_s<<
.implab e_StdString_s+++;#
.implab e_StdString_stoString;i
.implab e_StdList_slength;l
.implab e_StdList_smap
.implab e_StdMisc_sabort
.export __exec_Start
.o 0 0
__exec_Start
	build _ 0 nStart.17
.d 1 0
	jmp _driver
.o 2 2 ii
sfill_arguments;15;#;c.1
			||	Match code for alternative 0, stacksizes A: 2 B: 2
	eq_desc _Nil 0 1
	jmp_true case.1
	jmp case.2
case.1
			||	store_long
			||	0
	pushI 0
			||	argp
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
.d 0 2 ii
	jsr sstore_long.5
.o 0 1 i
			||	0
	pushI 0
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	eqI
	jmp_false else.3
	jmp then.4
then.4
			||	store_byte
			||	0
	pushI 0
			||	argsp
	push_b 1
.d 0 2 ii
	jsr sstore_byte.6
.o 0 1 i
			||	0
	pushI 0
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	eqI
	jmp_false else.3
	jmp then.5
then.5
			||	store_byte
			||	+ (Int)
			||	1
	pushI 1
			||	argsp
	push_b 1
	addI
			||	0
	pushI 0
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
.d 0 2 ii
	jsr sstore_byte.6
.o 0 1 i
			||	0
	pushI 0
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	eqI
	pushI 0
	update_b 1 0
	jmp_false else.3
	jmp then.3
then.3
			||	Redirecting the root to: argv
	pop_b 1
	update_a 0 1
	pop_a 1
.d 1 0
	rtn
else.3
	pushI 0
	jmp sfill_arguments;15;#;c.1.1
case.2
	push_args 1 2 2
	build _Nil 0 _hnf
	update_a 0 4
	pop_a 1
			||	store_long
			||	argsp
	push_b 1
			||	argp
	push_b 1
.d 0 2 ii
	jsr sstore_long.5
.o 0 1 i
			||	argsp
	push_b 2
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	eqI
	jmp_false else.6
	jmp then.7
then.7
			||	store_zstring [line: 91] ({#},Char)
			||	arg
	push_a 0
	jsr_eval 0
	push_array 0
	update_a 0 1
	pop_a 1
			||	0
	pushI 0
			||	argsp
	push_b 2
.d 1 2 ii
	jsr sstore_zstring;16;#;c.2
.o 0 1 i
			||	0
	pushI 0
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	eqI
	jmp_false else.6
	jmp then.6
then.6
			||	Building the contractum, Stacksizes A: 4 B: 2
			||	+ (Int)
			||	+ (Int)
			||	size ({#},Char)
			||	arg
	push_a 0
	jsr_eval 0
	push_array 0
	update_a 0 1
	pop_a 1
	update_a 0 1
	pop_a 1
	push_arraysize CHAR 0 1
			||	argsp
	push_b 2
	addI
			||	1
	pushI 1
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	addI
			||	+ (Int)
			||	4
	pushI 4
			||	argp
	push_b 2
	addI
			||	args
	push_a 0
	jsr_eval 0
			||	argv
	push_a 2
	update_a 1 4
	update_a 0 3
	update_b 1 3
	update_b 0 2
	pop_a 3
	pop_b 2
.d 2 2 ii
	jmp sfill_arguments;15;#;c.1
else.6
			||	Building the contractum, Stacksizes A: 4 B: 2
			||	+ (Int)
			||	+ (Int)
			||	size ({#},Char)
			||	arg
	push_a 0
	jsr_eval 0
	push_array 0
	update_a 0 1
	pop_a 1
	update_a 0 1
	pop_a 1
	push_arraysize CHAR 0 1
			||	argsp
	push_b 2
	addI
			||	1
	pushI 1
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	addI
			||	+ (Int)
			||	4
	pushI 4
			||	argp
	push_b 2
	addI
			||	args
	push_a 0
	jsr_eval 0
			||	argv
	push_a 2
	update_a 1 4
	update_a 0 3
	update_b 1 3
	update_b 0 2
	pop_a 3
	pop_b 2
.d 2 2 ii
	jmp sfill_arguments;15;#;c.1
sfill_arguments;15;#;c.1.1
	pop_a 2
	pop_b 2
	pushD m_exec
	pushD x_1
.d 0 2 i i
	jmp _match_error
.string x_1 "fill_arguments [line: 83] ({#},Char)"
.o 1 2 ii
sstore_zstring;16;#;c.2
			||	Match code for alternative 0, stacksizes A: 1 B: 2
			||	size ({#},Char)
			||	arg
	push_a 0
	push_arraysize CHAR 0 1
			||	i
	push_b 2
	eqI
	jmp_false else.8
	jmp then.8
then.8
			||	Building the contractum, Stacksizes A: 1 B: 2
			||	+ (Int)
			||	i
	push_b 1
			||	argsp
	push_b 1
	addI
			||	0
	pushI 0
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	update_b 1 3
	update_b 0 2
	pop_a 1
	pop_b 2
.d 0 2 ii
	jmp sstore_byte.6
else.8
			||	Node definition v: toInt (Char) (shared or annotated)
			||	select ({#},Char)
			||	i
	push_b 1
			||	arg
	push_a 0
	select CHAR 0 1
	CtoI
			||	store_byte
			||	+ (Int)
			||	i
	push_b 2
			||	argsp
	push_b 2
	addI
			||	v: toInt (Char)
	push_b 1
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
.d 0 2 ii
	jsr sstore_byte.6
.o 0 1 i
			||	v: toInt (Char)
	push_b 1
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	eqI
	jmp_false else.9
	jmp then.9
then.9
			||	Building the contractum, Stacksizes A: 1 B: 3
			||	+ (Int)
			||	1
	pushI 1
			||	i
	push_b 3
	addI
			||	argsp
	push_b 2
			||	arg
	push_a 0
	update_a 0 1
	update_b 1 4
	update_b 0 3
	pop_a 1
	pop_b 3
.d 1 2 ii
	jmp sstore_zstring;16;#;c.2
else.9
	pop_b 1
	jmp sstore_zstring;16;#;c.2.1
sstore_zstring;16;#;c.2.1
	pop_a 1
	pop_b 2
	pushD m_exec
	pushD x_2
.d 0 2 i i
	jmp _match_error
.string x_2 "store_zstring [line: 91] ({#},Char)"
.o 0 2 ii
sstore_long.5
			||	Match code for alternative 0, stacksizes A: 0 B: 2
	instruction 137
	instruction 3	| movl %eax,(%ebx)
	pop_b 1
.d 0 1 i
	rtn
.o 0 2 ii
sstore_byte.6
			||	Match code for alternative 0, stacksizes A: 0 B: 2
	instruction 136
	instruction 3	| movb %al,(%ebx)
	pop_b 1
.d 0 1 i
	rtn
.o 0 1 i
smalloc.7
			||	Match code for alternative 0, stacksizes A: 0 B: 1
	ccall malloc "I:I"
.d 0 1 i
	rtn
.o 0 2 ii
sfree.9
			||	Match code for alternative 0, stacksizes A: 0 B: 2
	ccall free "I:V:I" 
.d 0 1 i
	rtn
.o 1 1 i
sexecv.10
			||	Match code for alternative 0, stacksizes A: 1 B: 1
	ccall execv "sI:I" 
.d 0 1 i
	rtn
.o 0 0
sfork.11
			||	Match code for alternative 0, stacksizes A: 0 B: 0
	ccall fork ":I" 
.d 0 1 i
	rtn
.o 0 0
swait.12
			||	Match code for alternative 0, stacksizes A: 0 B: 0
	ccall wait ":II" 
.d 0 2 ii
	rtn
.o 2 0
sexec.16
			||	Match code for alternative 0, stacksizes A: 2 B: 0
			||	Node definition args: [...|...] (shared or annotated)
			||	args
	push_a 1
			||	file_name
	push_a 1
	build ARRAY 1 _hnf
	build _Cons 2 _hnf
			||	Node definition n_args: length ([]) (shared or annotated)
			||	args: [...|...]
	push_a 0
			||	args
	build _Nil 0 _hnf
	update_a 0 4
	pop_a 1
.d 1 0
	jsr e_StdList_slength;l
.o 0 1 i
			||	Node definition argv: malloc (shared or annotated)
			||	+ (Int)
			||	sum (Int)
			||	map
			||	size ({#},Char)
	build e__SystemArray_dsize;#;c 0 _hnf
	create
			||	args: [...|...]
	push_a 2
	push_a 2
	update_a 2 3
	update_a 1 2
	update_a 0 1
	pop_a 1
.d 3 0
	jsr e_StdList_smap
.o 1 0
.d 1 0
	jsr e_StdList_ssum;i
.o 0 1 i
			||	+ (Int)
			||	* (Int)
			||	n_args: length ([])
	push_b 1
			||	5
	pushI 5
	mulI
			||	6
	pushI 6
	addI
	addI
.d 0 1 i
	jsr smalloc.7
.o 0 1 i
			||	0
	pushI 0
			||	argv: malloc
	push_b 1
	eqI
	jmp_false else.10
	jmp then.10
then.10
			||	Building the contractum, Stacksizes A: 3 B: 2
			||	"malloc failed"
	buildAC "malloc failed"
	update_a 0 3
	pop_a 3
	pop_b 2
.d 1 0
	jsr e_StdMisc_sabort
.o 1 0
	repl_args 2 2
	jsr_eval 1
	jsr_eval 0
	pushI_a 1
	pushB_a 0
	pop_a 2
.d 0 2 bi
	rtn
else.10
			||	Node definition argv: fill_arguments [line: 83] ({#},Char) (shared or annotated)
			||	+ (Int)
			||	<<
			||	+ (Int)
			||	1
	pushI 1
			||	n_args: length ([])
	push_b 2
	addI
			||	2
	pushI 2
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	shiftl%
			||	argv: malloc
	push_b 1
	addI
			||	argv: malloc
	push_b 1
			||	args: [...|...]
	push_a 0
			||	argv: malloc
	buildI_b 2
	update_b 1 3
	update_b 0 2
	pop_b 2
	update_a 1 2
	update_a 0 1
	pop_a 1
.d 2 2 ii
	jsr sfill_arguments;15;#;c.1
.o 1 0
			||	Node definition _ (shared or annotated)
			||	+++ ({#})
			||	"\000"
	buildAC "\000"
			||	file_name
	push_a 2
			||	file_name
	build _Nil 0 _hnf
	update_a 0 4
	pop_a 1
.d 2 0
	jsr catAC
.o 1 0
			||	argv: fill_arguments [line: 83] ({#},Char)
	pushI_a 1
.d 1 1 i
	jsr sfork_exec_wait.3
.o 0 2 bi
			||	Node definition s (shared or annotated)
			||	free
			||	s
	push_b 1
			||	argv: fill_arguments [line: 83] ({#},Char)
	pushI_a 0
	pop_a 3
.d 0 2 ii
	jsr sfree.9
.o 0 1 i
			||	s
	push_b 2
	push_b 1
	update_b 1 2
	update_b 0 1
	pop_b 1
	eqI
	jmp_false else.11
	jmp then.11
then.11
			||	Building the contractum, Stacksizes A: 0 B: 2
			||	s
	push_b 1
			||	_
	push_b 1
	update_b 1 3
	update_b 0 2
	pop_b 2
.d 0 2 bi
	rtn
else.11
	build _Nil 0 _hnf
	push_a 0
	pop_b 2
	jmp sexec.16.1
sexec.16.1
	pop_a 2
	pushD m_exec
	pushD x_16
.d 0 2 i i
	jmp _match_error
.string x_16 "exec"
.o 1 1 i
sfork_exec_wait.3
			||	Match code for alternative 0, stacksizes A: 1 B: 1
			||	Node definition pid: fork (shared or annotated)
.d 0 0
	jsr sfork.11
.o 0 1 i
			||	-1
	pushI -1
			||	pid: fork
	push_b 1
	eqI
	jmp_false else.12
	jmp then.12
then.12
			||	Building the contractum, Stacksizes A: 1 B: 2
			||	-1
	pushI -1
			||	False
	pushB FALSE
	update_b 1 3
	update_b 0 2
	pop_a 1
	pop_b 2
.d 0 2 bi
	rtn
else.12
			||	== (Int)
			||	0
	pushI 0
			||	pid: fork
	push_b 1
	eqI
	notB
	jmp_false else.13
	jmp then.13
then.13
			||	Node definition _ (shared or annotated)
	pop_b 2
	pop_a 1
.d 0 0
	jsr swait.12
.o 0 2 ii
			||	Building the contractum, Stacksizes A: 0 B: 2
			||	+++ ({#})
			||	+++ ({#})
			||	+++ ({#})
			||	+++ ({#})
			||	toString (Int)
			||	_
	push_b 0
	update_b 0 1
	pop_b 1
.d 0 1 i
	jsr ItoAC
.o 1 0
			||	"\n"
	buildAC "\n"
	push_a 1
	update_a 1 2
	update_a 0 1
	pop_a 1
.d 2 0
	jsr catAC
.o 1 0
			||	" "
	buildAC " "
.d 2 0
	jsr catAC
.o 1 0
			||	toString (Int)
			||	_
	push_b 0
	update_b 0 1
	pop_b 1
.d 0 1 i
	jsr ItoAC
.o 1 0
.d 2 0
	jsr catAC
.o 1 0
			||	"wait "
	buildAC "wait "
.d 2 0
	jsr catAC
.o 1 0
.d 1 0
	jsr e_StdMisc_sabort
.o 1 0
	repl_args 2 2
	jsr_eval 1
	jsr_eval 0
	pushI_a 1
	pushB_a 0
	pop_a 2
.d 0 2 bi
	rtn
else.13
			||	Building the contractum, Stacksizes A: 1 B: 2
			||	execv
			||	argv
	push_b 1
			||	file_name0
	push_a 0
	update_b 0 2
	pop_b 2
	update_a 0 1
	pop_a 1
.d 1 1 i
	jsr sexecv.10
.o 0 1 i
			||	False
	pushB FALSE
.d 0 2 bi
	rtn
.n 0 _
.o 1 0
nStart.17
	push_node _cycle_in_spine 0
.d 0 0
	jsr eaStart.17
.o 2 0
	push_a 1
	push_a 1
	fill _Tuple 2 _hnf 4
	pop_a 2
.d 1 0
	rtn
.o 0 0
eaStart.17
.o 0 0
sStart.17
			||	Match code for alternative 0, stacksizes A: 0 B: 0
			||	Building the contractum, Stacksizes A: 0 B: 0
			||	[...|...]
			||	[...|...]
			||	[...|...]
			||	[]
	build _Nil 0 _hnf
			||	"."
	buildAC "."
	build ARRAY 1 _hnf
	build _Cons 2 _hnf
			||	"-t"
	buildAC "-t"
	build ARRAY 1 _hnf
	build _Cons 2 _hnf
			||	"-l"
	buildAC "-l"
	build ARRAY 1 _hnf
	build _Cons 2 _hnf
			||	"/bin/ls"
	buildAC "/bin/ls"
.d 2 0
	jsr sexec.16
.o 0 2 bi
	buildI_b 1
	buildB_b 0
	pop_b 2
.d 2 0
	rtn
