impc:ir:compile:push_zone   scheme


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

Implementation

(define impc:ir:compile:push_zone
  (lambda (ast types)
    (let* ((os (make-string 0))
           (zone-str (impc:ir:compiler (cadr ast) types))
           (zone (impc:ir:gname)))
      (emit zone-str os)
      (emit "call void @llvm_push_zone_stack(%mzone* " (car zone) ")\n" os)
      (emit (impc:ir:gname "zone_ptr" "i8*") " = bitcast %mzone* " (car zone) " to i8*\n" os)
      (emit "store i8* " (car (impc:ir:gname "zone_ptr")) ", i8** %_impzPtr\n" os)
      (impc:ir:gname "voidmark" (impc:ir:get-type-str *impc:ir:void*))
      (impc:ir:strip-space os))))


Back to Index

Similar Entries