unsigned _typedef :1 ; /* is typedefed */
unsigned _isregparm:1 ; /* is the first parameter */
unsigned _isenum :1 ; /* is an enumerated type */
+ unsigned banked :1 ; /* function has banked attribute */
unsigned _IntNo ; /* 1=Interrupt svc routine */
short _regbank ; /* register bank 2b used */
unsigned _addr ; /* address of symbol */
unsigned onStack :1 ; /* this symbol allocated on the stack */
unsigned iaccess :1 ; /* indirect access */
unsigned ruonly :1 ; /* used in return statement only */
- unsigned accuse :1 ; /* can be left in the accumulator */
unsigned spildir :1 ; /* spilt in direct space */
unsigned ptrreg :1 ; /* this symbol assigned to a ptr reg */
+ 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.
+ */
int stack ; /* offset on stack */
int xstack ; /* offset on xternal stack */
#define SPEC_STRUCT(x) x->select.s.v_struct
#define SPEC_TYPEDEF(x) x->select.s._typedef
#define SPEC_REGPARM(x) x->select.s._isregparm
+#define SPEC_BANKED(x) x->select.s.banked
/* type check macros */
#define IS_DECL(x) ( x && x->class == DECLARATOR )
#define IS_LITERAL(x) (IS_SPEC(x) && x->select.s.sclass == S_LITERAL)
#define IS_ISR(x) (IS_SPEC(x) && SPEC_INTRTN(x))
#define IS_REGPARM(x) (IS_SPEC(x) && SPEC_REGPARM(x))
+#define IS_BANKED(x) (IS_SPEC(x) && SPEC_BANKED(x))
/* forward declaration for the global vars */
extern bucket *SymbolTab[] ;