summary refs log tree commit diff
path: root/lisc/lisc.h
diff options
context:
space:
mode:
Diffstat (limited to 'lisc/lisc.h')
-rw-r--r--lisc/lisc.h16
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 */