Extended the semantics of the critical keyword to include
[fw/sdcc] / src / ds390 / gen.h
index d238ca9b24eeafdf1e318f4c58e75add3e15aae9..8f33d7122a5f97918ba6e6bf6b90bfb1f0a1b874 100644 (file)
@@ -31,7 +31,7 @@ enum
     AOP_REG, AOP_DIR,
     AOP_DPTR, AOP_DPTR2, AOP_R0, AOP_R1,
     AOP_STK, AOP_IMMD, AOP_STR,
-    AOP_CRY, AOP_ACC
+    AOP_CRY, AOP_ACC, AOP_DPTRn, AOP_DUMMY
   };
 
 /* type asmop : a homogenised type for 
@@ -53,6 +53,8 @@ typedef struct asmop
                                   AOP_CRY    -  carry contains the value of this
                                   AOP_STR    -  array of strings
                                   AOP_ACC    -  result is in the acc:b pair
+                                  AOP_DPTRn  -  is in dptr(n)
+                                  AOP_DUMMY  -  read as 0, discard writes
                                 */
     short coff;                        /* current offset */
     short size;                        /* total size */
@@ -61,6 +63,7 @@ typedef struct asmop
     unsigned freed:1;          /* already freed    */
     union
       {
+       short dptr;             /* if AOP_DPTRn */
        value *aop_lit;         /* if literal */
        regs *aop_reg[4];       /* array of registers */
        char *aop_dir;          /* if direct  */