
function gen_call {
	typeset name="$1"
	typeset kcnum="$2"
	typeset nparms="$3"
	typeset rent="$4"
	typeset neglist="$5"

	print		'# DO NOT EDIT THIS FILE, IT IS GENERATED BY "mkkercalls"'
	print		".text"
	print		".global ${name}"
	print		"${name}:"
	for neg in $neglist; do
		let "reg = $neg + 2"
		print	"neg	%r${reg},%r${reg}"
	done
	print		"li	%r0,${kcnum}"
	print		'sc'
	print		'mr		%r3,%r0'
	print		'blr'
	case ${rent} in
	NONE)
		print	'mr		%r3,%r0'
		print	'.ifdef __PIC__'
		print	'  b	 __ker_err@plt'
		print	'.else'
		print	'  b	 __ker_err'
		print	'.endif'
		;;
	NORMAL)
		print	'mr		%r3,%r0'
		print	'blr'
		;;
	NEGATIVE)
		print	'neg	%r3,%r0'
		print	'blr'
		;;
	esac
	print		".type ${name},@function"
	print		".size ${name},.-${name}"
}
