Pluggable instruction sets

This commit is contained in:
2026-02-10 10:58:48 -06:00
parent e4fe2c6bff
commit 4280841719
6 changed files with 226 additions and 188 deletions

View File

@@ -110,22 +110,22 @@
(define-test-suite "assembly"
(define-test "adder"
(define out (open-output-bytevector))
(assemble adder-program-assembly out)
(assemble adder-program-assembly forth-instruction-set out)
(assert-equal adder-program-bytecode (get-output-bytevector out)))
(define-test "fib"
(define out (open-output-bytevector))
(assemble fib-program-assembly out)
(assemble fib-program-assembly forth-instruction-set out)
(assert-equal fib-program-bytecode (get-output-bytevector out))))
(define-test-suite "vm"
(define-test "adder"
(define my-vm (make-vm))
(define my-vm (make-vm forth-instruction-set))
(vm-load-program! my-vm adder-program-bytecode)
(vm-pc-set! my-vm 5)
(run-vm my-vm)
(assert-equal 3 (vm-memory-ref my-vm 1)))
(define-test "fib"
(define my-vm (make-vm))
(define my-vm (make-vm forth-instruction-set))
(vm-load-program! my-vm fib-program-bytecode)
(vm-memory-set! my-vm 1 10)
(vm-pc-set! my-vm 5)
@@ -134,9 +134,9 @@
(define-test-suite "debugger"
(define-test "modify-running-program"
(define fib-program-asm (make-assembler))
(assemble-instructions fib-program-asm fib-program-assembly)
(finalize-references fib-program-asm)
(define fib-program-asm (make-assembler forth-instruction-set))
(assemble-instructions! fib-program-asm fib-program-assembly)
(assembler-backpatch! fib-program-asm)
(define my-debugger (make-debugger fib-program-asm))
(define my-vm (debugger-vm my-debugger))
(define my-data (vm-data-stack my-vm))
@@ -150,9 +150,9 @@
(debugger-continue my-debugger)
(assert-equal 1 (vm-memory-ref my-vm 1)))
(define-test "stepping"
(define fib-program-asm (make-assembler))
(assemble-instructions fib-program-asm fib-program-assembly)
(finalize-references fib-program-asm)
(define fib-program-asm (make-assembler forth-instruction-set))
(assemble-instructions! fib-program-asm fib-program-assembly)
(assembler-backpatch! fib-program-asm)
(define my-debugger (make-debugger fib-program-asm))
(define my-vm (debugger-vm my-debugger))
(vm-memory-set! my-vm 1 10)