Use 'ao-dbg' instead of 's51' to communicate with TeleMetrum
[fw/sdcc] / src / z80 / gen.h
index 902e11f0b356d5e260123d6f9d4a06e5913f6b1f..2512bd65e2c517c8b85a867db349493e97440b5b 100644 (file)
@@ -22,8 +22,8 @@
    what you give them.   Help stamp out software-hoarding!  
 -------------------------------------------------------------------------*/
 
-#ifndef SDCCGEN51_H
-#define SDCCGEN51_H
+#ifndef Z80GEN_H
+#define Z80GEN_H
 
 typedef enum
   {
@@ -51,7 +51,15 @@ typedef enum
     /* Is in A */
     AOP_ACC,
     /* Is in H and L */
-    AOP_HLREG
+    AOP_HLREG,
+    /* Simple literal. */
+    AOP_SIMPLELIT,
+    /* Is in the extended stack pointer (IY on the Z80) */
+    AOP_EXSTK,
+    /* Is referenced by a pointer in a register pair. */
+    AOP_PAIRPTR,
+    /* Read as 0, discard writes */
+    AOP_DUMMY
   }
 AOP_TYPE;
 
@@ -63,9 +71,11 @@ typedef struct asmop
     AOP_TYPE type;
     short coff;                 /* current offset */
     short size;                 /* total size */
-    unsigned code:1;            /* is in Code space */
-    unsigned paged:1;           /* in paged memory  */
-    unsigned freed:1;           /* already freed    */
+    unsigned  code:1;               /* is in Code space */
+    unsigned  paged:1;              /* in paged memory  */
+    unsigned  freed:1;              /* already freed    */
+    unsigned  bcInUse:1;
+    unsigned  deInUse:1;
     union
       {
         value *aop_lit;         /* if literal */
@@ -74,12 +84,15 @@ typedef struct asmop
         char *aop_immd;         /* if immediate others are implied */
         int aop_stk;            /* stack offset when AOP_STK */
         const char *aop_str[4]; /* just a string array containing the location */
+        unsigned long aop_simplelit; /* Just the value. */
+        int aop_pairId;                /* The pair ID */
       }
     aopu;
   }
 asmop;
 
 void genZ80Code (iCode *);
+void z80_emitDebuggerSymbol (char *);
 
 
 #endif