* as/hc08/lkaomf51.c (OutputName),
[fw/sdcc] / src / mcs51 / gen.h
index 567948f3d998e6c9a12e3f05ff65f0a8da68e174..3cd811f20c981f4ee3006a658e3be4948e2ba352 100644 (file)
@@ -29,9 +29,9 @@ enum
   {
     AOP_LIT = 1,
     AOP_REG, AOP_DIR,
-    AOP_DPTR, AOP_DPTR2, AOP_R0, AOP_R1,
+    AOP_DPTR, AOP_R0, AOP_R1,
     AOP_STK, AOP_IMMD, AOP_STR,
-    AOP_CRY, AOP_ACC
+    AOP_CRY, AOP_ACC, AOP_DUMMY
   };
 
 /* type asmop : a homogenised type for 
@@ -40,32 +40,37 @@ enum
 typedef struct asmop
   {
 
-    short type;                        /* can have values
-                                  AOP_LIT    -  operand is a literal value
-                                  AOP_REG    -  is in registers
-                                  AOP_DIR    -  direct just a name
-                                  AOP_DPTR   -  dptr contains address of operand
-                                  AOP_DPTR2  -  dptr2 contains address of operand (DS80C390 only).
-                                  AOP_R0/R1  -  r0/r1 contains address of operand               
-                                  AOP_STK    -  should be pushed on stack this
-                                  can happen only for the result
-                                  AOP_IMMD   -  immediate value for eg. remateriazable 
-                                  AOP_CRY    -  carry contains the value of this
-                                  AOP_STR    -  array of strings
-                                  AOP_ACC    -  result is in the acc:b pair
-                                */
+    short type;                        
+    /* can have values
+       AOP_LIT    -  operand is a literal value
+       AOP_REG    -  is in registers
+       AOP_DIR    -  direct just a name
+       AOP_DPTR   -  dptr contains address of operand
+       AOP_R0/R1  -  r0/r1 contains address of operand               
+       AOP_STK    -  should be pushed on stack this
+       can happen only for the result
+       AOP_IMMD   -  immediate value for eg. remateriazable 
+       AOP_CRY    -  carry contains the value of this
+       AOP_STR    -  array of strings
+       AOP_ACC    -  result is in the acc:b pair
+       AOP_DUMMY  -  read as 0, discard writes
+    */
     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 short allocated;  /* number of times allocated */
     union
       {
        value *aop_lit;         /* if literal */
        regs *aop_reg[4];       /* array of registers */
        char *aop_dir;          /* if direct  */
        regs *aop_ptr;          /* either -> to r0 or r1 */
-       char *aop_immd;         /* if immediate others are implied */
+       struct {
+               int  from_cast_remat;   /* cast remat created this : immd2 field used for highest order*/
+               char *aop_immd1;        /* if immediate others are implied */
+               char *aop_immd2;        /* cast remat will generate this   */
+       } aop_immd;
        int aop_stk;            /* stack offset when AOP_STK */
        char *aop_str[4];       /* just a string array containing the location */
       }
@@ -74,10 +79,10 @@ typedef struct asmop
 asmop;
 
 void gen51Code (iCode *);
+void mcs51_emitDebuggerSymbol (char *);
 
-extern char *fReturn8051[];
-extern char *fReturn390[];
-extern unsigned fReturnSize;
-extern char **fReturn;
+//extern char *fReturn8051[];
+extern unsigned fReturnSizeMCS51;
+//extern char **fReturn;
 
 #endif