aboutsummaryrefslogtreecommitdiff
path: root/sim/mn10300
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1998-06-30 17:28:54 +0000
committerJeff Law <law@redhat.com>1998-06-30 17:28:54 +0000
commita6cbaa652ac8d41b5c9e0aac485c344f2e4a4f6e (patch)
tree3ec4c4108e70637ed2c50e5d6915a79c6775eddc /sim/mn10300
parent39f5104e6314235ca1f315aa68d4838e935267cd (diff)
downloadbinutils-a6cbaa652ac8d41b5c9e0aac485c344f2e4a4f6e.zip
binutils-a6cbaa652ac8d41b5c9e0aac485c344f2e4a4f6e.tar.gz
binutils-a6cbaa652ac8d41b5c9e0aac485c344f2e4a4f6e.tar.bz2
* mn10300_sim.h: Include bfd.h
(struct state): Add more room for processor specific registers. start-sanitize-am33 (REG_E0): Define. end-sanitize-am33
Diffstat (limited to 'sim/mn10300')
-rw-r--r--sim/mn10300/.Sanitize28
-rw-r--r--sim/mn10300/ChangeLog8
-rw-r--r--sim/mn10300/mn10300_sim.h31
3 files changed, 57 insertions, 10 deletions
diff --git a/sim/mn10300/.Sanitize b/sim/mn10300/.Sanitize
index 4e4c763..f5ed678 100644
--- a/sim/mn10300/.Sanitize
+++ b/sim/mn10300/.Sanitize
@@ -78,4 +78,32 @@ else
done
fi
+am33_files="ChangeLog mn10300_sim.h"
+if ( echo $* | grep keep\-am33 > /dev/null ) ; then
+ for i in $am33_files ; do
+ if test ! -d $i && (grep sanitize-am33 $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Keeping am33 stuff in $i
+ fi
+ fi
+ done
+else
+ for i in $am33_files ; do
+ if test ! -d $i && (grep sanitize-am33 $i > /dev/null) ; then
+ if [ -n "${verbose}" ] ; then
+ echo Removing traces of \"am33\" from $i...
+ fi
+ cp $i new
+ sed '/start\-sanitize\-am33/,/end-\sanitize\-am33/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 dfd1d19..17c3b5d 100644
--- a/sim/mn10300/ChangeLog
+++ b/sim/mn10300/ChangeLog
@@ -1,3 +1,11 @@
+Tue Jun 30 11:23:20 1998 Jeffrey A Law (law@cygnus.com)
+
+ * mn10300_sim.h: Include bfd.h
+ (struct state): Add more room for processor specific registers.
+start-sanitize-am33
+ (REG_E0): Define.
+end-sanitize-am33
+
start-sanitize-am30
Thu Jun 25 10:12:03 1998 Joyce Janczyn <janczyn@cygnus.com>
diff --git a/sim/mn10300/mn10300_sim.h b/sim/mn10300/mn10300_sim.h
index 7be5a7d..230a69c 100644
--- a/sim/mn10300/mn10300_sim.h
+++ b/sim/mn10300/mn10300_sim.h
@@ -5,6 +5,7 @@
#include "opcode/mn10300.h"
#include <limits.h>
#include "remote-sim.h"
+#include "bfd.h"
#ifndef INLINE
#ifdef __GNUC__
@@ -69,8 +70,9 @@ struct simops
struct _state
{
- reg_t regs[15]; /* registers, d0-d3, a0-a3, sp, pc, mdr, psw,
- lir, lar, mdrq */
+ reg_t regs[32]; /* registers, d0-d3, a0-a3, sp, pc, mdr, psw,
+ lir, lar, mdrq, plus some room for processor
+ specific regs. */
uint8 *mem; /* main memory */
int exception;
int exited;
@@ -79,13 +81,19 @@ struct _state
extern uint32 OP[4];
extern struct simops Simops[];
-#define PC (State.regs[9])
+#define PC (State.regs[REG_PC])
+#define SP (State.regs[REG_SP])
#define PSW (State.regs[11])
#define PSW_Z 0x1
#define PSW_N 0x2
#define PSW_C 0x4
#define PSW_V 0x8
+#define PSW_IE LSBIT (11)
+#define PSW_LM LSMASK (10, 8)
+
+#define EXTRACT_PSW_LM LSEXTRACTED16 (PSW, 10, 8)
+#define INSERT_PSW_LM(l) LSINSERTED16 ((l), 10, 8)
#define REG_D0 0
#define REG_A0 4
@@ -96,6 +104,9 @@ extern struct simops Simops[];
#define REG_LIR 12
#define REG_LAR 13
#define REG_MDRQ 14
+/* start-sanitize-am33 */
+#define REG_E0 15
+/* end-sanitize-am33 */
#if WITH_COMMON
/* These definitions conflict with similar macros in common. */
@@ -337,10 +348,10 @@ void put_byte PARAMS ((uint8 *, uint8));
extern uint8 *map PARAMS ((SIM_ADDR addr));
-void genericAdd PARAMS ((unsigned long source, unsigned long destReg));
-void genericSub PARAMS ((unsigned long source, unsigned long destReg));
-void genericCmp PARAMS ((unsigned long leftOpnd, unsigned long rightOpnd));
-void genericOr PARAMS ((unsigned long source, unsigned long destReg));
-void genericXor PARAMS ((unsigned long source, unsigned long destReg));
-void genericBtst PARAMS ((unsigned long leftOpnd, unsigned long rightOpnd));
-void do_syscall PARAMS ((void));
+INLINE_SIM_MAIN (void) genericAdd PARAMS ((unsigned long source, unsigned long destReg));
+INLINE_SIM_MAIN (void) genericSub PARAMS ((unsigned long source, unsigned long destReg));
+INLINE_SIM_MAIN (void) genericCmp PARAMS ((unsigned long leftOpnd, unsigned long rightOpnd));
+INLINE_SIM_MAIN (void) genericOr PARAMS ((unsigned long source, unsigned long destReg));
+INLINE_SIM_MAIN (void) genericXor PARAMS ((unsigned long source, unsigned long destReg));
+INLINE_SIM_MAIN (void) genericBtst PARAMS ((unsigned long leftOpnd, unsigned long rightOpnd));
+INLINE_SIM_MAIN (void) do_syscall PARAMS ((void));