summaryrefslogtreecommitdiff
path: root/test-suite/standalone/sassy/tests/prims16/16esc5.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-08-13 18:48:20 +0200
committerAndy Wingo <wingo@pobox.com>2009-08-13 18:48:20 +0200
commit66ff15e2f0afa2d2ecd4e7de484acf7324c3b0f1 (patch)
treed31881900e8f715d8afd07521497c81101b3fedf /test-suite/standalone/sassy/tests/prims16/16esc5.scm
parentd785171115bb35c6e3cc3663a0023ff4e88536d5 (diff)
downloadguile-66ff15e2f0afa2d2ecd4e7de484acf7324c3b0f1.tar.gz
add the sassy x86 assembler
* module/Makefile.am: Add language/sassy.scm. Probably EXTRA_DIST the dependant files, too. * module/language/sassy.scm: New file, the sassy loader. Sassy is originally R5RS code that loads a number of files. I've converted that toplevel file to be a Guile module that *includes* the subfiles, so that it all gets compiled together. It's a pretty bad hack though, because what I should be doing is including them relative to the sassy.scm source location, but we don't know that at expansion time. Something to fix. really bad hack in it so that it will compile correctly -- p * module/language/sassy/: All the sassy files and some changelog information. All of these files are LGPLv2.1+, so they can be included in Guile. * test-suite/standalone/sassy/tests/: Add the sassy unit tests. * test-suite/standalone/Makefile.am: * test-suite/standalone/test-sassy: Hook the sassy unit tests up to our test suite.
Diffstat (limited to 'test-suite/standalone/sassy/tests/prims16/16esc5.scm')
-rw-r--r--test-suite/standalone/sassy/tests/prims16/16esc5.scm37
1 files changed, 37 insertions, 0 deletions
diff --git a/test-suite/standalone/sassy/tests/prims16/16esc5.scm b/test-suite/standalone/sassy/tests/prims16/16esc5.scm
new file mode 100644
index 000000000..108591222
--- /dev/null
+++ b/test-suite/standalone/sassy/tests/prims16/16esc5.scm
@@ -0,0 +1,37 @@
+(bits 16)
+
+(text
+ (label foo (ret))
+ (label bar (ret))
+ (seq (nop)
+ (esc ((jmp $win)
+ (jmp $lose))
+ (alt
+ (with-win foo
+ (seq (= ax 3)
+ (= bx 2)
+ (push ax)
+ (push bx)))
+ (with-win bar
+ (seq (mov sp dx)
+ (push bx)
+ (push ax)))))
+ (nop)))
+
+; 00000000 C3 ret
+; 00000001 C3 ret
+; 00000002 90 nop
+; 00000003 E91900 jmp 0x1f
+; 00000006 E91700 jmp 0x20
+; 00000009 3D0300 cmp ax,0x3
+; 0000000C 750A jnz 0x18
+; 0000000E 83FB02 cmp bx,byte +0x2
+; 00000011 7505 jnz 0x18
+; 00000013 50 push ax
+; 00000014 53 push bx
+; 00000015 E9E8FF jmp 0x0
+; 00000018 89D4 mov sp,dx
+; 0000001A 53 push bx
+; 0000001B 50 push ax
+; 0000001C E9E2FF jmp 0x1
+; 0000001F 90 nop