diff options
author | Andy Wingo <wingo@pobox.com> | 2009-08-13 18:48:20 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-08-13 18:48:20 +0200 |
commit | 66ff15e2f0afa2d2ecd4e7de484acf7324c3b0f1 (patch) | |
tree | d31881900e8f715d8afd07521497c81101b3fedf /test-suite/standalone/sassy/tests/prims16/16esc5.scm | |
parent | d785171115bb35c6e3cc3663a0023ff4e88536d5 (diff) | |
download | guile-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.scm | 37 |
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 |