summary refs log tree commit diff
path: root/lisc/lisc.h
diff options
context:
space:
mode:
authorQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-07-17 16:54:01 -0400
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2015-09-15 23:01:28 -0400
commit9ecfdf63340c167a243cd479534110b34737e80b (patch)
treee760664313c8a410952e97384409217a13dfce79 /lisc/lisc.h
parent77bdb3ae9e925c9063f10ff9e1e5cf8ac66538ce (diff)
downloadroux-9ecfdf63340c167a243cd479534110b34737e80b.tar.gz
cosmetics
Diffstat (limited to 'lisc/lisc.h')
-rw-r--r--lisc/lisc.h24
1 files changed, 13 insertions, 11 deletions
diff --git a/lisc/lisc.h b/lisc/lisc.h
index 0ed9411..fde55c4 100644
--- a/lisc/lisc.h
+++ b/lisc/lisc.h
@@ -1,10 +1,10 @@
 #include <assert.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
 typedef unsigned int uint;
-typedef unsigned short ushort;
 typedef unsigned char uchar;
 typedef unsigned long long ullong;
 
@@ -39,27 +39,29 @@ struct Bits {
 #define BCLR(b, n) ((b).t[n/NBit] &= ~((ullong)1<<(n%NBit)))
 
 struct Ref {
-	ushort type:1;
-	ushort val:15;
+	uint16_t type:1;
+	uint16_t val:15;
 };
 
-#define R (Ref){0, 0} // Invalid reference
-
-static inline int
-req(Ref a, Ref b)
-{
-	return a.type == b.type && a.val == b.val;
-}
-
 enum {
 	RSym = 0,
 	RConst = 1,
 	NRef = (1<<15) - 1
 };
 
+#define R        (Ref){0, 0}
 #define SYM(x)   (Ref){RSym, x}
 #define CONST(x) (Ref){RConst, x}
 
+static inline int req(Ref a, Ref b)
+{
+	return a.type == b.type && a.val == b.val;
+}
+static inline int rtype(Ref r)
+{
+	return req(r, R) ? -1 : r.type;
+}
+
 enum {
 	OXXX = 0,
 	OAdd,