aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/dynalloc.ssa27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/dynalloc.ssa b/test/dynalloc.ssa
new file mode 100644
index 0000000..7c54e88
--- /dev/null
+++ b/test/dynalloc.ssa
@@ -0,0 +1,27 @@
+# make sure dynamic allocations
+# and caller-save regs interact
+# soundly
+
+function $g() {
+@start
+ ret
+}
+
+function w $f(w %arg) {
+@start
+ call $g()
+@alloc
+ %r =l alloc8 16
+ storel 180388626474, %r
+ %r8 =l add 8, %r
+ storel 180388626474, %r8
+ ret %arg
+}
+
+export
+function w $main() {
+@start
+ %a =w call $f(w 0)
+ %b =w call $f(w 0)
+ ret %a
+}