summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lisc/isel.c10
-rw-r--r--lisc/lisc.h4
2 files changed, 9 insertions, 5 deletions
diff --git a/lisc/isel.c b/lisc/isel.c
index 26f103f..e60d6d6 100644
--- a/lisc/isel.c
+++ b/lisc/isel.c
@@ -528,15 +528,15 @@ classify(Ins *i0, Ins *i1, AClass *ac, int op)
 	return ((6-nint) << 4) | ((8-nsse) << 8);
 }
 
-int rsave[/* NRSave */] = {
+int rsave[] = {
 	RDI, RSI, RDX, RCX, R8, R9, R10, R11, RAX,
 	XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7,
 	XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14
 };
-typedef char make_sure_rsave_has_correct_size[
-	sizeof rsave == NRSave * sizeof(int) ? 1 : -1
-];
-int rclob[NRClob] = {RBX, R12, R13, R14, R15};
+int rclob[] = {RBX, R12, R13, R14, R15};
+
+MAKESURE(rsave_has_correct_size, sizeof rsave == NRSave * sizeof(int));
+MAKESURE(rclob_has_correct_size, sizeof rclob == NRClob * sizeof(int));
 
 ulong
 calldef(Ins i, int p[2])
diff --git a/lisc/lisc.h b/lisc/lisc.h
index 0e69967..1c3f3f5 100644
--- a/lisc/lisc.h
+++ b/lisc/lisc.h
@@ -5,6 +5,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#define MAKESURE(what, x) typedef char make_sure_##what[(x)?1:-1]
+
 typedef unsigned int uint;
 typedef unsigned short ushort;
 typedef unsigned long ulong;
@@ -86,6 +88,8 @@ enum {
 	NBit    = CHAR_BIT * sizeof(ulong),
 };
 
+MAKESURE(NBit_is_enough, NBit >= (int)Tmp0);
+
 struct BSet {
 	uint nt;
 	ulong *t;