2 unsigned char max_unaligned_load
;
5 void (*blkfetch
)(int size
, int off
, int reg
, int tmp
);
6 void (*blkstore
)(int size
, int off
, int reg
, int tmp
);
7 void (*blkloop
)(int dreg
, int doff
,
11 int (*_rule
)(void*, int);
13 void (*_kids
)(Node
, int, Node
*);
21 void (*clobber
)(Node
);
23 extern int askregvar(Symbol
, Symbol
);
24 extern void blkcopy(int, int, int, int, int, int[]);
25 extern int getregnum(Node
);
26 extern int mayrecalc(Node
);
27 extern int mkactual(int, int);
28 extern void mkauto(Symbol
);
29 extern Symbol
mkreg(char *, int, int, int);
30 extern Symbol
mkwildcard(Symbol
*);
31 extern int move(Node
);
32 extern int notarget(Node
);
33 extern void parseflags(int, char **);
34 extern int range(Node
, int, int);
35 extern unsigned regloc(Symbol
); /* omit */
36 extern void rtarget(Node
, int, Symbol
);
37 extern void setreg(Node
, Symbol
);
38 extern void spill(unsigned, int, Node
);
39 extern int widens(Node
);
41 extern int argoffset
, maxargoffset
;
42 extern int bflag
, dflag
;
43 extern int dalign
, salign
;
45 extern unsigned freemask
[], usedmask
[];
46 extern int offset
, maxoffset
;
48 extern unsigned tmask
[], vmask
[];
51 unsigned registered
:1;
70 enum { IREG
=0, FREG
=1 };
73 unsigned int eaddr
; /* omit */
86 #define LBURG_MAX SHRT_MAX
88 enum { VREG
=(44<<4) };
90 /* Exported for the front end */
91 extern void blockbeg(Env
*);
92 extern void blockend(Env
*);
93 extern void emit(Node
);
94 extern Node
gen(Node
);
96 extern unsigned emitbin(Node
, int);
99 #define debug(x) (void)0
101 #define debug(x) (void)(dflag&&((x),0))