* doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
[fw/sdcc] / src / ds390 / gen.h
index 907b9601a08970d8758278245c1d1c5006029213..22b4f227968e96748a77892d2c66c7df0858598f 100644 (file)
@@ -1,5 +1,5 @@
 /*-------------------------------------------------------------------------
-  SDCCgen51.h - header file for code generation for 8051
+  gen.h - header file for code generation for DS80C390
 
              Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1998)
 
@@ -7,23 +7,23 @@
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
    later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   
+
    In other words, you are welcome to use, share and improve this program.
    You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
+   what you give them.   Help stamp out software-hoarding!
 -------------------------------------------------------------------------*/
 
-#ifndef SDCCGEN51_H
-#define SDCCGEN51_H
+#ifndef SDCCGEN390_H
+#define SDCCGEN390_H
 
 enum
   {
@@ -34,47 +34,47 @@ enum
     AOP_CRY, AOP_ACC, AOP_DPTRn, AOP_DUMMY
   };
 
-/* type asmop : a homogenised type for 
+/* type asmop : a homogenised type for
    all the different spaces an operand can be
    in */
 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
-                                  AOP_DPTRn  -  is in dptr(n)
-                                  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    */
+    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
+                                   AOP_DPTRn  -  is in dptr(n)
+                                   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 short allocated;  /* number of times allocated */
     union
       {
-       short dptr;             /* if AOP_DPTRn */
-       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 */
-       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[5];       /* just a string array containing the location */
+        short dptr;             /* if AOP_DPTRn */
+        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 */
+        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[5];       /* just a string array containing the location */
       }
     aopu;
   }