fixed optimzation for Atom
[platform/upstream/binutils.git] / sim / h8300 / inst.h
index 22914b4..edbee6a 100644 (file)
@@ -1,8 +1,29 @@
 #define DEBUG
 
-#define MPOWER 16
-#define MSIZE (1<<MPOWER)
+/* These define the size of main memory for the simulator.
+
+   Note the size of main memory for the H8/300H is only 256k.  Keeping it
+   small makes the simulator run much faster and consume less memory.
+
+   The linker knows about the limited size of the simulator's main memory
+   on the H8/300H (via the h8300h.sc linker script).  So if you change
+   H8300H_MSIZE, be sure to fix the linker script too.
+
+   Also note that there's a separate "eightbit" area aside from main
+   memory.  For simplicity, the simulator assumes any data memory reference
+   outside of main memory refers to the eightbit area (in theory, this
+   can only happen when simulating H8/300H programs).  We make no attempt
+   to catch overlapping addresses, wrapped addresses, etc etc.  */
+#define H8300_MSIZE (1 << 16)
+
+/* avolkov: 
+   Next 2 macros are ugly for any workstation, but while they're work.
+   Memory size MUST be configurable.  */
+#define H8300H_MSIZE (1 << 18) 
+#define H8300S_MSIZE (1 << 24) 
+
 #define CSIZE 1000
+
 /* Local register names */
 typedef enum
 {
@@ -10,6 +31,7 @@ typedef enum
   R_ZERO,
   R_PC,                                
   R_CCR,
+  R_EXR,
   R_HARD_0,                    
   R_LAST,
 } reg_type;
@@ -38,20 +60,26 @@ typedef struct
 struct h8_opcode *op;
 #endif
 }
-
 decoded_inst;
 
+enum h8300_sim_state {
+  SIM_STATE_RUNNING, SIM_STATE_EXITED, SIM_STATE_SIGNALLED, SIM_STATE_STOPPED
+};
 
+/* For Command Line.  */
+char **ptr_command_line; /* Pointer to Command Line Arguments. */
 
 typedef struct
 {
+  enum h8300_sim_state state;
   int exception;
   unsigned  int regs[9];
   int pc;
   int ccr;
-  
+  int exr;
 
   unsigned char *memory;
+  unsigned char *eightbit;
   unsigned short *cache_idx;
   int cache_top;
   int maximum;
@@ -67,5 +95,4 @@ typedef struct
   int stats[O_LAST];
 #endif
 }
-
 cpu_state_type;