llvm:asm   macro


Defined in:  https://github.com/digego/extempore/tree/v0.8.9/runtime/llvmti.xtm

Implementation

(define-macro (llvm:asm name . args)
  (let* ((a1 (if (null? args) #f (car args)))
         (a2 (if (null? args) #f (if (null? (cdr args)) #f (cadr args))))
         (type (if (symbol? a1) a1 (if (symbol? a2) a2 #f)))
         (assm_print_type (if (number? a1) a1 (if (number? a2) a2 #f))))
    `(let ((n1 ,(if type
                    `(impc:ti:get-mono-name ,name ,type)
                    `(impc:ti:get-mono-name ,name))))
       ,(if (not assm_print_type)
            `(print (llvm:disassemble n1 0) "\n")
            `(print (llvm:disassemble n1 ,assm_print_type) "\n")))))


Back to Index

Similar Entries