reverse()
{
    for arg
    do out="$arg $out"
    done
    echo $out
}

exec 4>unsupp.s

sed '/^#if 0/,/^#endif/d' pragmas.h |
while IFS=" ()," read pragma amicall lib offset func regs
do
    if [ "#pragma amicall" = "$pragma $amicall" ]
    then
	echo "${lib}_${func}: global ${lib}_${func}" >&4
	echo "S${lib}_${func}: global S${lib}_${func}"
	set X `IFS=, reverse $regs`; shift
	if [ $# -gt 0 ]
	then
	    for reg
	    do echo "	mov.l	%$reg,-(%sp)"
	    done
	    echo "	jsr	${lib}_${func}"
	    echo "	add.w	&`expr $# '*' 4`,%sp"
	    echo "	rts"
	else
	    echo "	jmp	${lib}_${func}"
	fi
	echo
    fi
done

echo "	mov.l %a6,-(%sp);jmp unsupp" >&4
