#!/bin/sh
#
# Common - Elements shared by all regression tests for the M8C simulator
#
# Written 2006 by Werner Almesberger
# Copyright 2006 Werner Almesberger
#


M8CSIM_CHIP=CY8C21123
export M8CSIM_CHIP


asm()
{
    echo -n "$1: " 1>&2
    shift
    ../../as/m8cas -e -m _map \
      -D$M8CSIM_CHIP -I../../shared -I../../regs "$@" >_rom || {
	echo FAILED "($SCRIPT)" 1>&2
	rm -f _rom _map
	exit 1
    }
}


sim()
{
    $VALGRIND ../m8csim -m _map -I.. -q "$@" $M8CSIM_CHIP _rom >_out 2>&1 || {
	echo FAILED "($SCRIPT)" 1>&2
	cat _out 1>&2
	rm -f _out _map
	exit 1
    }
}


sim_fail()
{
    ../m8csim -m _map -I.. -q "$@" $M8CSIM_CHIP _rom >_out 2>&1 && {
	echo FAILED "($SCRIPT)" 1>&2
	cat _out 1>&2
	rm -f _out _map
	exit 1
    }
}


edit()
{
    "$@" <_out >_tmp || exit 1
    mv _tmp _out
}


expect()
{
    diff -u - _out >_diff || {
	echo FAILED "($SCRIPT)" 1>&2
	cat _diff 1>&2
	rm -f _out _diff
	exit 1
    }
    echo PASSED 1>&2
    rm -f _rom _out _diff _map
    passed=`expr ${passed:-0} + 1`
}
