applied patch fixing GCC 4.1 build submitted by the Debian SDCC maintainer Aurelien...
[fw/sdcc] / sim / ucsim / xa.src / glob.h
index d22153696bf08abdb1560ec0de17289399872555..be31e94c8097c76be90ef54184b8afde11e17c4d 100644 (file)
@@ -6,7 +6,7 @@
  * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu
  * Other contributors include:
  *   Karl Bongers karl@turbobit.com,
- *   Johan Knol 
+ *   Johan Knol johan.knol@iduna.nl
  *
  */
 
@@ -147,9 +147,12 @@ enum op_operands {
 
 // odd-ball ones
   NO_OPERANDS,  // for NOP
-  C_BIT,
-  C_NOTBIT,
+  CY_BIT,
+  BIT_CY,
+  CY_NOTBIT,
+  DATA4,
   REG_DATA4,
+  REG_DATA5,
   IREG_DATA4,
   IREGINC_DATA4,
   IREGOFF8_DATA4,
@@ -160,11 +163,17 @@ enum op_operands {
   IREG,
   BIT_ALONE,
   DIRECT,
+  DIRECT_DIRECT,
   RLIST,
   ADDR24,
   BIT_REL8,
   REG_REL8,
   DIRECT_REL8,
+  REG_REGOFF8,
+  REG_REGOFF16,
+
+  REG_USP,
+  USP_REG,
 
   REL8,
   REL16,
@@ -173,24 +182,32 @@ enum op_operands {
   REG_DATA8_REL8,
   REG_DATA16_REL8,
   IREG_DATA8_REL8,
-  IREG_DATA16_REL8
+  IREG_DATA16_REL8,
 
+  A_APLUSDPTR,
+  A_APLUSPC,
+  A_PLUSDPTR,
+  IIREG
 };
 
 // table of dissassembled instructions
 struct xa_dis_entry
 {
-  uint  code, mask;
-  char  branch;
-  uchar length;
-  int mnemonic;
-  int operands;
+  uint is1byte; /* only grab 1 byte for table lookup(most are 2 bytes) */
+  uint code;    /* bits in opcode used to match table entry(with mask) */
+  uint mask;    /* mask used on .code to match up a common opcode */
+  char branch;  /* used by main app to implement "next" around calls */
+  uchar length; /* total length of opcode, used by dissasembler and main app */
+  int mnemonic; /* type of opcode(ADD, ADDC...) */
+  int operands; /* unique classification of operands: Rd,Rs = REG_REG,... */
 };
 
 extern struct dis_entry glob_disass_xa[];
 
 extern struct xa_dis_entry disass_xa[];
 
+extern struct name_entry sfr_tabXA51[];
+extern struct name_entry bit_tabXA51[];
 #endif
 
 /* End of xa.src/glob.h */