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, 13 insertions, 3 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h
index 6e0abe5..bebcc7b 100644
--- a/lisc/lisc.h
+++ b/lisc/lisc.h
@@ -157,6 +157,13 @@ enum Cmp { CMPS(X) NCmp };
 enum Ty { TYS(X) NTy };
 #undef X
 
+enum Class {
+	Kw,
+	Kl,
+	Ks,
+	Kd
+};
+
 enum Op {
 	OXXX,
 
@@ -169,6 +176,8 @@ enum Op {
 	OAnd,
 	OCmp,
 	OCmp1 = OCmp + NCmp-1,
+	OStored,
+	OStores,
 	OStorel,
 	OStorew,
 	OStoreh,
@@ -223,10 +232,10 @@ struct OpDesc {
 };
 
 struct Ins {
-	ushort op:15;
-	ushort wide:1;
+	ushort op:14;
 	Ref to;
 	Ref arg[2];
+	ushort cls:2;
 };
 
 struct Phi {
@@ -234,7 +243,7 @@ struct Phi {
 	Ref arg[NPred];
 	Blk *blk[NPred];
 	uint narg;
-	uint wide;
+	int cls;
 	Phi *link;
 };
 
@@ -301,6 +310,7 @@ struct Con {
 		CNum,
 		CAddr,
 	} type;
+	char flt;
 	char label[NString];
 	int64_t val;
 };