Write an integer to the low 32 bit of a 64-bit
This is is only defined when
Function:
(defun write-xreg-32 (reg val stat feat) (declare (xargs :guard (and (natp reg) (integerp val) (statp stat) (featp feat)))) (declare (xargs :guard (and (stat-validp stat feat) (feat-64p feat) (< (lnfix reg) (feat->xnum feat))))) (let ((__function__ 'write-xreg-32)) (declare (ignorable __function__)) (write-xreg reg (logext 32 (lifix val)) stat feat)))
Theorem:
(defthm statp-of-write-xreg-32 (b* ((new-stat (write-xreg-32 reg val stat feat))) (statp new-stat)) :rule-classes :rewrite)
Theorem:
(defthm stat-validp-of-write-xreg-32 (implies (and (stat-validp stat feat) (< (lnfix reg) (feat->xnum feat))) (b* ((?new-stat (write-xreg-32 reg val stat feat))) (stat-validp new-stat feat))))
Theorem:
(defthm write-xreg-32-of-nfix-reg (equal (write-xreg-32 (nfix reg) val stat feat) (write-xreg-32 reg val stat feat)))
Theorem:
(defthm write-xreg-32-nat-equiv-congruence-on-reg (implies (acl2::nat-equiv reg reg-equiv) (equal (write-xreg-32 reg val stat feat) (write-xreg-32 reg-equiv val stat feat))) :rule-classes :congruence)
Theorem:
(defthm write-xreg-32-of-ifix-val (equal (write-xreg-32 reg (ifix val) stat feat) (write-xreg-32 reg val stat feat)))
Theorem:
(defthm write-xreg-32-int-equiv-congruence-on-val (implies (acl2::int-equiv val val-equiv) (equal (write-xreg-32 reg val stat feat) (write-xreg-32 reg val-equiv stat feat))) :rule-classes :congruence)
Theorem:
(defthm write-xreg-32-of-stat-fix-stat (equal (write-xreg-32 reg val (stat-fix stat) feat) (write-xreg-32 reg val stat feat)))
Theorem:
(defthm write-xreg-32-stat-equiv-congruence-on-stat (implies (stat-equiv stat stat-equiv) (equal (write-xreg-32 reg val stat feat) (write-xreg-32 reg val stat-equiv feat))) :rule-classes :congruence)
Theorem:
(defthm write-xreg-32-of-feat-fix-feat (equal (write-xreg-32 reg val stat (feat-fix feat)) (write-xreg-32 reg val stat feat)))
Theorem:
(defthm write-xreg-32-feat-equiv-congruence-on-feat (implies (feat-equiv feat feat-equiv) (equal (write-xreg-32 reg val stat feat) (write-xreg-32 reg val stat feat-equiv))) :rule-classes :congruence)