Print an assembler name specifier.
(print-asm-name-spec asmspec pstate) → new-pstate
We check that there is at least one string literal.
Function:
(defun print-asm-name-spec (asmspec pstate) (declare (xargs :guard (and (asm-name-specp asmspec) (pristatep pstate)))) (let ((__function__ 'print-asm-name-spec)) (declare (ignorable __function__)) (b* (((asm-name-spec asmspec) asmspec) (pstate (keyword-uscores-case asmspec.uscores :none (print-astring "asm (" pstate) :start (print-astring "__asm (" pstate) :both (print-astring "__asm__ (" pstate))) ((unless (consp asmspec.strings)) (raise "Misusage error: ~ no string literals in assembler name specifier.") pstate) (pstate (print-stringlit-list asmspec.strings pstate)) (pstate (print-astring ")" pstate))) pstate)))
Theorem:
(defthm pristatep-of-print-asm-name-spec (b* ((new-pstate (print-asm-name-spec asmspec pstate))) (pristatep new-pstate)) :rule-classes :rewrite)
Theorem:
(defthm print-asm-name-spec-of-asm-name-spec-fix-asmspec (equal (print-asm-name-spec (asm-name-spec-fix asmspec) pstate) (print-asm-name-spec asmspec pstate)))
Theorem:
(defthm print-asm-name-spec-asm-name-spec-equiv-congruence-on-asmspec (implies (asm-name-spec-equiv asmspec asmspec-equiv) (equal (print-asm-name-spec asmspec pstate) (print-asm-name-spec asmspec-equiv pstate))) :rule-classes :congruence)
Theorem:
(defthm print-asm-name-spec-of-pristate-fix-pstate (equal (print-asm-name-spec asmspec (pristate-fix pstate)) (print-asm-name-spec asmspec pstate)))
Theorem:
(defthm print-asm-name-spec-pristate-equiv-congruence-on-pstate (implies (pristate-equiv pstate pstate-equiv) (equal (print-asm-name-spec asmspec pstate) (print-asm-name-spec asmspec pstate-equiv))) :rule-classes :congruence)