ref: a2ad59b340bf3339dbba105310002474b98d0184
dir: /sys/src/cmd/zc/z.out.h/
#define NSNAME 8
#define NSYM 50
#define NREG 32
#define NOPROF (1<<0)
#define DUPOK (1<<1)
#define REGRET 4
#define REGARG 4
/* compiler allocates R4 up as temps */
/* compiler allocates register variables R3-R23 */
#define REGMIN 5
#define REGMAX 28
#define REGTMP 17
/* compiler allocates external registers R30 down */
#define REGEXT 30
#define REGSP 3
#define REGSB 31
#define REGLINK 1
#define REGZERO 0
#define NFREG 32
#define FREGRET 0
#define FREGMIN 7
/* compiler allocates register variables F0 up */
/* compiler allocates external registers F31 down */
#define FREGEXT 31
enum as
{
AXXX,
AABSD,
AABSF,
AADD,
AADDD,
AADDF,
AADDU,
AADDW,
AAND,
ABEQ,
ABFPF,
ABFPT,
ABGEZ,
ABGTZ,
ABLEZ,
ABLTZ,
ABNE,
ABREAK,
ACMPEQD,
ACMPEQF,
ACMPGED,
ACMPGEF,
ACMPGTD,
ACMPGTF,
ADATA,
ADIV,
ADIVD,
ADIVF,
ADIVU,
ADIVW,
AGLOBL,
AGOK,
AHISTORY,
AJAL,
AJMP,
AMOVB,
AMOVBU,
AMOVD,
AMOVDF,
AMOVDW,
AMOVF,
AMOVFD,
AMOVFW,
AMOVH,
AMOVHU,
AMOVW,
AMOVWD,
AMOVWF,
AMOVWL,
AMOVWR,
AMUL,
AMULD,
AMULF,
AMULU,
AMULW,
ANAME32,
ANAME,
ANEGD,
ANEGF,
ANEGW,
ANOP,
ANOR,
AOR,
AREM,
AREMU,
ARET,
ASGT,
ASGTU,
ASLL,
ASRA,
ASRL,
ASUB,
ASUBD,
ASUBF,
ASUBU,
ASUBW,
ASYSCALL,
ATEXT,
AWORD,
AXOR,
AEND,
AMOVV,
AMOVVL,
AMOVVR,
ASLLV,
ASRAV,
ASRLV,
ADIVV,
ADIVVU,
AREMV,
AREMVU,
AMULV,
AMULVU,
AADDV,
AADDVU,
ASUBV,
ASUBVU,
ADYNT,
AINIT,
ATRUNCFV,
ATRUNCDV,
ATRUNCFW,
ATRUNCDW,
AMOVWU,
AMOVFV,
AMOVDV,
AMOVVF,
AMOVVD,
ALU12IW,
ALU32ID,
ALU52ID,
ASIGNAME,
ALAST,
};
/* type/name */
enum
{
D_GOK = 0,
D_NONE,
/* name */
D_EXTERN,
D_STATIC,
D_AUTO,
D_PARAM,
/* type */
D_BRANCH,
D_OREG,
D_CONST,
D_FCONST,
D_SCONST,
D_REG,
D_FREG,
D_FCCREG,
D_FCSREG,
D_FILE,
D_OCONST,
D_FILE1,
D_VCONST,
};
/*
* this is the ranlib header
*/
#define SYMDEF "__.SYMDEF"
/*
* this is the simulated IEEE floating point
*/
typedef struct ieee Ieee;
struct ieee
{
long l; /* contains ls-man 0xffffffff */
long h; /* contains sign 0x80000000
exp 0x7ff00000
ms-man 0x000fffff */
};