diff --git a/.Sanitize b/.Sanitize index e79e8c28f2f..62784ffc110 100644 --- a/.Sanitize +++ b/.Sanitize @@ -117,6 +117,16 @@ else lose_these_too="${lose_these_too} ${ide_files}" fi +# CGEN files: +# It is not yet clear if the cgen package will be shipped with the +# simulators. +cgen_files="cgen" + +if (echo $* | grep keep\-cgen > /dev/null); then + keep_these_too="${keep_these_too} ${cgen_files}" +else + lose_these_too="${lose_these_too} ${cgen_files}" +fi # This top-level directory is special. We often check out only subsets # of this directory, and complaining about directories or files we didn't diff --git a/sim/common/.Sanitize b/sim/common/.Sanitize index 595894fce24..7e605bcc2b5 100644 --- a/sim/common/.Sanitize +++ b/sim/common/.Sanitize @@ -22,6 +22,13 @@ else lose_these_too="${cygnus_files} ${lose_these_too}" fi +am30_files="dv-core.c dv-pal.c dv-glue.c hw-base.c hw-base.h hw-device.c hw-device.h hw-ports.c hw-ports.h hw-properties.c hw-properties.h hw-tree.c hw-tree.h sim-hw.h" +if ( echo $* | grep keep\-am30 > /dev/null ) ; then + keep_these_too="${am30_files} ${keep_these_too}" +else + lose_these_too="${am30_files} ${lose_these_too}" +fi + # All files listed between the "Things-to-keep:" line and the # "Files-to-sed:" line will be kept. All other files will be removed. # Directories listed in this section will have their own Sanitize @@ -117,19 +124,6 @@ tconfig.in Things-to-lose: -dv-core.c -dv-pal.c -hw-base.c -hw-base.h -hw-device.c -hw-device.h -hw-ports.c -hw-ports.h -hw-properties.c -hw-properties.h -hw-tree.c -hw-tree.h - Do-last: d30v_files="ChangeLog gennltvals.sh nltvals.def" @@ -160,6 +154,34 @@ else done fi +am30_files="ChangeLog" +if ( echo $* | grep keep\-am30 > /dev/null ) ; then + for i in $am30_files ; do + if test ! -d $i && (grep sanitize-am30 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Keeping am30 stuff in $i + fi + fi + done +else + for i in $am30_files ; do + if test ! -d $i && (grep sanitize-am30 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Removing traces of \"am30\" from $i... + fi + cp $i new + sed '/start\-sanitize\-am30/,/end-\sanitize\-am30/d' < $i > new + if [ -n "${safe}" -a ! -f .Recover/$i ] ; then + if [ -n "${verbose}" ] ; then + echo Caching $i in .Recover... + fi + mv $i .Recover + fi + mv new $i + fi + done +fi + cygnus_files="ChangeLog Make-common.in" if ( echo $* | grep keep\-cygnus > /dev/null ) ; then for i in $cygnus_files ; do diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 109f82ffacd..ec3309346b4 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,8 +1,18 @@ +start-sanitize-am30 +Thu Mar 26 10:07:57 1998 Stu Grossman + + * aclocal.m4 (sim_hw_obj): Fix sed expression to generate + properly formatted lists. + +end-sanitize-am30 +start-sanitize-am30 Thu Mar 26 10:37:22 1998 Andrew Cagney * dv-pal.c (enum hw_pal_address_mask): From Stu Grossman, was 0x2f needs to be 0x3f. +end-sanitize-am30 +start-sanitize-am30 Thu Mar 26 09:10:56 1998 Andrew Cagney * hw-tree.c (hw_tree_find_property): Return NULL when device is @@ -13,12 +23,14 @@ Thu Mar 26 09:10:56 1998 Andrew Cagney * dv-pal.c (hw_pal_io_read_buffer): Check the smp property is present before looking for it. +end-sanitize-am30 Wed Mar 25 16:17:38 1998 Ian Carmichael * aclocal.m4 (AC_CHECK_HEADERS): Add check for fpu_control.h. (AC_CHECK_FUNCS): Add check for __setfpucw. * configure: Regenerated. +start-sanitize-am30 Wed Mar 25 09:18:34 1998 Andrew Cagney * dv-pal.c (hw_pal_countdown, hw_pal_countdown_value, @@ -27,6 +39,8 @@ Wed Mar 25 09:18:34 1998 Andrew Cagney (do_counter_event, do_counter_read, do_counter_value, do_counter_write): new functions. +end-sanitize-am30 +start-sanitize-am30 Tue Mar 24 12:24:24 1998 Andrew Cagney * hw-tree.c (hw_printf): Send tree dump to stderr, same as other @@ -35,10 +49,12 @@ Tue Mar 24 12:24:24 1998 Andrew Cagney * hw-base.c (hw_create): Stop searching for a device when one is found. +end-sanitize-am30 Wed Mar 25 12:35:29 1998 Andrew Cagney * configure: Regenerated to track ../common/aclocal.m4 changes. +start-sanitize-am30 Mon Mar 23 10:25:08 1998 Andrew Cagney * aclocal.m4 (SIM_AC_OPTION_HARDWARE): Add second argument, @@ -51,6 +67,7 @@ Mon Mar 23 10:25:08 1998 Andrew Cagney (SIM_HW): Definition from @sim_hw@. (hw-base.o): Depend on hw-config.h +end-sanitize-am30 Tue Mar 24 17:41:35 1998 Stu Grossman * Make-common.in: Get SHELL from configure. @@ -61,6 +78,7 @@ Tue Mar 24 17:41:35 1998 Stu Grossman * configure: Regenerate with autoconf 2.12.1 to fix shell issues for NT native builds. +start-sanitize-am30 Sun Mar 22 16:54:40 1998 Andrew Cagney * hw-device.h, hw-device.c (hw_strdup): New function. @@ -81,6 +99,8 @@ Sun Mar 22 16:54:40 1998 Andrew Cagney * Make-common.in: Add rule for dv-glue.o. +end-sanitize-am30 +start-sanitize-am30 Sun Mar 22 16:45:54 1998 Andrew Cagney * hw-base.c (hw_finish): Move setting of trace level to here. @@ -94,6 +114,8 @@ Sun Mar 22 16:45:54 1998 Andrew Cagney * hw-tree.c (print_properties): Supress path when printing properties of root node. +end-sanitize-am30 +start-sanitize-am30 Sun Mar 22 16:21:15 1998 Andrew Cagney * hw-device.h (HW_TRACE): Define. @@ -107,6 +129,8 @@ Sun Mar 22 16:21:15 1998 Andrew Cagney * dv-pal.c: Replace DTRACE with HW_TRACE. +end-sanitize-am30 +start-sanitize-am30 Sun Mar 22 15:23:35 1998 Andrew Cagney * hw-device.h (HW_ZALLOC, HW_MALLOC): New macros. @@ -138,6 +162,8 @@ Sun Mar 22 15:23:35 1998 Andrew Cagney * dv-pal.c (hw_pal_finish): Replace zalloc/zfree with hw_zalloc/hw_free. +end-sanitize-am30 +start-sanitize-am30 Sun Mar 22 15:09:52 1998 Andrew Cagney * hw-device.h (hw_attach_address_callback, @@ -149,10 +175,12 @@ Sun Mar 22 15:09:52 1998 Andrew Cagney * dv-core.c (dv_core_attach_address_callback): Ditto. * dv-pal.c (hw_pal_attach_address): Ditto. +end-sanitize-am30 Thu Mar 19 00:41:00 1998 Andrew Cagney * sim-options.h: Document additional CPU arg to OPTION_HANDLER. +start-sanitize-am30 Wed Mar 18 14:13:02 1998 Andrew Cagney * Make-common.in (SIM_HW_OBJS, SIM_HW_SRC, SIM_DV_OBJS): Define. @@ -180,6 +208,8 @@ Wed Mar 18 14:13:02 1998 Andrew Cagney * sim-basics.h (struct hw): Declare. (enum port_direction, enum object_disposition): Declare. +end-sanitize-am30 +start-sanitize-am30 Wed Mar 18 12:38:12 1998 Andrew Cagney * aclocal.m4 (SIM_AC_OPTION_HARDWARE): Set sim_hw_obj, sim_dv_obj, @@ -188,6 +218,7 @@ Wed Mar 18 12:38:12 1998 Andrew Cagney * configure: Regenerated to track ../common/aclocal.m4 changes. +end-sanitize-am30 Mon Mar 16 12:37:33 1998 Andrew Cagney * sim-trace.h, sim-trace.c (trace_prefix): Pass in sim_cia so that diff --git a/sim/mn10300/.Sanitize b/sim/mn10300/.Sanitize index 37e0fbce6ca..77f7e574e5b 100644 --- a/sim/mn10300/.Sanitize +++ b/sim/mn10300/.Sanitize @@ -15,6 +15,13 @@ Do-first: +am30_files="dv-mn103cpu.c dv-mn103int.c" +if ( echo $* | grep keep\-am30 > /dev/null ) ; then + keep_these_too="${am30_files} ${keep_these_too}" +else + lose_these_too="${am30_files} ${lose_these_too}" +fi + # All files listed between the "Things-to-keep:" line and the # "Files-to-sed:" line will be kept. All other files will be removed. # Directories listed in this section will have their own Sanitize @@ -39,9 +46,34 @@ op_utils.c Things-to-lose: -dv-mn103cpu.c -dv-mn103int.c - Do-last: +am30_files="ChangeLog interp.c configure configure.in" +if ( echo $* | grep keep\-am30 > /dev/null ) ; then + for i in $am30_files ; do + if test ! -d $i && (grep sanitize-am30 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Keeping am30 stuff in $i + fi + fi + done +else + for i in $am30_files ; do + if test ! -d $i && (grep sanitize-am30 $i > /dev/null) ; then + if [ -n "${verbose}" ] ; then + echo Removing traces of \"am30\" from $i... + fi + cp $i new + sed '/start\-sanitize\-am30/,/end-\sanitize\-am30/d' < $i > new + if [ -n "${safe}" -a ! -f .Recover/$i ] ; then + if [ -n "${verbose}" ] ; then + echo Caching $i in .Recover... + fi + mv $i .Recover + fi + mv new $i + fi + done +fi + # End of file. diff --git a/sim/mn10300/ChangeLog b/sim/mn10300/ChangeLog index b48f2e56dc3..dfda117597f 100644 --- a/sim/mn10300/ChangeLog +++ b/sim/mn10300/ChangeLog @@ -1,9 +1,21 @@ +start-sanitize-am30 +Thu Mar 26 20:46:18 1998 Stu Grossman + + * dv-mn103cpu.c (deliver_mn103cpu_interrupt): Save the entire PC + on the stack when delivering interrupts (not just the lower + half)... + * mn10300.igen (mov (Di,Am),Dn): Fix decode. Registers were + specified in the wrong order. + +end-sanitize-am30 +start-sanitize-am30 Fri Mar 27 00:56:40 1998 Andrew Cagney * dv-mn103cpu.c (deliver_mn103cpu_interrupt): Stop loss of succeeding interrupts, clear pending_handler when the handler isn't re-scheduled. +end-sanitize-am30 Thu Mar 26 10:11:01 1998 Stu Grossman * Makefile.in (tmp-igen): Prefix all usage of move-if-change @@ -26,6 +38,7 @@ Wed Mar 25 12:08:00 1998 Joyce Janczyn * simops.c (OP_F0FD): Initialise variable 'sp'. +start-sanitize-am30 Thu Mar 26 00:21:32 1998 Andrew Cagney * dv-mn103int.c (decode_group): A group register every 4 bytes not @@ -33,6 +46,8 @@ Thu Mar 26 00:21:32 1998 Andrew Cagney (write_icr): Rewrite equation updating request field. (read_iagr): Fix check that interrupt is still pending. +end-sanitize-am30 +start-sanitize-am30 Wed Mar 25 16:14:50 1998 Andrew Cagney * interp.c (sim_open): Tidy up device creation. @@ -43,15 +58,18 @@ Wed Mar 25 16:14:50 1998 Andrew Cagney block offsets. (read_icr, write_icr): Convert block offset into group offset. +end-sanitize-am30 Wed Mar 25 15:08:49 1998 Andrew Cagney * interp.c (sim_open): Create second 1mb memory region at 0x40000000. (sim_open): Create a device tree. (sim-hw.h): Include. +start-sanitize-am30 (do_interrupt): Delete, needs to use dv-mn103cpu.c * dv-mn103int.c, dv-mn103cpu.c: New files. +end-sanitize-am30 Wed Mar 25 08:47:38 1998 Andrew Cagney diff --git a/sim/mn10300/configure b/sim/mn10300/configure index cb8256e6235..5df3f190bda 100755 --- a/sim/mn10300/configure +++ b/sim/mn10300/configure @@ -1785,6 +1785,7 @@ if test x"$wire_cell_bitsize" != x; then fi fi +# start-sanitize-am30 sim_hardware="-DWITH_HW=1" sim_hw_obj="hw-device.o hw-ports.o hw-properties.o hw-base.o hw-tree.o" @@ -1808,29 +1809,30 @@ for i in x $hardware ; do *) sim_hw="$sim_hw $i" ;; esac done -sim_hw_obj="$sim_hw_obj `echo $sim_hw | sed -e 's/\([^ ]*\)/dv-\1.o/g'`" +sim_hw_obj="$sim_hw_obj `echo $sim_hw | sed -e 's/\([^ ][^ ]*\)/dv-\1.o/g'`" if test x"$silent" != x"yes" && test x"$hardware" != x""; then echo "Setting hardware to $sim_hardware, $sim_hw, $sim_hw_obj" fi else sim_hw="$hardware" -sim_hw_obj="$sim_hw_obj `echo $sim_hw | sed -e 's/\([^ ]*\)/dv-\1.o/g'`" +sim_hw_obj="$sim_hw_obj `echo $sim_hw | sed -e 's/\([^ ][^ ]*\)/dv-\1.o/g'`" if test x"$silent" != x"yes"; then echo "Setting hardware to $sim_hardware, $sim_hw, $sim_hw_obj" fi fi +# end-sanitize-am30 for ac_func in time chmod utime fork execve execv chown do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1829: checking for $ac_func" >&5 +echo "configure:1831: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1881,17 +1883,17 @@ for ac_hdr in unistd.h stdlib.h string.h strings.h utime.h time.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1885: checking for $ac_hdr" >&5 +echo "configure:1887: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1897: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* diff --git a/sim/mn10300/configure.in b/sim/mn10300/configure.in index e72986326e7..59423e16f3f 100644 --- a/sim/mn10300/configure.in +++ b/sim/mn10300/configure.in @@ -12,7 +12,9 @@ SIM_AC_OPTION_HOSTENDIAN SIM_AC_OPTION_WARNINGS SIM_AC_OPTION_RESERVED_BITS SIM_AC_OPTION_BITSIZE(32,31) +# start-sanitize-am30 SIM_AC_OPTION_HARDWARE(,mn103cpu mn103int) +# end-sanitize-am30 AC_CHECK_FUNCS(time chmod utime fork execve execv chown) AC_CHECK_HEADERS(unistd.h stdlib.h string.h strings.h utime.h time.h) diff --git a/sim/mn10300/interp.c b/sim/mn10300/interp.c index 4c14b70b95f..c1708b72d0f 100644 --- a/sim/mn10300/interp.c +++ b/sim/mn10300/interp.c @@ -3,7 +3,9 @@ #if WITH_COMMON #include "sim-main.h" #include "sim-options.h" +/* start-sanitize-am30 */ #include "sim-hw.h" +/* end-sanitize-am30 */ #else #include "mn10300_sim.h" #endif @@ -892,6 +894,10 @@ sim_load (sd, prog, abfd, from_tty) /* For compatibility */ SIM_DESC simulator; +/* start-sanitize-am30 */ +/* Until the tree root gets moved somewhere else */ +struct hw *hw; +/* end-sanitize-am30 */ /* These default values correspond to expected usage for the chip. */ @@ -903,7 +909,6 @@ sim_open (kind, cb, abfd, argv) char **argv; { SIM_DESC sd = sim_state_alloc (kind, cb); - struct hw *hw; mn10300_callback = cb; SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER); @@ -937,6 +942,7 @@ sim_open (kind, cb, abfd, argv) return 0; } + /* start-sanitize-am30 */ hw = hw_tree_create (sd, "core"); hw_tree_parse (hw, "/"); if (STATE_VERBOSE_P (sd)) @@ -945,46 +951,43 @@ sim_open (kind, cb, abfd, argv) /* interrupt controller */ - hw_tree_parse (hw, "/mn103int@0x34000100"); + hw_tree_parse (hw, "/mn103int@0x34000100/reg 0x34000100 0x68 0x34000200 0x8 0x3400280 0x8"); if (STATE_VERBOSE_P (sd)) hw_tree_parse (hw, "/mn103int/trace? true"); - hw_tree_parse (hw, "/mn103int/reg 0x34000100 0x68 0x34000200 0x8 0x3400280 0x8"); - /* NMI input's */ - hw_tree_parse (hw, "/glue@0x30000000"); + /* DEBUG: NMI input's */ + hw_tree_parse (hw, "/glue@0x30000000/reg 0x30000000 12"); if (STATE_VERBOSE_P (sd)) hw_tree_parse (hw, "/glue@0x30000000/trace? true"); - hw_tree_parse (hw, "/glue@0x30000000/reg 0x30000000 16"); - hw_tree_parse (hw, "/glue@0x30000000 > int1 nmirq /mn103int"); - hw_tree_parse (hw, "/glue@0x30000000 > int2 watchdog /mn103int"); - hw_tree_parse (hw, "/glue@0x30000000 > int3 syserr /mn103int"); + hw_tree_parse (hw, "/glue@0x30000000 > int0 nmirq /mn103int"); + hw_tree_parse (hw, "/glue@0x30000000 > int1 watchdog /mn103int"); + hw_tree_parse (hw, "/glue@0x30000000 > int2 syserr /mn103int"); - /* NMI output */ - hw_tree_parse (hw, "/mn103int > nmi int0 /glue@0x30000000"); - - /* ACK input */ - hw_tree_parse (hw, "/glue@0x30002000"); + /* DEBUG: ACK input */ + hw_tree_parse (hw, "/glue@0x30002000/reg 0x30002000 4"); if (STATE_VERBOSE_P (sd)) hw_tree_parse (hw, "/glue@0x30002000/trace? true"); - hw_tree_parse (hw, "/glue@0x30002000/reg 0x30002000 4"); hw_tree_parse (hw, "/glue@0x30002000 > int ack /mn103int"); - /* LEVEL output */ - hw_tree_parse (hw, "/glue@0x30004000"); + /* DEBUG: LEVEL output */ + hw_tree_parse (hw, "/glue@0x30004000/reg 0x30004000 8"); if (STATE_VERBOSE_P (sd)) hw_tree_parse (hw, "/glue@0x30004000/trace? true"); - hw_tree_parse (hw, "/glue@0x30004000/reg 0x30004000 4"); - hw_tree_parse (hw, "/mn103int > level int /glue@0x30004000"); + hw_tree_parse (hw, "/mn103int > nmi int0 /glue@0x30004000"); + hw_tree_parse (hw, "/mn103int > level int1 /glue@0x30004000"); - /* A bunch of interrupt inputs */ - hw_tree_parse (hw, "/glue@0x30006000"); + /* DEBUG: A bunch of interrupt inputs */ + hw_tree_parse (hw, "/glue@0x30006000/reg 0x30006000 32"); if (STATE_VERBOSE_P (sd)) hw_tree_parse (hw, "/glue@0x30006000/trace? true"); - hw_tree_parse (hw, "/glue@0x30006000/reg 0x30006000 16"); hw_tree_parse (hw, "/glue@0x30006000 > int0 irq-0 /mn103int"); hw_tree_parse (hw, "/glue@0x30006000 > int1 irq-1 /mn103int"); hw_tree_parse (hw, "/glue@0x30006000 > int2 irq-2 /mn103int"); hw_tree_parse (hw, "/glue@0x30006000 > int3 irq-3 /mn103int"); + hw_tree_parse (hw, "/glue@0x30006000 > int4 irq-4 /mn103int"); + hw_tree_parse (hw, "/glue@0x30006000 > int5 irq-5 /mn103int"); + hw_tree_parse (hw, "/glue@0x30006000 > int6 irq-6 /mn103int"); + hw_tree_parse (hw, "/glue@0x30006000 > int7 irq-7 /mn103int"); /* processor interrupt device */ @@ -1011,10 +1014,12 @@ sim_open (kind, cb, abfd, argv) hw_tree_parse (hw, "/glue@0x20004000 > int1 nmi /mn103cpu"); hw_tree_parse (hw, "/glue@0x20004000 > int2 level /mn103cpu"); - /* The processor wired up to the real interrupt controller */ + /* REAL: The processor wired up to the real interrupt controller */ +#if 1 hw_tree_parse (hw, "/mn103cpu > ack ack /mn103int"); hw_tree_parse (hw, "/mn103int > level level /mn103cpu"); hw_tree_parse (hw, "/mn103int > nmi nmi /mn103cpu"); +#endif /* PAL */ @@ -1037,7 +1042,7 @@ sim_open (kind, cb, abfd, argv) hw_tree_parse (hw, "/glue@0x31002000 > int1 int3 /glue@0x31002000"); hw_tree_parse (hw, "/glue@0x31002000 > int2 int3 /glue@0x31002000"); - /* The PAL wired up to the real interrupt controller */ + /* REAL: The PAL wired up to the real interrupt controller */ hw_tree_parse (hw, "/pal@0x31000000 > countdown irq-0 /mn103int"); hw_tree_parse (hw, "/pal@0x31000000 > timer irq-1 /mn103int"); hw_tree_parse (hw, "/pal@0x31000000 > int irq-2 /mn103int"); @@ -1047,6 +1052,7 @@ sim_open (kind, cb, abfd, argv) hw_tree_finish (hw); if (STATE_VERBOSE_P (sd)) hw_tree_print (hw); + /* end-sanitize-am30 */ /* check for/establish the a reference program image */ if (sim_analyze_program (sd,