Refine read-xreg-signed32 to use the stobj states.
Function:
(defun read1-xreg-signed32 (reg stat feat) (declare (xargs :non-executable t)) (declare (xargs :guard (non-exec (and (stat1p stat) (natp reg) (statp (stat-from-stat1 stat)) (featp feat) (feat-64p feat) (stat-validp (stat-from-stat1 stat) feat) (< (lnfix reg) (feat->xnum feat)))))) (prog2$ (acl2::throw-nonexec-error 'read1-xreg-signed32 (list reg stat feat)) (if (acl2::mbt$ (stat1p stat)) (logext 32 (read-xreg-unsigned reg (stat-from-stat1 stat) feat)) 0)))
Theorem:
(defthm read1-xreg-signed32-to-read-xreg-signed32 (implies (stat1p stat) (equal (read1-xreg-signed32 reg stat feat) (read-xreg-signed32 reg (stat-from-stat1 stat) feat))) :rule-classes :rewrite)
Theorem:
(defthm read-xreg-signed32-to-read1-xreg-signed32 (implies (statp stat) (equal (read-xreg-signed32 reg stat feat) (read1-xreg-signed32 reg (stat1-from-stat stat) feat))) :rule-classes :rewrite)