diff options
Diffstat (limited to 'lisc/lisc.h')
-rw-r--r-- | lisc/lisc.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h index d8ef273..91d186a 100644 --- a/lisc/lisc.h +++ b/lisc/lisc.h @@ -19,7 +19,9 @@ typedef struct Fn Fn; typedef enum { U, F, T } B3; enum { - RAX = 1, /* caller-save */ + RXX, + + RAX, /* caller-save */ RCX, RDX, RSI, @@ -43,8 +45,6 @@ enum { }; enum { - Tmp0 = 33, - NString = 32, NPred = 15, NBlk = 128, @@ -71,6 +71,7 @@ enum { RSym, RCons, RSlot, + RReg, NRef = (1<<14) - 1 }; @@ -78,6 +79,7 @@ enum { #define SYM(x) (Ref){RSym, x} #define CONS(x) (Ref){RCons, x} #define SLOT(x) (Ref){RSlot, x} +#define REG(x) (Ref){RReg, x} static inline int req(Ref a, Ref b) { return a.type == b.type && a.val == b.val; } @@ -158,11 +160,6 @@ struct Blk { }; struct Sym { - enum { - SUndef, - SReg, - STmp, - } type; char name[NString]; int class; uint ndef, nuse; @@ -185,7 +182,7 @@ struct Fn { Blk *start; Sym *sym; Cons *cons; - int ntmp; + int nsym; int nblk; Blk **rpo; uint nspill; |