BSD 4_3 development
[unix-history] / usr / src / lib / pcc / mac2defs.h
/* mac2defs.h 4.2 85/08/23 */
/*
* VAX-11/780 Registers
*/
/*
* Scratch registers
*/
#define R0 0
#define R1 1
#define R2 2
#define R3 3
#define R4 4
#define R5 5
/*
* Register variables
*/
#define R6 6
#define R7 7
#define R8 8
#define R9 9
#define R10 10
#define R11 11
/*
* Special purpose registers
*/
#define AP 12 /* argument pointer */
#define FP 13 /* frame pointer */
#define SP 14 /* stack pointer */
#define PC 15 /* program counter */
#define REGSZ 16
#define TMPREG FP
#define R2REGS 1 /* permit double indexing */
extern int fregs;
extern int maxargs;
#define BYTEOFF(x) ((x)&03)
#define wdal(k) (BYTEOFF(k)==0) /* word align */
#define BITOOR(x) ((x)>>3) /* bit offset to oreg offset */
/*
* Some macros used in store():
* just evaluate the arguments, and be done with it...
*/
#define STOARG(p)
#define STOFARG(p)
#define STOSTARG(p)
#define genfcall(a,b) gencall(a,b)
/*
* Some short routines that get called an awful lot are actually macros.
*/
#if defined(FORT) || defined(SPRECC)
#define szty(t) ((t) == DOUBLE ? 2 : 1)
#else
#define szty(t) (((t) == DOUBLE || (t) == FLOAT) ? 2 : 1)
#endif
#define shltype(o, p) \
((o) == REG || (o) == NAME || (o) == ICON || \
(o) == OREG || ((o) == UNARY MUL && shumul((p)->in.left)))
#define ncopy(q, p) ((q)->in = (p)->in)
#define MYREADER(p) myreader(p)
int optim2();
/* This indicates there are no additional special shapes, see match.c */
#define special(a, b) 0