summary refs log tree commit diff
path: root/lisc/lisc.h
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-11-30 12:53:30 -0500
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-11-30 12:53:30 -0500
commitecebb6f48e276336d386125f3471b1c20db97119 (patch)
tree74911b760e2487274a20e37b21d984bb7e1f0920 /lisc/lisc.h
parent31f23dd5925196b5c0eb81cdf9537913b9a3ae4c (diff)
downloadroux-ecebb6f48e276336d386125f3471b1c20db97119.tar.gz
update liveness to work with fp
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 */