;;; -*- Mode:LISP; Package:USER; Base:8 -*-

(define-micro-function fast-eval (form)
  (declare (:support-vector (i-arg-eval 'eval)))

  ((m-a) pdl-pop)
  (jump-data-type-equal m-a (a-constant (byte-value q-data-type dtp-symbol)) a-symbol)
  (call-data-type-not-equal m-a (a-constant (byte-value q-data-type dtp-list)) trap)
;(error-table ...)
  (call p3zero)
  ((arg-call ref-support-vector) i-arg-eval)
  ((pdl-push) md)
  ((arg-call mmcall) (i-arg 1))
  (popj)

a-symbol
  ((vma) q-pointer m-a)
  ((vma-start-read) add vma (a-constant 1))
  (check-page-read)
  (dispatch transport md)
  ((m-t) md)
  (popj)
  )
