- unsigned isLiveFcall:1; /* is live at or across a function call */
- unsigned isspilt:1; /* has to be spilt */
- unsigned spillA:1; /* spilt be register allocator */
- unsigned remat:1; /* can be remateriazed */
- unsigned isptr:1; /* is a pointer */
- unsigned uptr:1; /* used as a pointer */
- unsigned isFree:1; /* used by register allocator */
- unsigned islocal:1; /* is a local variable */
- unsigned blockSpil:1; /* spilt at block level */
- unsigned remainSpil:1; /* spilt because not used in remainder */
- unsigned stackSpil:1; /* has been spilt on temp stack location */
- unsigned onStack:1; /* this symbol allocated on the stack */
- unsigned iaccess:1; /* indirect access */
- unsigned ruonly:1; /* used in return statement only */
- unsigned spildir:1; /* spilt in direct space */
- unsigned ptrreg:1; /* this symbol assigned to a ptr reg */
- unsigned noSpilLoc:1; /* cannot be assigned a spil location */
- unsigned isstrlit; /* is a string literal and it's usage count */
- unsigned accuse; /* can be left in the accumulator
- On the Z80 accuse is devided into
- ACCUSE_A and ACCUSE_HL as the idea
- is quite similar.
- */
- unsigned dptr; /* 8051 variants with multiple DPTRS
- currently implemented in DS390 only
- */
- int allocreq ; /* allocation is required for this variable */
- int stack; /* offset on stack */
- int xstack; /* offset on xternal stack */
- short nRegs; /* number of registers required */
- short regType; /* type of register required */
-
- struct regs *regs[4]; /* can have at the most 4 registers */
- struct asmop *aop; /* asmoperand for this symbol */
- struct iCode *fuse; /* furthest use */
- struct iCode *rematiCode; /* rematerialse with which instruction */
- struct operand *reqv; /* register equivalent of a local variable */
- struct symbol *prereqv; /* symbol before register equiv. substituion */
- struct symbol *psbase; /* if pseudo symbol, the symbol it is based on */
+ unsigned isLiveFcall:1; /* is live at or across a function call */
+ unsigned isspilt:1; /* has to be spilt */
+ unsigned spillA:1; /* spilt be register allocator */
+ unsigned remat:1; /* can be remateriazed */
+ unsigned isptr:1; /* is a pointer */
+ unsigned uptr:1; /* used as a pointer */
+ unsigned isFree:1; /* used by register allocator */
+ unsigned islocal:1; /* is a local variable */
+ unsigned blockSpil:1; /* spilt at block level */
+ unsigned remainSpil:1; /* spilt because not used in remainder */
+ unsigned stackSpil:1; /* has been spilt on temp stack location */
+ unsigned onStack:1; /* this symbol allocated on the stack */
+ unsigned iaccess:1; /* indirect access */
+ unsigned ruonly:1; /* used in return statement only */
+ unsigned spildir:1; /* spilt in direct space */
+ unsigned ptrreg:1; /* this symbol assigned to a ptr reg */
+ unsigned noSpilLoc:1; /* cannot be assigned a spil location */
+ unsigned isstrlit; /* is a string literal and it's usage count */
+ unsigned accuse; /* can be left in the accumulator
+ On the Z80 accuse is divided into
+ ACCUSE_A and ACCUSE_HL as the idea
+ is quite similar.
+ */
+ unsigned dptr; /* 8051 variants with multiple DPTRS
+ currently implemented in DS390 only
+ */
+ int allocreq ; /* allocation is required for this variable */
+ int stack; /* offset on stack */
+ int xstack; /* offset on xternal stack */
+ short nRegs; /* number of registers required */
+ short regType; /* type of register required */
+
+ struct regs *regs[4]; /* can have at the most 4 registers */
+ struct asmop *aop; /* asmoperand for this symbol */
+ struct iCode *fuse; /* furthest use */
+ struct iCode *rematiCode; /* rematerialise with which instruction */
+ struct operand *reqv; /* register equivalent of a local variable */
+ struct symbol *prereqv; /* symbol before register equiv. substitution */
+ struct symbol *psbase; /* if pseudo symbol, the symbol it is based on */