From 13e04cd1debf1ad715b8849d320ec058c4c919ae Mon Sep 17 00:00:00 2001 From: Quentin Carbonneaux Date: Fri, 21 Aug 2015 14:22:08 -0400 Subject: add helpful diagnostics --- lisc/tools/pmov.c | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) (limited to 'lisc/tools/pmov.c') diff --git a/lisc/tools/pmov.c b/lisc/tools/pmov.c index 246f4f0..e3d2104 100644 --- a/lisc/tools/pmov.c +++ b/lisc/tools/pmov.c @@ -4,15 +4,20 @@ #include #include +static void assert_test(char *, int), fail(void); + #include "../rega.c" +static RMap mbeg; +static Ins ins[NReg], *ip; + int main() { Blk dummyb; - Ins ins[NReg], *ip, *i1; + Ins *i1; unsigned long long tm, rm; - RMap mbeg, mend; + RMap mend; int reg[NReg]; int t, i, r, nr; @@ -131,12 +136,44 @@ main() exit(0); } + +/* failure diagnostics */ +static void +fail() +{ + Ins *i1; + int i; + + printf("\nIn registers: "); + for (i=0; ito.val].name, + i1->arg[0].val); + exit(1); +} + +static void +assert_test(char *s, int x) +{ + if (x) + return; + printf("!assertion failure: %s\n", s); + fail(); +} + + /* symbols required by the linker */ char debug['Z'+1]; Ins insb[NIns], *curi; void diag(char *s) -{ printf("!diag failure: %s\n", s); exit(1); } +{ printf("!diag failure: %s\n", s); fail(); } void *alloc(size_t n) { return malloc(n); } -- cgit 1.4.1