diff options
Diffstat (limited to 'lisc/lisc.h')
-rw-r--r-- | lisc/lisc.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h index bebcc7b..1d1f027 100644 --- a/lisc/lisc.h +++ b/lisc/lisc.h @@ -65,7 +65,9 @@ enum Reg { NReg = RBX - RAX + 1, NFReg = XMM15 - XMM0 + 1, - NRSave = 9, + NISave = 9, + NFSave = 15, + NRSave = NISave + NFSave, NRClob = 5, }; @@ -164,6 +166,9 @@ enum Class { Kd }; +#define KWIDE(k) ((k)&1) +#define KBASE(k) ((k)>>1) + enum Op { OXXX, @@ -270,7 +275,7 @@ struct Blk { Blk **pred; uint npred; Bits in, out, gen; - int nlive; + int nlive[2]; int loop; char name[NString]; }; @@ -295,7 +300,7 @@ struct Tmp { uint ndef, nuse; uint cost; short slot; - short wide; + short cls; struct { int r; ulong m; @@ -421,9 +426,8 @@ void filllive(Fn *); /* isel.c */ extern int rsave[NRSave]; extern int rclob[NRClob]; -ulong calldef(Ins, int *); -ulong calluse(Ins, int *); -ulong callclb(Ins, int *); +ulong calldef(Ins, int[2]); +ulong calluse(Ins, int[2]); void isel(Fn *); /* spill.c */ |