Export the assembler procedures
authorAndy Wingo <wingo@pobox.com>
Sat, 24 Aug 2013 10:38:02 +0000 (12:38 +0200)
committerAndy Wingo <wingo@pobox.com>
Sat, 24 Aug 2013 13:41:09 +0000 (15:41 +0200)
* module/system/vm/assembler.scm (define-assembler):
  (define-macro-assembler): Export the assemblers.

module/system/vm/assembler.scm

index b2d917d..9c267fe 100644 (file)
@@ -440,10 +440,12 @@ later by the linker."
     (syntax-case x ()
       ((_ name opcode kind arg ...)
        (with-syntax ((emit (id-append #'name #'emit- #'name)))
-         #'(define emit
-             (let ((emit (assembler name opcode arg ...)))
-               (hashq-set! assemblers 'name emit)
-               emit)))))))
+         #'(begin
+             (define emit
+               (let ((emit (assembler name opcode arg ...)))
+                 (hashq-set! assemblers 'name emit)
+                 emit))
+             (export emit)))))))
 
 (define-syntax visit-opcodes
   (lambda (x)
@@ -601,10 +603,12 @@ returned instead."
     (syntax-case x ()
       ((_ (name arg ...) body body* ...)
        (with-syntax ((emit (id-append #'name #'emit- #'name)))
-         #'(define emit
-             (let ((emit (lambda (arg ...) body body* ...)))
-               (hashq-set! assemblers 'name emit)
-               emit)))))))
+         #'(begin
+             (define emit
+               (let ((emit (lambda (arg ...) body body* ...)))
+                 (hashq-set! assemblers 'name emit)
+                 emit))
+             (export emit)))))))
 
 (define-macro-assembler (load-constant asm dst obj)
   (cond