Move assemble-program to test cases.
[bpt/guile.git] / test-suite / tests / rtl.test
index 84bb656..a435d52 100644 (file)
   #:use-module (test-suite lib)
   #:use-module (system vm assembler)
   #:use-module (system vm program)
+  #:use-module (system vm objcode)
+  #:use-module (system vm linker)
   #:use-module (system vm debug))
 
+(define (assemble-program instructions)
+  "Take the sequence of instructions @var{instructions}, assemble them
+into RTL code, link an image, and load that image from memory.  Returns
+a procedure."
+  (let ((asm (make-assembler)))
+    (emit-text asm instructions)
+    (load-thunk-from-memory (link-assembly asm #:page-aligned? #f))))
+
 (define-syntax-rule (assert-equal val expr)
   (let ((x val))
     (pass-if (object->string x) (equal? expr x))))