Begin(int n= 1);
Define(int n);
Define(Label &l);
Define(Label *l);
Define(LocalLabel *l);
End(int n= 1);

  // function, args, temps

Ienter(void),   Lenter(void);
Iarg(int n= 1),	Larg(int n= 1);
Itmp(int n= 1),	Ltmp(int n= 1);
LdArg(int n);
StArg(int n);
LdTmp(int n);
StTmp(int n);
DropTmp(int n= 1);
LdFP(void);
AddrTmp(int n);
AddrArg(int n);
Addr(LocalLabel *l);
SaveArgs(void);
Alloc(void);

  // stack

Ld(int i);
Ld(long long i);
Ld(char *s);
Ld(void *p);
Dup(int n= 0);
Put(int n);
Drop(int n= 1);

  // conditional

Lt(void);
Le(void);
Eq(void);
Ne(void);
Ge(void);
Gt(void);
Not(void);

Bf(int n);
Bt(int n);
Br(int n);
Br(LocalLabel *l);
Br(void);

  // call

Icall(int n);
Icall(int n, void *fn);
Icall(int n, Label *l);
Ret(void);

  // arithmetic

Icvt(void);

Neg(void);

Add(void);
Sub(void);
Div(void);
Mul(void);
Mod(void);
And(void);
Or (void);
Xor(void);
Asl(void);
Asr(void);
Lsl(void);
Lsr(void);

  // memory

Rdb(void);
Rdh(void);
Rdw(void);
Wrb(void);
Wrh(void);
Wrw(void);
