summaryrefslogtreecommitdiff
path: root/test-suite/standalone/sassy/tests/prims/begin5.scm
diff options
context:
space:
mode:
Diffstat (limited to 'test-suite/standalone/sassy/tests/prims/begin5.scm')
-rw-r--r--test-suite/standalone/sassy/tests/prims/begin5.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/test-suite/standalone/sassy/tests/prims/begin5.scm b/test-suite/standalone/sassy/tests/prims/begin5.scm
new file mode 100644
index 000000000..72a8c0922
--- /dev/null
+++ b/test-suite/standalone/sassy/tests/prims/begin5.scm
@@ -0,0 +1,18 @@
+(text
+ (begin (nop)
+ (inv (alt z!
+ l!
+ a!))
+ (nop)))
+
+;The arguments to a begin always take as their win and lose the
+;following arg in the sequence, except for the last, which takes
+;begin's win and lose. Since the assertions only generate jcc's, they
+;would all be jcc's to the last (nop). But it happens that the last
+;(nop) is the instruction following the a! assertion. But a jmp to the
+;next instruction is really doing nothing at all, so it may be
+;eliminated. But then the l! assertion is in the same circumstance,
+;and so on. Hence:
+
+; 00000000 90 nop
+; 00000001 90 nop