aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
Diffstat (limited to 'sim')
-rw-r--r--sim/m68hc11/ChangeLog6
-rw-r--r--sim/m68hc11/Makefile.in10
2 files changed, 14 insertions, 2 deletions
diff --git a/sim/m68hc11/ChangeLog b/sim/m68hc11/ChangeLog
index 21957ef..9c34d47 100644
--- a/sim/m68hc11/ChangeLog
+++ b/sim/m68hc11/ChangeLog
@@ -1,3 +1,9 @@
+2003-03-02 Stephane Carrez <stcarrez@nerim.fr>
+
+ * Makefile.in (SIM_EXTRA_CFLAGS): Set WITH_TARGET_ADDRESS_BITSIZE
+ to 32 to support memory bank switching; temporarily use 32-bit for
+ WORD_BITSIZE to avoid a bug in sim-common.
+
2003-03-01 Stephane Carrez <stcarrez@nerim.fr>
* interp.c (sim_fetch_register): Only store a single byte for
diff --git a/sim/m68hc11/Makefile.in b/sim/m68hc11/Makefile.in
index a054a32..604c3a7 100644
--- a/sim/m68hc11/Makefile.in
+++ b/sim/m68hc11/Makefile.in
@@ -35,9 +35,15 @@ SIM_OBJS = $(M68HC11_OBJS) \
$(SIM_EXTRA_OBJS)
SIM_PROFILE= -DPROFILE=1 -DWITH_PROFILE=-1
-SIM_EXTRA_CFLAGS = -DWITH_TARGET_WORD_BITSIZE=16 \
+# We must use 32-bit addresses to support memory bank switching.
+# The WORD_BITSIZE is normally 16 but must be switched (temporarily)
+# to 32 to avoid a bug in the sim-common which uses 'unsigned_word'
+# instead of 'address_word' in some places (the result is a truncation
+# of the 32-bit address to 16-bit; and this breaks the simulator).
+SIM_EXTRA_CFLAGS = -DWITH_TARGET_WORD_BITSIZE=32 \
-DWITH_TARGET_CELL_BITSIZE=32 \
- -DWITH_TARGET_WORD_MSB=15
+ -DWITH_TARGET_ADDRESS_BITSIZE=32 \
+ -DWITH_TARGET_WORD_MSB=31
SIM_EXTRA_CLEAN = clean-extra
SIM_EXTRA_OBJS = @m68hc11_extra_objs@