summaryrefslogtreecommitdiff
path: root/test/cminor
diff options
context:
space:
mode:
Diffstat (limited to 'test/cminor')
-rw-r--r--test/cminor/Makefile6
-rw-r--r--test/cminor/sha1.cmp2
-rw-r--r--test/cminor/switchtbl.cm16
3 files changed, 23 insertions, 1 deletions
diff --git a/test/cminor/Makefile b/test/cminor/Makefile
index 29ebf69..9d2dfdb 100644
--- a/test/cminor/Makefile
+++ b/test/cminor/Makefile
@@ -1,4 +1,5 @@
CCOMP=../../ccomp
+FLAGS=-S
CPP=cpp -P
CC=gcc
CFLAGS=-arch ppc -g
@@ -69,6 +70,11 @@ marksweep: marksweep.o maingc.o marksweepcheck.o
clean::
rm -f stopcopy
+switchtbl: switchtbl.o mainswitchtbl.o
+ $(CC) $(CFLAGS) -o switchtbl switchtbl.o mainswitchtbl.o
+clean::
+ rm -f switchtbl
+
.SUFFIXES:
.SUFFIXES: .cmp .cm .s .o .c .S
diff --git a/test/cminor/sha1.cmp b/test/cminor/sha1.cmp
index ca24544..31c4b17 100644
--- a/test/cminor/sha1.cmp
+++ b/test/cminor/sha1.cmp
@@ -54,7 +54,7 @@ extern "memset" : int -> int -> int -> void
"SHA1_transform"(ctx) : int -> void
{
- stack 320
+ stack 320;
var i, p, a, b, c, d, e, t;
/* Convert buffer data to 16 big-endian integers */
diff --git a/test/cminor/switchtbl.cm b/test/cminor/switchtbl.cm
new file mode 100644
index 0000000..07bda7e
--- /dev/null
+++ b/test/cminor/switchtbl.cm
@@ -0,0 +1,16 @@
+"f"(x): int -> int
+{
+ match (x) {
+ case 0: return 00;
+ case 1: return 11;
+ case 2: return 22;
+ case 3: return 33;
+ case 4: return 44;
+ case 5: return 55;
+ case 6: return 66;
+ case 7: return 77;
+ case 8: return 88;
+ case 9: return 99;
+}
+}
+