diff options
Diffstat (limited to 'books/workshops/2004/manolios-srinivasan/support')
26 files changed, 52200 insertions, 0 deletions
diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/5s-part.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/5s-part.lisp new file mode 100644 index 0000000..193588b --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/5s-part.lisp @@ -0,0 +1,571 @@ +(in-package "ACL2") + +(include-book "../Supporting-Books/records") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/meta") + + + + +(defstub src1 (*) => *) +(defstub src2 (*) => *) +(defstub opcode (*) => *) +(defstub dest(*) => *) +(defstub alu (* * *) => *) +(defstub GetRegWrite(*) => *) +(defstub GetMemToReg(*) => *) +(defstub GetuseImm(*) => *) +(defstub GetImm(*) => *) +(defstub GetMemWrite(*) => *) + +(defun MA-state ( + pPC + pRF + pDMem + pIMem + deOP + deARG1 + deARG2 + deDEST + deWRT + mwVAL + mwDEST + mwWRT + fdWRT + fdINST + emDEST + emWRT + deSRC1 + deSRC2 + deRegWrite + emRegWrite + mwRegWrite + deImm + deuseImm + emResult + deMemToReg + emMemToReg + deMemWrite + emMemWrite + emARG2 + pDMemHist_1 + pPCHist_1 + pPCHist_2 + pPCHist_3 + pPCHist_4 + ) + (seq nil 'type 'MA + 'pPC pPC + 'pRF pRF + 'pDMem pDMem + 'pIMem pIMem + 'deOP deOP + 'deARG1 deARG1 + 'deARG2 deARG2 + 'deDEST deDEST + 'deWRT deWRT + 'mwVAL mwVAL + 'mwDEST mwDEST + 'mwWRT mwWRT + 'fdWRT fdWRT + 'fdINST fdINST + 'emDEST emDEST + 'emWRT emWRT + 'deSRC1 deSRC1 + 'deSRC2 deSRC2 + 'deRegWrite deRegWrite + 'emRegWrite emRegWrite + 'mwRegWrite mwRegWrite + 'deImm deImm + 'deuseImm deuseImm + 'emResult emResult + 'deMemToReg deMemToReg + 'emMemToReg emMemToReg + 'deMemWrite deMemWrite + 'emMemWrite emMemWrite + 'emARG2 emARG2 + 'pDMemHist_1 pDMemHist_1 + 'pPCHist_1 pPCHist_1 + 'pPCHist_2 pPCHist_2 + 'pPCHist_3 pPCHist_3 + 'pPCHist_4 pPCHist_4 + +)) + +(defun nextpIMem (pIMem) + pIMem) + +(defun nextpPCHist_4 (pPCHist_3) + pPCHist_3) + +(defun nextpPCHist_3 (pPCHist_2) + pPCHist_2) + +(defun nextpPCHist_2 (pPCHist_1) + pPCHist_1) + +(defun nextpPCHist_1 (pPC) + pPC) + +(defun nextpPC (pPC stall pPCHist_4 commit_impl) + (cond + (commit_impl pPCHist_4) + (stall pPC) + (t (+ 1 pPC)))) + +(defun nextpRF (pRF mwWRT mwDEST + mwRegWrite mwVAL commit_impl) + (cond + (commit_impl pRF) + ((and mwWRT mwRegWrite) + (s mwDEST mwVAL pRF)) + (t pRF))) + +(defun nextfdWRT (stall commit_impl fdWRT) + (cond + (commit_impl nil) + (stall fdWRT) + (t t))) + +(defun nextfdINST (inst fdINST stall) + (cond + (stall fdINST) + (t inst))) + +(defun nextdeSRC1 (IF_ID_Src1) + IF_ID_Src1) + +(defun nextdeSRC2 (IF_ID_Src2) + IF_ID_Src2) + +(defun nextdeARG1 (pRF mwWRT mwDEST mwRegWrite mwVAL commit_impl IF_ID_Src1) + (g IF_ID_Src1 + (nextpRF pRF mwWRT mwDEST mwRegWrite mwVAL commit_impl)) +) + +(defun nextdeARG2 (pRF mwWRT mwDEST mwRegWrite mwVAL commit_impl IF_ID_Src2) + (g IF_ID_Src2 + (nextpRF pRF mwWRT mwDEST mwRegWrite mwVAL commit_impl)) +) + +(defun nextdeDEST (fdINST) + (dest fdINST)) + +(defun nextdeOP (fdINST) + (opcode fdINST)) + +(defun nextdeImm (fdINST) + (GetImm fdINST)) + +(defun nextdeuseImm (fdINST) + (GetuseImm fdINST)) + +(defun nextdeRegWrite (ID_RegWrite) + ID_RegWrite) + +(defun nextdeMemWrite (ID_MemWrite) + ID_MemWrite) + +(defun nextdeMemtoReg (fdINST) + (GetMemtoReg fdINST)) + +(defun nextdeWRT (stall fdWRT commit_impl) + (cond + (commit_impl nil) + (t (and (not stall) fdWRT)))) + +(defun nextemARG2 (deARG2) + deARG2) + +(defun nextemResult (Result) + Result) + +(defun nextemDest (deDEST) + deDEST) + +(defun nextemWRT (commit_impl deWRT) + (cond + (commit_impl nil) + (t deWRT))) + +(defun nextemRegWrite (deRegWrite) + deRegWrite) + +(defun nextemMemWrite (deMemWrite) + deMemWrite) + +(defun nextemMemToReg (deMemToReg) + deMemToReg) + +(defun nextpDMemHist_1 (pDMem) + pDMem) + +(defun nextpDMem (commit_impl pDMemHist_1 emWRT + emResult emMemWrite pDMem emARG2) + (cond + (commit_impl pDMemHist_1) + ((and emWRT emMemWrite) + (s emResult emARG2 pDMem)) + (t pDMem))) + +(defun nextmwVAL (ReadData emMemToReg emResult) + (cond + (emMemToReg ReadData) + (t emResult))) + +(defun nextmwDEST (emDEST) + emDEST) + +(defun nextmwWRT (commit_impl emWRT) + (cond + (commit_impl nil) + (t emWRT))) + +(defun nextmwRegWrite (emRegWrite) + emRegWrite) + +(defun MA-step (MA commit_impl) + (let + ((pPC (g 'pPC MA)) + (pRF (g 'pRF MA)) + (pDMem (g 'pDMem MA)) + (pIMem (g 'pIMem MA)) + (deOP (g 'deOP MA)) + (deARG1 (g 'deARG1 MA)) + (deARG2 (g 'deARG2 MA)) + (deDEST (g 'deDEST MA)) + (deWRT (g 'deWRT MA)) + (mwVAL (g 'mwVAL MA)) + (mwDEST (g 'mwDEST MA)) + (mwWRT (g 'mwWRT MA)) + (fdWRT (g 'fdWRT MA)) + (fdINST (g 'fdINST MA)) + (emDEST (g 'emDEST MA)) + (emWRT (g 'emWRT MA)) + (deSRC1 (g 'deSRC1 MA)) + (deSRC2 (g 'deSRC2 MA)) + (deRegWrite (g 'deRegWrite MA)) + (emRegWrite (g 'emRegWrite MA)) + (mwRegWrite (g 'mwRegWrite MA)) + (deImm (g 'deImm MA)) + (deuseImm (g 'deuseImm MA)) + (emResult (g 'emResult MA)) + (deMemToReg (g 'deMemToReg MA)) + (emMemToReg (g 'emMemToReg MA)) + (deMemWrite (g 'deMemWrite MA)) + (emMemWrite (g 'emMemWrite MA)) + (emARG2 (g 'emARG2 MA)) + (pDMemHist_1 (g 'pDMemHist_1 MA)) + (pPCHist_1 (g 'pPCHist_1 MA)) + (pPCHist_2 (g 'pPCHist_2 MA)) + (pPCHist_3 (g 'pPCHist_3 MA)) + (pPCHist_4 (g 'pPCHist_4 MA))) + (let* ((inst (g pPC pIMem)) + (IF_ID_Src1 (src1 fdINST)) + (IF_ID_Src2 (src2 fdINST)) + (stall (and deRegWrite deWRT + (bor + (equal IF_ID_Src1 deDEST) + (equal IF_ID_Src2 deDEST)))) + (ID_RegWrite (GetRegWrite fdINST)) + (ID_MemWrite (GetMemWrite fdINST)) + (EX_WB_Equal_Src1 + (and mwWRT + mwRegWrite + (equal deSRC1 mwDEST))) + (EX_WB_Equal_Src2 + (and mwWRT + mwRegWrite + (equal deSRC2 mwDEST))) + (EX_WB_Fwd_Src1 + (cond + (EX_WB_Equal_Src1 mwVAL) + (t deARG1))) + (EX_WB_Fwd_Src2 + (cond + (EX_WB_Equal_Src2 mwVAL) + (t deARG2))) + (EX_Data2 + (cond + (deuseImm deImm) + (t EX_WB_Fwd_Src2))) + (Result + (alu deOP EX_WB_Fwd_Src1 EX_Data2)) + (ReadData (g emResult pDMem))) + (MA-state + (nextpPC pPC stall pPCHist_4 commit_impl) + (nextpRF pRF mwWRT mwDEST + mwRegWrite mwVAL commit_impl) + (nextpDMem commit_impl pDMemHist_1 emWRT + emResult emMemWrite pDMem emARG2) + (nextpIMem pIMem) + (nextdeOP fdINST) + (nextdeARG1 pRF mwWRT mwDEST mwRegWrite mwVAL commit_impl IF_ID_Src1) + (nextdeARG2 pRF mwWRT mwDEST mwRegWrite mwVAL commit_impl IF_ID_Src2) + (nextdeDEST fdINST) + (nextdeWRT stall fdWRT commit_impl) + (nextmwVAL ReadData emMemToReg emResult) + (nextmwDEST emDEST) + (nextmwWRT commit_impl emWRT) + (nextfdWRT stall commit_impl fdWRT) + (nextfdINST inst fdINST stall) + (nextemDEST deDEST) + (nextemWRT commit_impl deWRT) + (nextdeSRC1 IF_ID_Src1) + (nextdeSRC2 IF_ID_Src2) + (nextdeRegWrite ID_RegWrite) + (nextemRegWrite deRegWrite) + (nextmwRegWrite emRegWrite) + (nextdeImm fdINST) + (nextdeuseImm fdINST) + (nextemResult Result) + (nextdeMemToReg fdINST) + (nextemMemToReg deMemToReg) + (nextdeMemWrite ID_MemWrite) + (nextemMemWrite deMemWrite) + (nextemARG2 deARG2) + (nextpDMemHist_1 pDMem) + (nextpPCHist_1 pPC) + (nextpPCHist_2 pPCHist_1) + (nextpPCHist_3 pPCHist_2) + (nextpPCHist_4 pPCHist_3))))) + + +;; Specificaion + +(defun ISA-state (sPC sRF sIMem sDMem) + (seq nil 'type 'ISA + 'sPC sPC + 'sRF sRF + 'sIMem sIMem + 'sDMem sDMem)) + + +(defun nextsIMem (sIMem) + sIMem) + +(defun nextsPC (project_impl project_pc sPC) + (cond + (project_impl project_pc) + (t (+ 1 sPC)))) + +(defun nextsRF (project_impl pRF sRF RegWrite val inst) + (cond + (project_impl pRF) + (RegWrite (s (dest inst) val sRF)) + (t sRF))) + +(defun nextsDMem (pDMemHist_1 MemWrite Result + arg2_temp sDMem project_impl) + (cond + (project_impl pDMemHist_1) + (MemWrite (s Result arg2_temp sDMem)) + (t sDMem))) + +(defun ISA-step (ISA project_impl project_pc pDMemHist_1 pRF) + (let* ((sPC (g 'sPC ISA)) + (sRF (g 'sRF ISA)) + (sDMem (g 'sDMem ISA)) + (sIMem (g 'sIMem ISA)) + (inst (g sPC sIMem)) + (RegWrite (GetRegWrite inst)) + (MemToReg (GetMemToReg inst)) + (MemWrite (GetmemWrite inst)) + (useImm (GetuseImm inst)) + (Imm (GetImm inst)) + (arg1 (g (src1 inst) sRF)) + (arg2_temp (g (src2 inst) sRF)) + (arg2 + (cond + (useImm Imm) + (t arg2_temp))) + (Result + (alu + (opcode inst) + arg1 arg2)) + (ReadData (g Result sDMem)) + (val + (cond + (MemToReg ReadData) + (t Result)))) + (ISA-state + (nextsPC project_impl project_pc sPC) + (nextsRF project_impl pRF sRF RegWrite val inst) + (nextsIMem sIMem) + (nextsDMem pDMemHist_1 MemWrite Result + arg2_temp sDMem project_impl)))) + + + +;; Control + +(defun equiv-ma (ma1 ma2) + (and (equal (g 'type ma1) + (g 'type ma2)) + (equal (g 'pPC ma1) + (g 'pPC ma2)) + (equal (g 'pRF ma1) + (g 'pRF ma2)) + (equal (g 'pIMem ma1) + (g 'pIMem ma2)) + (equal (g 'pDMem ma1) + (g 'pDMem ma2)) + (equal (g 'fdWRT ma1) + (g 'fdWRT ma2)) + (implies (g 'fdWRT ma1) + (and (g 'fdWRT ma2) + (equal (g 'fdINST ma1) + (g 'fdINST ma2)))) + (equal (g 'deWRT ma1) + (g 'deWRT ma2)) + (implies (g 'deWRT ma1) + (and (g 'deWRT ma2) + (equal (g 'deOP ma1) + (g 'deOP ma2)) + (equal (g 'deARG1 ma1) + (g 'deARG1 ma2)) + (equal (g 'deARG2 ma1) + (g 'deARG2 ma2)) + (equal (g 'deDEST ma1) + (g 'deDEST ma2)) + (equal (g 'deSRC1 ma1) + (g 'deSRC1 ma2)) + (equal (g 'deSRC2 ma1) + (g 'deSRC2 ma2)) + (equal (g 'deImm ma1) + (g 'deImm ma2)) + (equal (g 'deuseImm ma1) + (g 'deuseImm ma2)) + (equal (g 'deRegWrite ma1) + (g 'deRegWrite ma2)) + (equal (g 'deMemWrite ma1) + (g 'deMemWrite ma2)) + (equal (g 'deMemToReg ma1) + (g 'deMemToReg ma2)))) + (equal (g 'emWRT ma1) + (g 'emWRT ma2)) + (implies (g 'emWRT ma1) + (and (g 'emWRT ma2) + (equal (g 'emDEST ma1) + (g 'emDEST ma2)) + (equal (g 'emRegWrite ma1) + (g 'emRegWrite ma2)) + (equal (g 'emMemWrite ma1) + (g 'emMemWrite ma2)) + (equal (g 'emMemToReg ma1) + (g 'emMemToReg ma2)) + (equal (g 'emResult ma1) + (g 'emResult ma2)))) + (equal (g 'mwWRT ma1) + (g 'mwWRT ma2)) + (implies (g 'mwWRT ma1) + (and (g 'mwWRT ma2) + (equal (g 'mwRegWrite ma1) + (g 'mwRegWrite ma2)) + (equal (g 'mwDEST ma1) + (g 'mwDEST ma2)) + (equal (g 'mwVAL ma1) + (g 'mwVAL ma2)))))) + + + +(defun Rank (ma) + (let ((fdWRT (g 'fdWRT ma)) + (deWRT (g 'deWRT ma)) + (emWRT (g 'emWRT ma)) + (mwWRT (g 'mwWRT ma))) + (cond + (mwWRT 0) + (emWRT 1) + (deWRT 2) + (fdWRT 3) + (t 4)))) + +#| +(defun committed-MA (MA) + (let ((pPC (g 'pPC MA)) + (fdWRT (g 'fdWRT MA)) + (deWRT (g 'deWRT MA)) + (emWRT (g 'emWRT MA)) + (mwWRT (g 'mwWRT MA)) + (pDMem (g 'pDMem MA)) + (pPCHist_4 (g 'pPCHist_4 MA)) + (pDMemHist_1 (g 'pDMemHist_1 MA))) + (seq MA 'pPC pPCHist_4 + 'pDMemHist_1 + 'fdWRT nil + 'deWRT nil + 'emWRT nil + 'mwWRT nil))) +|# + +(defun good-ma (ma) + (let ((commit-ma (ma-step ma t))) + (bor + (equiv-ma ma commit-ma) + (equiv-ma ma (ma-step commit-ma nil)) + (equiv-ma ma (ma-step + (ma-step commit-ma nil) + nil)) + (equiv-ma ma (ma-step + (ma-step + (ma-step commit-ma nil) nil) + nil)) + (equiv-ma ma (ma-step + (ma-step + (ma-step + (ma-step commit-ma nil) + nil) + nil) + nil))))) + + +(in-theory (disable g-diff-s- G-SAME-S-)) + +(SET-MATCH-FREE-ERROR NIL) + +(defthm WEB + (let* ((X (ma-step ma t)) + (W (ma-step + (ma-step + (ma-step + (ma-step X nil) + nil) + nil) + nil)) + (V (ma-step W nil)) + (Good_MA_V (good-ma V)) + (pRF_W (g 'pRF W)) + (pPC_W (g 'pPC W)) + (pDMem_W (g 'pDMem W)) + (pDMemHist_1_W (g 'pDMemHist_1 W)) + (pPCHist_4_W (g 'pPCHist_4 W)) + (pRF_V (g 'pRF V)) + (pPC_V (g 'pPC V)) + (pDMem_V (g 'pDMem V)) + (Y ( ISA-step isa t pPCHist_4_W + pDMemHist_1_W pRF_W)) + (U (ISA-step Y nil pPCHist_4_W + pDMemHist_1_W pRF_W)) + (sRF_Y (g 'sRF Y)) + (sPC_Y (g 'sPC Y)) + (sDMem_Y (g 'sDMem Y)) + (sRF_U (g 'sRF U)) + (sPC_U (g 'sPC U)) + (sDMem_U (g 'sDMem U))) + (implies (and + (equal pPC_W sPC_Y) + (equal pRF_W sRF_Y) + (equal pDMem_W sDMem_Y) + (not + (and + (equal pPC_V sPC_U) + (equal pRF_V sRF_U) + (equal pDMem_V sDMem_U)))) + (and + Good_MA_V + (equal pPC_V sPC_Y) + (equal pRF_V sRF_Y) + (equal pDMem_V sDMem_Y) + (< (Rank V) (Rank W)))))) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/5s.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/5s.lisp new file mode 100644 index 0000000..37f8703 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/5s.lisp @@ -0,0 +1,1587 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((writerf (x3 x2 x1) t)) + (local (defun writerf (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm writerf-type (integerp (writerf x3 x2 x1)))) + +(encapsulate ((readrf (x2 x1) t)) + (local (defun readrf (x2 x1) (declare (ignore x2) (ignore x1)) 1)) + (defthm readrf-type (integerp (readrf x2 x1)))) + +(encapsulate ((writedmem (x3 x2 x1) t)) + (local (defun writedmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm writedmem-type (integerp (writedmem x3 x2 x1)))) + +(encapsulate ((readdmem (x2 x1) t)) + (local (defun readdmem (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm readdmem-type (integerp (readdmem x2 x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (g 3 (car prf)) (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc prf fdwrt fdinst fdppc deppc desrc1 desrc2 dearg1 + dearg2 dedest deop deimm deuseimm deregwrite dememwrite + dememtoreg dewrt emppc emarg2 emresult emdest emwrt + emregwrite emmemwrite emmemtoreg pdmemhist_1 pdmem mwval + mwppc mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'prf prf 'fdwrt fdwrt 'fdinst fdinst + 'fdppc fdppc 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 + dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm deimm + 'deuseimm deuseimm 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'dewrt dewrt 'emppc emppc + 'emarg2 emarg2 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emregwrite emregwrite 'emmemwrite emmemwrite 'emmemtoreg + emmemtoreg 'pdmemhist_1 pdmemhist_1 'pdmem pdmem 'mwval mwval + 'mwppc mwppc 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite + mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a (initi pc0 commit_impl commit_pc stall ppc) + (cond (initi pc0) (commit_impl commit_pc) (stall ppc) (t (add-1 ppc)))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi commit_impl mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest + (s 5 mwregwrite (s 6 mwval nil))))))) + prf)) + + +(defun initfdwrt_a () nil) + +(defun nextfdwrt_a (initi commit_impl stall fdwrt) + (cond (initi nil) (commit_impl nil) (stall fdwrt) (t t))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst inst) + (cond (initi fdinst0) (stall fdinst) (t inst))) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ppc) + (cond (initi fdppc0) (stall fdppc) (t ppc))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdewrt_a () nil) + +(defun nextdewrt_a (initi commit_impl stall fdwrt) + (cond (initi nil) (commit_impl nil) (t (and (not stall) fdwrt)))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 dearg2) + (cond (initi emarg20) (t dearg2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 result) + (cond (initi emresult0) (t result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a () nil) + +(defun nextemwrt_a (initi commit_impl dewrt) + (cond (initi nil) (commit_impl nil) (t dewrt))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_1 emwrt emmemwrite emarg2 + emresult pdmem) + (cond + (initi dmem0) + (commit_impl pdmemhist_1) + ((and emwrt emmemwrite) (writedmem emarg2 emresult pdmem)) + (t pdmem))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 emmemtoreg readdata emresult) + (cond (initi mwval0) (emmemtoreg readdata) (t emresult))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 emppc) + (cond (initi mwppc0) (t emppc))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 emdest) + (cond (initi mwdest0) (t emdest))) + +(defun initmwwrt_a () nil) + +(defun nextmwwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 emregwrite) + (cond (initi mwregwrite0) (t emregwrite))) + +(defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc fdinst0 fdppc0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 emppc0 emarg20 + emresult0 emdest0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mwval0 mwppc0 mwdest0 mwregwrite0) + (let ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (prf (g 'prf impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (fdppc (g 'fdppc impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mwval (g 'mwval impl)) (mwppc (g 'mwppc impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((inst (read-pimem_a ppc pimem)) (if_id_src1 (src1 fdinst)) + (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_wb_fwd_src1 (cond (ex_wb_equal_src1 mwval) (t dearg1))) + (ex_wb_fwd_src2 (cond (ex_wb_equal_src2 mwval) (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_wb_fwd_src2))) + (result (alu deop ex_wb_fwd_src1 ex_data2)) + (readdata (readdmem emresult pdmem))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc stall ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval) + (nextfdwrt_a initi commit_impl stall fdwrt) + (nextfdinst_a initi fdinst0 stall fdinst inst) + (nextfdppc_a initi fdppc0 stall fdppc ppc) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdewrt_a initi commit_impl stall fdwrt) + (nextemppc_a initi emppc0 deppc) + (nextemarg2_a initi emarg20 dearg2) + (nextemresult_a initi emresult0 result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl dewrt) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_1 emwrt + emmemwrite emarg2 emresult pdmem) + (nextmwval_a initi mwval0 emmemtoreg readdata emresult) + (nextmwppc_a initi mwppc0 emppc) + (nextmwdest_a initi mwdest0 emdest) + (nextmwwrt_a initi commit_impl emwrt) + (nextmwregwrite_a initi mwregwrite0 emregwrite))))) + +(defun impl-initialize_a + (impl pc0 fdinst0 fdppc0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mwval0 mwppc0 mwdest0 + mwregwrite0) + (let ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (prf (g 'prf impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (fdppc (g 'fdppc impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mwval (g 'mwval impl)) (mwppc (g 'mwppc impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((inst (read-pimem_a ppc pimem)) (if_id_src1 (src1 fdinst)) + (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_wb_fwd_src1 (cond (ex_wb_equal_src1 mwval) (t dearg1))) + (ex_wb_fwd_src2 (cond (ex_wb_equal_src2 mwval) (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_wb_fwd_src2))) + (result (alu deop ex_wb_fwd_src1 ex_data2)) + (readdata (readdmem emresult pdmem))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initprf_a prf) (initfdwrt_a) (initfdinst_a fdinst0) + (initfdppc_a fdppc0) (initdeppc_a deppc0) + (initdesrc1_a desrc10) (initdesrc2_a desrc20) + (initdearg1_a a1) (initdearg2_a a2) (initdedest_a dedest0) + (initdeop_a deop0) (initdeimm_a deimm0) + (initdeuseimm_a deuseimm0) (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) (initdewrt_a) + (initemppc_a emppc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_1_a dmem0) + (initpdmem_a dmem0) (initmwval_a mwval0) + (initmwppc_a mwppc0) (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a (initi pc0 project_impl project_pc isa spc) + (cond (initi pc0) (project_impl project_pc) (isa (add-1 spc)) (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (S 0 NIL + (S 1 INITI + (S 2 PROJECT_IMPL + (S 3 |IMPL.PRF| + (S 4 ISA + (S 5 + INST (S 6 REGWRITE (S 7 VAL NIL)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_1 isa memwrite + arg2_temp result sdmem) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_1) + ((and isa memwrite) (writedmem arg2_temp result sdmem)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa impl.prf dmem0 + impl.pdmemhist_1) + (let ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (useimm (getuseimm inst)) + (imm (getimm inst)) (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (readdata (readdmem result sdmem)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_1 isa + memwrite arg2_temp result sdmem))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (useimm (getuseimm inst)) + (imm (getimm inst)) (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (readdata (readdmem result sdmem)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st initi isa project_impl project_pc commit_impl commit_pc pc0 + fdinst0 fdppc0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 emppc0 + emarg20 emresult0 emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 mwdest0 mwregwrite0 + impl.prf impl.pdmemhist_1) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + fdinst0 fdppc0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 emppc0 + emarg20 emresult0 emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 mwdest0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa impl.prf dmem0 impl.pdmemhist_1))) + +(defun initialize_a + (st initi isa project_impl project_pc commit_impl commit_pc pc0 + fdinst0 fdppc0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 emppc0 + emarg20 emresult0 emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 fdinst0 fdppc0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mwval0 + mwppc0 mwdest0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + +(defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem fdwrt_v impl.fdwrt fdinst_v impl.fdinst + dewrt_v impl.dewrt deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm dememtoreg_v impl.dememtoreg + dememwrite_v impl.dememwrite deregwrite_v + impl.deregwrite emwrt_v impl.emwrt emdest_v impl.emdest + emregwrite_v impl.emregwrite emresult_v impl.emresult + emmemtoreg_v impl.emmemtoreg emmemwrite_v + impl.emmemwrite mwwrt_v impl.mwwrt mwval_v impl.mwval + mwdest_v impl.mwdest mwregwrite_v impl.mwregwrite) + (and (and (and (and (and (and (and (and + (and + (and + (and (equal ppc_v impl.ppc) + (equal (read-prf_a a1 prf_v) + (read-prf_a a1 impl.prf))) + (equal + (read-pimem_a a1 pimem_v) + (read-pimem_a a1 impl.pimem))) + (equal pdmem_v impl.pdmem)) + (or (and fdwrt_v impl.fdwrt) + (and (not fdwrt_v) + (not impl.fdwrt)))) + (implies fdwrt_v + (and impl.fdwrt + (equal fdinst_v impl.fdinst)))) + (or (and dewrt_v impl.dewrt) + (and (not dewrt_v) + (not impl.dewrt)))) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v impl.desrc2)) + (equal deimm_v impl.deimm)) + (or + (and deuseimm_v + impl.deuseimm) + (and (not deuseimm_v) + (not impl.deuseimm)))) + (or + (and dememtoreg_v + impl.dememtoreg) + (and (not dememtoreg_v) + (not impl.dememtoreg)))) + (or + (and dememwrite_v + impl.dememwrite) + (and (not dememwrite_v) + (not impl.dememwrite)))) + (or + (and deregwrite_v + impl.deregwrite) + (and (not deregwrite_v) + (not impl.deregwrite)))))) + (or (and emwrt_v impl.emwrt) + (and (not emwrt_v) (not impl.emwrt)))) + (implies emwrt_v + (and (and (and + (and + (and impl.emwrt + (equal emdest_v impl.emdest)) + (or + (and emregwrite_v + impl.emregwrite) + (and (not emregwrite_v) + (not impl.emregwrite)))) + (equal emresult_v impl.emresult)) + (or + (and emmemtoreg_v + impl.emmemtoreg) + (and (not emmemtoreg_v) + (not impl.emmemtoreg)))) + (or (and emmemwrite_v impl.emmemwrite) + (and (not emmemwrite_v) + (not impl.emmemwrite)))))) + (or (and mwwrt_v impl.mwwrt) + (and (not mwwrt_v) (not impl.mwwrt)))) + (implies mwwrt_v + (and (and (and impl.mwwrt (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (or (and mwregwrite_v impl.mwregwrite) + (and (not mwregwrite_v) + (not impl.mwregwrite))))))) + +(defun rank (impl.mwwrt zero impl.emwrt impl.dewrt impl.fdwrt) + (cond + (impl.mwwrt zero) + (impl.emwrt (add-1 zero)) + (impl.dewrt (add-1 (add-1 zero))) + (impl.fdwrt (add-1 (add-1 (add-1 zero)))) + (t (add-1 (add-1 (add-1 (add-1 zero))))))) + +(defun committedpc + (impl.mwwrt impl.mwppc impl.emwrt impl.emppc impl.dewrt + impl.deppc impl.fdwrt impl.fdppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (t impl.ppc))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp a) + (integerp zero) (integerp mwval0) + (integerp emresult0) (booleanp deregwrite0) + (booleanp emregwrite0) (booleanp mwregwrite0) + (integerp mwdest0) (integerp deop0) + (integerp fddest0) (integerp dedest0) + (integerp op0) (integerp s0) (integerp a1) + (integerp a2) (integerp d0) (integerp d1) + (integerp x0) (integerp fdop0) (booleanp w0) + (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp fdppc0) + (integerp deppc0) (integerp emppc0) + (integerp mwppc0)) + (let* ((st0 (initialize_a nil nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_1 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_1 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_1 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_1 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_1 (g 'impl st4)))) + (ppc_v (g 'ppc (g 'impl st5))) + (prf_v (g 'prf (g 'impl st5))) + (pdmem_v (g 'pdmem (g 'impl st5))) + (pimem_v (g 'pimem (g 'impl st5))) + (deop_v (g 'deop (g 'impl st5))) + (desrc2_v (g 'desrc2 (g 'impl st5))) + (dearg1_v (g 'dearg1 (g 'impl st5))) + (dearg2_v (g 'dearg2 (g 'impl st5))) + (dedest_v (g 'dedest (g 'impl st5))) + (dewrt_v (g 'dewrt (g 'impl st5))) + (mwval_v (g 'mwval (g 'impl st5))) + (mwdest_v (g 'mwdest (g 'impl st5))) + (mwwrt_v (g 'mwwrt (g 'impl st5))) + (fdwrt_v (g 'fdwrt (g 'impl st5))) + (fdinst_v (g 'fdinst (g 'impl st5))) + (emdest_v (g 'emdest (g 'impl st5))) + (emwrt_v (g 'emwrt (g 'impl st5))) + (desrc1_v (g 'desrc1 (g 'impl st5))) + (desrc2_v (g 'desrc2 (g 'impl st5))) + (deregwrite_v (g 'deregwrite (g 'impl st5))) + (emregwrite_v (g 'emregwrite (g 'impl st5))) + (mwregwrite_v (g 'mwregwrite (g 'impl st5))) + (deimm_v (g 'deimm (g 'impl st5))) + (deuseimm_v (g 'deuseimm (g 'impl st5))) + (emresult_v (g 'emresult (g 'impl st5))) + (dememtoreg_v (g 'dememtoreg (g 'impl st5))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st5))) + (dememwrite_v (g 'dememwrite (g 'impl st5))) + (emmemwrite_v (g 'emmemwrite (g 'impl st5))) + (emarg2_v (g 'emarg2 (g 'impl st5))) + (committedpc_0 + (committedpc (g 'mwwrt (g 'impl st5)) + (g 'mwppc (g 'impl st5)) + (g 'emwrt (g 'impl st5)) + (g 'emppc (g 'impl st5)) + (g 'dewrt (g 'impl st5)) + (g 'deppc (g 'impl st5)) + (g 'fdwrt (g 'impl st5)) + (g 'fdppc (g 'impl st5)) + (g 'ppc (g 'impl st5)))) + (st6 (simulate_a st5 nil nil nil pc0 t + committedpc_0 pc0 fdinst0 fdppc0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 emppc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mwval0 + mwppc0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_1 (g 'impl st5)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st6)) + prf_v a1 (g 'prf (g 'impl st6)) + pimem_v (g 'pimem (g 'impl st6)) + pdmem_v (g 'pdmem (g 'impl st6)) + fdwrt_v (g 'fdwrt (g 'impl st6)) + fdinst_v (g 'fdinst (g 'impl st6)) + dewrt_v (g 'dewrt (g 'impl st6)) + deop_v (g 'deop (g 'impl st6)) + dearg1_v (g 'dearg1 (g 'impl st6)) + dearg2_v (g 'dearg2 (g 'impl st6)) + dedest_v (g 'dedest (g 'impl st6)) + desrc1_v (g 'desrc1 (g 'impl st6)) + desrc2_v (g 'desrc2 (g 'impl st6)) + deimm_v (g 'deimm (g 'impl st6)) + deuseimm_v (g 'deuseimm (g 'impl st6)) + dememtoreg_v + (g 'dememtoreg (g 'impl st6)) + dememwrite_v + (g 'dememwrite (g 'impl st6)) + deregwrite_v + (g 'deregwrite (g 'impl st6)) emwrt_v + (g 'emwrt (g 'impl st6)) emdest_v + (g 'emdest (g 'impl st6)) emregwrite_v + (g 'emregwrite (g 'impl st6)) + emresult_v (g 'emresult (g 'impl st6)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st6)) + emmemwrite_v + (g 'emmemwrite (g 'impl st6)) mwwrt_v + (g 'mwwrt (g 'impl st6)) mwval_v + (g 'mwval (g 'impl st6)) mwdest_v + (g 'mwdest (g 'impl st6)) mwregwrite_v + (g 'mwregwrite (g 'impl st6)))) + (st7 (simulate_a st6 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_1 (g 'impl st6)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st7)) + prf_v a1 (g 'prf (g 'impl st7)) + pimem_v (g 'pimem (g 'impl st7)) + pdmem_v (g 'pdmem (g 'impl st7)) + fdwrt_v (g 'fdwrt (g 'impl st7)) + fdinst_v (g 'fdinst (g 'impl st7)) + dewrt_v (g 'dewrt (g 'impl st7)) + deop_v (g 'deop (g 'impl st7)) + dearg1_v (g 'dearg1 (g 'impl st7)) + dearg2_v (g 'dearg2 (g 'impl st7)) + dedest_v (g 'dedest (g 'impl st7)) + desrc1_v (g 'desrc1 (g 'impl st7)) + desrc2_v (g 'desrc2 (g 'impl st7)) + deimm_v (g 'deimm (g 'impl st7)) + deuseimm_v (g 'deuseimm (g 'impl st7)) + dememtoreg_v + (g 'dememtoreg (g 'impl st7)) + dememwrite_v + (g 'dememwrite (g 'impl st7)) + deregwrite_v + (g 'deregwrite (g 'impl st7)) emwrt_v + (g 'emwrt (g 'impl st7)) emdest_v + (g 'emdest (g 'impl st7)) emregwrite_v + (g 'emregwrite (g 'impl st7)) + emresult_v (g 'emresult (g 'impl st7)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st7)) + emmemwrite_v + (g 'emmemwrite (g 'impl st7)) mwwrt_v + (g 'mwwrt (g 'impl st7)) mwval_v + (g 'mwval (g 'impl st7)) mwdest_v + (g 'mwdest (g 'impl st7)) mwregwrite_v + (g 'mwregwrite (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_1 (g 'impl st7)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) + pimem_v (g 'pimem (g 'impl st8)) + pdmem_v (g 'pdmem (g 'impl st8)) + fdwrt_v (g 'fdwrt (g 'impl st8)) + fdinst_v (g 'fdinst (g 'impl st8)) + dewrt_v (g 'dewrt (g 'impl st8)) + deop_v (g 'deop (g 'impl st8)) + dearg1_v (g 'dearg1 (g 'impl st8)) + dearg2_v (g 'dearg2 (g 'impl st8)) + dedest_v (g 'dedest (g 'impl st8)) + desrc1_v (g 'desrc1 (g 'impl st8)) + desrc2_v (g 'desrc2 (g 'impl st8)) + deimm_v (g 'deimm (g 'impl st8)) + deuseimm_v (g 'deuseimm (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mwwrt_v + (g 'mwwrt (g 'impl st8)) mwval_v + (g 'mwval (g 'impl st8)) mwdest_v + (g 'mwdest (g 'impl st8)) mwregwrite_v + (g 'mwregwrite (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_1 (g 'impl st8)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) + pimem_v (g 'pimem (g 'impl st9)) + pdmem_v (g 'pdmem (g 'impl st9)) + fdwrt_v (g 'fdwrt (g 'impl st9)) + fdinst_v (g 'fdinst (g 'impl st9)) + dewrt_v (g 'dewrt (g 'impl st9)) + deop_v (g 'deop (g 'impl st9)) + dearg1_v (g 'dearg1 (g 'impl st9)) + dearg2_v (g 'dearg2 (g 'impl st9)) + dedest_v (g 'dedest (g 'impl st9)) + desrc1_v (g 'desrc1 (g 'impl st9)) + desrc2_v (g 'desrc2 (g 'impl st9)) + deimm_v (g 'deimm (g 'impl st9)) + deuseimm_v (g 'deuseimm (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mwwrt_v + (g 'mwwrt (g 'impl st9)) mwval_v + (g 'mwval (g 'impl st9)) mwdest_v + (g 'mwdest (g 'impl st9)) mwregwrite_v + (g 'mwregwrite (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_1 (g 'impl st9)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v + (g 'deuseimm (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emdest_v + (g 'emdest (g 'impl st10)) + emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v + (g 'emresult (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mwwrt_v + (g 'mwwrt (g 'impl st10)) mwval_v + (g 'mwval (g 'impl st10)) mwdest_v + (g 'mwdest (g 'impl st10)) + mwregwrite_v + (g 'mwregwrite (g 'impl st10)))) + (good_ma_v + (or (or (or (or equiv_ma_0 equiv_ma_1) + equiv_ma_2) + equiv_ma_3) + equiv_ma_4)) + (st11 (simulate_a st10 t nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_1 (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_1 (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_1 (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_1 (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_1 (g 'impl st14)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st15)) + (g 'mwppc (g 'impl st15)) + (g 'emwrt (g 'impl st15)) + (g 'emppc (g 'impl st15)) + (g 'dewrt (g 'impl st15)) + (g 'deppc (g 'impl st15)) + (g 'fdwrt (g 'impl st15)) + (g 'fdppc (g 'impl st15)) + (g 'ppc (g 'impl st15)))) + (i_rf0 (g 'prf (g 'impl st15))) + (i_dmem0 (g 'pdmemhist_1 (g 'impl st15))) + (rank_w (rank (g 'mwwrt (g 'impl st15)) zero + (g 'emwrt (g 'impl st15)) + (g 'dewrt (g 'impl st15)) + (g 'fdwrt (g 'impl st15)))) + (st16 (simulate_a st15 nil nil t i_pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_1 (g 'impl st15)))) + (s_pc0 (g 'spc (g 'spec st16))) + (s_rf0 (g 'srf (g 'spec st16))) + (s_dmem0 (g 'sdmem (g 'spec st16))) + (i_pc (committedpc (g 'mwwrt (g 'impl st16)) + (g 'mwppc (g 'impl st16)) + (g 'emwrt (g 'impl st16)) + (g 'emppc (g 'impl st16)) + (g 'dewrt (g 'impl st16)) + (g 'deppc (g 'impl st16)) + (g 'fdwrt (g 'impl st16)) + (g 'fdppc (g 'impl st16)) + (g 'ppc (g 'impl st16)))) + (i_rf (g 'prf (g 'impl st16))) + (i_dmem (g 'pdmemhist_1 (g 'impl st16))) + (rank_v (rank (g 'mwwrt (g 'impl st16)) zero + (g 'emwrt (g 'impl st16)) + (g 'dewrt (g 'impl st16)) + (g 'fdwrt (g 'impl st16)))) + (st17 (simulate_a st16 nil t nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_1 (g 'impl st16)))) + (s_pc1 (g 'spc (g 'spec st17))) + (s_rf1 (g 'srf (g 'spec st17))) + (s_dmem1 (g 'sdmem (g 'spec st17))) + (st18 (simulate_a st17 t nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_1 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_1 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_1 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_1 (g 'impl st20)))) + (i_pc0_2 (committedpc + (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0_2 (g 'prf (g 'impl st21))) + (i_dmem0_2 (g 'pdmemhist_1 (g 'impl st21))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st21)) zero + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0_2 nil + pc0 pc0 fdinst0 fdppc0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 emppc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mwval0 mwppc0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st21)) + (g 'pdmemhist_1 (g 'impl st21)))) + (s_pc0_2 (g 'spc (g 'spec st22))) + (s_rf0_2 (g 'srf (g 'spec st22))) + (s_dmem0_2 (g 'sdmem (g 'spec st22))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf_2 (g 'prf (g 'impl st22))) + (i_dmem_2 (g 'pdmemhist_1 (g 'impl st22))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st22)) zero + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_1 (g 'impl st22)))) + (s_pc1_2 (g 'spc (g 'spec st23))) + (s_rf1_2 (g 'srf (g 'spec st23))) + (s_dmem1_2 (g 'sdmem (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_1 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_1 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_1 (g 'impl st25)))) + (i_pc0_3 (committedpc + (g 'mwwrt (g 'impl st26)) + (g 'mwppc (g 'impl st26)) + (g 'emwrt (g 'impl st26)) + (g 'emppc (g 'impl st26)) + (g 'dewrt (g 'impl st26)) + (g 'deppc (g 'impl st26)) + (g 'fdwrt (g 'impl st26)) + (g 'fdppc (g 'impl st26)) + (g 'ppc (g 'impl st26)))) + (i_rf0_3 (g 'prf (g 'impl st26))) + (i_dmem0_3 (g 'pdmemhist_1 (g 'impl st26))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st26)) zero + (g 'emwrt (g 'impl st26)) + (g 'dewrt (g 'impl st26)) + (g 'fdwrt (g 'impl st26)))) + (st27 (simulate_a st26 nil nil t i_pc0_3 nil + pc0 pc0 fdinst0 fdppc0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 emppc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mwval0 mwppc0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st26)) + (g 'pdmemhist_1 (g 'impl st26)))) + (s_pc0_3 (g 'spc (g 'spec st27))) + (s_rf0_3 (g 'srf (g 'spec st27))) + (s_dmem0_3 (g 'sdmem (g 'spec st27))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st27)) + (g 'mwppc (g 'impl st27)) + (g 'emwrt (g 'impl st27)) + (g 'emppc (g 'impl st27)) + (g 'dewrt (g 'impl st27)) + (g 'deppc (g 'impl st27)) + (g 'fdwrt (g 'impl st27)) + (g 'fdppc (g 'impl st27)) + (g 'ppc (g 'impl st27)))) + (i_rf_3 (g 'prf (g 'impl st27))) + (i_dmem_3 (g 'pdmemhist_1 (g 'impl st27))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st27)) zero + (g 'emwrt (g 'impl st27)) + (g 'dewrt (g 'impl st27)) + (g 'fdwrt (g 'impl st27)))) + (st28 (simulate_a st27 nil t nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_1 (g 'impl st27)))) + (s_pc1_3 (g 'spc (g 'spec st28))) + (s_rf1_3 (g 'srf (g 'spec st28))) + (s_dmem1_3 (g 'sdmem (g 'spec st28))) + (st29 (simulate_a st28 t nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_1 (g 'impl st28)))) + (st30 (simulate_a st29 nil nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st29)) + (g 'pdmemhist_1 (g 'impl st29)))) + (i_pc0_4 (committedpc + (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf0_4 (g 'prf (g 'impl st30))) + (i_dmem0_4 (g 'pdmemhist_1 (g 'impl st30))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil nil t i_pc0_4 nil + pc0 pc0 fdinst0 fdppc0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 emppc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mwval0 mwppc0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st30)) + (g 'pdmemhist_1 (g 'impl st30)))) + (s_pc0_4 (g 'spc (g 'spec st31))) + (s_rf0_4 (g 'srf (g 'spec st31))) + (s_dmem0_4 (g 'sdmem (g 'spec st31))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st31)) + (g 'mwppc (g 'impl st31)) + (g 'emwrt (g 'impl st31)) + (g 'emppc (g 'impl st31)) + (g 'dewrt (g 'impl st31)) + (g 'deppc (g 'impl st31)) + (g 'fdwrt (g 'impl st31)) + (g 'fdppc (g 'impl st31)) + (g 'ppc (g 'impl st31)))) + (i_rf_4 (g 'prf (g 'impl st31))) + (i_dmem_4 (g 'pdmemhist_1 (g 'impl st31))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st31)) zero + (g 'emwrt (g 'impl st31)) + (g 'dewrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31)))) + (st32 (simulate_a st31 nil t nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_1 (g 'impl st31)))) + (s_pc1_4 (g 'spc (g 'spec st32))) + (s_rf1_4 (g 'srf (g 'spec st32))) + (s_dmem1_4 (g 'sdmem (g 'spec st32))) + (st33 (simulate_a st32 t nil nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_1 (g 'impl st32)))) + (i_pc0_5 (committedpc + (g 'mwwrt (g 'impl st33)) + (g 'mwppc (g 'impl st33)) + (g 'emwrt (g 'impl st33)) + (g 'emppc (g 'impl st33)) + (g 'dewrt (g 'impl st33)) + (g 'deppc (g 'impl st33)) + (g 'fdwrt (g 'impl st33)) + (g 'fdppc (g 'impl st33)) + (g 'ppc (g 'impl st33)))) + (i_rf0_5 (g 'prf (g 'impl st33))) + (i_dmem0_5 (g 'pdmemhist_1 (g 'impl st33))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st33)) zero + (g 'emwrt (g 'impl st33)) + (g 'dewrt (g 'impl st33)) + (g 'fdwrt (g 'impl st33)))) + (st34 (simulate_a st33 nil nil t i_pc0_5 nil + pc0 pc0 fdinst0 fdppc0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 emppc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mwval0 mwppc0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st33)) + (g 'pdmemhist_1 (g 'impl st33)))) + (s_pc0_5 (g 'spc (g 'spec st34))) + (s_rf0_5 (g 'srf (g 'spec st34))) + (s_dmem0_5 (g 'sdmem (g 'spec st34))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st34)) + (g 'mwppc (g 'impl st34)) + (g 'emwrt (g 'impl st34)) + (g 'emppc (g 'impl st34)) + (g 'dewrt (g 'impl st34)) + (g 'deppc (g 'impl st34)) + (g 'fdwrt (g 'impl st34)) + (g 'fdppc (g 'impl st34)) + (g 'ppc (g 'impl st34)))) + (i_rf_5 (g 'prf (g 'impl st34))) + (i_dmem_5 (g 'pdmemhist_1 (g 'impl st34))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st34)) zero + (g 'emwrt (g 'impl st34)) + (g 'dewrt (g 'impl st34)) + (g 'fdwrt (g 'impl st34)))) + (st35 (simulate_a st34 nil t nil pc0 nil pc0 + pc0 fdinst0 fdppc0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 emppc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mwval0 mwppc0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_1 (g 'impl st34)))) + (s_pc1_5 (g 'spc (g 'spec st35))) + (s_rf1_5 (g 'srf (g 'spec st35))) + (s_dmem1_5 (g 'sdmem (g 'spec st35)))) + (and (and (and (and + (and good_ma_v + (or + (or + (not + (and + (and (equal s_pc0 i_pc0) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0))) + (and + (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem))) + (and + (and + (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (< rank_v rank_w)))) + (or + (or + (not + (and + (and (equal s_pc0_2 i_pc0_2) + (equal (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf0_2))) + (equal s_dmem0_2 i_dmem0_2))) + (and + (and (equal s_pc1_2 i_pc_2) + (equal (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 i_dmem_2))) + (and + (and + (and (equal s_pc0_2 i_pc_2) + (equal (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)) + (< rank_v_2 rank_w_2)))) + (or + (or + (not + (and + (and (equal s_pc0_3 i_pc0_3) + (equal (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 i_dmem0_3))) + (and + (and (equal s_pc1_3 i_pc_3) + (equal (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3))) + (and + (and + (and (equal s_pc0_3 i_pc_3) + (equal (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)) + (< rank_v_3 rank_w_3)))) + (or (or (not + (and + (and (equal s_pc0_4 i_pc0_4) + (equal (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 i_dmem0_4))) + (and + (and (equal s_pc1_4 i_pc_4) + (equal (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4))) + (and (and + (and (equal s_pc0_4 i_pc_4) + (equal (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)) + (< rank_v_4 rank_w_4)))) + (or (or (not (and + (and (equal s_pc0_5 i_pc0_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5))) + (and (and (equal s_pc1_5 i_pc_5) + (equal (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5))) + (and (and (and (equal s_pc0_5 i_pc_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)) + (< rank_v_5 rank_w_5)))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cert_pl_exclude b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cert_pl_exclude new file mode 100644 index 0000000..f3f40db --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cert_pl_exclude @@ -0,0 +1,8 @@ +cert_pl_exclude + +The presence of this file tells cert.pl not to try to build any of the books in +this directory. + +According to workshops/2004/manolios-srinivasan/support/REAMDE, the fastest book +here takes 15 days to certify, and the others are much harder. + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-inp-safety.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-inp-safety.lisp new file mode 100644 index 0000000..f4a7cfe --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-inp-safety.lisp @@ -0,0 +1,4828 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((intrp_mod_dmem (x1) t)) + (local (defun intrp_mod_dmem (x1) (declare (ignore x1)) 1)) + (defthm intrp_mod_dmem-type (integerp (intrp_mod_dmem x1)))) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((nextintrp (x1) t)) + (local (defun nextintrp (x1) (declare (ignore x1)) 1)) + (defthm nextintrp-type (integerp (nextintrp x1)))) + +(encapsulate ((isinterrupt (x1) t)) + (local (defun isinterrupt (x1) (declare (ignore x1)) nil)) + (defthm isinterrupt-type (booleanp (isinterrupt x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(encapsulate ((alu_exception (x3 x2 x1) t)) + (local (defun alu_exception (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm alu_exception-type (booleanp (alu_exception x3 x2 x1)))) + +(encapsulate ((getreturnfromexception (x1) t)) + (local (defun getreturnfromexception (x1) + (declare (ignore x1)) + nil)) + (defthm getreturnfromexception-type + (booleanp (getreturnfromexception x1)))) + +(encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + +(encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + +(encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (and (and (and (g 3 (car prf)) + (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (g 7 (car prf))) + (g 8 (car prf))) + (g 9 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (and (and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (g 8 (car srf))) + (g 9 (car srf))) + (g 10 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc pintrp bpstate ffbpstate ffpintrp + ffpredicteddirection ffpredictedtarget ffwrt ffinst + ffppc prf fdpintrp fdbpstate fdppc fdwrt fdinst + fdpredicteddirection fdpredictedtarget debpstate + depintrp deppc desrc1 desrc2 dearg1 dearg2 dedest deop + deimm deuseimm deisreturnfromexception deregwrite + dememwrite dememtoreg deisbranch dewrt + depredicteddirection depredictedtarget embpstate + empintrp emppc emis_alu_exception emis_taken_branch + emtargetpc emarg2 emresult emdest emwrt + emisreturnfromexception emmispredictedtaken + emmispredictednottaken emregwrite emmemwrite emmemtoreg + pdmemhist_2 pdmemhist_1 pdmem pepchist_2 pepchist_1 pepc + pisexceptionhist_2 pisexceptionhist_1 pisexception + mmbpstate mmpintrp mmisreturnfromexception + mmis_alu_exception mmppc mmval mmdest mmwrt mmregwrite + mwbpstate mwpintrp mwisreturnfromexception + mwis_alu_exception mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'pintrp pintrp 'bpstate bpstate + 'ffbpstate ffbpstate 'ffpintrp ffpintrp 'ffpredicteddirection + ffpredicteddirection 'ffpredictedtarget ffpredictedtarget + 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf prf 'fdpintrp + fdpintrp 'fdbpstate fdbpstate 'fdppc fdppc 'fdwrt fdwrt 'fdinst + fdinst 'fdpredicteddirection fdpredicteddirection + 'fdpredictedtarget fdpredictedtarget 'debpstate debpstate + 'depintrp depintrp 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 + 'dearg1 dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm + deimm 'deuseimm deuseimm 'deisreturnfromexception + deisreturnfromexception 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt + dewrt 'depredicteddirection depredicteddirection + 'depredictedtarget depredictedtarget 'embpstate embpstate + 'empintrp empintrp 'emppc emppc 'emis_alu_exception + emis_alu_exception 'emis_taken_branch emis_taken_branch + 'emtargetpc emtargetpc 'emarg2 emarg2 'emresult emresult + 'emdest emdest 'emwrt emwrt 'emisreturnfromexception + emisreturnfromexception 'emmispredictedtaken + emmispredictedtaken 'emmispredictednottaken + emmispredictednottaken 'emregwrite emregwrite 'emmemwrite + emmemwrite 'emmemtoreg emmemtoreg 'pdmemhist_2 pdmemhist_2 + 'pdmemhist_1 pdmemhist_1 'pdmem pdmem 'pepchist_2 pepchist_2 + 'pepchist_1 pepchist_1 'pepc pepc 'pisexceptionhist_2 + pisexceptionhist_2 'pisexceptionhist_1 pisexceptionhist_1 + 'pisexception pisexception 'mmbpstate mmbpstate 'mmpintrp + mmpintrp 'mmisreturnfromexception mmisreturnfromexception + 'mmis_alu_exception mmis_alu_exception 'mmppc mmppc 'mmval + mmval 'mmdest mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite + 'mwbpstate mwbpstate 'mwpintrp mwpintrp + 'mwisreturnfromexception mwisreturnfromexception + 'mwis_alu_exception mwis_alu_exception 'mwppc mwppc 'mwval + mwval 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 commit_impl commit_pc mem1_is_interrupt emppc + mem1_is_returnfromexception pepc mem1_is_alu_exception + alu_exception_handler mem1_mispredicted_taken + mem1_mispredicted_nottaken emtargetpc stall ppc + if_predict_branch_taken predicted_target) + (cond + (initi pc0) + (commit_impl commit_pc) + (mem1_is_interrupt emppc) + (mem1_is_returnfromexception pepc) + (mem1_is_alu_exception alu_exception_handler) + (mem1_mispredicted_taken (add-1 emppc)) + (mem1_mispredicted_nottaken emtargetpc) + (stall ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + +(defun initpintrp_a (intrp0) intrp0) + +(defun nextpintrp_a + (initi intrp0 commit_impl commit_intrp stall pintrp) + (cond + (initi intrp0) + (commit_impl commit_intrp) + (stall pintrp) + (t (nextintrp pintrp)))) + +(defun initbpstate_a (bpstate0) bpstate0) + +(defun nextbpstate_a + (initi bpstate0 commit_impl commit_bpstate stall bpstate) + (cond + (initi bpstate0) + (commit_impl commit_bpstate) + (stall bpstate) + (t (nextbpstate bpstate)))) + +(defun initffbpstate_a (ffbpstate0) ffbpstate0) + +(defun nextffbpstate_a (initi ffbpstate0 stall ffbpstate bpstate) + (cond (initi ffbpstate0) (stall ffbpstate) (t bpstate))) + +(defun initffpintrp_a (ffpintrp0) ffpintrp0) + +(defun nextffpintrp_a (initi ffpintrp0 stall ffpintrp pintrp) + (cond (initi ffpintrp0) (stall ffpintrp) (t pintrp))) + +(defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + +(defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + +(defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + +(defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + +(defun initffwrt_a () nil) + +(defun nextffwrt_a (initi commit_impl squash stall ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall ffwrt) + (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a + (prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest + (s 5 mwregwrite + (s 6 wb_is_alu_exception_bar + (s 7 wb_is_interrupt_bar + (s 8 wb_is_returnfromexception_bar + (s 9 mwval nil)))))))))) + prf)) + +(defun initfdpintrp_a (fdpintrp0) fdpintrp0) + +(defun nextfdpintrp_a (initi fdpintrp0 stall fdpintrp ffpintrp) + (cond (initi fdpintrp0) (stall fdpintrp) (t ffpintrp))) + +(defun initfdbpstate_a (fdbpstate0) fdbpstate0) + +(defun nextfdbpstate_a (initi fdbpstate0 stall fdbpstate ffbpstate) + (cond (initi fdbpstate0) (stall fdbpstate) (t ffbpstate))) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a () nil) + +(defun nextfdwrt_a (initi commit_impl squash stall fdwrt ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall fdwrt) + (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + +(defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + +(defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + +(defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + +(defun initdebpstate_a (debpstate0) debpstate0) + +(defun nextdebpstate_a (initi debpstate0 fdbpstate) + (cond (initi debpstate0) (t fdbpstate))) + +(defun initdepintrp_a (depintrp0) depintrp0) + +(defun nextdepintrp_a (initi depintrp0 fdpintrp) + (cond (initi depintrp0) (t fdpintrp))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initdeisreturnfromexception_a (deisreturnfromexception0) + deisreturnfromexception0) + +(defun nextdeisreturnfromexception_a + (initi deisreturnfromexception0 fdinst) + (cond + (initi deisreturnfromexception0) + (t (getreturnfromexception fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a () nil) + +(defun nextdewrt_a (initi commit_impl squash stall fdwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (t (and (not stall) fdwrt)))) + +(defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + +(defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + +(defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + +(defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + +(defun initembpstate_a (embpstate0) embpstate0) + +(defun nextembpstate_a (initi embpstate0 debpstate) + (cond (initi embpstate0) (t debpstate))) + +(defun initempintrp_a (empintrp0) empintrp0) + +(defun nextempintrp_a (initi empintrp0 depintrp) + (cond (initi empintrp0) (t depintrp))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_alu_exception_a (emis_alu_exception0) + emis_alu_exception0) + +(defun nextemis_alu_exception_a + (initi emis_alu_exception0 ex_is_alu_exception) + (cond (initi emis_alu_exception0) (t ex_is_alu_exception))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a () nil) + +(defun nextemwrt_a (initi commit_impl squash dewrt) + (cond (initi nil) (commit_impl nil) (squash nil) (t dewrt))) + +(defun initemisreturnfromexception_a (emisreturnfromexception0) + emisreturnfromexception0) + +(defun nextemisreturnfromexception_a + (initi emisreturnfromexception0 deisreturnfromexception) + (cond (initi emisreturnfromexception0) (t deisreturnfromexception))) + +(defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + +(defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + +(defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + +(defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_2 mem1_is_interrupt pdmem + emwrt emmemwrite mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar emresult emarg2) + (cond + (initi dmem0) + (commit_impl pdmemhist_2) + (mem1_is_interrupt (intrp_mod_dmem pdmem)) + ((and (and (and emwrt emmemwrite) mem1_is_alu_exception_bar) + mem1_is_returnfromexception_bar) + (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initpepchist_2_a (epc0) epc0) + +(defun nextpepchist_2_a (initi epc0 pepchist_1) + (cond (initi epc0) (t pepchist_1))) + +(defun initpepchist_1_a (epc0) epc0) + +(defun nextpepchist_1_a (initi epc0 pepc) + (cond (initi epc0) (t pepc))) + +(defun initpepc_a (epc0) epc0) + +(defun nextpepc_a + (initi epc0 commit_impl pepchist_2 mem1_is_alu_exception + mem1_is_returnfromexception_bar mem1_is_interrupt_bar + emppc pepc) + (cond + (initi epc0) + (commit_impl pepchist_2) + ((and (and mem1_is_alu_exception mem1_is_returnfromexception_bar) + mem1_is_interrupt_bar) + emppc) + (t pepc))) + +(defun initpisexceptionhist_2_a (isexception0) isexception0) + +(defun nextpisexceptionhist_2_a + (initi isexception0 pisexceptionhist_1) + (cond (initi isexception0) (t pisexceptionhist_1))) + +(defun initpisexceptionhist_1_a (isexception0) isexception0) + +(defun nextpisexceptionhist_1_a (initi isexception0 pisexception) + (cond (initi isexception0) (t pisexception))) + +(defun initpisexception_a (isexception0) isexception0) + +(defun nextpisexception_a + (initi isexception0 commit_impl pisexceptionhist_2 + mem1_is_alu_exception mem1_is_returnfromexception + mem1_is_interrupt_bar mem1_is_returnfromexception_bar + pisexception) + (cond + (initi isexception0) + (commit_impl pisexceptionhist_2) + ((and (or mem1_is_alu_exception mem1_is_returnfromexception) + mem1_is_interrupt_bar) + (and mem1_is_alu_exception mem1_is_returnfromexception_bar)) + (t pisexception))) + +(defun initmmbpstate_a (mmbpstate0) mmbpstate0) + +(defun nextmmbpstate_a (initi mmbpstate0 embpstate) + (cond (initi mmbpstate0) (t embpstate))) + +(defun initmmpintrp_a (mmpintrp0) mmpintrp0) + +(defun nextmmpintrp_a (initi mmpintrp0 empintrp) + (cond (initi mmpintrp0) (t empintrp))) + +(defun initmmisreturnfromexception_a (mmisreturnfromexception0) + mmisreturnfromexception0) + +(defun nextmmisreturnfromexception_a + (initi mmisreturnfromexception0 emisreturnfromexception) + (cond (initi mmisreturnfromexception0) (t emisreturnfromexception))) + +(defun initmmis_alu_exception_a (mmis_alu_exception0) + mmis_alu_exception0) + +(defun nextmmis_alu_exception_a + (initi mmis_alu_exception0 emis_alu_exception) + (cond (initi mmis_alu_exception0) (t emis_alu_exception))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a () nil) + +(defun nextmmwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwbpstate_a (mwbpstate0) mwbpstate0) + +(defun nextmwbpstate_a (initi mwbpstate0 mmbpstate) + (cond (initi mwbpstate0) (t mmbpstate))) + +(defun initmwpintrp_a (mwpintrp0) mwpintrp0) + +(defun nextmwpintrp_a (initi mwpintrp0 mmpintrp) + (cond (initi mwpintrp0) (t mmpintrp))) + +(defun initmwisreturnfromexception_a (mwisreturnfromexception0) + mwisreturnfromexception0) + +(defun nextmwisreturnfromexception_a + (initi mwisreturnfromexception0 mmisreturnfromexception) + (cond (initi mwisreturnfromexception0) (t mmisreturnfromexception))) + +(defun initmwis_alu_exception_a (mwis_alu_exception0) + mwis_alu_exception0) + +(defun nextmwis_alu_exception_a + (initi mwis_alu_exception0 mmis_alu_exception) + (cond (initi mwis_alu_exception0) (t mmis_alu_exception))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a () nil) + +(defun nextmwwrt_a (initi commit_impl mmwrt) + (cond (initi nil) (commit_impl nil) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc alu_exception_handler + intrp0 commit_intrp bpstate0 commit_bpstate ffbpstate0 + ffpintrp0 ffpredicteddirection0 ffpredictedtarget0 + ffinst0 ffppc0 fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmbpstate0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (pintrp (g 'pintrp impl)) (bpstate (g 'bpstate impl)) + (ffbpstate (g 'ffbpstate impl)) (ffpintrp (g 'ffpintrp impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdpintrp (g 'fdpintrp impl)) (fdbpstate (g 'fdbpstate impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (depintrp (g 'depintrp impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (empintrp (g 'empintrp impl)) + (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepchist_2 (g 'pepchist_2 impl)) + (pepchist_1 (g 'pepchist_1 impl)) (pepc (g 'pepc impl)) + (pisexceptionhist_2 (g 'pisexceptionhist_2 impl)) + (pisexceptionhist_1 (g 'pisexceptionhist_1 impl)) + (pisexception (g 'pisexception impl)) + (mmbpstate (g 'mmbpstate impl)) (mmpintrp (g 'mmpintrp impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) (mwpintrp (g 'mwpintrp impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (mem1_is_interrupt_temp (isinterrupt empintrp)) + (mem1_is_interrupt (and mem1_is_interrupt_temp emwrt)) + (mem1_is_interrupt_bar (not mem1_is_interrupt)) + (squash (or (or (or mem1_mispredicted + mem1_is_alu_exception) + mem1_is_interrupt) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception)) + (wb_is_interrupt_temp (isinterrupt mwpintrp)) + (wb_is_interrupt (and wb_is_interrupt_temp mwwrt)) + (wb_is_interrupt_bar (not wb_is_interrupt))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc mem1_is_interrupt + emppc mem1_is_returnfromexception pepc + mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken mem1_mispredicted_nottaken + emtargetpc stall ppc if_predict_branch_taken + predicted_target) + (nextpintrp_a initi intrp0 commit_impl commit_intrp stall + pintrp) + (nextbpstate_a initi bpstate0 commit_impl commit_bpstate + stall bpstate) + (nextffbpstate_a initi ffbpstate0 stall ffbpstate bpstate) + (nextffpintrp_a initi ffpintrp0 stall ffpintrp pintrp) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi commit_impl squash stall ffwrt) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (nextfdpintrp_a initi fdpintrp0 stall fdpintrp ffpintrp) + (nextfdbpstate_a initi fdbpstate0 stall fdbpstate ffbpstate) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi commit_impl squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdebpstate_a initi debpstate0 fdbpstate) + (nextdepintrp_a initi depintrp0 fdpintrp) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite wb_is_alu_exception_bar + wb_is_interrupt_bar wb_is_returnfromexception_bar mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite wb_is_alu_exception_bar + wb_is_interrupt_bar wb_is_returnfromexception_bar mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextdeisreturnfromexception_a initi + deisreturnfromexception0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi commit_impl squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextembpstate_a initi embpstate0 debpstate) + (nextempintrp_a initi empintrp0 depintrp) + (nextemppc_a initi emppc0 deppc) + (nextemis_alu_exception_a initi emis_alu_exception0 + ex_is_alu_exception) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl squash dewrt) + (nextemisreturnfromexception_a initi + emisreturnfromexception0 deisreturnfromexception) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_2 + mem1_is_interrupt pdmem emwrt emmemwrite + mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar emresult emarg2) + (nextpepchist_2_a initi epc0 pepchist_1) + (nextpepchist_1_a initi epc0 pepc) + (nextpepc_a initi epc0 commit_impl pepchist_2 + mem1_is_alu_exception mem1_is_returnfromexception_bar + mem1_is_interrupt_bar emppc pepc) + (nextpisexceptionhist_2_a initi isexception0 + pisexceptionhist_1) + (nextpisexceptionhist_1_a initi isexception0 pisexception) + (nextpisexception_a initi isexception0 commit_impl + pisexceptionhist_2 mem1_is_alu_exception + mem1_is_returnfromexception mem1_is_interrupt_bar + mem1_is_returnfromexception_bar pisexception) + (nextmmbpstate_a initi mmbpstate0 embpstate) + (nextmmpintrp_a initi mmpintrp0 empintrp) + (nextmmisreturnfromexception_a initi + mmisreturnfromexception0 emisreturnfromexception) + (nextmmis_alu_exception_a initi mmis_alu_exception0 + emis_alu_exception) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi commit_impl emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwbpstate_a initi mwbpstate0 mmbpstate) + (nextmwpintrp_a initi mwpintrp0 mmpintrp) + (nextmwisreturnfromexception_a initi + mwisreturnfromexception0 mmisreturnfromexception) + (nextmwis_alu_exception_a initi mwis_alu_exception0 + mmis_alu_exception) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi commit_impl mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 depintrp0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmbpstate0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (pintrp (g 'pintrp impl)) (bpstate (g 'bpstate impl)) + (ffbpstate (g 'ffbpstate impl)) (ffpintrp (g 'ffpintrp impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdpintrp (g 'fdpintrp impl)) (fdbpstate (g 'fdbpstate impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (depintrp (g 'depintrp impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (empintrp (g 'empintrp impl)) + (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepchist_2 (g 'pepchist_2 impl)) + (pepchist_1 (g 'pepchist_1 impl)) (pepc (g 'pepc impl)) + (pisexceptionhist_2 (g 'pisexceptionhist_2 impl)) + (pisexceptionhist_1 (g 'pisexceptionhist_1 impl)) + (pisexception (g 'pisexception impl)) + (mmbpstate (g 'mmbpstate impl)) (mmpintrp (g 'mmpintrp impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) (mwpintrp (g 'mwpintrp impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (mem1_is_interrupt_temp (isinterrupt empintrp)) + (mem1_is_interrupt (and mem1_is_interrupt_temp emwrt)) + (mem1_is_interrupt_bar (not mem1_is_interrupt)) + (squash (or (or (or mem1_mispredicted + mem1_is_alu_exception) + mem1_is_interrupt) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception)) + (wb_is_interrupt_temp (isinterrupt mwpintrp)) + (wb_is_interrupt (and wb_is_interrupt_temp mwwrt)) + (wb_is_interrupt_bar (not wb_is_interrupt))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initpintrp_a intrp0) (initbpstate_a bpstate0) + (initffbpstate_a ffbpstate0) (initffpintrp_a ffpintrp0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) (initffwrt_a) + (initffinst_a ffinst0) (initffppc_a ffppc0) (initprf_a prf) + (initfdpintrp_a fdpintrp0) (initfdbpstate_a fdbpstate0) + (initfdppc_a fdppc0) (initfdwrt_a) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdebpstate_a debpstate0) (initdepintrp_a depintrp0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initdeisreturnfromexception_a deisreturnfromexception0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initembpstate_a embpstate0) (initempintrp_a empintrp0) + (initemppc_a emppc0) + (initemis_alu_exception_a emis_alu_exception0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) + (initemisreturnfromexception_a emisreturnfromexception0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initpepchist_2_a epc0) (initpepchist_1_a epc0) + (initpepc_a epc0) (initpisexceptionhist_2_a isexception0) + (initpisexceptionhist_1_a isexception0) + (initpisexception_a isexception0) + (initmmbpstate_a mmbpstate0) (initmmpintrp_a mmpintrp0) + (initmmisreturnfromexception_a mmisreturnfromexception0) + (initmmis_alu_exception_a mmis_alu_exception0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a) + (initmmregwrite_a mmregwrite0) (initmwbpstate_a mwbpstate0) + (initmwpintrp_a mwpintrp0) + (initmwisreturnfromexception_a mwisreturnfromexception0) + (initmwis_alu_exception_a mwis_alu_exception0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc sintrp srf sdmem sepc sisexception) + (seq nil 'simem simem 'spc spc 'sintrp sintrp 'srf srf 'sdmem sdmem + 'sepc sepc 'sisexception sisexception)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl project_pc isa is_interrupt spc + is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc) + (cond + (initi pc0) + (project_impl project_pc) + ((and isa is_interrupt) spc) + ((and isa is_returnfromexception) sepc) + ((and isa is_alu_exception) alu_exception_handler) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsintrp_a (intrp0) intrp0) + +(defun nextsintrp_a + (initi intrp0 project_impl project_intrp isa sintrp) + (cond + (initi intrp0) + (project_impl project_intrp) + (isa (nextintrp sintrp)) + (t sintrp))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_interrupt_bar + is_returnfromexception_bar val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa + (s 5 inst + (s 6 regwrite + (s 7 is_alu_exception_bar + (s 8 is_interrupt_bar + (s 9 is_returnfromexception_bar + (s 10 val nil))))))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_2 isa is_interrupt + sdmem memwrite is_alu_exception_bar + is_returnfromexception_bar result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_2) + ((and isa is_interrupt) (intrp_mod_dmem sdmem)) + ((and (and (and isa memwrite) is_alu_exception_bar) + is_returnfromexception_bar) + (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun initsepc_a (epc0) epc0) + +(defun nextsepc_a + (initi epc0 isa is_alu_exception is_returnfromexception_bar + is_interrupt_bar spc sepc) + (cond + (initi epc0) + ((and (and (and isa is_alu_exception) is_returnfromexception_bar) + is_interrupt_bar) + spc) + (t sepc))) + +(defun initsisexception_a (isexception0) isexception0) + +(defun nextsisexception_a + (initi isexception0 isa is_alu_exception is_returnfromexception + is_interrupt_bar is_returnfromexception_bar + sisexception) + (cond + (initi isexception0) + ((and (and isa (or is_alu_exception is_returnfromexception)) + is_interrupt_bar) + (and is_alu_exception is_returnfromexception_bar)) + (t sisexception))) + +(defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa + alu_exception_handler intrp0 project_intrp impl.prf dmem0 + impl.pdmemhist_2 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (sintrp (g 'sintrp spec)) (srf (g 'srf spec)) + (sdmem (g 'sdmem spec)) (sepc (g 'sepc spec)) + (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (is_interrupt (isinterrupt sintrp)) + (is_interrupt_bar (not is_interrupt)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa + is_interrupt spc is_returnfromexception sepc + is_alu_exception alu_exception_handler is_taken_branch + targetpc) + (nextsintrp_a initi intrp0 project_impl project_intrp isa + sintrp) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_interrupt_bar + is_returnfromexception_bar val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_2 isa + is_interrupt sdmem memwrite is_alu_exception_bar + is_returnfromexception_bar result arg2_temp) + (nextsepc_a initi epc0 isa is_alu_exception + is_returnfromexception_bar is_interrupt_bar spc sepc) + (nextsisexception_a initi isexception0 isa is_alu_exception + is_returnfromexception is_interrupt_bar + is_returnfromexception_bar sisexception))))) + +(defun spec-initialize_a (spec pc0 intrp0 dmem0 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (sintrp (g 'sintrp spec)) (srf (g 'srf spec)) + (sdmem (g 'sdmem spec)) (sepc (g 'sepc spec)) + (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (is_interrupt (isinterrupt sintrp)) + (is_interrupt_bar (not is_interrupt)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsintrp_a intrp0) (initsrf_a srf) (initsdmem_a dmem0) + (initsepc_a epc0) (initsisexception_a isexception0))))) + +(defun simulate_a + (st initi isa project_impl project_pc project_intrp commit_impl + commit_pc commit_bpstate commit_intrp pc0 + alu_exception_handler intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 depintrp0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmpintrp0 mmisreturnfromexception0 mmis_alu_exception0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 impl.prf impl.pdmemhist_2) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + alu_exception_handler intrp0 commit_intrp bpstate0 + commit_bpstate ffbpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdpintrp0 fdbpstate0 + fdppc0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmpintrp0 mmisreturnfromexception0 mmis_alu_exception0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa alu_exception_handler intrp0 project_intrp impl.prf + dmem0 impl.pdmemhist_2 epc0 isexception0))) + +(defun initialize_a + (st initi isa project_impl project_pc project_intrp commit_impl + commit_pc commit_bpstate commit_intrp pc0 intrp0 bpstate0 + ffbpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdpintrp0 fdbpstate0 + fdppc0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmpintrp0 mmisreturnfromexception0 mmis_alu_exception0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 intrp0 bpstate0 ffbpstate0 + ffpintrp0 ffpredicteddirection0 ffpredictedtarget0 ffinst0 + ffppc0 fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmpintrp0 mmisreturnfromexception0 mmis_alu_exception0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 intrp0 dmem0 epc0 + isexception0))) + +(defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem pepc_v impl.pepc pisexception_v + impl.pisexception ffwrt_v impl.ffwrt ffppc_v impl.ffppc + ffinst_v impl.ffinst fdwrt_v impl.fdwrt fdppc_v + impl.fdppc fdinst_v impl.fdinst dewrt_v impl.dewrt + deppc_v impl.deppc deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm deisbranch_v impl.deisbranch + dememtoreg_v impl.dememtoreg dememwrite_v + impl.dememwrite deisreturnfromexception_v + impl.deisreturnfromexception deregwrite_v + impl.deregwrite emwrt_v impl.emwrt emtargetpc_v + impl.emtargetpc emdest_v impl.emdest emarg2_v + impl.emarg2 emregwrite_v impl.emregwrite emresult_v + impl.emresult emis_taken_branch_v impl.emis_taken_branch + emmemtoreg_v impl.emmemtoreg emis_alu_exception_v + impl.emis_alu_exception emisreturnfromexception_v + impl.emisreturnfromexception emmemwrite_v + impl.emmemwrite mmwrt_v impl.mmwrt mmval_v impl.mmval + mmdest_v impl.mmdest mmregwrite_v impl.mmregwrite + mmisreturnfromexception_v impl.mmisreturnfromexception + mmis_alu_exception_v impl.mmis_alu_exception mwwrt_v + impl.mwwrt mwval_v impl.mwval mwdest_v impl.mwdest + mwregwrite_v impl.mwregwrite mwisreturnfromexception_v + impl.mwisreturnfromexception mwis_alu_exception_v + impl.mwis_alu_exception) + (declare (xargs :normalize nil)) + (and (and (and (and (and (and (and (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (equal ppc_v impl.ppc) + (equal + (read-prf_a a1 prf_v) + (read-prf_a a1 + impl.prf))) + (equal + (read-pimem_a a1 + pimem_v) + (read-pimem_a a1 + impl.pimem))) + (equal pdmem_v + impl.pdmem)) + (equal pepc_v impl.pepc)) + (equalb pisexception_v + impl.pisexception)) + (equalb ffwrt_v impl.ffwrt)) + (implies ffwrt_v + (and + (and impl.ffwrt + (equal ffppc_v impl.ffppc)) + (equal ffinst_v + impl.ffinst)))) + (equalb fdwrt_v impl.fdwrt)) + (implies fdwrt_v + (and + (and impl.fdwrt + (equal fdppc_v impl.fdppc)) + (equal fdinst_v impl.fdinst)))) + (equalb dewrt_v impl.dewrt)) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deppc_v + impl.deppc)) + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v + impl.desrc2)) + (equal deimm_v + impl.deimm)) + (equalb deuseimm_v + impl.deuseimm)) + (equalb deisbranch_v + impl.deisbranch)) + (equalb dememtoreg_v + impl.dememtoreg)) + (equalb dememwrite_v + impl.dememwrite)) + (equalb + deisreturnfromexception_v + impl.deisreturnfromexception)) + (equalb deregwrite_v + impl.deregwrite)))) + (equalb emwrt_v impl.emwrt)) + (implies emwrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.emwrt + (equal emtargetpc_v + impl.emtargetpc)) + (equal emdest_v + impl.emdest)) + (equal emarg2_v + impl.emarg2)) + (equalb emregwrite_v + impl.emregwrite)) + (equal emresult_v + impl.emresult)) + (equalb emis_taken_branch_v + impl.emis_taken_branch)) + (equalb emmemtoreg_v + impl.emmemtoreg)) + (equalb emis_alu_exception_v + impl.emis_alu_exception)) + (equalb + emisreturnfromexception_v + impl.emisreturnfromexception)) + (equalb emmemwrite_v + impl.emmemwrite)))) + (equalb mmwrt_v impl.mmwrt)) + (implies mmwrt_v + (and (and (and + (and + (and impl.mmwrt + (equal mmval_v impl.mmval)) + (equal mmdest_v impl.mmdest)) + (equalb mmregwrite_v + impl.mmregwrite)) + (equalb mmisreturnfromexception_v + impl.mmisreturnfromexception)) + (equalb mmis_alu_exception_v + impl.mmis_alu_exception)))) + (equalb mwwrt_v impl.mwwrt)) + (implies mwwrt_v + (and (and (and (and (and impl.mwwrt + (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (equalb mwregwrite_v impl.mwregwrite)) + (equalb mwisreturnfromexception_v + impl.mwisreturnfromexception)) + (equalb mwis_alu_exception_v + impl.mwis_alu_exception))))) + +(defun rank + (impl.mwwrt zero impl.mmwrt impl.emwrt impl.dewrt impl.fdwrt + impl.ffwrt) + (cond + (impl.mwwrt zero) + (impl.mmwrt (add-1 zero)) + (impl.emwrt (add-1 (add-1 zero))) + (impl.dewrt (add-1 (add-1 (add-1 zero)))) + (impl.fdwrt (add-1 (add-1 (add-1 (add-1 zero))))) + (impl.ffwrt (add-1 (add-1 (add-1 (add-1 (add-1 zero)))))) + (t (add-1 (add-1 (add-1 (add-1 (add-1 (add-1 zero))))))))) + +(defun committedpc + (impl.mwwrt impl.mwppc impl.mmwrt impl.mmppc impl.emwrt + impl.emppc impl.dewrt impl.deppc impl.fdwrt impl.fdppc + impl.ffwrt impl.ffppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.mmwrt impl.mmppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (impl.ffwrt impl.ffppc) + (t impl.ppc))) + +(defun committedbpstate + (impl.mwwrt impl.mwbpstate impl.mmwrt impl.mmbpstate impl.emwrt + impl.embpstate impl.dewrt impl.debpstate impl.fdwrt + impl.fdbpstate impl.ffwrt impl.ffbpstate impl.bpstate) + (cond + (impl.mwwrt impl.mwbpstate) + (impl.mmwrt impl.mmbpstate) + (impl.emwrt impl.embpstate) + (impl.dewrt impl.debpstate) + (impl.fdwrt impl.fdbpstate) + (impl.ffwrt impl.ffbpstate) + (t impl.bpstate))) + +(defun committedintrp + (impl.mwwrt impl.mwpintrp impl.mmwrt impl.mmpintrp impl.emwrt + impl.empintrp impl.dewrt impl.depintrp impl.fdwrt + impl.fdpintrp impl.ffwrt impl.ffpintrp impl.pintrp) + (cond + (impl.mwwrt impl.mwpintrp) + (impl.mmwrt impl.mmpintrp) + (impl.emwrt impl.empintrp) + (impl.dewrt impl.depintrp) + (impl.fdwrt impl.fdpintrp) + (impl.ffwrt impl.ffpintrp) + (t impl.pintrp))) + +(defthm web_core_a + (implies (and (integerp intrp_exception_handler) + (integerp intrp0) (integerp pc0) (integerp dmem0) + (integerp epc0) (booleanp isexception0) + (integerp bpstate0) + (integerp alu_exception_handler) (integerp a) + (integerp zero) (integerp ffpintrp0) + (integerp fdpintrp0) (integerp depintrp0) + (integerp empintrp0) (integerp mmpintrp0) + (integerp mwpintrp0) (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20) + (booleanp emis_alu_exception0) + (booleanp mmis_alu_exception0) + (booleanp mwis_alu_exception0) + (booleanp deisreturnfromexception0) + (booleanp emisreturnfromexception0) + (booleanp mmisreturnfromexception0) + (booleanp mwisreturnfromexception0)) + (let* ((st0 (initialize_a nil nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_2 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_2 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_2 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_2 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_2 (g 'impl st4)))) + (st6 (simulate_a st5 nil nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_2 (g 'impl st5)))) + (st7 (simulate_a st6 nil nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_2 (g 'impl st6)))) + (ppc_v (g 'ppc (g 'impl st7))) + (prf_v (g 'prf (g 'impl st7))) + (pdmem_v (g 'pdmem (g 'impl st7))) + (pimem_v (g 'pimem (g 'impl st7))) + (deop_v (g 'deop (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (dearg1_v (g 'dearg1 (g 'impl st7))) + (dearg2_v (g 'dearg2 (g 'impl st7))) + (dedest_v (g 'dedest (g 'impl st7))) + (dewrt_v (g 'dewrt (g 'impl st7))) + (fdwrt_v (g 'fdwrt (g 'impl st7))) + (fdinst_v (g 'fdinst (g 'impl st7))) + (emdest_v (g 'emdest (g 'impl st7))) + (emwrt_v (g 'emwrt (g 'impl st7))) + (desrc1_v (g 'desrc1 (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (deregwrite_v (g 'deregwrite (g 'impl st7))) + (emregwrite_v (g 'emregwrite (g 'impl st7))) + (deimm_v (g 'deimm (g 'impl st7))) + (deuseimm_v (g 'deuseimm (g 'impl st7))) + (emresult_v (g 'emresult (g 'impl st7))) + (dememtoreg_v (g 'dememtoreg (g 'impl st7))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st7))) + (dememwrite_v (g 'dememwrite (g 'impl st7))) + (emmemwrite_v (g 'emmemwrite (g 'impl st7))) + (emarg2_v (g 'emarg2 (g 'impl st7))) + (ffwrt_v (g 'ffwrt (g 'impl st7))) + (ffinst_v (g 'ffinst (g 'impl st7))) + (mmval_v (g 'mmval (g 'impl st7))) + (mmdest_v (g 'mmdest (g 'impl st7))) + (mmwrt_v (g 'mmwrt (g 'impl st7))) + (mmregwrite_v (g 'mmregwrite (g 'impl st7))) + (mwval_v (g 'mwval (g 'impl st7))) + (mwdest_v (g 'mwdest (g 'impl st7))) + (mwwrt_v (g 'mwwrt (g 'impl st7))) + (mwregwrite_v (g 'mwregwrite (g 'impl st7))) + (deisbranch_v (g 'deisbranch (g 'impl st7))) + (emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st7))) + (emtargetpc_v (g 'emtargetpc (g 'impl st7))) + (ffppc_v (g 'ffppc (g 'impl st7))) + (fdppc_v (g 'fdppc (g 'impl st7))) + (deppc_v (g 'deppc (g 'impl st7))) + (emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st7))) + (mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st7))) + (mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st7))) + (deisreturnfromexception_v + (g 'deisreturnfromexception (g 'impl st7))) + (mmisreturnfromexception_v + (g 'mmisreturnfromexception (g 'impl st7))) + (mwisreturnfromexception_v + (g 'mwisreturnfromexception (g 'impl st7))) + (emisreturnfromexception_v + (g 'emisreturnfromexception (g 'impl st7))) + (mmisreturnfromexception_v + (g 'mmisreturnfromexception (g 'impl st7))) + (mwisreturnfromexception_v + (g 'mwisreturnfromexception (g 'impl st7))) + (pepc_v (g 'pepc (g 'impl st7))) + (pisexception_v + (g 'pisexception (g 'impl st7))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st7)) + (g 'mwppc (g 'impl st7)) + (g 'mmwrt (g 'impl st7)) + (g 'mmppc (g 'impl st7)) + (g 'emwrt (g 'impl st7)) + (g 'emppc (g 'impl st7)) + (g 'dewrt (g 'impl st7)) + (g 'deppc (g 'impl st7)) + (g 'fdwrt (g 'impl st7)) + (g 'fdppc (g 'impl st7)) + (g 'ffwrt (g 'impl st7)) + (g 'ffppc (g 'impl st7)) + (g 'ppc (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 intrp0 t + i_pc0 committedbpstate committedintrp + pc0 alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_2 (g 'impl st7)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) pimem_v + (g 'pimem (g 'impl st8)) pdmem_v + (g 'pdmem (g 'impl st8)) pepc_v + (g 'pepc (g 'impl st8)) pisexception_v + (g 'pisexception (g 'impl st8)) ffwrt_v + (g 'ffwrt (g 'impl st8)) ffppc_v + (g 'ffppc (g 'impl st8)) ffinst_v + (g 'ffinst (g 'impl st8)) fdwrt_v + (g 'fdwrt (g 'impl st8)) fdppc_v + (g 'fdppc (g 'impl st8)) fdinst_v + (g 'fdinst (g 'impl st8)) dewrt_v + (g 'dewrt (g 'impl st8)) deppc_v + (g 'deppc (g 'impl st8)) deop_v + (g 'deop (g 'impl st8)) dearg1_v + (g 'dearg1 (g 'impl st8)) dearg2_v + (g 'dearg2 (g 'impl st8)) dedest_v + (g 'dedest (g 'impl st8)) desrc1_v + (g 'desrc1 (g 'impl st8)) desrc2_v + (g 'desrc2 (g 'impl st8)) deimm_v + (g 'deimm (g 'impl st8)) deuseimm_v + (g 'deuseimm (g 'impl st8)) + deisbranch_v + (g 'deisbranch (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emtargetpc_v + (g 'emtargetpc (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emarg2_v + (g 'emarg2 (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st8)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mmwrt_v + (g 'mmwrt (g 'impl st8)) mmval_v + (g 'mmval (g 'impl st8)) mmdest_v + (g 'mmdest (g 'impl st8)) mmregwrite_v + (g 'mmregwrite (g 'impl st8)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st8)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st8)) + mwwrt_v (g 'mwwrt (g 'impl st8)) + mwval_v (g 'mwval (g 'impl st8)) + mwdest_v (g 'mwdest (g 'impl st8)) + mwregwrite_v + (g 'mwregwrite (g 'impl st8)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st8)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_2 (g 'impl st8)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) pimem_v + (g 'pimem (g 'impl st9)) pdmem_v + (g 'pdmem (g 'impl st9)) pepc_v + (g 'pepc (g 'impl st9)) pisexception_v + (g 'pisexception (g 'impl st9)) ffwrt_v + (g 'ffwrt (g 'impl st9)) ffppc_v + (g 'ffppc (g 'impl st9)) ffinst_v + (g 'ffinst (g 'impl st9)) fdwrt_v + (g 'fdwrt (g 'impl st9)) fdppc_v + (g 'fdppc (g 'impl st9)) fdinst_v + (g 'fdinst (g 'impl st9)) dewrt_v + (g 'dewrt (g 'impl st9)) deppc_v + (g 'deppc (g 'impl st9)) deop_v + (g 'deop (g 'impl st9)) dearg1_v + (g 'dearg1 (g 'impl st9)) dearg2_v + (g 'dearg2 (g 'impl st9)) dedest_v + (g 'dedest (g 'impl st9)) desrc1_v + (g 'desrc1 (g 'impl st9)) desrc2_v + (g 'desrc2 (g 'impl st9)) deimm_v + (g 'deimm (g 'impl st9)) deuseimm_v + (g 'deuseimm (g 'impl st9)) + deisbranch_v + (g 'deisbranch (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emtargetpc_v + (g 'emtargetpc (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emarg2_v + (g 'emarg2 (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st9)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mmwrt_v + (g 'mmwrt (g 'impl st9)) mmval_v + (g 'mmval (g 'impl st9)) mmdest_v + (g 'mmdest (g 'impl st9)) mmregwrite_v + (g 'mmregwrite (g 'impl st9)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st9)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st9)) + mwwrt_v (g 'mwwrt (g 'impl st9)) + mwval_v (g 'mwval (g 'impl st9)) + mwdest_v (g 'mwdest (g 'impl st9)) + mwregwrite_v + (g 'mwregwrite (g 'impl st9)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st9)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_2 (g 'impl st9)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + pepc_v (g 'pepc (g 'impl st10)) + pisexception_v + (g 'pisexception (g 'impl st10)) + ffwrt_v (g 'ffwrt (g 'impl st10)) + ffppc_v (g 'ffppc (g 'impl st10)) + ffinst_v (g 'ffinst (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdppc_v (g 'fdppc (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deppc_v (g 'deppc (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v (g 'deuseimm (g 'impl st10)) + deisbranch_v + (g 'deisbranch (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emtargetpc_v + (g 'emtargetpc (g 'impl st10)) emdest_v + (g 'emdest (g 'impl st10)) emarg2_v + (g 'emarg2 (g 'impl st10)) emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v (g 'emresult (g 'impl st10)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st10)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mmwrt_v + (g 'mmwrt (g 'impl st10)) mmval_v + (g 'mmval (g 'impl st10)) mmdest_v + (g 'mmdest (g 'impl st10)) mmregwrite_v + (g 'mmregwrite (g 'impl st10)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st10)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st10)) + mwwrt_v (g 'mwwrt (g 'impl st10)) + mwval_v (g 'mwval (g 'impl st10)) + mwdest_v (g 'mwdest (g 'impl st10)) + mwregwrite_v + (g 'mwregwrite (g 'impl st10)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st10)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st10)))) + (st11 (simulate_a st10 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_2 (g 'impl st10)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st11)) + prf_v a1 (g 'prf (g 'impl st11)) + pimem_v (g 'pimem (g 'impl st11)) + pdmem_v (g 'pdmem (g 'impl st11)) + pepc_v (g 'pepc (g 'impl st11)) + pisexception_v + (g 'pisexception (g 'impl st11)) + ffwrt_v (g 'ffwrt (g 'impl st11)) + ffppc_v (g 'ffppc (g 'impl st11)) + ffinst_v (g 'ffinst (g 'impl st11)) + fdwrt_v (g 'fdwrt (g 'impl st11)) + fdppc_v (g 'fdppc (g 'impl st11)) + fdinst_v (g 'fdinst (g 'impl st11)) + dewrt_v (g 'dewrt (g 'impl st11)) + deppc_v (g 'deppc (g 'impl st11)) + deop_v (g 'deop (g 'impl st11)) + dearg1_v (g 'dearg1 (g 'impl st11)) + dearg2_v (g 'dearg2 (g 'impl st11)) + dedest_v (g 'dedest (g 'impl st11)) + desrc1_v (g 'desrc1 (g 'impl st11)) + desrc2_v (g 'desrc2 (g 'impl st11)) + deimm_v (g 'deimm (g 'impl st11)) + deuseimm_v (g 'deuseimm (g 'impl st11)) + deisbranch_v + (g 'deisbranch (g 'impl st11)) + dememtoreg_v + (g 'dememtoreg (g 'impl st11)) + dememwrite_v + (g 'dememwrite (g 'impl st11)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st11)) + deregwrite_v + (g 'deregwrite (g 'impl st11)) emwrt_v + (g 'emwrt (g 'impl st11)) emtargetpc_v + (g 'emtargetpc (g 'impl st11)) emdest_v + (g 'emdest (g 'impl st11)) emarg2_v + (g 'emarg2 (g 'impl st11)) emregwrite_v + (g 'emregwrite (g 'impl st11)) + emresult_v (g 'emresult (g 'impl st11)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st11)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st11)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st11)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st11)) + emmemwrite_v + (g 'emmemwrite (g 'impl st11)) mmwrt_v + (g 'mmwrt (g 'impl st11)) mmval_v + (g 'mmval (g 'impl st11)) mmdest_v + (g 'mmdest (g 'impl st11)) mmregwrite_v + (g 'mmregwrite (g 'impl st11)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st11)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st11)) + mwwrt_v (g 'mwwrt (g 'impl st11)) + mwval_v (g 'mwval (g 'impl st11)) + mwdest_v (g 'mwdest (g 'impl st11)) + mwregwrite_v + (g 'mwregwrite (g 'impl st11)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st11)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st11)))) + (st12 (simulate_a st11 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_2 (g 'impl st11)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st12)) + prf_v a1 (g 'prf (g 'impl st12)) + pimem_v (g 'pimem (g 'impl st12)) + pdmem_v (g 'pdmem (g 'impl st12)) + pepc_v (g 'pepc (g 'impl st12)) + pisexception_v + (g 'pisexception (g 'impl st12)) + ffwrt_v (g 'ffwrt (g 'impl st12)) + ffppc_v (g 'ffppc (g 'impl st12)) + ffinst_v (g 'ffinst (g 'impl st12)) + fdwrt_v (g 'fdwrt (g 'impl st12)) + fdppc_v (g 'fdppc (g 'impl st12)) + fdinst_v (g 'fdinst (g 'impl st12)) + dewrt_v (g 'dewrt (g 'impl st12)) + deppc_v (g 'deppc (g 'impl st12)) + deop_v (g 'deop (g 'impl st12)) + dearg1_v (g 'dearg1 (g 'impl st12)) + dearg2_v (g 'dearg2 (g 'impl st12)) + dedest_v (g 'dedest (g 'impl st12)) + desrc1_v (g 'desrc1 (g 'impl st12)) + desrc2_v (g 'desrc2 (g 'impl st12)) + deimm_v (g 'deimm (g 'impl st12)) + deuseimm_v (g 'deuseimm (g 'impl st12)) + deisbranch_v + (g 'deisbranch (g 'impl st12)) + dememtoreg_v + (g 'dememtoreg (g 'impl st12)) + dememwrite_v + (g 'dememwrite (g 'impl st12)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st12)) + deregwrite_v + (g 'deregwrite (g 'impl st12)) emwrt_v + (g 'emwrt (g 'impl st12)) emtargetpc_v + (g 'emtargetpc (g 'impl st12)) emdest_v + (g 'emdest (g 'impl st12)) emarg2_v + (g 'emarg2 (g 'impl st12)) emregwrite_v + (g 'emregwrite (g 'impl st12)) + emresult_v (g 'emresult (g 'impl st12)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st12)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st12)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st12)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st12)) + emmemwrite_v + (g 'emmemwrite (g 'impl st12)) mmwrt_v + (g 'mmwrt (g 'impl st12)) mmval_v + (g 'mmval (g 'impl st12)) mmdest_v + (g 'mmdest (g 'impl st12)) mmregwrite_v + (g 'mmregwrite (g 'impl st12)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st12)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st12)) + mwwrt_v (g 'mwwrt (g 'impl st12)) + mwval_v (g 'mwval (g 'impl st12)) + mwdest_v (g 'mwdest (g 'impl st12)) + mwregwrite_v + (g 'mwregwrite (g 'impl st12)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st12)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st12)))) + (st13 (simulate_a st12 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_2 (g 'impl st12)))) + (equiv_ma_5 + (equiv_ma ppc_v (g 'ppc (g 'impl st13)) + prf_v a1 (g 'prf (g 'impl st13)) + pimem_v (g 'pimem (g 'impl st13)) + pdmem_v (g 'pdmem (g 'impl st13)) + pepc_v (g 'pepc (g 'impl st13)) + pisexception_v + (g 'pisexception (g 'impl st13)) + ffwrt_v (g 'ffwrt (g 'impl st13)) + ffppc_v (g 'ffppc (g 'impl st13)) + ffinst_v (g 'ffinst (g 'impl st13)) + fdwrt_v (g 'fdwrt (g 'impl st13)) + fdppc_v (g 'fdppc (g 'impl st13)) + fdinst_v (g 'fdinst (g 'impl st13)) + dewrt_v (g 'dewrt (g 'impl st13)) + deppc_v (g 'deppc (g 'impl st13)) + deop_v (g 'deop (g 'impl st13)) + dearg1_v (g 'dearg1 (g 'impl st13)) + dearg2_v (g 'dearg2 (g 'impl st13)) + dedest_v (g 'dedest (g 'impl st13)) + desrc1_v (g 'desrc1 (g 'impl st13)) + desrc2_v (g 'desrc2 (g 'impl st13)) + deimm_v (g 'deimm (g 'impl st13)) + deuseimm_v (g 'deuseimm (g 'impl st13)) + deisbranch_v + (g 'deisbranch (g 'impl st13)) + dememtoreg_v + (g 'dememtoreg (g 'impl st13)) + dememwrite_v + (g 'dememwrite (g 'impl st13)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st13)) + deregwrite_v + (g 'deregwrite (g 'impl st13)) emwrt_v + (g 'emwrt (g 'impl st13)) emtargetpc_v + (g 'emtargetpc (g 'impl st13)) emdest_v + (g 'emdest (g 'impl st13)) emarg2_v + (g 'emarg2 (g 'impl st13)) emregwrite_v + (g 'emregwrite (g 'impl st13)) + emresult_v (g 'emresult (g 'impl st13)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st13)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st13)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st13)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st13)) + emmemwrite_v + (g 'emmemwrite (g 'impl st13)) mmwrt_v + (g 'mmwrt (g 'impl st13)) mmval_v + (g 'mmval (g 'impl st13)) mmdest_v + (g 'mmdest (g 'impl st13)) mmregwrite_v + (g 'mmregwrite (g 'impl st13)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st13)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st13)) + mwwrt_v (g 'mwwrt (g 'impl st13)) + mwval_v (g 'mwval (g 'impl st13)) + mwdest_v (g 'mwdest (g 'impl st13)) + mwregwrite_v + (g 'mwregwrite (g 'impl st13)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st13)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st13)))) + (st14 (simulate_a st13 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_2 (g 'impl st13)))) + (equiv_ma_6 + (equiv_ma ppc_v (g 'ppc (g 'impl st14)) + prf_v a1 (g 'prf (g 'impl st14)) + pimem_v (g 'pimem (g 'impl st14)) + pdmem_v (g 'pdmem (g 'impl st14)) + pepc_v (g 'pepc (g 'impl st14)) + pisexception_v + (g 'pisexception (g 'impl st14)) + ffwrt_v (g 'ffwrt (g 'impl st14)) + ffppc_v (g 'ffppc (g 'impl st14)) + ffinst_v (g 'ffinst (g 'impl st14)) + fdwrt_v (g 'fdwrt (g 'impl st14)) + fdppc_v (g 'fdppc (g 'impl st14)) + fdinst_v (g 'fdinst (g 'impl st14)) + dewrt_v (g 'dewrt (g 'impl st14)) + deppc_v (g 'deppc (g 'impl st14)) + deop_v (g 'deop (g 'impl st14)) + dearg1_v (g 'dearg1 (g 'impl st14)) + dearg2_v (g 'dearg2 (g 'impl st14)) + dedest_v (g 'dedest (g 'impl st14)) + desrc1_v (g 'desrc1 (g 'impl st14)) + desrc2_v (g 'desrc2 (g 'impl st14)) + deimm_v (g 'deimm (g 'impl st14)) + deuseimm_v (g 'deuseimm (g 'impl st14)) + deisbranch_v + (g 'deisbranch (g 'impl st14)) + dememtoreg_v + (g 'dememtoreg (g 'impl st14)) + dememwrite_v + (g 'dememwrite (g 'impl st14)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st14)) + deregwrite_v + (g 'deregwrite (g 'impl st14)) emwrt_v + (g 'emwrt (g 'impl st14)) emtargetpc_v + (g 'emtargetpc (g 'impl st14)) emdest_v + (g 'emdest (g 'impl st14)) emarg2_v + (g 'emarg2 (g 'impl st14)) emregwrite_v + (g 'emregwrite (g 'impl st14)) + emresult_v (g 'emresult (g 'impl st14)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st14)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st14)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st14)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st14)) + emmemwrite_v + (g 'emmemwrite (g 'impl st14)) mmwrt_v + (g 'mmwrt (g 'impl st14)) mmval_v + (g 'mmval (g 'impl st14)) mmdest_v + (g 'mmdest (g 'impl st14)) mmregwrite_v + (g 'mmregwrite (g 'impl st14)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st14)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st14)) + mwwrt_v (g 'mwwrt (g 'impl st14)) + mwval_v (g 'mwval (g 'impl st14)) + mwdest_v (g 'mwdest (g 'impl st14)) + mwregwrite_v + (g 'mwregwrite (g 'impl st14)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st14)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st14)))) + (good_ma_v + (or (or equiv_ma_2 equiv_ma_5) equiv_ma_6)) + (st15 (simulate_a st14 t nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_2 (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_2 (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_2 (g 'impl st16)))) + (st18 (simulate_a st17 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_2 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_2 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_2 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_2 (g 'impl st20)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'mmwrt (g 'impl st21)) + (g 'mmppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ffwrt (g 'impl st21)) + (g 'ffppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0 (g 'prf (g 'impl st21))) + (i_dmem0 (g 'pdmemhist_2 (g 'impl st21))) + (i_epc0 (g 'pepchist_2 (g 'impl st21))) + (i_isexception0 + (g 'pisexceptionhist_2 (g 'impl st21))) + (rank_w (rank (g 'mwwrt (g 'impl st21)) zero + (g 'mmwrt (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'ffwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st21)) + (g 'pdmemhist_2 (g 'impl st21)))) + (s_pc0 (g 'spc (g 'spec st22))) + (s_rf0 (g 'srf (g 'spec st22))) + (s_dmem0 (g 'sdmem (g 'spec st22))) + (s_epc0 (g 'sepc (g 'spec st22))) + (s_isexception0 + (g 'sisexception (g 'spec st22))) + (i_pc (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'mmwrt (g 'impl st22)) + (g 'mmppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ffwrt (g 'impl st22)) + (g 'ffppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf (g 'prf (g 'impl st22))) + (i_dmem (g 'pdmemhist_2 (g 'impl st22))) + (i_epc (g 'pepchist_2 (g 'impl st22))) + (i_isexception + (g 'pisexceptionhist_2 (g 'impl st22))) + (rank_v (rank (g 'mwwrt (g 'impl st22)) zero + (g 'mmwrt (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'ffwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_2 (g 'impl st22)))) + (s_pc1 (g 'spc (g 'spec st23))) + (s_rf1 (g 'srf (g 'spec st23))) + (s_dmem1 (g 'sdmem (g 'spec st23))) + (s_epc1 (g 'sepc (g 'spec st23))) + (s_isexception1 + (g 'sisexception (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_2 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_2 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_2 (g 'impl st25)))) + (st27 (simulate_a st26 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st26)) + (g 'pdmemhist_2 (g 'impl st26)))) + (st28 (simulate_a st27 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_2 (g 'impl st27)))) + (st29 (simulate_a st28 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_2 (g 'impl st28)))) + (i_pc0_2 (committedpc (g 'mwwrt (g 'impl st29)) + (g 'mwppc (g 'impl st29)) + (g 'mmwrt (g 'impl st29)) + (g 'mmppc (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'emppc (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'deppc (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'fdppc (g 'impl st29)) + (g 'ffwrt (g 'impl st29)) + (g 'ffppc (g 'impl st29)) + (g 'ppc (g 'impl st29)))) + (i_rf0_2 (g 'prf (g 'impl st29))) + (i_dmem0_2 (g 'pdmemhist_2 (g 'impl st29))) + (i_epc0_2 (g 'pepchist_2 (g 'impl st29))) + (i_isexception0_2 + (g 'pisexceptionhist_2 (g 'impl st29))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st29)) zero + (g 'mmwrt (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'ffwrt (g 'impl st29)))) + (st30 (simulate_a st29 nil nil t i_pc0_2 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st29)) + (g 'pdmemhist_2 (g 'impl st29)))) + (s_pc0_2 (g 'spc (g 'spec st30))) + (s_rf0_2 (g 'srf (g 'spec st30))) + (s_dmem0_2 (g 'sdmem (g 'spec st30))) + (s_epc0_2 (g 'sepc (g 'spec st30))) + (s_isexception0_2 + (g 'sisexception (g 'spec st30))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'mmwrt (g 'impl st30)) + (g 'mmppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ffwrt (g 'impl st30)) + (g 'ffppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf_2 (g 'prf (g 'impl st30))) + (i_dmem_2 (g 'pdmemhist_2 (g 'impl st30))) + (i_epc_2 (g 'pepchist_2 (g 'impl st30))) + (i_isexception_2 + (g 'pisexceptionhist_2 (g 'impl st30))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'mmwrt (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'ffwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil t nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st30)) + (g 'pdmemhist_2 (g 'impl st30)))) + (s_pc1_2 (g 'spc (g 'spec st31))) + (s_rf1_2 (g 'srf (g 'spec st31))) + (s_dmem1_2 (g 'sdmem (g 'spec st31))) + (s_epc1_2 (g 'sepc (g 'spec st31))) + (s_isexception1_2 + (g 'sisexception (g 'spec st31))) + (st32 (simulate_a st31 t nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_2 (g 'impl st31)))) + (st33 (simulate_a st32 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_2 (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st33)) + (g 'pdmemhist_2 (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_2 (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st35)) + (g 'pdmemhist_2 (g 'impl st35)))) + (i_pc0_3 (committedpc (g 'mwwrt (g 'impl st36)) + (g 'mwppc (g 'impl st36)) + (g 'mmwrt (g 'impl st36)) + (g 'mmppc (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'emppc (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'deppc (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'fdppc (g 'impl st36)) + (g 'ffwrt (g 'impl st36)) + (g 'ffppc (g 'impl st36)) + (g 'ppc (g 'impl st36)))) + (i_rf0_3 (g 'prf (g 'impl st36))) + (i_dmem0_3 (g 'pdmemhist_2 (g 'impl st36))) + (i_epc0_3 (g 'pepchist_2 (g 'impl st36))) + (i_isexception0_3 + (g 'pisexceptionhist_2 (g 'impl st36))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st36)) zero + (g 'mmwrt (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'ffwrt (g 'impl st36)))) + (st37 (simulate_a st36 nil nil t i_pc0_3 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st36)) + (g 'pdmemhist_2 (g 'impl st36)))) + (s_pc0_3 (g 'spc (g 'spec st37))) + (s_rf0_3 (g 'srf (g 'spec st37))) + (s_dmem0_3 (g 'sdmem (g 'spec st37))) + (s_epc0_3 (g 'sepc (g 'spec st37))) + (s_isexception0_3 + (g 'sisexception (g 'spec st37))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st37)) + (g 'mwppc (g 'impl st37)) + (g 'mmwrt (g 'impl st37)) + (g 'mmppc (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'emppc (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'deppc (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'fdppc (g 'impl st37)) + (g 'ffwrt (g 'impl st37)) + (g 'ffppc (g 'impl st37)) + (g 'ppc (g 'impl st37)))) + (i_rf_3 (g 'prf (g 'impl st37))) + (i_dmem_3 (g 'pdmemhist_2 (g 'impl st37))) + (i_epc_3 (g 'pepchist_2 (g 'impl st37))) + (i_isexception_3 + (g 'pisexceptionhist_2 (g 'impl st37))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st37)) zero + (g 'mmwrt (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'ffwrt (g 'impl st37)))) + (st38 (simulate_a st37 nil t nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st37)) + (g 'pdmemhist_2 (g 'impl st37)))) + (s_pc1_3 (g 'spc (g 'spec st38))) + (s_rf1_3 (g 'srf (g 'spec st38))) + (s_dmem1_3 (g 'sdmem (g 'spec st38))) + (s_epc1_3 (g 'sepc (g 'spec st38))) + (s_isexception1_3 + (g 'sisexception (g 'spec st38))) + (st39 (simulate_a st38 t nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st38)) + (g 'pdmemhist_2 (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st39)) + (g 'pdmemhist_2 (g 'impl st39)))) + (st41 (simulate_a st40 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st40)) + (g 'pdmemhist_2 (g 'impl st40)))) + (st42 (simulate_a st41 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st41)) + (g 'pdmemhist_2 (g 'impl st41)))) + (i_pc0_4 (committedpc (g 'mwwrt (g 'impl st42)) + (g 'mwppc (g 'impl st42)) + (g 'mmwrt (g 'impl st42)) + (g 'mmppc (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'emppc (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'deppc (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'fdppc (g 'impl st42)) + (g 'ffwrt (g 'impl st42)) + (g 'ffppc (g 'impl st42)) + (g 'ppc (g 'impl st42)))) + (i_rf0_4 (g 'prf (g 'impl st42))) + (i_dmem0_4 (g 'pdmemhist_2 (g 'impl st42))) + (i_epc0_4 (g 'pepchist_2 (g 'impl st42))) + (i_isexception0_4 + (g 'pisexceptionhist_2 (g 'impl st42))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st42)) zero + (g 'mmwrt (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'ffwrt (g 'impl st42)))) + (st43 (simulate_a st42 nil nil t i_pc0_4 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st42)) + (g 'pdmemhist_2 (g 'impl st42)))) + (s_pc0_4 (g 'spc (g 'spec st43))) + (s_rf0_4 (g 'srf (g 'spec st43))) + (s_dmem0_4 (g 'sdmem (g 'spec st43))) + (s_epc0_4 (g 'sepc (g 'spec st43))) + (s_isexception0_4 + (g 'sisexception (g 'spec st43))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st43)) + (g 'mwppc (g 'impl st43)) + (g 'mmwrt (g 'impl st43)) + (g 'mmppc (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'emppc (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'deppc (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'fdppc (g 'impl st43)) + (g 'ffwrt (g 'impl st43)) + (g 'ffppc (g 'impl st43)) + (g 'ppc (g 'impl st43)))) + (i_rf_4 (g 'prf (g 'impl st43))) + (i_dmem_4 (g 'pdmemhist_2 (g 'impl st43))) + (i_epc_4 (g 'pepchist_2 (g 'impl st43))) + (i_isexception_4 + (g 'pisexceptionhist_2 (g 'impl st43))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st43)) zero + (g 'mmwrt (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'ffwrt (g 'impl st43)))) + (st44 (simulate_a st43 nil t nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st43)) + (g 'pdmemhist_2 (g 'impl st43)))) + (s_pc1_4 (g 'spc (g 'spec st44))) + (s_rf1_4 (g 'srf (g 'spec st44))) + (s_dmem1_4 (g 'sdmem (g 'spec st44))) + (s_epc1_4 (g 'sepc (g 'spec st44))) + (s_isexception1_4 + (g 'sisexception (g 'spec st44))) + (st45 (simulate_a st44 t nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st44)) + (g 'pdmemhist_2 (g 'impl st44)))) + (st46 (simulate_a st45 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st45)) + (g 'pdmemhist_2 (g 'impl st45)))) + (st47 (simulate_a st46 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st46)) + (g 'pdmemhist_2 (g 'impl st46)))) + (i_pc0_5 (committedpc (g 'mwwrt (g 'impl st47)) + (g 'mwppc (g 'impl st47)) + (g 'mmwrt (g 'impl st47)) + (g 'mmppc (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'emppc (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'deppc (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'fdppc (g 'impl st47)) + (g 'ffwrt (g 'impl st47)) + (g 'ffppc (g 'impl st47)) + (g 'ppc (g 'impl st47)))) + (i_rf0_5 (g 'prf (g 'impl st47))) + (i_dmem0_5 (g 'pdmemhist_2 (g 'impl st47))) + (i_epc0_5 (g 'pepchist_2 (g 'impl st47))) + (i_isexception0_5 + (g 'pisexceptionhist_2 (g 'impl st47))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st47)) zero + (g 'mmwrt (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'ffwrt (g 'impl st47)))) + (st48 (simulate_a st47 nil nil t i_pc0_5 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st47)) + (g 'pdmemhist_2 (g 'impl st47)))) + (s_pc0_5 (g 'spc (g 'spec st48))) + (s_rf0_5 (g 'srf (g 'spec st48))) + (s_dmem0_5 (g 'sdmem (g 'spec st48))) + (s_epc0_5 (g 'sepc (g 'spec st48))) + (s_isexception0_5 + (g 'sisexception (g 'spec st48))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st48)) + (g 'mwppc (g 'impl st48)) + (g 'mmwrt (g 'impl st48)) + (g 'mmppc (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'emppc (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'deppc (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'fdppc (g 'impl st48)) + (g 'ffwrt (g 'impl st48)) + (g 'ffppc (g 'impl st48)) + (g 'ppc (g 'impl st48)))) + (i_rf_5 (g 'prf (g 'impl st48))) + (i_dmem_5 (g 'pdmemhist_2 (g 'impl st48))) + (i_epc_5 (g 'pepchist_2 (g 'impl st48))) + (i_isexception_5 + (g 'pisexceptionhist_2 (g 'impl st48))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st48)) zero + (g 'mmwrt (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'ffwrt (g 'impl st48)))) + (st49 (simulate_a st48 nil t nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st48)) + (g 'pdmemhist_2 (g 'impl st48)))) + (s_pc1_5 (g 'spc (g 'spec st49))) + (s_rf1_5 (g 'srf (g 'spec st49))) + (s_dmem1_5 (g 'sdmem (g 'spec st49))) + (s_epc1_5 (g 'sepc (g 'spec st49))) + (s_isexception1_5 + (g 'sisexception (g 'spec st49))) + (st50 (simulate_a st49 t nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st49)) + (g 'pdmemhist_2 (g 'impl st49)))) + (st51 (simulate_a st50 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st50)) + (g 'pdmemhist_2 (g 'impl st50)))) + (i_pc0_6 (committedpc (g 'mwwrt (g 'impl st51)) + (g 'mwppc (g 'impl st51)) + (g 'mmwrt (g 'impl st51)) + (g 'mmppc (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'emppc (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'deppc (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'fdppc (g 'impl st51)) + (g 'ffwrt (g 'impl st51)) + (g 'ffppc (g 'impl st51)) + (g 'ppc (g 'impl st51)))) + (i_rf0_6 (g 'prf (g 'impl st51))) + (i_dmem0_6 (g 'pdmemhist_2 (g 'impl st51))) + (i_epc0_6 (g 'pepchist_2 (g 'impl st51))) + (i_isexception0_6 + (g 'pisexceptionhist_2 (g 'impl st51))) + (rank_w_6 + (rank (g 'mwwrt (g 'impl st51)) zero + (g 'mmwrt (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'ffwrt (g 'impl st51)))) + (st52 (simulate_a st51 nil nil t i_pc0_6 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st51)) + (g 'pdmemhist_2 (g 'impl st51)))) + (s_pc0_6 (g 'spc (g 'spec st52))) + (s_rf0_6 (g 'srf (g 'spec st52))) + (s_dmem0_6 (g 'sdmem (g 'spec st52))) + (s_epc0_6 (g 'sepc (g 'spec st52))) + (s_isexception0_6 + (g 'sisexception (g 'spec st52))) + (i_pc_6 (committedpc (g 'mwwrt (g 'impl st52)) + (g 'mwppc (g 'impl st52)) + (g 'mmwrt (g 'impl st52)) + (g 'mmppc (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'emppc (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'deppc (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'fdppc (g 'impl st52)) + (g 'ffwrt (g 'impl st52)) + (g 'ffppc (g 'impl st52)) + (g 'ppc (g 'impl st52)))) + (i_rf_6 (g 'prf (g 'impl st52))) + (i_dmem_6 (g 'pdmemhist_2 (g 'impl st52))) + (i_epc_6 (g 'pepchist_2 (g 'impl st52))) + (i_isexception_6 + (g 'pisexceptionhist_2 (g 'impl st52))) + (rank_v_6 + (rank (g 'mwwrt (g 'impl st52)) zero + (g 'mmwrt (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'ffwrt (g 'impl st52)))) + (st53 (simulate_a st52 nil t nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st52)) + (g 'pdmemhist_2 (g 'impl st52)))) + (s_pc1_6 (g 'spc (g 'spec st53))) + (s_rf1_6 (g 'srf (g 'spec st53))) + (s_dmem1_6 (g 'sdmem (g 'spec st53))) + (s_epc1_6 (g 'sepc (g 'spec st53))) + (s_isexception1_6 + (g 'sisexception (g 'spec st53))) + (st54 (simulate_a st53 t nil nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st53)) + (g 'pdmemhist_2 (g 'impl st53)))) + (i_pc0_7 (committedpc (g 'mwwrt (g 'impl st54)) + (g 'mwppc (g 'impl st54)) + (g 'mmwrt (g 'impl st54)) + (g 'mmppc (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'emppc (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'deppc (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'fdppc (g 'impl st54)) + (g 'ffwrt (g 'impl st54)) + (g 'ffppc (g 'impl st54)) + (g 'ppc (g 'impl st54)))) + (i_rf0_7 (g 'prf (g 'impl st54))) + (i_dmem0_7 (g 'pdmemhist_2 (g 'impl st54))) + (i_epc0_7 (g 'pepchist_2 (g 'impl st54))) + (i_isexception0_7 + (g 'pisexceptionhist_2 (g 'impl st54))) + (rank_w_7 + (rank (g 'mwwrt (g 'impl st54)) zero + (g 'mmwrt (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'ffwrt (g 'impl st54)))) + (st55 (simulate_a st54 nil nil t i_pc0_7 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st54)) + (g 'pdmemhist_2 (g 'impl st54)))) + (s_pc0_7 (g 'spc (g 'spec st55))) + (s_rf0_7 (g 'srf (g 'spec st55))) + (s_dmem0_7 (g 'sdmem (g 'spec st55))) + (s_epc0_7 (g 'sepc (g 'spec st55))) + (s_isexception0_7 + (g 'sisexception (g 'spec st55))) + (i_pc_7 (committedpc (g 'mwwrt (g 'impl st55)) + (g 'mwppc (g 'impl st55)) + (g 'mmwrt (g 'impl st55)) + (g 'mmppc (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'emppc (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'deppc (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'fdppc (g 'impl st55)) + (g 'ffwrt (g 'impl st55)) + (g 'ffppc (g 'impl st55)) + (g 'ppc (g 'impl st55)))) + (i_rf_7 (g 'prf (g 'impl st55))) + (i_dmem_7 (g 'pdmemhist_2 (g 'impl st55))) + (i_epc_7 (g 'pepchist_2 (g 'impl st55))) + (i_isexception_7 + (g 'pisexceptionhist_2 (g 'impl st55))) + (rank_v_7 + (rank (g 'mwwrt (g 'impl st55)) zero + (g 'mmwrt (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'ffwrt (g 'impl st55)))) + (st56 (simulate_a st55 nil t nil pc0 intrp0 nil + pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st55)) + (g 'pdmemhist_2 (g 'impl st55)))) + (s_pc1_7 (g 'spc (g 'spec st56))) + (s_rf1_7 (g 'srf (g 'spec st56))) + (s_dmem1_7 (g 'sdmem (g 'spec st56))) + (s_epc1_7 (g 'sepc (g 'spec st56))) + (s_isexception1_7 + (g 'sisexception (g 'spec st56)))) + (and (and (and (and (and + (and + (and good_ma_v + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0 i_pc0) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0)) + (equal s_epc0 i_epc0)) + (equalb s_isexception0 + i_isexception0))) + (and + (and + (and + (and (equal s_pc1 i_pc) + (equal + (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem)) + (equal s_epc1 i_epc)) + (equalb s_isexception1 + i_isexception))) + (and + (and + (and + (and (equal s_pc0 i_pc) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (equal s_epc0 i_epc)) + (equalb s_isexception0 + i_isexception)))) + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0_2 i_pc0_2) + (equal + (read-srf_a a1 + s_rf0_2) + (read-prf_a a1 + i_rf0_2))) + (equal s_dmem0_2 + i_dmem0_2)) + (equal s_epc0_2 i_epc0_2)) + (equalb s_isexception0_2 + i_isexception0_2))) + (and + (and + (and + (and + (equal s_pc1_2 i_pc_2) + (equal + (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 + i_dmem_2)) + (equal s_epc1_2 i_epc_2)) + (equalb s_isexception1_2 + i_isexception_2))) + (and + (and + (and + (and + (equal s_pc0_2 i_pc_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)) + (equal s_epc0_2 i_epc_2)) + (equalb s_isexception0_2 + i_isexception_2)))) + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0_3 i_pc0_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 + i_dmem0_3)) + (equal s_epc0_3 i_epc0_3)) + (equalb s_isexception0_3 + i_isexception0_3))) + (and + (and + (and + (and + (equal s_pc1_3 i_pc_3) + (equal + (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3)) + (equal s_epc1_3 i_epc_3)) + (equalb s_isexception1_3 + i_isexception_3))) + (and + (and + (and + (and (equal s_pc0_3 i_pc_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)) + (equal s_epc0_3 i_epc_3)) + (equalb s_isexception0_3 + i_isexception_3)))) + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0_4 i_pc0_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 + i_dmem0_4)) + (equal s_epc0_4 i_epc0_4)) + (equalb s_isexception0_4 + i_isexception0_4))) + (and + (and + (and + (and (equal s_pc1_4 i_pc_4) + (equal + (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4)) + (equal s_epc1_4 i_epc_4)) + (equalb s_isexception1_4 + i_isexception_4))) + (and + (and + (and + (and (equal s_pc0_4 i_pc_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)) + (equal s_epc0_4 i_epc_4)) + (equalb s_isexception0_4 + i_isexception_4)))) + (or (or + (not + (and + (and + (and + (and (equal s_pc0_5 i_pc0_5) + (equal + (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5)) + (equal s_epc0_5 i_epc0_5)) + (equalb s_isexception0_5 + i_isexception0_5))) + (and + (and + (and + (and (equal s_pc1_5 i_pc_5) + (equal + (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5)) + (equal s_epc1_5 i_epc_5)) + (equalb s_isexception1_5 + i_isexception_5))) + (and + (and + (and + (and (equal s_pc0_5 i_pc_5) + (equal + (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)) + (equal s_epc0_5 i_epc_5)) + (equalb s_isexception0_5 + i_isexception_5)))) + (or (or (not + (and + (and + (and + (and (equal s_pc0_6 i_pc0_6) + (equal + (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf0_6))) + (equal s_dmem0_6 i_dmem0_6)) + (equal s_epc0_6 i_epc0_6)) + (equalb s_isexception0_6 + i_isexception0_6))) + (and + (and + (and + (and (equal s_pc1_6 i_pc_6) + (equal (read-srf_a a1 s_rf1_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem1_6 i_dmem_6)) + (equal s_epc1_6 i_epc_6)) + (equalb s_isexception1_6 + i_isexception_6))) + (and (and + (and + (and (equal s_pc0_6 i_pc_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem0_6 i_dmem_6)) + (equal s_epc0_6 i_epc_6)) + (equalb s_isexception0_6 + i_isexception_6)))) + (or (or (not (and + (and + (and + (and (equal s_pc0_7 i_pc0_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf0_7))) + (equal s_dmem0_7 i_dmem0_7)) + (equal s_epc0_7 i_epc0_7)) + (equalb s_isexception0_7 + i_isexception0_7))) + (and (and + (and + (and (equal s_pc1_7 i_pc_7) + (equal (read-srf_a a1 s_rf1_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem1_7 i_dmem_7)) + (equal s_epc1_7 i_epc_7)) + (equalb s_isexception1_7 + i_isexception_7))) + (and (and (and + (and (equal s_pc0_7 i_pc_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem0_7 i_dmem_7)) + (equal s_epc0_7 i_epc_7)) + (equalb s_isexception0_7 + i_isexception_7)))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-inp.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-inp.lisp new file mode 100644 index 0000000..5ea31ed --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-inp.lisp @@ -0,0 +1,4862 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((intrp_mod_dmem (x1) t)) + (local (defun intrp_mod_dmem (x1) (declare (ignore x1)) 1)) + (defthm intrp_mod_dmem-type (integerp (intrp_mod_dmem x1)))) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((nextintrp (x1) t)) + (local (defun nextintrp (x1) (declare (ignore x1)) 1)) + (defthm nextintrp-type (integerp (nextintrp x1)))) + +(encapsulate ((isinterrupt (x1) t)) + (local (defun isinterrupt (x1) (declare (ignore x1)) nil)) + (defthm isinterrupt-type (booleanp (isinterrupt x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(encapsulate ((alu_exception (x3 x2 x1) t)) + (local (defun alu_exception (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm alu_exception-type (booleanp (alu_exception x3 x2 x1)))) + +(encapsulate ((getreturnfromexception (x1) t)) + (local (defun getreturnfromexception (x1) + (declare (ignore x1)) + nil)) + (defthm getreturnfromexception-type + (booleanp (getreturnfromexception x1)))) + +(encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + +(encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + +(encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (and (and (and (g 3 (car prf)) + (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (g 7 (car prf))) + (g 8 (car prf))) + (g 9 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (and (and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (g 8 (car srf))) + (g 9 (car srf))) + (g 10 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc pintrp bpstate ffbpstate ffpintrp + ffpredicteddirection ffpredictedtarget ffwrt ffinst + ffppc prf fdpintrp fdbpstate fdppc fdwrt fdinst + fdpredicteddirection fdpredictedtarget debpstate + depintrp deppc desrc1 desrc2 dearg1 dearg2 dedest deop + deimm deuseimm deisreturnfromexception deregwrite + dememwrite dememtoreg deisbranch dewrt + depredicteddirection depredictedtarget embpstate + empintrp emppc emis_alu_exception emis_taken_branch + emtargetpc emarg2 emresult emdest emwrt + emisreturnfromexception emmispredictedtaken + emmispredictednottaken emregwrite emmemwrite emmemtoreg + pdmemhist_2 pdmemhist_1 pdmem pepchist_2 pepchist_1 pepc + pisexceptionhist_2 pisexceptionhist_1 pisexception + mmbpstate mmpintrp mmisreturnfromexception + mmis_alu_exception mmppc mmval mmdest mmwrt mmregwrite + mwbpstate mwpintrp mwisreturnfromexception + mwis_alu_exception mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'pintrp pintrp 'bpstate bpstate + 'ffbpstate ffbpstate 'ffpintrp ffpintrp 'ffpredicteddirection + ffpredicteddirection 'ffpredictedtarget ffpredictedtarget + 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf prf 'fdpintrp + fdpintrp 'fdbpstate fdbpstate 'fdppc fdppc 'fdwrt fdwrt 'fdinst + fdinst 'fdpredicteddirection fdpredicteddirection + 'fdpredictedtarget fdpredictedtarget 'debpstate debpstate + 'depintrp depintrp 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 + 'dearg1 dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm + deimm 'deuseimm deuseimm 'deisreturnfromexception + deisreturnfromexception 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt + dewrt 'depredicteddirection depredicteddirection + 'depredictedtarget depredictedtarget 'embpstate embpstate + 'empintrp empintrp 'emppc emppc 'emis_alu_exception + emis_alu_exception 'emis_taken_branch emis_taken_branch + 'emtargetpc emtargetpc 'emarg2 emarg2 'emresult emresult + 'emdest emdest 'emwrt emwrt 'emisreturnfromexception + emisreturnfromexception 'emmispredictedtaken + emmispredictedtaken 'emmispredictednottaken + emmispredictednottaken 'emregwrite emregwrite 'emmemwrite + emmemwrite 'emmemtoreg emmemtoreg 'pdmemhist_2 pdmemhist_2 + 'pdmemhist_1 pdmemhist_1 'pdmem pdmem 'pepchist_2 pepchist_2 + 'pepchist_1 pepchist_1 'pepc pepc 'pisexceptionhist_2 + pisexceptionhist_2 'pisexceptionhist_1 pisexceptionhist_1 + 'pisexception pisexception 'mmbpstate mmbpstate 'mmpintrp + mmpintrp 'mmisreturnfromexception mmisreturnfromexception + 'mmis_alu_exception mmis_alu_exception 'mmppc mmppc 'mmval + mmval 'mmdest mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite + 'mwbpstate mwbpstate 'mwpintrp mwpintrp + 'mwisreturnfromexception mwisreturnfromexception + 'mwis_alu_exception mwis_alu_exception 'mwppc mwppc 'mwval + mwval 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 commit_impl commit_pc mem1_is_interrupt emppc + mem1_is_returnfromexception pepc mem1_is_alu_exception + alu_exception_handler mem1_mispredicted_taken + mem1_mispredicted_nottaken emtargetpc stall ppc + if_predict_branch_taken predicted_target) + (cond + (initi pc0) + (commit_impl commit_pc) + (mem1_is_interrupt emppc) + (mem1_is_returnfromexception pepc) + (mem1_is_alu_exception alu_exception_handler) + (mem1_mispredicted_taken (add-1 emppc)) + (mem1_mispredicted_nottaken emtargetpc) + (stall ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + +(defun initpintrp_a (intrp0) intrp0) + +(defun nextpintrp_a + (initi intrp0 commit_impl commit_intrp stall pintrp) + (cond + (initi intrp0) + (commit_impl commit_intrp) + (stall pintrp) + (t (nextintrp pintrp)))) + +(defun initbpstate_a (bpstate0) bpstate0) + +(defun nextbpstate_a + (initi bpstate0 commit_impl commit_bpstate stall bpstate) + (cond + (initi bpstate0) + (commit_impl commit_bpstate) + (stall bpstate) + (t (nextbpstate bpstate)))) + +(defun initffbpstate_a (ffbpstate0) ffbpstate0) + +(defun nextffbpstate_a (initi ffbpstate0 stall ffbpstate bpstate) + (cond (initi ffbpstate0) (stall ffbpstate) (t bpstate))) + +(defun initffpintrp_a (ffpintrp0) ffpintrp0) + +(defun nextffpintrp_a (initi ffpintrp0 stall ffpintrp pintrp) + (cond (initi ffpintrp0) (stall ffpintrp) (t pintrp))) + +(defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + +(defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + +(defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + +(defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + +(defun initffwrt_a () nil) + +(defun nextffwrt_a (initi commit_impl squash stall ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall ffwrt) + (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a + (prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest + (s 5 mwregwrite + (s 6 wb_is_alu_exception_bar + (s 7 wb_is_interrupt_bar + (s 8 wb_is_returnfromexception_bar + (s 9 mwval nil)))))))))) + prf)) + +(defun initfdpintrp_a (fdpintrp0) fdpintrp0) + +(defun nextfdpintrp_a (initi fdpintrp0 stall fdpintrp ffpintrp) + (cond (initi fdpintrp0) (stall fdpintrp) (t ffpintrp))) + +(defun initfdbpstate_a (fdbpstate0) fdbpstate0) + +(defun nextfdbpstate_a (initi fdbpstate0 stall fdbpstate ffbpstate) + (cond (initi fdbpstate0) (stall fdbpstate) (t ffbpstate))) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a () nil) + +(defun nextfdwrt_a (initi commit_impl squash stall fdwrt ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall fdwrt) + (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + +(defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + +(defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + +(defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + +(defun initdebpstate_a (debpstate0) debpstate0) + +(defun nextdebpstate_a (initi debpstate0 fdbpstate) + (cond (initi debpstate0) (t fdbpstate))) + +(defun initdepintrp_a (depintrp0) depintrp0) + +(defun nextdepintrp_a (initi depintrp0 fdpintrp) + (cond (initi depintrp0) (t fdpintrp))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initdeisreturnfromexception_a (deisreturnfromexception0) + deisreturnfromexception0) + +(defun nextdeisreturnfromexception_a + (initi deisreturnfromexception0 fdinst) + (cond + (initi deisreturnfromexception0) + (t (getreturnfromexception fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a () nil) + +(defun nextdewrt_a (initi commit_impl squash stall fdwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (t (and (not stall) fdwrt)))) + +(defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + +(defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + +(defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + +(defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + +(defun initembpstate_a (embpstate0) embpstate0) + +(defun nextembpstate_a (initi embpstate0 debpstate) + (cond (initi embpstate0) (t debpstate))) + +(defun initempintrp_a (empintrp0) empintrp0) + +(defun nextempintrp_a (initi empintrp0 depintrp) + (cond (initi empintrp0) (t depintrp))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_alu_exception_a (emis_alu_exception0) + emis_alu_exception0) + +(defun nextemis_alu_exception_a + (initi emis_alu_exception0 ex_is_alu_exception) + (cond (initi emis_alu_exception0) (t ex_is_alu_exception))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a () nil) + +(defun nextemwrt_a (initi commit_impl squash dewrt) + (cond (initi nil) (commit_impl nil) (squash nil) (t dewrt))) + +(defun initemisreturnfromexception_a (emisreturnfromexception0) + emisreturnfromexception0) + +(defun nextemisreturnfromexception_a + (initi emisreturnfromexception0 deisreturnfromexception) + (cond (initi emisreturnfromexception0) (t deisreturnfromexception))) + +(defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + +(defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + +(defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + +(defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_2 mem1_is_interrupt pdmem + emwrt emmemwrite mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar emresult emarg2) + (cond + (initi dmem0) + (commit_impl pdmemhist_2) + (mem1_is_interrupt (intrp_mod_dmem pdmem)) + ((and (and (and emwrt emmemwrite) mem1_is_alu_exception_bar) + mem1_is_returnfromexception_bar) + (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initpepchist_2_a (epc0) epc0) + +(defun nextpepchist_2_a (initi epc0 pepchist_1) + (cond (initi epc0) (t pepchist_1))) + +(defun initpepchist_1_a (epc0) epc0) + +(defun nextpepchist_1_a (initi epc0 pepc) + (cond (initi epc0) (t pepc))) + +(defun initpepc_a (epc0) epc0) + +(defun nextpepc_a + (initi epc0 commit_impl pepchist_2 mem1_is_alu_exception + mem1_is_returnfromexception_bar mem1_is_interrupt_bar + emppc pepc) + (cond + (initi epc0) + (commit_impl pepchist_2) + ((and (and mem1_is_alu_exception mem1_is_returnfromexception_bar) + mem1_is_interrupt_bar) + emppc) + (t pepc))) + +(defun initpisexceptionhist_2_a (isexception0) isexception0) + +(defun nextpisexceptionhist_2_a + (initi isexception0 pisexceptionhist_1) + (cond (initi isexception0) (t pisexceptionhist_1))) + +(defun initpisexceptionhist_1_a (isexception0) isexception0) + +(defun nextpisexceptionhist_1_a (initi isexception0 pisexception) + (cond (initi isexception0) (t pisexception))) + +(defun initpisexception_a (isexception0) isexception0) + +(defun nextpisexception_a + (initi isexception0 commit_impl pisexceptionhist_2 + mem1_is_alu_exception mem1_is_returnfromexception + mem1_is_interrupt_bar mem1_is_returnfromexception_bar + pisexception) + (cond + (initi isexception0) + (commit_impl pisexceptionhist_2) + ((and (or mem1_is_alu_exception mem1_is_returnfromexception) + mem1_is_interrupt_bar) + (and mem1_is_alu_exception mem1_is_returnfromexception_bar)) + (t pisexception))) + +(defun initmmbpstate_a (mmbpstate0) mmbpstate0) + +(defun nextmmbpstate_a (initi mmbpstate0 embpstate) + (cond (initi mmbpstate0) (t embpstate))) + +(defun initmmpintrp_a (mmpintrp0) mmpintrp0) + +(defun nextmmpintrp_a (initi mmpintrp0 empintrp) + (cond (initi mmpintrp0) (t empintrp))) + +(defun initmmisreturnfromexception_a (mmisreturnfromexception0) + mmisreturnfromexception0) + +(defun nextmmisreturnfromexception_a + (initi mmisreturnfromexception0 emisreturnfromexception) + (cond (initi mmisreturnfromexception0) (t emisreturnfromexception))) + +(defun initmmis_alu_exception_a (mmis_alu_exception0) + mmis_alu_exception0) + +(defun nextmmis_alu_exception_a + (initi mmis_alu_exception0 emis_alu_exception) + (cond (initi mmis_alu_exception0) (t emis_alu_exception))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a () nil) + +(defun nextmmwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwbpstate_a (mwbpstate0) mwbpstate0) + +(defun nextmwbpstate_a (initi mwbpstate0 mmbpstate) + (cond (initi mwbpstate0) (t mmbpstate))) + +(defun initmwpintrp_a (mwpintrp0) mwpintrp0) + +(defun nextmwpintrp_a (initi mwpintrp0 mmpintrp) + (cond (initi mwpintrp0) (t mmpintrp))) + +(defun initmwisreturnfromexception_a (mwisreturnfromexception0) + mwisreturnfromexception0) + +(defun nextmwisreturnfromexception_a + (initi mwisreturnfromexception0 mmisreturnfromexception) + (cond (initi mwisreturnfromexception0) (t mmisreturnfromexception))) + +(defun initmwis_alu_exception_a (mwis_alu_exception0) + mwis_alu_exception0) + +(defun nextmwis_alu_exception_a + (initi mwis_alu_exception0 mmis_alu_exception) + (cond (initi mwis_alu_exception0) (t mmis_alu_exception))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a () nil) + +(defun nextmwwrt_a (initi commit_impl mmwrt) + (cond (initi nil) (commit_impl nil) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc alu_exception_handler + intrp0 commit_intrp bpstate0 commit_bpstate ffbpstate0 + ffpintrp0 ffpredicteddirection0 ffpredictedtarget0 + ffinst0 ffppc0 fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmbpstate0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (pintrp (g 'pintrp impl)) (bpstate (g 'bpstate impl)) + (ffbpstate (g 'ffbpstate impl)) (ffpintrp (g 'ffpintrp impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdpintrp (g 'fdpintrp impl)) (fdbpstate (g 'fdbpstate impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (depintrp (g 'depintrp impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (empintrp (g 'empintrp impl)) + (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepchist_2 (g 'pepchist_2 impl)) + (pepchist_1 (g 'pepchist_1 impl)) (pepc (g 'pepc impl)) + (pisexceptionhist_2 (g 'pisexceptionhist_2 impl)) + (pisexceptionhist_1 (g 'pisexceptionhist_1 impl)) + (pisexception (g 'pisexception impl)) + (mmbpstate (g 'mmbpstate impl)) (mmpintrp (g 'mmpintrp impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) (mwpintrp (g 'mwpintrp impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (mem1_is_interrupt_temp (isinterrupt empintrp)) + (mem1_is_interrupt (and mem1_is_interrupt_temp emwrt)) + (mem1_is_interrupt_bar (not mem1_is_interrupt)) + (squash (or (or (or mem1_mispredicted + mem1_is_alu_exception) + mem1_is_interrupt) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception)) + (wb_is_interrupt_temp (isinterrupt mwpintrp)) + (wb_is_interrupt (and wb_is_interrupt_temp mwwrt)) + (wb_is_interrupt_bar (not wb_is_interrupt))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc mem1_is_interrupt + emppc mem1_is_returnfromexception pepc + mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken mem1_mispredicted_nottaken + emtargetpc stall ppc if_predict_branch_taken + predicted_target) + (nextpintrp_a initi intrp0 commit_impl commit_intrp stall + pintrp) + (nextbpstate_a initi bpstate0 commit_impl commit_bpstate + stall bpstate) + (nextffbpstate_a initi ffbpstate0 stall ffbpstate bpstate) + (nextffpintrp_a initi ffpintrp0 stall ffpintrp pintrp) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi commit_impl squash stall ffwrt) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (nextfdpintrp_a initi fdpintrp0 stall fdpintrp ffpintrp) + (nextfdbpstate_a initi fdbpstate0 stall fdbpstate ffbpstate) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi commit_impl squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdebpstate_a initi debpstate0 fdbpstate) + (nextdepintrp_a initi depintrp0 fdpintrp) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite wb_is_alu_exception_bar + wb_is_interrupt_bar wb_is_returnfromexception_bar mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite wb_is_alu_exception_bar + wb_is_interrupt_bar wb_is_returnfromexception_bar mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextdeisreturnfromexception_a initi + deisreturnfromexception0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi commit_impl squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextembpstate_a initi embpstate0 debpstate) + (nextempintrp_a initi empintrp0 depintrp) + (nextemppc_a initi emppc0 deppc) + (nextemis_alu_exception_a initi emis_alu_exception0 + ex_is_alu_exception) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl squash dewrt) + (nextemisreturnfromexception_a initi + emisreturnfromexception0 deisreturnfromexception) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_2 + mem1_is_interrupt pdmem emwrt emmemwrite + mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar emresult emarg2) + (nextpepchist_2_a initi epc0 pepchist_1) + (nextpepchist_1_a initi epc0 pepc) + (nextpepc_a initi epc0 commit_impl pepchist_2 + mem1_is_alu_exception mem1_is_returnfromexception_bar + mem1_is_interrupt_bar emppc pepc) + (nextpisexceptionhist_2_a initi isexception0 + pisexceptionhist_1) + (nextpisexceptionhist_1_a initi isexception0 pisexception) + (nextpisexception_a initi isexception0 commit_impl + pisexceptionhist_2 mem1_is_alu_exception + mem1_is_returnfromexception mem1_is_interrupt_bar + mem1_is_returnfromexception_bar pisexception) + (nextmmbpstate_a initi mmbpstate0 embpstate) + (nextmmpintrp_a initi mmpintrp0 empintrp) + (nextmmisreturnfromexception_a initi + mmisreturnfromexception0 emisreturnfromexception) + (nextmmis_alu_exception_a initi mmis_alu_exception0 + emis_alu_exception) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi commit_impl emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwbpstate_a initi mwbpstate0 mmbpstate) + (nextmwpintrp_a initi mwpintrp0 mmpintrp) + (nextmwisreturnfromexception_a initi + mwisreturnfromexception0 mmisreturnfromexception) + (nextmwis_alu_exception_a initi mwis_alu_exception0 + mmis_alu_exception) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi commit_impl mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 depintrp0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmbpstate0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (pintrp (g 'pintrp impl)) (bpstate (g 'bpstate impl)) + (ffbpstate (g 'ffbpstate impl)) (ffpintrp (g 'ffpintrp impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdpintrp (g 'fdpintrp impl)) (fdbpstate (g 'fdbpstate impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (depintrp (g 'depintrp impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (empintrp (g 'empintrp impl)) + (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepchist_2 (g 'pepchist_2 impl)) + (pepchist_1 (g 'pepchist_1 impl)) (pepc (g 'pepc impl)) + (pisexceptionhist_2 (g 'pisexceptionhist_2 impl)) + (pisexceptionhist_1 (g 'pisexceptionhist_1 impl)) + (pisexception (g 'pisexception impl)) + (mmbpstate (g 'mmbpstate impl)) (mmpintrp (g 'mmpintrp impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) (mwpintrp (g 'mwpintrp impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (mem1_is_interrupt_temp (isinterrupt empintrp)) + (mem1_is_interrupt (and mem1_is_interrupt_temp emwrt)) + (mem1_is_interrupt_bar (not mem1_is_interrupt)) + (squash (or (or (or mem1_mispredicted + mem1_is_alu_exception) + mem1_is_interrupt) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception)) + (wb_is_interrupt_temp (isinterrupt mwpintrp)) + (wb_is_interrupt (and wb_is_interrupt_temp mwwrt)) + (wb_is_interrupt_bar (not wb_is_interrupt))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initpintrp_a intrp0) (initbpstate_a bpstate0) + (initffbpstate_a ffbpstate0) (initffpintrp_a ffpintrp0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) (initffwrt_a) + (initffinst_a ffinst0) (initffppc_a ffppc0) (initprf_a prf) + (initfdpintrp_a fdpintrp0) (initfdbpstate_a fdbpstate0) + (initfdppc_a fdppc0) (initfdwrt_a) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdebpstate_a debpstate0) (initdepintrp_a depintrp0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initdeisreturnfromexception_a deisreturnfromexception0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initembpstate_a embpstate0) (initempintrp_a empintrp0) + (initemppc_a emppc0) + (initemis_alu_exception_a emis_alu_exception0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) + (initemisreturnfromexception_a emisreturnfromexception0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initpepchist_2_a epc0) (initpepchist_1_a epc0) + (initpepc_a epc0) (initpisexceptionhist_2_a isexception0) + (initpisexceptionhist_1_a isexception0) + (initpisexception_a isexception0) + (initmmbpstate_a mmbpstate0) (initmmpintrp_a mmpintrp0) + (initmmisreturnfromexception_a mmisreturnfromexception0) + (initmmis_alu_exception_a mmis_alu_exception0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a) + (initmmregwrite_a mmregwrite0) (initmwbpstate_a mwbpstate0) + (initmwpintrp_a mwpintrp0) + (initmwisreturnfromexception_a mwisreturnfromexception0) + (initmwis_alu_exception_a mwis_alu_exception0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc sintrp srf sdmem sepc sisexception) + (seq nil 'simem simem 'spc spc 'sintrp sintrp 'srf srf 'sdmem sdmem + 'sepc sepc 'sisexception sisexception)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl project_pc isa is_interrupt spc + is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc) + (cond + (initi pc0) + (project_impl project_pc) + ((and isa is_interrupt) spc) + ((and isa is_returnfromexception) sepc) + ((and isa is_alu_exception) alu_exception_handler) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsintrp_a (intrp0) intrp0) + +(defun nextsintrp_a + (initi intrp0 project_impl project_intrp isa sintrp) + (cond + (initi intrp0) + (project_impl project_intrp) + (isa (nextintrp sintrp)) + (t sintrp))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_interrupt_bar + is_returnfromexception_bar val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa + (s 5 inst + (s 6 regwrite + (s 7 is_alu_exception_bar + (s 8 is_interrupt_bar + (s 9 is_returnfromexception_bar + (s 10 val nil))))))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_2 isa is_interrupt + sdmem memwrite is_alu_exception_bar + is_returnfromexception_bar result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_2) + ((and isa is_interrupt) (intrp_mod_dmem sdmem)) + ((and (and (and isa memwrite) is_alu_exception_bar) + is_returnfromexception_bar) + (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun initsepc_a (epc0) epc0) + +(defun nextsepc_a + (initi epc0 isa is_alu_exception is_returnfromexception_bar + is_interrupt_bar spc sepc) + (cond + (initi epc0) + ((and (and (and isa is_alu_exception) is_returnfromexception_bar) + is_interrupt_bar) + spc) + (t sepc))) + +(defun initsisexception_a (isexception0) isexception0) + +(defun nextsisexception_a + (initi isexception0 isa is_alu_exception is_returnfromexception + is_interrupt_bar is_returnfromexception_bar + sisexception) + (cond + (initi isexception0) + ((and (and isa (or is_alu_exception is_returnfromexception)) + is_interrupt_bar) + (and is_alu_exception is_returnfromexception_bar)) + (t sisexception))) + +(defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa + alu_exception_handler intrp0 project_intrp impl.prf dmem0 + impl.pdmemhist_2 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (sintrp (g 'sintrp spec)) (srf (g 'srf spec)) + (sdmem (g 'sdmem spec)) (sepc (g 'sepc spec)) + (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (is_interrupt (isinterrupt sintrp)) + (is_interrupt_bar (not is_interrupt)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa + is_interrupt spc is_returnfromexception sepc + is_alu_exception alu_exception_handler is_taken_branch + targetpc) + (nextsintrp_a initi intrp0 project_impl project_intrp isa + sintrp) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_interrupt_bar + is_returnfromexception_bar val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_2 isa + is_interrupt sdmem memwrite is_alu_exception_bar + is_returnfromexception_bar result arg2_temp) + (nextsepc_a initi epc0 isa is_alu_exception + is_returnfromexception_bar is_interrupt_bar spc sepc) + (nextsisexception_a initi isexception0 isa is_alu_exception + is_returnfromexception is_interrupt_bar + is_returnfromexception_bar sisexception))))) + +(defun spec-initialize_a (spec pc0 intrp0 dmem0 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (sintrp (g 'sintrp spec)) (srf (g 'srf spec)) + (sdmem (g 'sdmem spec)) (sepc (g 'sepc spec)) + (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (is_interrupt (isinterrupt sintrp)) + (is_interrupt_bar (not is_interrupt)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsintrp_a intrp0) (initsrf_a srf) (initsdmem_a dmem0) + (initsepc_a epc0) (initsisexception_a isexception0))))) + +(defun simulate_a + (st initi isa project_impl project_pc project_intrp commit_impl + commit_pc commit_bpstate commit_intrp pc0 + alu_exception_handler intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 depintrp0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmpintrp0 mmisreturnfromexception0 mmis_alu_exception0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 impl.prf impl.pdmemhist_2) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + alu_exception_handler intrp0 commit_intrp bpstate0 + commit_bpstate ffbpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdpintrp0 fdbpstate0 + fdppc0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmpintrp0 mmisreturnfromexception0 mmis_alu_exception0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa alu_exception_handler intrp0 project_intrp impl.prf + dmem0 impl.pdmemhist_2 epc0 isexception0))) + +(defun initialize_a + (st initi isa project_impl project_pc project_intrp commit_impl + commit_pc commit_bpstate commit_intrp pc0 intrp0 bpstate0 + ffbpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdpintrp0 fdbpstate0 + fdppc0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmpintrp0 mmisreturnfromexception0 mmis_alu_exception0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 intrp0 bpstate0 ffbpstate0 + ffpintrp0 ffpredicteddirection0 ffpredictedtarget0 ffinst0 + ffppc0 fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmpintrp0 mmisreturnfromexception0 mmis_alu_exception0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 intrp0 dmem0 epc0 + isexception0))) + +(defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem pepc_v impl.pepc pisexception_v + impl.pisexception ffwrt_v impl.ffwrt ffppc_v impl.ffppc + ffinst_v impl.ffinst fdwrt_v impl.fdwrt fdppc_v + impl.fdppc fdinst_v impl.fdinst dewrt_v impl.dewrt + deppc_v impl.deppc deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm deisbranch_v impl.deisbranch + dememtoreg_v impl.dememtoreg dememwrite_v + impl.dememwrite deisreturnfromexception_v + impl.deisreturnfromexception deregwrite_v + impl.deregwrite emwrt_v impl.emwrt emtargetpc_v + impl.emtargetpc emdest_v impl.emdest emarg2_v + impl.emarg2 emregwrite_v impl.emregwrite emresult_v + impl.emresult emis_taken_branch_v impl.emis_taken_branch + emmemtoreg_v impl.emmemtoreg emis_alu_exception_v + impl.emis_alu_exception emisreturnfromexception_v + impl.emisreturnfromexception emmemwrite_v + impl.emmemwrite mmwrt_v impl.mmwrt mmval_v impl.mmval + mmdest_v impl.mmdest mmregwrite_v impl.mmregwrite + mmisreturnfromexception_v impl.mmisreturnfromexception + mmis_alu_exception_v impl.mmis_alu_exception mwwrt_v + impl.mwwrt mwval_v impl.mwval mwdest_v impl.mwdest + mwregwrite_v impl.mwregwrite mwisreturnfromexception_v + impl.mwisreturnfromexception mwis_alu_exception_v + impl.mwis_alu_exception) + (declare (xargs :normalize nil)) + (and (and (and (and (and (and (and (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (equal ppc_v impl.ppc) + (equal + (read-prf_a a1 prf_v) + (read-prf_a a1 + impl.prf))) + (equal + (read-pimem_a a1 + pimem_v) + (read-pimem_a a1 + impl.pimem))) + (equal pdmem_v + impl.pdmem)) + (equal pepc_v impl.pepc)) + (equalb pisexception_v + impl.pisexception)) + (equalb ffwrt_v impl.ffwrt)) + (implies ffwrt_v + (and + (and impl.ffwrt + (equal ffppc_v impl.ffppc)) + (equal ffinst_v + impl.ffinst)))) + (equalb fdwrt_v impl.fdwrt)) + (implies fdwrt_v + (and + (and impl.fdwrt + (equal fdppc_v impl.fdppc)) + (equal fdinst_v impl.fdinst)))) + (equalb dewrt_v impl.dewrt)) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deppc_v + impl.deppc)) + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v + impl.desrc2)) + (equal deimm_v + impl.deimm)) + (equalb deuseimm_v + impl.deuseimm)) + (equalb deisbranch_v + impl.deisbranch)) + (equalb dememtoreg_v + impl.dememtoreg)) + (equalb dememwrite_v + impl.dememwrite)) + (equalb + deisreturnfromexception_v + impl.deisreturnfromexception)) + (equalb deregwrite_v + impl.deregwrite)))) + (equalb emwrt_v impl.emwrt)) + (implies emwrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.emwrt + (equal emtargetpc_v + impl.emtargetpc)) + (equal emdest_v + impl.emdest)) + (equal emarg2_v + impl.emarg2)) + (equalb emregwrite_v + impl.emregwrite)) + (equal emresult_v + impl.emresult)) + (equalb emis_taken_branch_v + impl.emis_taken_branch)) + (equalb emmemtoreg_v + impl.emmemtoreg)) + (equalb emis_alu_exception_v + impl.emis_alu_exception)) + (equalb + emisreturnfromexception_v + impl.emisreturnfromexception)) + (equalb emmemwrite_v + impl.emmemwrite)))) + (equalb mmwrt_v impl.mmwrt)) + (implies mmwrt_v + (and (and (and + (and + (and impl.mmwrt + (equal mmval_v impl.mmval)) + (equal mmdest_v impl.mmdest)) + (equalb mmregwrite_v + impl.mmregwrite)) + (equalb mmisreturnfromexception_v + impl.mmisreturnfromexception)) + (equalb mmis_alu_exception_v + impl.mmis_alu_exception)))) + (equalb mwwrt_v impl.mwwrt)) + (implies mwwrt_v + (and (and (and (and (and impl.mwwrt + (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (equalb mwregwrite_v impl.mwregwrite)) + (equalb mwisreturnfromexception_v + impl.mwisreturnfromexception)) + (equalb mwis_alu_exception_v + impl.mwis_alu_exception))))) + +(defun rank + (impl.mwwrt zero impl.mmwrt impl.emwrt impl.dewrt impl.fdwrt + impl.ffwrt) + (cond + (impl.mwwrt zero) + (impl.mmwrt (add-1 zero)) + (impl.emwrt (add-1 (add-1 zero))) + (impl.dewrt (add-1 (add-1 (add-1 zero)))) + (impl.fdwrt (add-1 (add-1 (add-1 (add-1 zero))))) + (impl.ffwrt (add-1 (add-1 (add-1 (add-1 (add-1 zero)))))) + (t (add-1 (add-1 (add-1 (add-1 (add-1 (add-1 zero))))))))) + +(defun committedpc + (impl.mwwrt impl.mwppc impl.mmwrt impl.mmppc impl.emwrt + impl.emppc impl.dewrt impl.deppc impl.fdwrt impl.fdppc + impl.ffwrt impl.ffppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.mmwrt impl.mmppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (impl.ffwrt impl.ffppc) + (t impl.ppc))) + +(defun committedbpstate + (impl.mwwrt impl.mwbpstate impl.mmwrt impl.mmbpstate impl.emwrt + impl.embpstate impl.dewrt impl.debpstate impl.fdwrt + impl.fdbpstate impl.ffwrt impl.ffbpstate impl.bpstate) + (cond + (impl.mwwrt impl.mwbpstate) + (impl.mmwrt impl.mmbpstate) + (impl.emwrt impl.embpstate) + (impl.dewrt impl.debpstate) + (impl.fdwrt impl.fdbpstate) + (impl.ffwrt impl.ffbpstate) + (t impl.bpstate))) + +(defun committedintrp + (impl.mwwrt impl.mwpintrp impl.mmwrt impl.mmpintrp impl.emwrt + impl.empintrp impl.dewrt impl.depintrp impl.fdwrt + impl.fdpintrp impl.ffwrt impl.ffpintrp impl.pintrp) + (cond + (impl.mwwrt impl.mwpintrp) + (impl.mmwrt impl.mmpintrp) + (impl.emwrt impl.empintrp) + (impl.dewrt impl.depintrp) + (impl.fdwrt impl.fdpintrp) + (impl.ffwrt impl.ffpintrp) + (t impl.pintrp))) + + +(defthm web_core_a + (implies (and (integerp intrp_exception_handler) + (integerp intrp0) (integerp pc0) + (integerp dmem0) (integerp epc0) + (booleanp isexception0) (integerp bpstate0) + (integerp alu_exception_handler) (integerp a) + (integerp zero) (integerp ffpintrp0) + (integerp fdpintrp0) (integerp depintrp0) + (integerp empintrp0) (integerp mmpintrp0) + (integerp mwpintrp0) (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20) + (booleanp emis_alu_exception0) + (booleanp mmis_alu_exception0) + (booleanp mwis_alu_exception0) + (booleanp deisreturnfromexception0) + (booleanp emisreturnfromexception0) + (booleanp mmisreturnfromexception0) + (booleanp mwisreturnfromexception0)) + (let* ((st0 (initialize_a nil nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_2 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_2 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_2 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_2 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_2 (g 'impl st4)))) + (st6 (simulate_a st5 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_2 (g 'impl st5)))) + (st7 (simulate_a st6 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_2 (g 'impl st6)))) + (ppc_v (g 'ppc (g 'impl st7))) + (prf_v (g 'prf (g 'impl st7))) + (pdmem_v (g 'pdmem (g 'impl st7))) + (pimem_v (g 'pimem (g 'impl st7))) + (deop_v (g 'deop (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (dearg1_v (g 'dearg1 (g 'impl st7))) + (dearg2_v (g 'dearg2 (g 'impl st7))) + (dedest_v (g 'dedest (g 'impl st7))) + (dewrt_v (g 'dewrt (g 'impl st7))) + (fdwrt_v (g 'fdwrt (g 'impl st7))) + (fdinst_v (g 'fdinst (g 'impl st7))) + (emdest_v (g 'emdest (g 'impl st7))) + (emwrt_v (g 'emwrt (g 'impl st7))) + (desrc1_v (g 'desrc1 (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (deregwrite_v (g 'deregwrite (g 'impl st7))) + (emregwrite_v (g 'emregwrite (g 'impl st7))) + (deimm_v (g 'deimm (g 'impl st7))) + (deuseimm_v (g 'deuseimm (g 'impl st7))) + (emresult_v (g 'emresult (g 'impl st7))) + (dememtoreg_v (g 'dememtoreg (g 'impl st7))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st7))) + (dememwrite_v (g 'dememwrite (g 'impl st7))) + (emmemwrite_v (g 'emmemwrite (g 'impl st7))) + (emarg2_v (g 'emarg2 (g 'impl st7))) + (ffwrt_v (g 'ffwrt (g 'impl st7))) + (ffinst_v (g 'ffinst (g 'impl st7))) + (mmval_v (g 'mmval (g 'impl st7))) + (mmdest_v (g 'mmdest (g 'impl st7))) + (mmwrt_v (g 'mmwrt (g 'impl st7))) + (mmregwrite_v (g 'mmregwrite (g 'impl st7))) + (mwval_v (g 'mwval (g 'impl st7))) + (mwdest_v (g 'mwdest (g 'impl st7))) + (mwwrt_v (g 'mwwrt (g 'impl st7))) + (mwregwrite_v (g 'mwregwrite (g 'impl st7))) + (deisbranch_v (g 'deisbranch (g 'impl st7))) + (emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st7))) + (emtargetpc_v (g 'emtargetpc (g 'impl st7))) + (ffppc_v (g 'ffppc (g 'impl st7))) + (fdppc_v (g 'fdppc (g 'impl st7))) + (deppc_v (g 'deppc (g 'impl st7))) + (emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st7))) + (mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st7))) + (mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st7))) + (deisreturnfromexception_v + (g 'deisreturnfromexception (g 'impl st7))) + (mmisreturnfromexception_v + (g 'mmisreturnfromexception (g 'impl st7))) + (mwisreturnfromexception_v + (g 'mwisreturnfromexception (g 'impl st7))) + (emisreturnfromexception_v + (g 'emisreturnfromexception (g 'impl st7))) + (mmisreturnfromexception_v + (g 'mmisreturnfromexception (g 'impl st7))) + (mwisreturnfromexception_v + (g 'mwisreturnfromexception (g 'impl st7))) + (pepc_v (g 'pepc (g 'impl st7))) + (pisexception_v + (g 'pisexception (g 'impl st7))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st7)) + (g 'mwppc (g 'impl st7)) + (g 'mmwrt (g 'impl st7)) + (g 'mmppc (g 'impl st7)) + (g 'emwrt (g 'impl st7)) + (g 'emppc (g 'impl st7)) + (g 'dewrt (g 'impl st7)) + (g 'deppc (g 'impl st7)) + (g 'fdwrt (g 'impl st7)) + (g 'fdppc (g 'impl st7)) + (g 'ffwrt (g 'impl st7)) + (g 'ffppc (g 'impl st7)) + (g 'ppc (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 intrp0 t + i_pc0 committedbpstate committedintrp + pc0 alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_2 (g 'impl st7)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) + pimem_v (g 'pimem (g 'impl st8)) + pdmem_v (g 'pdmem (g 'impl st8)) + pepc_v (g 'pepc (g 'impl st8)) + pisexception_v + (g 'pisexception (g 'impl st8)) + ffwrt_v (g 'ffwrt (g 'impl st8)) + ffppc_v (g 'ffppc (g 'impl st8)) + ffinst_v (g 'ffinst (g 'impl st8)) + fdwrt_v (g 'fdwrt (g 'impl st8)) + fdppc_v (g 'fdppc (g 'impl st8)) + fdinst_v (g 'fdinst (g 'impl st8)) + dewrt_v (g 'dewrt (g 'impl st8)) + deppc_v (g 'deppc (g 'impl st8)) + deop_v (g 'deop (g 'impl st8)) + dearg1_v (g 'dearg1 (g 'impl st8)) + dearg2_v (g 'dearg2 (g 'impl st8)) + dedest_v (g 'dedest (g 'impl st8)) + desrc1_v (g 'desrc1 (g 'impl st8)) + desrc2_v (g 'desrc2 (g 'impl st8)) + deimm_v (g 'deimm (g 'impl st8)) + deuseimm_v (g 'deuseimm (g 'impl st8)) + deisbranch_v + (g 'deisbranch (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emtargetpc_v + (g 'emtargetpc (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emarg2_v + (g 'emarg2 (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st8)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mmwrt_v + (g 'mmwrt (g 'impl st8)) mmval_v + (g 'mmval (g 'impl st8)) mmdest_v + (g 'mmdest (g 'impl st8)) mmregwrite_v + (g 'mmregwrite (g 'impl st8)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st8)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st8)) + mwwrt_v (g 'mwwrt (g 'impl st8)) + mwval_v (g 'mwval (g 'impl st8)) + mwdest_v (g 'mwdest (g 'impl st8)) + mwregwrite_v + (g 'mwregwrite (g 'impl st8)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st8)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 bpstate0 + ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_2 (g 'impl st8)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) + pimem_v (g 'pimem (g 'impl st9)) + pdmem_v (g 'pdmem (g 'impl st9)) + pepc_v (g 'pepc (g 'impl st9)) + pisexception_v + (g 'pisexception (g 'impl st9)) + ffwrt_v (g 'ffwrt (g 'impl st9)) + ffppc_v (g 'ffppc (g 'impl st9)) + ffinst_v (g 'ffinst (g 'impl st9)) + fdwrt_v (g 'fdwrt (g 'impl st9)) + fdppc_v (g 'fdppc (g 'impl st9)) + fdinst_v (g 'fdinst (g 'impl st9)) + dewrt_v (g 'dewrt (g 'impl st9)) + deppc_v (g 'deppc (g 'impl st9)) + deop_v (g 'deop (g 'impl st9)) + dearg1_v (g 'dearg1 (g 'impl st9)) + dearg2_v (g 'dearg2 (g 'impl st9)) + dedest_v (g 'dedest (g 'impl st9)) + desrc1_v (g 'desrc1 (g 'impl st9)) + desrc2_v (g 'desrc2 (g 'impl st9)) + deimm_v (g 'deimm (g 'impl st9)) + deuseimm_v (g 'deuseimm (g 'impl st9)) + deisbranch_v + (g 'deisbranch (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emtargetpc_v + (g 'emtargetpc (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emarg2_v + (g 'emarg2 (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st9)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mmwrt_v + (g 'mmwrt (g 'impl st9)) mmval_v + (g 'mmval (g 'impl st9)) mmdest_v + (g 'mmdest (g 'impl st9)) mmregwrite_v + (g 'mmregwrite (g 'impl st9)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st9)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st9)) + mwwrt_v (g 'mwwrt (g 'impl st9)) + mwval_v (g 'mwval (g 'impl st9)) + mwdest_v (g 'mwdest (g 'impl st9)) + mwregwrite_v + (g 'mwregwrite (g 'impl st9)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st9)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_2 (g 'impl st9)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + pepc_v (g 'pepc (g 'impl st10)) + pisexception_v + (g 'pisexception (g 'impl st10)) + ffwrt_v (g 'ffwrt (g 'impl st10)) + ffppc_v (g 'ffppc (g 'impl st10)) + ffinst_v (g 'ffinst (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdppc_v (g 'fdppc (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deppc_v (g 'deppc (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v + (g 'deuseimm (g 'impl st10)) + deisbranch_v + (g 'deisbranch (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emtargetpc_v + (g 'emtargetpc (g 'impl st10)) + emdest_v (g 'emdest (g 'impl st10)) + emarg2_v (g 'emarg2 (g 'impl st10)) + emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v + (g 'emresult (g 'impl st10)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st10)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mmwrt_v + (g 'mmwrt (g 'impl st10)) mmval_v + (g 'mmval (g 'impl st10)) mmdest_v + (g 'mmdest (g 'impl st10)) + mmregwrite_v + (g 'mmregwrite (g 'impl st10)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st10)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st10)) + mwwrt_v (g 'mwwrt (g 'impl st10)) + mwval_v (g 'mwval (g 'impl st10)) + mwdest_v (g 'mwdest (g 'impl st10)) + mwregwrite_v + (g 'mwregwrite (g 'impl st10)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st10)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st10)))) + (st11 (simulate_a st10 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_2 (g 'impl st10)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st11)) + prf_v a1 (g 'prf (g 'impl st11)) + pimem_v (g 'pimem (g 'impl st11)) + pdmem_v (g 'pdmem (g 'impl st11)) + pepc_v (g 'pepc (g 'impl st11)) + pisexception_v + (g 'pisexception (g 'impl st11)) + ffwrt_v (g 'ffwrt (g 'impl st11)) + ffppc_v (g 'ffppc (g 'impl st11)) + ffinst_v (g 'ffinst (g 'impl st11)) + fdwrt_v (g 'fdwrt (g 'impl st11)) + fdppc_v (g 'fdppc (g 'impl st11)) + fdinst_v (g 'fdinst (g 'impl st11)) + dewrt_v (g 'dewrt (g 'impl st11)) + deppc_v (g 'deppc (g 'impl st11)) + deop_v (g 'deop (g 'impl st11)) + dearg1_v (g 'dearg1 (g 'impl st11)) + dearg2_v (g 'dearg2 (g 'impl st11)) + dedest_v (g 'dedest (g 'impl st11)) + desrc1_v (g 'desrc1 (g 'impl st11)) + desrc2_v (g 'desrc2 (g 'impl st11)) + deimm_v (g 'deimm (g 'impl st11)) + deuseimm_v + (g 'deuseimm (g 'impl st11)) + deisbranch_v + (g 'deisbranch (g 'impl st11)) + dememtoreg_v + (g 'dememtoreg (g 'impl st11)) + dememwrite_v + (g 'dememwrite (g 'impl st11)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st11)) + deregwrite_v + (g 'deregwrite (g 'impl st11)) emwrt_v + (g 'emwrt (g 'impl st11)) emtargetpc_v + (g 'emtargetpc (g 'impl st11)) + emdest_v (g 'emdest (g 'impl st11)) + emarg2_v (g 'emarg2 (g 'impl st11)) + emregwrite_v + (g 'emregwrite (g 'impl st11)) + emresult_v + (g 'emresult (g 'impl st11)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st11)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st11)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st11)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st11)) + emmemwrite_v + (g 'emmemwrite (g 'impl st11)) mmwrt_v + (g 'mmwrt (g 'impl st11)) mmval_v + (g 'mmval (g 'impl st11)) mmdest_v + (g 'mmdest (g 'impl st11)) + mmregwrite_v + (g 'mmregwrite (g 'impl st11)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st11)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st11)) + mwwrt_v (g 'mwwrt (g 'impl st11)) + mwval_v (g 'mwval (g 'impl st11)) + mwdest_v (g 'mwdest (g 'impl st11)) + mwregwrite_v + (g 'mwregwrite (g 'impl st11)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st11)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st11)))) + (st12 (simulate_a st11 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_2 (g 'impl st11)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st12)) + prf_v a1 (g 'prf (g 'impl st12)) + pimem_v (g 'pimem (g 'impl st12)) + pdmem_v (g 'pdmem (g 'impl st12)) + pepc_v (g 'pepc (g 'impl st12)) + pisexception_v + (g 'pisexception (g 'impl st12)) + ffwrt_v (g 'ffwrt (g 'impl st12)) + ffppc_v (g 'ffppc (g 'impl st12)) + ffinst_v (g 'ffinst (g 'impl st12)) + fdwrt_v (g 'fdwrt (g 'impl st12)) + fdppc_v (g 'fdppc (g 'impl st12)) + fdinst_v (g 'fdinst (g 'impl st12)) + dewrt_v (g 'dewrt (g 'impl st12)) + deppc_v (g 'deppc (g 'impl st12)) + deop_v (g 'deop (g 'impl st12)) + dearg1_v (g 'dearg1 (g 'impl st12)) + dearg2_v (g 'dearg2 (g 'impl st12)) + dedest_v (g 'dedest (g 'impl st12)) + desrc1_v (g 'desrc1 (g 'impl st12)) + desrc2_v (g 'desrc2 (g 'impl st12)) + deimm_v (g 'deimm (g 'impl st12)) + deuseimm_v + (g 'deuseimm (g 'impl st12)) + deisbranch_v + (g 'deisbranch (g 'impl st12)) + dememtoreg_v + (g 'dememtoreg (g 'impl st12)) + dememwrite_v + (g 'dememwrite (g 'impl st12)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st12)) + deregwrite_v + (g 'deregwrite (g 'impl st12)) emwrt_v + (g 'emwrt (g 'impl st12)) emtargetpc_v + (g 'emtargetpc (g 'impl st12)) + emdest_v (g 'emdest (g 'impl st12)) + emarg2_v (g 'emarg2 (g 'impl st12)) + emregwrite_v + (g 'emregwrite (g 'impl st12)) + emresult_v + (g 'emresult (g 'impl st12)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st12)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st12)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st12)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st12)) + emmemwrite_v + (g 'emmemwrite (g 'impl st12)) mmwrt_v + (g 'mmwrt (g 'impl st12)) mmval_v + (g 'mmval (g 'impl st12)) mmdest_v + (g 'mmdest (g 'impl st12)) + mmregwrite_v + (g 'mmregwrite (g 'impl st12)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st12)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st12)) + mwwrt_v (g 'mwwrt (g 'impl st12)) + mwval_v (g 'mwval (g 'impl st12)) + mwdest_v (g 'mwdest (g 'impl st12)) + mwregwrite_v + (g 'mwregwrite (g 'impl st12)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st12)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st12)))) + (st13 (simulate_a st12 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_2 (g 'impl st12)))) + (equiv_ma_5 + (equiv_ma ppc_v (g 'ppc (g 'impl st13)) + prf_v a1 (g 'prf (g 'impl st13)) + pimem_v (g 'pimem (g 'impl st13)) + pdmem_v (g 'pdmem (g 'impl st13)) + pepc_v (g 'pepc (g 'impl st13)) + pisexception_v + (g 'pisexception (g 'impl st13)) + ffwrt_v (g 'ffwrt (g 'impl st13)) + ffppc_v (g 'ffppc (g 'impl st13)) + ffinst_v (g 'ffinst (g 'impl st13)) + fdwrt_v (g 'fdwrt (g 'impl st13)) + fdppc_v (g 'fdppc (g 'impl st13)) + fdinst_v (g 'fdinst (g 'impl st13)) + dewrt_v (g 'dewrt (g 'impl st13)) + deppc_v (g 'deppc (g 'impl st13)) + deop_v (g 'deop (g 'impl st13)) + dearg1_v (g 'dearg1 (g 'impl st13)) + dearg2_v (g 'dearg2 (g 'impl st13)) + dedest_v (g 'dedest (g 'impl st13)) + desrc1_v (g 'desrc1 (g 'impl st13)) + desrc2_v (g 'desrc2 (g 'impl st13)) + deimm_v (g 'deimm (g 'impl st13)) + deuseimm_v + (g 'deuseimm (g 'impl st13)) + deisbranch_v + (g 'deisbranch (g 'impl st13)) + dememtoreg_v + (g 'dememtoreg (g 'impl st13)) + dememwrite_v + (g 'dememwrite (g 'impl st13)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st13)) + deregwrite_v + (g 'deregwrite (g 'impl st13)) emwrt_v + (g 'emwrt (g 'impl st13)) emtargetpc_v + (g 'emtargetpc (g 'impl st13)) + emdest_v (g 'emdest (g 'impl st13)) + emarg2_v (g 'emarg2 (g 'impl st13)) + emregwrite_v + (g 'emregwrite (g 'impl st13)) + emresult_v + (g 'emresult (g 'impl st13)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st13)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st13)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st13)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st13)) + emmemwrite_v + (g 'emmemwrite (g 'impl st13)) mmwrt_v + (g 'mmwrt (g 'impl st13)) mmval_v + (g 'mmval (g 'impl st13)) mmdest_v + (g 'mmdest (g 'impl st13)) + mmregwrite_v + (g 'mmregwrite (g 'impl st13)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st13)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st13)) + mwwrt_v (g 'mwwrt (g 'impl st13)) + mwval_v (g 'mwval (g 'impl st13)) + mwdest_v (g 'mwdest (g 'impl st13)) + mwregwrite_v + (g 'mwregwrite (g 'impl st13)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st13)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st13)))) + (st14 (simulate_a st13 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_2 (g 'impl st13)))) + (equiv_ma_6 + (equiv_ma ppc_v (g 'ppc (g 'impl st14)) + prf_v a1 (g 'prf (g 'impl st14)) + pimem_v (g 'pimem (g 'impl st14)) + pdmem_v (g 'pdmem (g 'impl st14)) + pepc_v (g 'pepc (g 'impl st14)) + pisexception_v + (g 'pisexception (g 'impl st14)) + ffwrt_v (g 'ffwrt (g 'impl st14)) + ffppc_v (g 'ffppc (g 'impl st14)) + ffinst_v (g 'ffinst (g 'impl st14)) + fdwrt_v (g 'fdwrt (g 'impl st14)) + fdppc_v (g 'fdppc (g 'impl st14)) + fdinst_v (g 'fdinst (g 'impl st14)) + dewrt_v (g 'dewrt (g 'impl st14)) + deppc_v (g 'deppc (g 'impl st14)) + deop_v (g 'deop (g 'impl st14)) + dearg1_v (g 'dearg1 (g 'impl st14)) + dearg2_v (g 'dearg2 (g 'impl st14)) + dedest_v (g 'dedest (g 'impl st14)) + desrc1_v (g 'desrc1 (g 'impl st14)) + desrc2_v (g 'desrc2 (g 'impl st14)) + deimm_v (g 'deimm (g 'impl st14)) + deuseimm_v + (g 'deuseimm (g 'impl st14)) + deisbranch_v + (g 'deisbranch (g 'impl st14)) + dememtoreg_v + (g 'dememtoreg (g 'impl st14)) + dememwrite_v + (g 'dememwrite (g 'impl st14)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st14)) + deregwrite_v + (g 'deregwrite (g 'impl st14)) emwrt_v + (g 'emwrt (g 'impl st14)) emtargetpc_v + (g 'emtargetpc (g 'impl st14)) + emdest_v (g 'emdest (g 'impl st14)) + emarg2_v (g 'emarg2 (g 'impl st14)) + emregwrite_v + (g 'emregwrite (g 'impl st14)) + emresult_v + (g 'emresult (g 'impl st14)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st14)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st14)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st14)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st14)) + emmemwrite_v + (g 'emmemwrite (g 'impl st14)) mmwrt_v + (g 'mmwrt (g 'impl st14)) mmval_v + (g 'mmval (g 'impl st14)) mmdest_v + (g 'mmdest (g 'impl st14)) + mmregwrite_v + (g 'mmregwrite (g 'impl st14)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st14)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st14)) + mwwrt_v (g 'mwwrt (g 'impl st14)) + mwval_v (g 'mwval (g 'impl st14)) + mwdest_v (g 'mwdest (g 'impl st14)) + mwregwrite_v + (g 'mwregwrite (g 'impl st14)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st14)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st14)))) + (good_ma_v + (or (or equiv_ma_2 equiv_ma_5) equiv_ma_6)) + (st15 (simulate_a st14 t nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_2 (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_2 (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_2 (g 'impl st16)))) + (st18 (simulate_a st17 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_2 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_2 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_2 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_2 (g 'impl st20)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'mmwrt (g 'impl st21)) + (g 'mmppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ffwrt (g 'impl st21)) + (g 'ffppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0 (g 'prf (g 'impl st21))) + (i_dmem0 (g 'pdmemhist_2 (g 'impl st21))) + (i_epc0 (g 'pepchist_2 (g 'impl st21))) + (i_isexception0 + (g 'pisexceptionhist_2 (g 'impl st21))) + (rank_w (rank (g 'mwwrt (g 'impl st21)) zero + (g 'mmwrt (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'ffwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st21)) + (g 'pdmemhist_2 (g 'impl st21)))) + (s_pc0 (g 'spc (g 'spec st22))) + (s_rf0 (g 'srf (g 'spec st22))) + (s_dmem0 (g 'sdmem (g 'spec st22))) + (s_epc0 (g 'sepc (g 'spec st22))) + (s_isexception0 + (g 'sisexception (g 'spec st22))) + (i_pc (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'mmwrt (g 'impl st22)) + (g 'mmppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ffwrt (g 'impl st22)) + (g 'ffppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf (g 'prf (g 'impl st22))) + (i_dmem (g 'pdmemhist_2 (g 'impl st22))) + (i_epc (g 'pepchist_2 (g 'impl st22))) + (i_isexception + (g 'pisexceptionhist_2 (g 'impl st22))) + (rank_v (rank (g 'mwwrt (g 'impl st22)) zero + (g 'mmwrt (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'ffwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_2 (g 'impl st22)))) + (s_pc1 (g 'spc (g 'spec st23))) + (s_rf1 (g 'srf (g 'spec st23))) + (s_dmem1 (g 'sdmem (g 'spec st23))) + (s_epc1 (g 'sepc (g 'spec st23))) + (s_isexception1 + (g 'sisexception (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_2 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_2 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_2 (g 'impl st25)))) + (st27 (simulate_a st26 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st26)) + (g 'pdmemhist_2 (g 'impl st26)))) + (st28 (simulate_a st27 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_2 (g 'impl st27)))) + (st29 (simulate_a st28 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_2 (g 'impl st28)))) + (i_pc0_2 (committedpc + (g 'mwwrt (g 'impl st29)) + (g 'mwppc (g 'impl st29)) + (g 'mmwrt (g 'impl st29)) + (g 'mmppc (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'emppc (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'deppc (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'fdppc (g 'impl st29)) + (g 'ffwrt (g 'impl st29)) + (g 'ffppc (g 'impl st29)) + (g 'ppc (g 'impl st29)))) + (i_rf0_2 (g 'prf (g 'impl st29))) + (i_dmem0_2 (g 'pdmemhist_2 (g 'impl st29))) + (i_epc0_2 (g 'pepchist_2 (g 'impl st29))) + (i_isexception0_2 + (g 'pisexceptionhist_2 (g 'impl st29))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st29)) zero + (g 'mmwrt (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'ffwrt (g 'impl st29)))) + (st30 (simulate_a st29 nil nil t i_pc0_2 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st29)) + (g 'pdmemhist_2 (g 'impl st29)))) + (s_pc0_2 (g 'spc (g 'spec st30))) + (s_rf0_2 (g 'srf (g 'spec st30))) + (s_dmem0_2 (g 'sdmem (g 'spec st30))) + (s_epc0_2 (g 'sepc (g 'spec st30))) + (s_isexception0_2 + (g 'sisexception (g 'spec st30))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'mmwrt (g 'impl st30)) + (g 'mmppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ffwrt (g 'impl st30)) + (g 'ffppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf_2 (g 'prf (g 'impl st30))) + (i_dmem_2 (g 'pdmemhist_2 (g 'impl st30))) + (i_epc_2 (g 'pepchist_2 (g 'impl st30))) + (i_isexception_2 + (g 'pisexceptionhist_2 (g 'impl st30))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'mmwrt (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'ffwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil t nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st30)) + (g 'pdmemhist_2 (g 'impl st30)))) + (s_pc1_2 (g 'spc (g 'spec st31))) + (s_rf1_2 (g 'srf (g 'spec st31))) + (s_dmem1_2 (g 'sdmem (g 'spec st31))) + (s_epc1_2 (g 'sepc (g 'spec st31))) + (s_isexception1_2 + (g 'sisexception (g 'spec st31))) + (st32 (simulate_a st31 t nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_2 (g 'impl st31)))) + (st33 (simulate_a st32 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_2 (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st33)) + (g 'pdmemhist_2 (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_2 (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st35)) + (g 'pdmemhist_2 (g 'impl st35)))) + (i_pc0_3 (committedpc + (g 'mwwrt (g 'impl st36)) + (g 'mwppc (g 'impl st36)) + (g 'mmwrt (g 'impl st36)) + (g 'mmppc (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'emppc (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'deppc (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'fdppc (g 'impl st36)) + (g 'ffwrt (g 'impl st36)) + (g 'ffppc (g 'impl st36)) + (g 'ppc (g 'impl st36)))) + (i_rf0_3 (g 'prf (g 'impl st36))) + (i_dmem0_3 (g 'pdmemhist_2 (g 'impl st36))) + (i_epc0_3 (g 'pepchist_2 (g 'impl st36))) + (i_isexception0_3 + (g 'pisexceptionhist_2 (g 'impl st36))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st36)) zero + (g 'mmwrt (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'ffwrt (g 'impl st36)))) + (st37 (simulate_a st36 nil nil t i_pc0_3 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st36)) + (g 'pdmemhist_2 (g 'impl st36)))) + (s_pc0_3 (g 'spc (g 'spec st37))) + (s_rf0_3 (g 'srf (g 'spec st37))) + (s_dmem0_3 (g 'sdmem (g 'spec st37))) + (s_epc0_3 (g 'sepc (g 'spec st37))) + (s_isexception0_3 + (g 'sisexception (g 'spec st37))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st37)) + (g 'mwppc (g 'impl st37)) + (g 'mmwrt (g 'impl st37)) + (g 'mmppc (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'emppc (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'deppc (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'fdppc (g 'impl st37)) + (g 'ffwrt (g 'impl st37)) + (g 'ffppc (g 'impl st37)) + (g 'ppc (g 'impl st37)))) + (i_rf_3 (g 'prf (g 'impl st37))) + (i_dmem_3 (g 'pdmemhist_2 (g 'impl st37))) + (i_epc_3 (g 'pepchist_2 (g 'impl st37))) + (i_isexception_3 + (g 'pisexceptionhist_2 (g 'impl st37))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st37)) zero + (g 'mmwrt (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'ffwrt (g 'impl st37)))) + (st38 (simulate_a st37 nil t nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st37)) + (g 'pdmemhist_2 (g 'impl st37)))) + (s_pc1_3 (g 'spc (g 'spec st38))) + (s_rf1_3 (g 'srf (g 'spec st38))) + (s_dmem1_3 (g 'sdmem (g 'spec st38))) + (s_epc1_3 (g 'sepc (g 'spec st38))) + (s_isexception1_3 + (g 'sisexception (g 'spec st38))) + (st39 (simulate_a st38 t nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st38)) + (g 'pdmemhist_2 (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st39)) + (g 'pdmemhist_2 (g 'impl st39)))) + (st41 (simulate_a st40 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st40)) + (g 'pdmemhist_2 (g 'impl st40)))) + (st42 (simulate_a st41 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st41)) + (g 'pdmemhist_2 (g 'impl st41)))) + (i_pc0_4 (committedpc + (g 'mwwrt (g 'impl st42)) + (g 'mwppc (g 'impl st42)) + (g 'mmwrt (g 'impl st42)) + (g 'mmppc (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'emppc (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'deppc (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'fdppc (g 'impl st42)) + (g 'ffwrt (g 'impl st42)) + (g 'ffppc (g 'impl st42)) + (g 'ppc (g 'impl st42)))) + (i_rf0_4 (g 'prf (g 'impl st42))) + (i_dmem0_4 (g 'pdmemhist_2 (g 'impl st42))) + (i_epc0_4 (g 'pepchist_2 (g 'impl st42))) + (i_isexception0_4 + (g 'pisexceptionhist_2 (g 'impl st42))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st42)) zero + (g 'mmwrt (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'ffwrt (g 'impl st42)))) + (st43 (simulate_a st42 nil nil t i_pc0_4 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st42)) + (g 'pdmemhist_2 (g 'impl st42)))) + (s_pc0_4 (g 'spc (g 'spec st43))) + (s_rf0_4 (g 'srf (g 'spec st43))) + (s_dmem0_4 (g 'sdmem (g 'spec st43))) + (s_epc0_4 (g 'sepc (g 'spec st43))) + (s_isexception0_4 + (g 'sisexception (g 'spec st43))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st43)) + (g 'mwppc (g 'impl st43)) + (g 'mmwrt (g 'impl st43)) + (g 'mmppc (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'emppc (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'deppc (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'fdppc (g 'impl st43)) + (g 'ffwrt (g 'impl st43)) + (g 'ffppc (g 'impl st43)) + (g 'ppc (g 'impl st43)))) + (i_rf_4 (g 'prf (g 'impl st43))) + (i_dmem_4 (g 'pdmemhist_2 (g 'impl st43))) + (i_epc_4 (g 'pepchist_2 (g 'impl st43))) + (i_isexception_4 + (g 'pisexceptionhist_2 (g 'impl st43))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st43)) zero + (g 'mmwrt (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'ffwrt (g 'impl st43)))) + (st44 (simulate_a st43 nil t nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st43)) + (g 'pdmemhist_2 (g 'impl st43)))) + (s_pc1_4 (g 'spc (g 'spec st44))) + (s_rf1_4 (g 'srf (g 'spec st44))) + (s_dmem1_4 (g 'sdmem (g 'spec st44))) + (s_epc1_4 (g 'sepc (g 'spec st44))) + (s_isexception1_4 + (g 'sisexception (g 'spec st44))) + (st45 (simulate_a st44 t nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st44)) + (g 'pdmemhist_2 (g 'impl st44)))) + (st46 (simulate_a st45 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st45)) + (g 'pdmemhist_2 (g 'impl st45)))) + (st47 (simulate_a st46 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st46)) + (g 'pdmemhist_2 (g 'impl st46)))) + (i_pc0_5 (committedpc + (g 'mwwrt (g 'impl st47)) + (g 'mwppc (g 'impl st47)) + (g 'mmwrt (g 'impl st47)) + (g 'mmppc (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'emppc (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'deppc (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'fdppc (g 'impl st47)) + (g 'ffwrt (g 'impl st47)) + (g 'ffppc (g 'impl st47)) + (g 'ppc (g 'impl st47)))) + (i_rf0_5 (g 'prf (g 'impl st47))) + (i_dmem0_5 (g 'pdmemhist_2 (g 'impl st47))) + (i_epc0_5 (g 'pepchist_2 (g 'impl st47))) + (i_isexception0_5 + (g 'pisexceptionhist_2 (g 'impl st47))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st47)) zero + (g 'mmwrt (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'ffwrt (g 'impl st47)))) + (st48 (simulate_a st47 nil nil t i_pc0_5 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st47)) + (g 'pdmemhist_2 (g 'impl st47)))) + (s_pc0_5 (g 'spc (g 'spec st48))) + (s_rf0_5 (g 'srf (g 'spec st48))) + (s_dmem0_5 (g 'sdmem (g 'spec st48))) + (s_epc0_5 (g 'sepc (g 'spec st48))) + (s_isexception0_5 + (g 'sisexception (g 'spec st48))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st48)) + (g 'mwppc (g 'impl st48)) + (g 'mmwrt (g 'impl st48)) + (g 'mmppc (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'emppc (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'deppc (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'fdppc (g 'impl st48)) + (g 'ffwrt (g 'impl st48)) + (g 'ffppc (g 'impl st48)) + (g 'ppc (g 'impl st48)))) + (i_rf_5 (g 'prf (g 'impl st48))) + (i_dmem_5 (g 'pdmemhist_2 (g 'impl st48))) + (i_epc_5 (g 'pepchist_2 (g 'impl st48))) + (i_isexception_5 + (g 'pisexceptionhist_2 (g 'impl st48))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st48)) zero + (g 'mmwrt (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'ffwrt (g 'impl st48)))) + (st49 (simulate_a st48 nil t nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st48)) + (g 'pdmemhist_2 (g 'impl st48)))) + (s_pc1_5 (g 'spc (g 'spec st49))) + (s_rf1_5 (g 'srf (g 'spec st49))) + (s_dmem1_5 (g 'sdmem (g 'spec st49))) + (s_epc1_5 (g 'sepc (g 'spec st49))) + (s_isexception1_5 + (g 'sisexception (g 'spec st49))) + (st50 (simulate_a st49 t nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st49)) + (g 'pdmemhist_2 (g 'impl st49)))) + (st51 (simulate_a st50 nil nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st50)) + (g 'pdmemhist_2 (g 'impl st50)))) + (i_pc0_6 (committedpc + (g 'mwwrt (g 'impl st51)) + (g 'mwppc (g 'impl st51)) + (g 'mmwrt (g 'impl st51)) + (g 'mmppc (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'emppc (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'deppc (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'fdppc (g 'impl st51)) + (g 'ffwrt (g 'impl st51)) + (g 'ffppc (g 'impl st51)) + (g 'ppc (g 'impl st51)))) + (i_rf0_6 (g 'prf (g 'impl st51))) + (i_dmem0_6 (g 'pdmemhist_2 (g 'impl st51))) + (i_epc0_6 (g 'pepchist_2 (g 'impl st51))) + (i_isexception0_6 + (g 'pisexceptionhist_2 (g 'impl st51))) + (rank_w_6 + (rank (g 'mwwrt (g 'impl st51)) zero + (g 'mmwrt (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'ffwrt (g 'impl st51)))) + (st52 (simulate_a st51 nil nil t i_pc0_6 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st51)) + (g 'pdmemhist_2 (g 'impl st51)))) + (s_pc0_6 (g 'spc (g 'spec st52))) + (s_rf0_6 (g 'srf (g 'spec st52))) + (s_dmem0_6 (g 'sdmem (g 'spec st52))) + (s_epc0_6 (g 'sepc (g 'spec st52))) + (s_isexception0_6 + (g 'sisexception (g 'spec st52))) + (i_pc_6 (committedpc (g 'mwwrt (g 'impl st52)) + (g 'mwppc (g 'impl st52)) + (g 'mmwrt (g 'impl st52)) + (g 'mmppc (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'emppc (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'deppc (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'fdppc (g 'impl st52)) + (g 'ffwrt (g 'impl st52)) + (g 'ffppc (g 'impl st52)) + (g 'ppc (g 'impl st52)))) + (i_rf_6 (g 'prf (g 'impl st52))) + (i_dmem_6 (g 'pdmemhist_2 (g 'impl st52))) + (i_epc_6 (g 'pepchist_2 (g 'impl st52))) + (i_isexception_6 + (g 'pisexceptionhist_2 (g 'impl st52))) + (rank_v_6 + (rank (g 'mwwrt (g 'impl st52)) zero + (g 'mmwrt (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'ffwrt (g 'impl st52)))) + (st53 (simulate_a st52 nil t nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st52)) + (g 'pdmemhist_2 (g 'impl st52)))) + (s_pc1_6 (g 'spc (g 'spec st53))) + (s_rf1_6 (g 'srf (g 'spec st53))) + (s_dmem1_6 (g 'sdmem (g 'spec st53))) + (s_epc1_6 (g 'sepc (g 'spec st53))) + (s_isexception1_6 + (g 'sisexception (g 'spec st53))) + (st54 (simulate_a st53 t nil nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st53)) + (g 'pdmemhist_2 (g 'impl st53)))) + (i_pc0_7 (committedpc + (g 'mwwrt (g 'impl st54)) + (g 'mwppc (g 'impl st54)) + (g 'mmwrt (g 'impl st54)) + (g 'mmppc (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'emppc (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'deppc (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'fdppc (g 'impl st54)) + (g 'ffwrt (g 'impl st54)) + (g 'ffppc (g 'impl st54)) + (g 'ppc (g 'impl st54)))) + (i_rf0_7 (g 'prf (g 'impl st54))) + (i_dmem0_7 (g 'pdmemhist_2 (g 'impl st54))) + (i_epc0_7 (g 'pepchist_2 (g 'impl st54))) + (i_isexception0_7 + (g 'pisexceptionhist_2 (g 'impl st54))) + (rank_w_7 + (rank (g 'mwwrt (g 'impl st54)) zero + (g 'mmwrt (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'ffwrt (g 'impl st54)))) + (st55 (simulate_a st54 nil nil t i_pc0_7 + committedintrp nil pc0 bpstate0 + intrp0 pc0 alu_exception_handler + intrp0 bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st54)) + (g 'pdmemhist_2 (g 'impl st54)))) + (s_pc0_7 (g 'spc (g 'spec st55))) + (s_rf0_7 (g 'srf (g 'spec st55))) + (s_dmem0_7 (g 'sdmem (g 'spec st55))) + (s_epc0_7 (g 'sepc (g 'spec st55))) + (s_isexception0_7 + (g 'sisexception (g 'spec st55))) + (i_pc_7 (committedpc (g 'mwwrt (g 'impl st55)) + (g 'mwppc (g 'impl st55)) + (g 'mmwrt (g 'impl st55)) + (g 'mmppc (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'emppc (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'deppc (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'fdppc (g 'impl st55)) + (g 'ffwrt (g 'impl st55)) + (g 'ffppc (g 'impl st55)) + (g 'ppc (g 'impl st55)))) + (i_rf_7 (g 'prf (g 'impl st55))) + (i_dmem_7 (g 'pdmemhist_2 (g 'impl st55))) + (i_epc_7 (g 'pepchist_2 (g 'impl st55))) + (i_isexception_7 + (g 'pisexceptionhist_2 (g 'impl st55))) + (rank_v_7 + (rank (g 'mwwrt (g 'impl st55)) zero + (g 'mmwrt (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'ffwrt (g 'impl st55)))) + (st56 (simulate_a st55 nil t nil pc0 intrp0 + nil pc0 bpstate0 intrp0 pc0 + alu_exception_handler intrp0 + bpstate0 ffbpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdpintrp0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 + depintrp0 deppc0 desrc10 desrc20 a1 + a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 + empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st55)) + (g 'pdmemhist_2 (g 'impl st55)))) + (s_pc1_7 (g 'spc (g 'spec st56))) + (s_rf1_7 (g 'srf (g 'spec st56))) + (s_dmem1_7 (g 'sdmem (g 'spec st56))) + (s_epc1_7 (g 'sepc (g 'spec st56))) + (s_isexception1_7 + (g 'sisexception (g 'spec st56)))) + (and (and (and (and + (and + (and + (and good_ma_v + (or + (or + (not + (and + (and + (and + (and (equal s_pc0 i_pc0) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0)) + (equal s_epc0 i_epc0)) + (equalb s_isexception0 + i_isexception0))) + (and + (and + (and + (and (equal s_pc1 i_pc) + (equal + (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem)) + (equal s_epc1 i_epc)) + (equalb s_isexception1 + i_isexception))) + (and + (and + (and + (and + (and (equal s_pc0 i_pc) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (equal s_epc0 i_epc)) + (equalb s_isexception0 + i_isexception)) + (< rank_v rank_w)))) + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0_2 i_pc0_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf0_2))) + (equal s_dmem0_2 i_dmem0_2)) + (equal s_epc0_2 i_epc0_2)) + (equalb s_isexception0_2 + i_isexception0_2))) + (and + (and + (and + (and (equal s_pc1_2 i_pc_2) + (equal + (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 i_dmem_2)) + (equal s_epc1_2 i_epc_2)) + (equalb s_isexception1_2 + i_isexception_2))) + (and + (and + (and + (and + (and (equal s_pc0_2 i_pc_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)) + (equal s_epc0_2 i_epc_2)) + (equalb s_isexception0_2 + i_isexception_2)) + (< rank_v_2 rank_w_2)))) + (or + (or + (not + (and + (and + (and + (and (equal s_pc0_3 i_pc0_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 i_dmem0_3)) + (equal s_epc0_3 i_epc0_3)) + (equalb s_isexception0_3 + i_isexception0_3))) + (and + (and + (and + (and (equal s_pc1_3 i_pc_3) + (equal + (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3)) + (equal s_epc1_3 i_epc_3)) + (equalb s_isexception1_3 + i_isexception_3))) + (and + (and + (and + (and + (and (equal s_pc0_3 i_pc_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)) + (equal s_epc0_3 i_epc_3)) + (equalb s_isexception0_3 + i_isexception_3)) + (< rank_v_3 rank_w_3)))) + (or + (or + (not + (and + (and + (and + (and (equal s_pc0_4 i_pc0_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 i_dmem0_4)) + (equal s_epc0_4 i_epc0_4)) + (equalb s_isexception0_4 + i_isexception0_4))) + (and + (and + (and + (and (equal s_pc1_4 i_pc_4) + (equal + (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4)) + (equal s_epc1_4 i_epc_4)) + (equalb s_isexception1_4 + i_isexception_4))) + (and + (and + (and + (and + (and (equal s_pc0_4 i_pc_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)) + (equal s_epc0_4 i_epc_4)) + (equalb s_isexception0_4 + i_isexception_4)) + (< rank_v_4 rank_w_4)))) + (or + (or + (not + (and + (and + (and + (and (equal s_pc0_5 i_pc0_5) + (equal + (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5)) + (equal s_epc0_5 i_epc0_5)) + (equalb s_isexception0_5 + i_isexception0_5))) + (and + (and + (and + (and (equal s_pc1_5 i_pc_5) + (equal (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5)) + (equal s_epc1_5 i_epc_5)) + (equalb s_isexception1_5 + i_isexception_5))) + (and + (and + (and + (and + (and (equal s_pc0_5 i_pc_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)) + (equal s_epc0_5 i_epc_5)) + (equalb s_isexception0_5 + i_isexception_5)) + (< rank_v_5 rank_w_5)))) + (or (or (not + (and + (and + (and + (and (equal s_pc0_6 i_pc0_6) + (equal + (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf0_6))) + (equal s_dmem0_6 i_dmem0_6)) + (equal s_epc0_6 i_epc0_6)) + (equalb s_isexception0_6 + i_isexception0_6))) + (and + (and + (and + (and (equal s_pc1_6 i_pc_6) + (equal + (read-srf_a a1 s_rf1_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem1_6 i_dmem_6)) + (equal s_epc1_6 i_epc_6)) + (equalb s_isexception1_6 + i_isexception_6))) + (and (and + (and + (and + (and (equal s_pc0_6 i_pc_6) + (equal + (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem0_6 i_dmem_6)) + (equal s_epc0_6 i_epc_6)) + (equalb s_isexception0_6 + i_isexception_6)) + (< rank_v_6 rank_w_6)))) + (or (or (not (and + (and + (and + (and (equal s_pc0_7 i_pc0_7) + (equal + (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf0_7))) + (equal s_dmem0_7 i_dmem0_7)) + (equal s_epc0_7 i_epc0_7)) + (equalb s_isexception0_7 + i_isexception0_7))) + (and (and + (and + (and (equal s_pc1_7 i_pc_7) + (equal (read-srf_a a1 s_rf1_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem1_7 i_dmem_7)) + (equal s_epc1_7 i_epc_7)) + (equalb s_isexception1_7 + i_isexception_7))) + (and (and (and + (and + (and (equal s_pc0_7 i_pc_7) + (equal + (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem0_7 i_dmem_7)) + (equal s_epc0_7 i_epc_7)) + (equalb s_isexception0_7 + i_isexception_7)) + (< rank_v_7 rank_w_7)))))) + :rule-classes nil) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-safety.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-safety.lisp new file mode 100644 index 0000000..6fcb390 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-safety.lisp @@ -0,0 +1,4412 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + + (encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + (encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + (encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + (encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + (encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + (encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + (encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + (encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + (encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + (encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + (encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + (encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + (encapsulate ((alu_exception (x3 x2 x1) t)) + (local (defun alu_exception (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm alu_exception-type (booleanp (alu_exception x3 x2 x1)))) + (encapsulate ((getreturnfromexception (x1) t)) + (local (defun getreturnfromexception (x1) + (declare (ignore x1)) + nil)) + (defthm getreturnfromexception-type + (booleanp (getreturnfromexception x1)))) + (encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + (encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + (encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + (defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + (defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (and (and (g 3 (car prf)) + (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (g 7 (car prf))) + (g 8 (car prf))) + (t (read-prf_a a (cdr prf))))))) + (defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + (defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (g 8 (car srf))) + (g 9 (car srf))) + (t (read-srf_a a (cdr srf))))))) + (defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + (defun impl-state_a + (pimem ppc bpstate ffbpstate ffpredicteddirection + ffpredictedtarget ffwrt ffinst ffppc prf fdbpstate fdppc + fdwrt fdinst fdpredicteddirection fdpredictedtarget + debpstate deppc desrc1 desrc2 dearg1 dearg2 dedest deop + deimm deuseimm deisreturnfromexception deregwrite + dememwrite dememtoreg deisbranch dewrt + depredicteddirection depredictedtarget embpstate emppc + emis_alu_exception emis_taken_branch emtargetpc emarg2 + emresult emdest emwrt emisreturnfromexception + emmispredictedtaken emmispredictednottaken emregwrite + emmemwrite emmemtoreg pdmemhist_2 pdmemhist_1 pdmem + pepchist_2 pepchist_1 pepc pisexceptionhist_2 + pisexceptionhist_1 pisexception mmbpstate + mmisreturnfromexception mmis_alu_exception mmppc mmval + mmdest mmwrt mmregwrite mwbpstate + mwisreturnfromexception mwis_alu_exception mwppc mwval + mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'bpstate bpstate 'ffbpstate ffbpstate + 'ffpredicteddirection ffpredicteddirection 'ffpredictedtarget + ffpredictedtarget 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf + prf 'fdbpstate fdbpstate 'fdppc fdppc 'fdwrt fdwrt 'fdinst + fdinst 'fdpredicteddirection fdpredicteddirection + 'fdpredictedtarget fdpredictedtarget 'debpstate debpstate + 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 dearg1 + 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm deimm 'deuseimm + deuseimm 'deisreturnfromexception deisreturnfromexception + 'deregwrite deregwrite 'dememwrite dememwrite 'dememtoreg + dememtoreg 'deisbranch deisbranch 'dewrt dewrt + 'depredicteddirection depredicteddirection 'depredictedtarget + depredictedtarget 'embpstate embpstate 'emppc emppc + 'emis_alu_exception emis_alu_exception 'emis_taken_branch + emis_taken_branch 'emtargetpc emtargetpc 'emarg2 emarg2 + 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emisreturnfromexception emisreturnfromexception + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'pepchist_2 pepchist_2 'pepchist_1 pepchist_1 'pepc pepc + 'pisexceptionhist_2 pisexceptionhist_2 'pisexceptionhist_1 + pisexceptionhist_1 'pisexception pisexception 'mmbpstate + mmbpstate 'mmisreturnfromexception mmisreturnfromexception + 'mmis_alu_exception mmis_alu_exception 'mmppc mmppc 'mmval + mmval 'mmdest mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite + 'mwbpstate mwbpstate 'mwisreturnfromexception + mwisreturnfromexception 'mwis_alu_exception mwis_alu_exception + 'mwppc mwppc 'mwval mwval 'mwdest mwdest 'mwwrt mwwrt + 'mwregwrite mwregwrite)) + (defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + (defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + (defun initppc_a (pc0) pc0) + (defun nextppc_a + (initi pc0 commit_impl commit_pc mem1_is_returnfromexception + pepc mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken emppc mem1_mispredicted_nottaken + emtargetpc stall ppc if_predict_branch_taken + predicted_target) + (cond + (initi pc0) + (commit_impl commit_pc) + (mem1_is_returnfromexception pepc) + (mem1_is_alu_exception alu_exception_handler) + (mem1_mispredicted_taken (add-1 emppc)) + (mem1_mispredicted_nottaken emtargetpc) + (stall ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + (defun initbpstate_a (bpstate0) bpstate0) + (defun nextbpstate_a + (initi bpstate0 commit_impl commit_bpstate stall bpstate) + (cond + (initi bpstate0) + (commit_impl commit_bpstate) + (stall bpstate) + (t (nextbpstate bpstate)))) + (defun initffbpstate_a (ffbpstate0) ffbpstate0) + (defun nextffbpstate_a (initi ffbpstate0 stall ffbpstate bpstate) + (cond (initi ffbpstate0) (stall ffbpstate) (t bpstate))) + (defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + (defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + (defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + (defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + (defun initffwrt_a () nil) + (defun nextffwrt_a (initi commit_impl squash stall ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall ffwrt) + (t t))) + (defun initffinst_a (ffinst0) ffinst0) + (defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + (defun initffppc_a (ffppc0) ffppc0) + (defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + (defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + (defun nextprf_a + (prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest + (s 5 mwregwrite + (s 6 wb_is_alu_exception_bar + (s 7 wb_is_returnfromexception_bar + (s 8 mwval nil))))))))) + prf)) + (defun initfdbpstate_a (fdbpstate0) fdbpstate0) + (defun nextfdbpstate_a (initi fdbpstate0 stall fdbpstate ffbpstate) + (cond (initi fdbpstate0) (stall fdbpstate) (t ffbpstate))) + (defun initfdppc_a (fdppc0) fdppc0) + (defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + (defun initfdwrt_a () nil) + (defun nextfdwrt_a (initi commit_impl squash stall fdwrt ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall fdwrt) + (t ffwrt))) + (defun initfdinst_a (fdinst0) fdinst0) + (defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + (defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + (defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + (defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + (defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + (defun initdebpstate_a (debpstate0) debpstate0) + (defun nextdebpstate_a (initi debpstate0 fdbpstate) + (cond (initi debpstate0) (t fdbpstate))) + (defun initdeppc_a (deppc0) deppc0) + (defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + (defun initdesrc1_a (desrc10) desrc10) + (defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + (defun initdesrc2_a (desrc20) desrc20) + (defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + (defun initdearg1_a (a1) a1) + (defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval))))) + (defun initdearg2_a (a2) a2) + (defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval))))) + (defun initdedest_a (dedest0) dedest0) + (defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + (defun initdeop_a (deop0) deop0) + (defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + (defun initdeimm_a (deimm0) deimm0) + (defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + (defun initdeuseimm_a (deuseimm0) deuseimm0) + (defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + (defun initdeisreturnfromexception_a (deisreturnfromexception0) + deisreturnfromexception0) + (defun nextdeisreturnfromexception_a + (initi deisreturnfromexception0 fdinst) + (cond + (initi deisreturnfromexception0) + (t (getreturnfromexception fdinst)))) + (defun initderegwrite_a (deregwrite0) deregwrite0) + (defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + (defun initdememwrite_a (dememwrite0) dememwrite0) + (defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + (defun initdememtoreg_a (dememtoreg0) dememtoreg0) + (defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + (defun initdeisbranch_a (deisbranch0) deisbranch0) + (defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + (defun initdewrt_a () nil) + (defun nextdewrt_a (initi commit_impl squash stall fdwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (t (and (not stall) fdwrt)))) + (defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + (defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + (defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + (defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + (defun initembpstate_a (embpstate0) embpstate0) + (defun nextembpstate_a (initi embpstate0 debpstate) + (cond (initi embpstate0) (t debpstate))) + (defun initemppc_a (emppc0) emppc0) + (defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + (defun initemis_alu_exception_a (emis_alu_exception0) + emis_alu_exception0) + (defun nextemis_alu_exception_a + (initi emis_alu_exception0 ex_is_alu_exception) + (cond (initi emis_alu_exception0) (t ex_is_alu_exception))) + (defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + (defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + (defun initemtargetpc_a (emtargetpc0) emtargetpc0) + (defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + (defun initemarg2_a (emarg20) emarg20) + (defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + (defun initemresult_a (emresult0) emresult0) + (defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + (defun initemdest_a (emdest0) emdest0) + (defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + (defun initemwrt_a () nil) + (defun nextemwrt_a (initi commit_impl squash dewrt) + (cond (initi nil) (commit_impl nil) (squash nil) (t dewrt))) + (defun initemisreturnfromexception_a (emisreturnfromexception0) + emisreturnfromexception0) + (defun nextemisreturnfromexception_a + (initi emisreturnfromexception0 deisreturnfromexception) + (cond (initi emisreturnfromexception0) (t deisreturnfromexception))) + (defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + (defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + (defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + (defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + (defun initemregwrite_a (emregwrite0) emregwrite0) + (defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + (defun initemmemwrite_a (emmemwrite0) emmemwrite0) + (defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + (defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + (defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + (defun initpdmemhist_2_a (dmem0) dmem0) + (defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + (defun initpdmemhist_1_a (dmem0) dmem0) + (defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + (defun initpdmem_a (dmem0) dmem0) + (defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_2 emwrt emmemwrite + mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar pdmem emresult emarg2) + (cond + (initi dmem0) + (commit_impl pdmemhist_2) + ((and (and (and emwrt emmemwrite) mem1_is_alu_exception_bar) + mem1_is_returnfromexception_bar) + (nextdmem pdmem emresult emarg2)) + (t pdmem))) + (defun initpepchist_2_a (epc0) epc0) + (defun nextpepchist_2_a (initi epc0 pepchist_1) + (cond (initi epc0) (t pepchist_1))) + (defun initpepchist_1_a (epc0) epc0) + (defun nextpepchist_1_a (initi epc0 pepc) + (cond (initi epc0) (t pepc))) + (defun initpepc_a (epc0) epc0) + (defun nextpepc_a + (initi epc0 commit_impl pepchist_2 mem1_is_alu_exception + mem1_is_returnfromexception_bar emppc pepc) + (cond + (initi epc0) + (commit_impl pepchist_2) + ((and mem1_is_alu_exception mem1_is_returnfromexception_bar) + emppc) + (t pepc))) + (defun initpisexceptionhist_2_a (isexception0) isexception0) + (defun nextpisexceptionhist_2_a + (initi isexception0 pisexceptionhist_1) + (cond (initi isexception0) (t pisexceptionhist_1))) + (defun initpisexceptionhist_1_a (isexception0) isexception0) + (defun nextpisexceptionhist_1_a (initi isexception0 pisexception) + (cond (initi isexception0) (t pisexception))) + (defun initpisexception_a (isexception0) isexception0) + (defun nextpisexception_a + (initi isexception0 commit_impl pisexceptionhist_2 + mem1_is_alu_exception mem1_is_returnfromexception + mem1_is_returnfromexception_bar pisexception) + (cond + (initi isexception0) + (commit_impl pisexceptionhist_2) + ((or mem1_is_alu_exception mem1_is_returnfromexception) + (and mem1_is_alu_exception mem1_is_returnfromexception_bar)) + (t pisexception))) + (defun initmmbpstate_a (mmbpstate0) mmbpstate0) + (defun nextmmbpstate_a (initi mmbpstate0 embpstate) + (cond (initi mmbpstate0) (t embpstate))) + (defun initmmisreturnfromexception_a (mmisreturnfromexception0) + mmisreturnfromexception0) + (defun nextmmisreturnfromexception_a + (initi mmisreturnfromexception0 emisreturnfromexception) + (cond (initi mmisreturnfromexception0) (t emisreturnfromexception))) + (defun initmmis_alu_exception_a (mmis_alu_exception0) + mmis_alu_exception0) + (defun nextmmis_alu_exception_a + (initi mmis_alu_exception0 emis_alu_exception) + (cond (initi mmis_alu_exception0) (t emis_alu_exception))) + (defun initmmppc_a (mmppc0) mmppc0) + (defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + (defun initmmval_a (mmval0) mmval0) + (defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + (defun initmmdest_a (mmdest0) mmdest0) + (defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + (defun initmmwrt_a () nil) + (defun nextmmwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + (defun initmmregwrite_a (mmregwrite0) mmregwrite0) + (defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + (defun initmwbpstate_a (mwbpstate0) mwbpstate0) + (defun nextmwbpstate_a (initi mwbpstate0 mmbpstate) + (cond (initi mwbpstate0) (t mmbpstate))) + (defun initmwisreturnfromexception_a (mwisreturnfromexception0) + mwisreturnfromexception0) + (defun nextmwisreturnfromexception_a + (initi mwisreturnfromexception0 mmisreturnfromexception) + (cond (initi mwisreturnfromexception0) (t mmisreturnfromexception))) + (defun initmwis_alu_exception_a (mwis_alu_exception0) + mwis_alu_exception0) + (defun nextmwis_alu_exception_a + (initi mwis_alu_exception0 mmis_alu_exception) + (cond (initi mwis_alu_exception0) (t mmis_alu_exception))) + (defun initmwppc_a (mwppc0) mwppc0) + (defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + (defun initmwval_a (mwval0) mwval0) + (defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + (defun initmwdest_a (mwdest0) mwdest0) + (defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + (defun initmwwrt_a () nil) + (defun nextmwwrt_a (initi commit_impl mmwrt) + (cond (initi nil) (commit_impl nil) (t mmwrt))) + (defun initmwregwrite_a (mwregwrite0) mwregwrite0) + (defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + (defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc alu_exception_handler + bpstate0 commit_bpstate ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdbpstate0 fdppc0 + fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) (ffbpstate (g 'ffbpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdbpstate (g 'fdbpstate impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepchist_2 (g 'pepchist_2 impl)) + (pepchist_1 (g 'pepchist_1 impl)) (pepc (g 'pepc impl)) + (pisexceptionhist_2 (g 'pisexceptionhist_2 impl)) + (pisexceptionhist_1 (g 'pisexceptionhist_1 impl)) + (pisexception (g 'pisexception impl)) + (mmbpstate (g 'mmbpstate impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash (or (or mem1_mispredicted mem1_is_alu_exception) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc + mem1_is_returnfromexception pepc mem1_is_alu_exception + alu_exception_handler mem1_mispredicted_taken emppc + mem1_mispredicted_nottaken emtargetpc stall ppc + if_predict_branch_taken predicted_target) + (nextbpstate_a initi bpstate0 commit_impl commit_bpstate + stall bpstate) + (nextffbpstate_a initi ffbpstate0 stall ffbpstate bpstate) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi commit_impl squash stall ffwrt) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (nextfdbpstate_a initi fdbpstate0 stall fdbpstate ffbpstate) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi commit_impl squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdebpstate_a initi debpstate0 fdbpstate) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextdeisreturnfromexception_a initi + deisreturnfromexception0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi commit_impl squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextembpstate_a initi embpstate0 debpstate) + (nextemppc_a initi emppc0 deppc) + (nextemis_alu_exception_a initi emis_alu_exception0 + ex_is_alu_exception) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl squash dewrt) + (nextemisreturnfromexception_a initi + emisreturnfromexception0 deisreturnfromexception) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_2 emwrt + emmemwrite mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar pdmem emresult emarg2) + (nextpepchist_2_a initi epc0 pepchist_1) + (nextpepchist_1_a initi epc0 pepc) + (nextpepc_a initi epc0 commit_impl pepchist_2 + mem1_is_alu_exception mem1_is_returnfromexception_bar + emppc pepc) + (nextpisexceptionhist_2_a initi isexception0 + pisexceptionhist_1) + (nextpisexceptionhist_1_a initi isexception0 pisexception) + (nextpisexception_a initi isexception0 commit_impl + pisexceptionhist_2 mem1_is_alu_exception + mem1_is_returnfromexception + mem1_is_returnfromexception_bar pisexception) + (nextmmbpstate_a initi mmbpstate0 embpstate) + (nextmmisreturnfromexception_a initi + mmisreturnfromexception0 emisreturnfromexception) + (nextmmis_alu_exception_a initi mmis_alu_exception0 + emis_alu_exception) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi commit_impl emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwbpstate_a initi mwbpstate0 mmbpstate) + (nextmwisreturnfromexception_a initi + mwisreturnfromexception0 mmisreturnfromexception) + (nextmwis_alu_exception_a initi mwis_alu_exception0 + mmis_alu_exception) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi commit_impl mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + (defun impl-initialize_a + (impl pc0 bpstate0 ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdbpstate0 fdppc0 + fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) (ffbpstate (g 'ffbpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdbpstate (g 'fdbpstate impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepchist_2 (g 'pepchist_2 impl)) + (pepchist_1 (g 'pepchist_1 impl)) (pepc (g 'pepc impl)) + (pisexceptionhist_2 (g 'pisexceptionhist_2 impl)) + (pisexceptionhist_1 (g 'pisexceptionhist_1 impl)) + (pisexception (g 'pisexception impl)) + (mmbpstate (g 'mmbpstate impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash (or (or mem1_mispredicted mem1_is_alu_exception) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initbpstate_a bpstate0) (initffbpstate_a ffbpstate0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) (initffwrt_a) + (initffinst_a ffinst0) (initffppc_a ffppc0) (initprf_a prf) + (initfdbpstate_a fdbpstate0) (initfdppc_a fdppc0) + (initfdwrt_a) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdebpstate_a debpstate0) (initdeppc_a deppc0) + (initdesrc1_a desrc10) (initdesrc2_a desrc20) + (initdearg1_a a1) (initdearg2_a a2) (initdedest_a dedest0) + (initdeop_a deop0) (initdeimm_a deimm0) + (initdeuseimm_a deuseimm0) + (initdeisreturnfromexception_a deisreturnfromexception0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initembpstate_a embpstate0) (initemppc_a emppc0) + (initemis_alu_exception_a emis_alu_exception0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) + (initemisreturnfromexception_a emisreturnfromexception0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initpepchist_2_a epc0) (initpepchist_1_a epc0) + (initpepc_a epc0) (initpisexceptionhist_2_a isexception0) + (initpisexceptionhist_1_a isexception0) + (initpisexception_a isexception0) + (initmmbpstate_a mmbpstate0) + (initmmisreturnfromexception_a mmisreturnfromexception0) + (initmmis_alu_exception_a mmis_alu_exception0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a) + (initmmregwrite_a mmregwrite0) (initmwbpstate_a mwbpstate0) + (initmwisreturnfromexception_a mwisreturnfromexception0) + (initmwis_alu_exception_a mwis_alu_exception0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + (defun spec-state_a (simem spc srf sdmem sepc sisexception) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem 'sepc sepc + 'sisexception sisexception)) + (defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + (defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + (defun initspc_a (pc0) pc0) + (defun nextspc_a + (initi pc0 project_impl project_pc isa is_returnfromexception + sepc is_alu_exception alu_exception_handler + is_taken_branch targetpc spc) + (cond + (initi pc0) + (project_impl project_pc) + ((and isa is_returnfromexception) sepc) + ((and isa is_alu_exception) alu_exception_handler) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + (defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + (defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_returnfromexception_bar val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa + (s 5 inst + (s 6 regwrite + (s 7 is_alu_exception_bar + (s 8 is_returnfromexception_bar + (s 9 val nil)))))))))) + srf)) + (defun initsdmem_a (dmem0) dmem0) + (defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_2 isa memwrite + is_alu_exception_bar is_returnfromexception_bar sdmem + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_2) + ((and (and (and isa memwrite) is_alu_exception_bar) + is_returnfromexception_bar) + (nextdmem sdmem result arg2_temp)) + (t sdmem))) + (defun initsepc_a (epc0) epc0) + (defun nextsepc_a + (initi epc0 isa is_alu_exception is_returnfromexception_bar spc + sepc) + (cond + (initi epc0) + ((and (and isa is_alu_exception) is_returnfromexception_bar) spc) + (t sepc))) + (defun initsisexception_a (isexception0) isexception0) + (defun nextsisexception_a + (initi isexception0 isa is_alu_exception is_returnfromexception + is_returnfromexception_bar sisexception) + (cond + (initi isexception0) + ((and isa (or is_alu_exception is_returnfromexception)) + (and is_alu_exception is_returnfromexception_bar)) + (t sisexception))) + (defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa + alu_exception_handler impl.prf dmem0 impl.pdmemhist_2 + epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec)) + (sepc (g 'sepc spec)) (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa + is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_returnfromexception_bar val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_2 isa + memwrite is_alu_exception_bar is_returnfromexception_bar + sdmem result arg2_temp) + (nextsepc_a initi epc0 isa is_alu_exception + is_returnfromexception_bar spc sepc) + (nextsisexception_a initi isexception0 isa is_alu_exception + is_returnfromexception is_returnfromexception_bar + sisexception))))) + (defun spec-initialize_a (spec pc0 dmem0 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec)) + (sepc (g 'sepc spec)) (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0) (initsepc_a epc0) + (initsisexception_a isexception0))))) + (defun simulate_a + (st initi isa project_impl project_pc commit_impl commit_pc + commit_bpstate pc0 alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 ffpredictedtarget0 ffinst0 + ffppc0 fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0 + impl.prf impl.pdmemhist_2) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + alu_exception_handler bpstate0 commit_bpstate ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa alu_exception_handler impl.prf dmem0 impl.pdmemhist_2 + epc0 isexception0))) + (defun initialize_a + (st initi isa project_impl project_pc commit_impl commit_pc + commit_bpstate pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0 epc0 isexception0))) + + (defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem pepc_v impl.pepc pisexception_v + impl.pisexception ffwrt_v impl.ffwrt ffppc_v impl.ffppc + ffinst_v impl.ffinst fdwrt_v impl.fdwrt fdppc_v + impl.fdppc fdinst_v impl.fdinst dewrt_v impl.dewrt + deppc_v impl.deppc deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm deisbranch_v impl.deisbranch + dememtoreg_v impl.dememtoreg dememwrite_v + impl.dememwrite deisreturnfromexception_v + impl.deisreturnfromexception deregwrite_v + impl.deregwrite emwrt_v impl.emwrt emtargetpc_v + impl.emtargetpc emdest_v impl.emdest emarg2_v + impl.emarg2 emregwrite_v impl.emregwrite emresult_v + impl.emresult emis_taken_branch_v impl.emis_taken_branch + emmemtoreg_v impl.emmemtoreg emis_alu_exception_v + impl.emis_alu_exception emisreturnfromexception_v + impl.emisreturnfromexception emmemwrite_v + impl.emmemwrite mmwrt_v impl.mmwrt mmval_v impl.mmval + mmdest_v impl.mmdest mmregwrite_v impl.mmregwrite + mmisreturnfromexception_v impl.mmisreturnfromexception + mmis_alu_exception_v impl.mmis_alu_exception mwwrt_v + impl.mwwrt mwval_v impl.mwval mwdest_v impl.mwdest + mwregwrite_v impl.mwregwrite mwisreturnfromexception_v + impl.mwisreturnfromexception mwis_alu_exception_v + impl.mwis_alu_exception) + (declare (xargs :normalize nil)) + (and (and (and (and (and (and (and (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (equal ppc_v impl.ppc) + (equal + (read-prf_a a1 prf_v) + (read-prf_a a1 + impl.prf))) + (equal + (read-pimem_a a1 + pimem_v) + (read-pimem_a a1 + impl.pimem))) + (equal pdmem_v + impl.pdmem)) + (equal pepc_v impl.pepc)) + (equalb pisexception_v + impl.pisexception)) + (equalb ffwrt_v impl.ffwrt)) + (implies ffwrt_v + (and + (and impl.ffwrt + (equal ffppc_v impl.ffppc)) + (equal ffinst_v + impl.ffinst)))) + (equalb fdwrt_v impl.fdwrt)) + (implies fdwrt_v + (and + (and impl.fdwrt + (equal fdppc_v impl.fdppc)) + (equal fdinst_v impl.fdinst)))) + (equalb dewrt_v impl.dewrt)) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deppc_v + impl.deppc)) + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v + impl.desrc2)) + (equal deimm_v + impl.deimm)) + (equalb deuseimm_v + impl.deuseimm)) + (equalb deisbranch_v + impl.deisbranch)) + (equalb dememtoreg_v + impl.dememtoreg)) + (equalb dememwrite_v + impl.dememwrite)) + (equalb + deisreturnfromexception_v + impl.deisreturnfromexception)) + (equalb deregwrite_v + impl.deregwrite)))) + (equalb emwrt_v impl.emwrt)) + (implies emwrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.emwrt + (equal emtargetpc_v + impl.emtargetpc)) + (equal emdest_v + impl.emdest)) + (equal emarg2_v + impl.emarg2)) + (equalb emregwrite_v + impl.emregwrite)) + (equal emresult_v + impl.emresult)) + (equalb emis_taken_branch_v + impl.emis_taken_branch)) + (equalb emmemtoreg_v + impl.emmemtoreg)) + (equalb emis_alu_exception_v + impl.emis_alu_exception)) + (equalb + emisreturnfromexception_v + impl.emisreturnfromexception)) + (equalb emmemwrite_v + impl.emmemwrite)))) + (equalb mmwrt_v impl.mmwrt)) + (implies mmwrt_v + (and (and (and + (and + (and impl.mmwrt + (equal mmval_v impl.mmval)) + (equal mmdest_v impl.mmdest)) + (equalb mmregwrite_v + impl.mmregwrite)) + (equalb mmisreturnfromexception_v + impl.mmisreturnfromexception)) + (equalb mmis_alu_exception_v + impl.mmis_alu_exception)))) + (equalb mwwrt_v impl.mwwrt)) + (implies mwwrt_v + (and (and (and (and (and impl.mwwrt + (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (equalb mwregwrite_v impl.mwregwrite)) + (equalb mwisreturnfromexception_v + impl.mwisreturnfromexception)) + (equalb mwis_alu_exception_v + impl.mwis_alu_exception))))) + + (defun rank + (impl.mwwrt zero impl.mmwrt impl.emwrt impl.dewrt impl.fdwrt + impl.ffwrt) + (cond + (impl.mwwrt zero) + (impl.mmwrt (add-1 zero)) + (impl.emwrt (add-1 (add-1 zero))) + (impl.dewrt (add-1 (add-1 (add-1 zero)))) + (impl.fdwrt (add-1 (add-1 (add-1 (add-1 zero))))) + (impl.ffwrt (add-1 (add-1 (add-1 (add-1 (add-1 zero)))))) + (t (add-1 (add-1 (add-1 (add-1 (add-1 (add-1 zero))))))))) + + (defun committedpc + (impl.mwwrt impl.mwppc impl.mmwrt impl.mmppc impl.emwrt + impl.emppc impl.dewrt impl.deppc impl.fdwrt impl.fdppc + impl.ffwrt impl.ffppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.mmwrt impl.mmppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (impl.ffwrt impl.ffppc) + (t impl.ppc))) + + (defun committedbpstate + (impl.mwwrt impl.mwbpstate impl.mmwrt impl.mmbpstate impl.emwrt + impl.embpstate impl.dewrt impl.debpstate impl.fdwrt + impl.fdbpstate impl.ffwrt impl.ffbpstate impl.bpstate) + (cond + (impl.mwwrt impl.mwbpstate) + (impl.mmwrt impl.mmbpstate) + (impl.emwrt impl.embpstate) + (impl.dewrt impl.debpstate) + (impl.fdwrt impl.fdbpstate) + (impl.ffwrt impl.ffbpstate) + (t impl.bpstate))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp epc0) + (booleanp isexception0) (integerp bpstate0) + (integerp alu_exception_handler) (integerp a) + (integerp zero) (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20) + (booleanp emis_alu_exception0) + (booleanp mmis_alu_exception0) + (booleanp mwis_alu_exception0) + (booleanp deisreturnfromexception0) + (booleanp emisreturnfromexception0) + (booleanp mmisreturnfromexception0) + (booleanp mwisreturnfromexception0)) + (let* ((st0 (initialize_a nil nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_2 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_2 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_2 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_2 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_2 (g 'impl st4)))) + (st6 (simulate_a st5 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_2 (g 'impl st5)))) + (st7 (simulate_a st6 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_2 (g 'impl st6)))) + (ppc_v (g 'ppc (g 'impl st7))) + (prf_v (g 'prf (g 'impl st7))) + (pdmem_v (g 'pdmem (g 'impl st7))) + (pimem_v (g 'pimem (g 'impl st7))) + (deop_v (g 'deop (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (dearg1_v (g 'dearg1 (g 'impl st7))) + (dearg2_v (g 'dearg2 (g 'impl st7))) + (dedest_v (g 'dedest (g 'impl st7))) + (dewrt_v (g 'dewrt (g 'impl st7))) + (fdwrt_v (g 'fdwrt (g 'impl st7))) + (fdinst_v (g 'fdinst (g 'impl st7))) + (emdest_v (g 'emdest (g 'impl st7))) + (emwrt_v (g 'emwrt (g 'impl st7))) + (desrc1_v (g 'desrc1 (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (deregwrite_v (g 'deregwrite (g 'impl st7))) + (emregwrite_v (g 'emregwrite (g 'impl st7))) + (deimm_v (g 'deimm (g 'impl st7))) + (deuseimm_v (g 'deuseimm (g 'impl st7))) + (emresult_v (g 'emresult (g 'impl st7))) + (dememtoreg_v (g 'dememtoreg (g 'impl st7))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st7))) + (dememwrite_v (g 'dememwrite (g 'impl st7))) + (emmemwrite_v (g 'emmemwrite (g 'impl st7))) + (emarg2_v (g 'emarg2 (g 'impl st7))) + (ffwrt_v (g 'ffwrt (g 'impl st7))) + (ffinst_v (g 'ffinst (g 'impl st7))) + (mmval_v (g 'mmval (g 'impl st7))) + (mmdest_v (g 'mmdest (g 'impl st7))) + (mmwrt_v (g 'mmwrt (g 'impl st7))) + (mmregwrite_v (g 'mmregwrite (g 'impl st7))) + (mwval_v (g 'mwval (g 'impl st7))) + (mwdest_v (g 'mwdest (g 'impl st7))) + (mwwrt_v (g 'mwwrt (g 'impl st7))) + (mwregwrite_v (g 'mwregwrite (g 'impl st7))) + (deisbranch_v (g 'deisbranch (g 'impl st7))) + (emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st7))) + (emtargetpc_v (g 'emtargetpc (g 'impl st7))) + (ffppc_v (g 'ffppc (g 'impl st7))) + (fdppc_v (g 'fdppc (g 'impl st7))) + (deppc_v (g 'deppc (g 'impl st7))) + (emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st7))) + (mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st7))) + (mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st7))) + (deisreturnfromexception_v + (g 'deisreturnfromexception (g 'impl st7))) + (mmisreturnfromexception_v + (g 'mmisreturnfromexception (g 'impl st7))) + (mwisreturnfromexception_v + (g 'mwisreturnfromexception (g 'impl st7))) + (emisreturnfromexception_v + (g 'emisreturnfromexception (g 'impl st7))) + (mmisreturnfromexception_v + (g 'mmisreturnfromexception (g 'impl st7))) + (mwisreturnfromexception_v + (g 'mwisreturnfromexception (g 'impl st7))) + (pepc_v (g 'pepc (g 'impl st7))) + (pisexception_v + (g 'pisexception (g 'impl st7))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st7)) + (g 'mwppc (g 'impl st7)) + (g 'mmwrt (g 'impl st7)) + (g 'mmppc (g 'impl st7)) + (g 'emwrt (g 'impl st7)) + (g 'emppc (g 'impl st7)) + (g 'dewrt (g 'impl st7)) + (g 'deppc (g 'impl st7)) + (g 'fdwrt (g 'impl st7)) + (g 'fdppc (g 'impl st7)) + (g 'ffwrt (g 'impl st7)) + (g 'ffppc (g 'impl st7)) + (g 'ppc (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 t i_pc0 + committedbpstate pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_2 (g 'impl st7)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) pimem_v + (g 'pimem (g 'impl st8)) pdmem_v + (g 'pdmem (g 'impl st8)) pepc_v + (g 'pepc (g 'impl st8)) pisexception_v + (g 'pisexception (g 'impl st8)) ffwrt_v + (g 'ffwrt (g 'impl st8)) ffppc_v + (g 'ffppc (g 'impl st8)) ffinst_v + (g 'ffinst (g 'impl st8)) fdwrt_v + (g 'fdwrt (g 'impl st8)) fdppc_v + (g 'fdppc (g 'impl st8)) fdinst_v + (g 'fdinst (g 'impl st8)) dewrt_v + (g 'dewrt (g 'impl st8)) deppc_v + (g 'deppc (g 'impl st8)) deop_v + (g 'deop (g 'impl st8)) dearg1_v + (g 'dearg1 (g 'impl st8)) dearg2_v + (g 'dearg2 (g 'impl st8)) dedest_v + (g 'dedest (g 'impl st8)) desrc1_v + (g 'desrc1 (g 'impl st8)) desrc2_v + (g 'desrc2 (g 'impl st8)) deimm_v + (g 'deimm (g 'impl st8)) deuseimm_v + (g 'deuseimm (g 'impl st8)) + deisbranch_v + (g 'deisbranch (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emtargetpc_v + (g 'emtargetpc (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emarg2_v + (g 'emarg2 (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st8)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mmwrt_v + (g 'mmwrt (g 'impl st8)) mmval_v + (g 'mmval (g 'impl st8)) mmdest_v + (g 'mmdest (g 'impl st8)) mmregwrite_v + (g 'mmregwrite (g 'impl st8)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st8)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st8)) + mwwrt_v (g 'mwwrt (g 'impl st8)) + mwval_v (g 'mwval (g 'impl st8)) + mwdest_v (g 'mwdest (g 'impl st8)) + mwregwrite_v + (g 'mwregwrite (g 'impl st8)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st8)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_2 (g 'impl st8)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) pimem_v + (g 'pimem (g 'impl st9)) pdmem_v + (g 'pdmem (g 'impl st9)) pepc_v + (g 'pepc (g 'impl st9)) pisexception_v + (g 'pisexception (g 'impl st9)) ffwrt_v + (g 'ffwrt (g 'impl st9)) ffppc_v + (g 'ffppc (g 'impl st9)) ffinst_v + (g 'ffinst (g 'impl st9)) fdwrt_v + (g 'fdwrt (g 'impl st9)) fdppc_v + (g 'fdppc (g 'impl st9)) fdinst_v + (g 'fdinst (g 'impl st9)) dewrt_v + (g 'dewrt (g 'impl st9)) deppc_v + (g 'deppc (g 'impl st9)) deop_v + (g 'deop (g 'impl st9)) dearg1_v + (g 'dearg1 (g 'impl st9)) dearg2_v + (g 'dearg2 (g 'impl st9)) dedest_v + (g 'dedest (g 'impl st9)) desrc1_v + (g 'desrc1 (g 'impl st9)) desrc2_v + (g 'desrc2 (g 'impl st9)) deimm_v + (g 'deimm (g 'impl st9)) deuseimm_v + (g 'deuseimm (g 'impl st9)) + deisbranch_v + (g 'deisbranch (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emtargetpc_v + (g 'emtargetpc (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emarg2_v + (g 'emarg2 (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st9)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mmwrt_v + (g 'mmwrt (g 'impl st9)) mmval_v + (g 'mmval (g 'impl st9)) mmdest_v + (g 'mmdest (g 'impl st9)) mmregwrite_v + (g 'mmregwrite (g 'impl st9)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st9)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st9)) + mwwrt_v (g 'mwwrt (g 'impl st9)) + mwval_v (g 'mwval (g 'impl st9)) + mwdest_v (g 'mwdest (g 'impl st9)) + mwregwrite_v + (g 'mwregwrite (g 'impl st9)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st9)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_2 (g 'impl st9)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + pepc_v (g 'pepc (g 'impl st10)) + pisexception_v + (g 'pisexception (g 'impl st10)) + ffwrt_v (g 'ffwrt (g 'impl st10)) + ffppc_v (g 'ffppc (g 'impl st10)) + ffinst_v (g 'ffinst (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdppc_v (g 'fdppc (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deppc_v (g 'deppc (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v (g 'deuseimm (g 'impl st10)) + deisbranch_v + (g 'deisbranch (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emtargetpc_v + (g 'emtargetpc (g 'impl st10)) emdest_v + (g 'emdest (g 'impl st10)) emarg2_v + (g 'emarg2 (g 'impl st10)) emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v (g 'emresult (g 'impl st10)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st10)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mmwrt_v + (g 'mmwrt (g 'impl st10)) mmval_v + (g 'mmval (g 'impl st10)) mmdest_v + (g 'mmdest (g 'impl st10)) mmregwrite_v + (g 'mmregwrite (g 'impl st10)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st10)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st10)) + mwwrt_v (g 'mwwrt (g 'impl st10)) + mwval_v (g 'mwval (g 'impl st10)) + mwdest_v (g 'mwdest (g 'impl st10)) + mwregwrite_v + (g 'mwregwrite (g 'impl st10)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st10)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st10)))) + (st11 (simulate_a st10 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_2 (g 'impl st10)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st11)) + prf_v a1 (g 'prf (g 'impl st11)) + pimem_v (g 'pimem (g 'impl st11)) + pdmem_v (g 'pdmem (g 'impl st11)) + pepc_v (g 'pepc (g 'impl st11)) + pisexception_v + (g 'pisexception (g 'impl st11)) + ffwrt_v (g 'ffwrt (g 'impl st11)) + ffppc_v (g 'ffppc (g 'impl st11)) + ffinst_v (g 'ffinst (g 'impl st11)) + fdwrt_v (g 'fdwrt (g 'impl st11)) + fdppc_v (g 'fdppc (g 'impl st11)) + fdinst_v (g 'fdinst (g 'impl st11)) + dewrt_v (g 'dewrt (g 'impl st11)) + deppc_v (g 'deppc (g 'impl st11)) + deop_v (g 'deop (g 'impl st11)) + dearg1_v (g 'dearg1 (g 'impl st11)) + dearg2_v (g 'dearg2 (g 'impl st11)) + dedest_v (g 'dedest (g 'impl st11)) + desrc1_v (g 'desrc1 (g 'impl st11)) + desrc2_v (g 'desrc2 (g 'impl st11)) + deimm_v (g 'deimm (g 'impl st11)) + deuseimm_v (g 'deuseimm (g 'impl st11)) + deisbranch_v + (g 'deisbranch (g 'impl st11)) + dememtoreg_v + (g 'dememtoreg (g 'impl st11)) + dememwrite_v + (g 'dememwrite (g 'impl st11)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st11)) + deregwrite_v + (g 'deregwrite (g 'impl st11)) emwrt_v + (g 'emwrt (g 'impl st11)) emtargetpc_v + (g 'emtargetpc (g 'impl st11)) emdest_v + (g 'emdest (g 'impl st11)) emarg2_v + (g 'emarg2 (g 'impl st11)) emregwrite_v + (g 'emregwrite (g 'impl st11)) + emresult_v (g 'emresult (g 'impl st11)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st11)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st11)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st11)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st11)) + emmemwrite_v + (g 'emmemwrite (g 'impl st11)) mmwrt_v + (g 'mmwrt (g 'impl st11)) mmval_v + (g 'mmval (g 'impl st11)) mmdest_v + (g 'mmdest (g 'impl st11)) mmregwrite_v + (g 'mmregwrite (g 'impl st11)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st11)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st11)) + mwwrt_v (g 'mwwrt (g 'impl st11)) + mwval_v (g 'mwval (g 'impl st11)) + mwdest_v (g 'mwdest (g 'impl st11)) + mwregwrite_v + (g 'mwregwrite (g 'impl st11)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st11)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st11)))) + (st12 (simulate_a st11 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_2 (g 'impl st11)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st12)) + prf_v a1 (g 'prf (g 'impl st12)) + pimem_v (g 'pimem (g 'impl st12)) + pdmem_v (g 'pdmem (g 'impl st12)) + pepc_v (g 'pepc (g 'impl st12)) + pisexception_v + (g 'pisexception (g 'impl st12)) + ffwrt_v (g 'ffwrt (g 'impl st12)) + ffppc_v (g 'ffppc (g 'impl st12)) + ffinst_v (g 'ffinst (g 'impl st12)) + fdwrt_v (g 'fdwrt (g 'impl st12)) + fdppc_v (g 'fdppc (g 'impl st12)) + fdinst_v (g 'fdinst (g 'impl st12)) + dewrt_v (g 'dewrt (g 'impl st12)) + deppc_v (g 'deppc (g 'impl st12)) + deop_v (g 'deop (g 'impl st12)) + dearg1_v (g 'dearg1 (g 'impl st12)) + dearg2_v (g 'dearg2 (g 'impl st12)) + dedest_v (g 'dedest (g 'impl st12)) + desrc1_v (g 'desrc1 (g 'impl st12)) + desrc2_v (g 'desrc2 (g 'impl st12)) + deimm_v (g 'deimm (g 'impl st12)) + deuseimm_v (g 'deuseimm (g 'impl st12)) + deisbranch_v + (g 'deisbranch (g 'impl st12)) + dememtoreg_v + (g 'dememtoreg (g 'impl st12)) + dememwrite_v + (g 'dememwrite (g 'impl st12)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st12)) + deregwrite_v + (g 'deregwrite (g 'impl st12)) emwrt_v + (g 'emwrt (g 'impl st12)) emtargetpc_v + (g 'emtargetpc (g 'impl st12)) emdest_v + (g 'emdest (g 'impl st12)) emarg2_v + (g 'emarg2 (g 'impl st12)) emregwrite_v + (g 'emregwrite (g 'impl st12)) + emresult_v (g 'emresult (g 'impl st12)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st12)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st12)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st12)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st12)) + emmemwrite_v + (g 'emmemwrite (g 'impl st12)) mmwrt_v + (g 'mmwrt (g 'impl st12)) mmval_v + (g 'mmval (g 'impl st12)) mmdest_v + (g 'mmdest (g 'impl st12)) mmregwrite_v + (g 'mmregwrite (g 'impl st12)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st12)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st12)) + mwwrt_v (g 'mwwrt (g 'impl st12)) + mwval_v (g 'mwval (g 'impl st12)) + mwdest_v (g 'mwdest (g 'impl st12)) + mwregwrite_v + (g 'mwregwrite (g 'impl st12)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st12)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st12)))) + (st13 (simulate_a st12 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_2 (g 'impl st12)))) + (equiv_ma_5 + (equiv_ma ppc_v (g 'ppc (g 'impl st13)) + prf_v a1 (g 'prf (g 'impl st13)) + pimem_v (g 'pimem (g 'impl st13)) + pdmem_v (g 'pdmem (g 'impl st13)) + pepc_v (g 'pepc (g 'impl st13)) + pisexception_v + (g 'pisexception (g 'impl st13)) + ffwrt_v (g 'ffwrt (g 'impl st13)) + ffppc_v (g 'ffppc (g 'impl st13)) + ffinst_v (g 'ffinst (g 'impl st13)) + fdwrt_v (g 'fdwrt (g 'impl st13)) + fdppc_v (g 'fdppc (g 'impl st13)) + fdinst_v (g 'fdinst (g 'impl st13)) + dewrt_v (g 'dewrt (g 'impl st13)) + deppc_v (g 'deppc (g 'impl st13)) + deop_v (g 'deop (g 'impl st13)) + dearg1_v (g 'dearg1 (g 'impl st13)) + dearg2_v (g 'dearg2 (g 'impl st13)) + dedest_v (g 'dedest (g 'impl st13)) + desrc1_v (g 'desrc1 (g 'impl st13)) + desrc2_v (g 'desrc2 (g 'impl st13)) + deimm_v (g 'deimm (g 'impl st13)) + deuseimm_v (g 'deuseimm (g 'impl st13)) + deisbranch_v + (g 'deisbranch (g 'impl st13)) + dememtoreg_v + (g 'dememtoreg (g 'impl st13)) + dememwrite_v + (g 'dememwrite (g 'impl st13)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st13)) + deregwrite_v + (g 'deregwrite (g 'impl st13)) emwrt_v + (g 'emwrt (g 'impl st13)) emtargetpc_v + (g 'emtargetpc (g 'impl st13)) emdest_v + (g 'emdest (g 'impl st13)) emarg2_v + (g 'emarg2 (g 'impl st13)) emregwrite_v + (g 'emregwrite (g 'impl st13)) + emresult_v (g 'emresult (g 'impl st13)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st13)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st13)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st13)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st13)) + emmemwrite_v + (g 'emmemwrite (g 'impl st13)) mmwrt_v + (g 'mmwrt (g 'impl st13)) mmval_v + (g 'mmval (g 'impl st13)) mmdest_v + (g 'mmdest (g 'impl st13)) mmregwrite_v + (g 'mmregwrite (g 'impl st13)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st13)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st13)) + mwwrt_v (g 'mwwrt (g 'impl st13)) + mwval_v (g 'mwval (g 'impl st13)) + mwdest_v (g 'mwdest (g 'impl st13)) + mwregwrite_v + (g 'mwregwrite (g 'impl st13)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st13)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st13)))) + (st14 (simulate_a st13 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_2 (g 'impl st13)))) + (equiv_ma_6 + (equiv_ma ppc_v (g 'ppc (g 'impl st14)) + prf_v a1 (g 'prf (g 'impl st14)) + pimem_v (g 'pimem (g 'impl st14)) + pdmem_v (g 'pdmem (g 'impl st14)) + pepc_v (g 'pepc (g 'impl st14)) + pisexception_v + (g 'pisexception (g 'impl st14)) + ffwrt_v (g 'ffwrt (g 'impl st14)) + ffppc_v (g 'ffppc (g 'impl st14)) + ffinst_v (g 'ffinst (g 'impl st14)) + fdwrt_v (g 'fdwrt (g 'impl st14)) + fdppc_v (g 'fdppc (g 'impl st14)) + fdinst_v (g 'fdinst (g 'impl st14)) + dewrt_v (g 'dewrt (g 'impl st14)) + deppc_v (g 'deppc (g 'impl st14)) + deop_v (g 'deop (g 'impl st14)) + dearg1_v (g 'dearg1 (g 'impl st14)) + dearg2_v (g 'dearg2 (g 'impl st14)) + dedest_v (g 'dedest (g 'impl st14)) + desrc1_v (g 'desrc1 (g 'impl st14)) + desrc2_v (g 'desrc2 (g 'impl st14)) + deimm_v (g 'deimm (g 'impl st14)) + deuseimm_v (g 'deuseimm (g 'impl st14)) + deisbranch_v + (g 'deisbranch (g 'impl st14)) + dememtoreg_v + (g 'dememtoreg (g 'impl st14)) + dememwrite_v + (g 'dememwrite (g 'impl st14)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st14)) + deregwrite_v + (g 'deregwrite (g 'impl st14)) emwrt_v + (g 'emwrt (g 'impl st14)) emtargetpc_v + (g 'emtargetpc (g 'impl st14)) emdest_v + (g 'emdest (g 'impl st14)) emarg2_v + (g 'emarg2 (g 'impl st14)) emregwrite_v + (g 'emregwrite (g 'impl st14)) + emresult_v (g 'emresult (g 'impl st14)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st14)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st14)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st14)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st14)) + emmemwrite_v + (g 'emmemwrite (g 'impl st14)) mmwrt_v + (g 'mmwrt (g 'impl st14)) mmval_v + (g 'mmval (g 'impl st14)) mmdest_v + (g 'mmdest (g 'impl st14)) mmregwrite_v + (g 'mmregwrite (g 'impl st14)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st14)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st14)) + mwwrt_v (g 'mwwrt (g 'impl st14)) + mwval_v (g 'mwval (g 'impl st14)) + mwdest_v (g 'mwdest (g 'impl st14)) + mwregwrite_v + (g 'mwregwrite (g 'impl st14)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st14)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st14)))) + (good_ma_v + (or (or equiv_ma_2 equiv_ma_5) equiv_ma_6)) + (st15 (simulate_a st14 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_2 (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_2 (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_2 (g 'impl st16)))) + (st18 (simulate_a st17 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_2 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_2 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_2 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_2 (g 'impl st20)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'mmwrt (g 'impl st21)) + (g 'mmppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ffwrt (g 'impl st21)) + (g 'ffppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0 (g 'prf (g 'impl st21))) + (i_dmem0 (g 'pdmemhist_2 (g 'impl st21))) + (i_epc0 (g 'pepchist_2 (g 'impl st21))) + (i_isexception0 + (g 'pisexceptionhist_2 (g 'impl st21))) + (rank_w (rank (g 'mwwrt (g 'impl st21)) zero + (g 'mmwrt (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'ffwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st21)) + (g 'pdmemhist_2 (g 'impl st21)))) + (s_pc0 (g 'spc (g 'spec st22))) + (s_rf0 (g 'srf (g 'spec st22))) + (s_dmem0 (g 'sdmem (g 'spec st22))) + (s_epc0 (g 'sepc (g 'spec st22))) + (s_isexception0 + (g 'sisexception (g 'spec st22))) + (i_pc (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'mmwrt (g 'impl st22)) + (g 'mmppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ffwrt (g 'impl st22)) + (g 'ffppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf (g 'prf (g 'impl st22))) + (i_dmem (g 'pdmemhist_2 (g 'impl st22))) + (i_epc (g 'pepchist_2 (g 'impl st22))) + (i_isexception + (g 'pisexceptionhist_2 (g 'impl st22))) + (rank_v (rank (g 'mwwrt (g 'impl st22)) zero + (g 'mmwrt (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'ffwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_2 (g 'impl st22)))) + (s_pc1 (g 'spc (g 'spec st23))) + (s_rf1 (g 'srf (g 'spec st23))) + (s_dmem1 (g 'sdmem (g 'spec st23))) + (s_epc1 (g 'sepc (g 'spec st23))) + (s_isexception1 + (g 'sisexception (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_2 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_2 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_2 (g 'impl st25)))) + (st27 (simulate_a st26 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st26)) + (g 'pdmemhist_2 (g 'impl st26)))) + (st28 (simulate_a st27 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_2 (g 'impl st27)))) + (st29 (simulate_a st28 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_2 (g 'impl st28)))) + (i_pc0_2 (committedpc (g 'mwwrt (g 'impl st29)) + (g 'mwppc (g 'impl st29)) + (g 'mmwrt (g 'impl st29)) + (g 'mmppc (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'emppc (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'deppc (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'fdppc (g 'impl st29)) + (g 'ffwrt (g 'impl st29)) + (g 'ffppc (g 'impl st29)) + (g 'ppc (g 'impl st29)))) + (i_rf0_2 (g 'prf (g 'impl st29))) + (i_dmem0_2 (g 'pdmemhist_2 (g 'impl st29))) + (i_epc0_2 (g 'pepchist_2 (g 'impl st29))) + (i_isexception0_2 + (g 'pisexceptionhist_2 (g 'impl st29))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st29)) zero + (g 'mmwrt (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'ffwrt (g 'impl st29)))) + (st30 (simulate_a st29 nil nil t i_pc0_2 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st29)) + (g 'pdmemhist_2 (g 'impl st29)))) + (s_pc0_2 (g 'spc (g 'spec st30))) + (s_rf0_2 (g 'srf (g 'spec st30))) + (s_dmem0_2 (g 'sdmem (g 'spec st30))) + (s_epc0_2 (g 'sepc (g 'spec st30))) + (s_isexception0_2 + (g 'sisexception (g 'spec st30))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'mmwrt (g 'impl st30)) + (g 'mmppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ffwrt (g 'impl st30)) + (g 'ffppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf_2 (g 'prf (g 'impl st30))) + (i_dmem_2 (g 'pdmemhist_2 (g 'impl st30))) + (i_epc_2 (g 'pepchist_2 (g 'impl st30))) + (i_isexception_2 + (g 'pisexceptionhist_2 (g 'impl st30))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'mmwrt (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'ffwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st30)) + (g 'pdmemhist_2 (g 'impl st30)))) + (s_pc1_2 (g 'spc (g 'spec st31))) + (s_rf1_2 (g 'srf (g 'spec st31))) + (s_dmem1_2 (g 'sdmem (g 'spec st31))) + (s_epc1_2 (g 'sepc (g 'spec st31))) + (s_isexception1_2 + (g 'sisexception (g 'spec st31))) + (st32 (simulate_a st31 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_2 (g 'impl st31)))) + (st33 (simulate_a st32 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_2 (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st33)) + (g 'pdmemhist_2 (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_2 (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st35)) + (g 'pdmemhist_2 (g 'impl st35)))) + (i_pc0_3 (committedpc (g 'mwwrt (g 'impl st36)) + (g 'mwppc (g 'impl st36)) + (g 'mmwrt (g 'impl st36)) + (g 'mmppc (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'emppc (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'deppc (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'fdppc (g 'impl st36)) + (g 'ffwrt (g 'impl st36)) + (g 'ffppc (g 'impl st36)) + (g 'ppc (g 'impl st36)))) + (i_rf0_3 (g 'prf (g 'impl st36))) + (i_dmem0_3 (g 'pdmemhist_2 (g 'impl st36))) + (i_epc0_3 (g 'pepchist_2 (g 'impl st36))) + (i_isexception0_3 + (g 'pisexceptionhist_2 (g 'impl st36))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st36)) zero + (g 'mmwrt (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'ffwrt (g 'impl st36)))) + (st37 (simulate_a st36 nil nil t i_pc0_3 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st36)) + (g 'pdmemhist_2 (g 'impl st36)))) + (s_pc0_3 (g 'spc (g 'spec st37))) + (s_rf0_3 (g 'srf (g 'spec st37))) + (s_dmem0_3 (g 'sdmem (g 'spec st37))) + (s_epc0_3 (g 'sepc (g 'spec st37))) + (s_isexception0_3 + (g 'sisexception (g 'spec st37))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st37)) + (g 'mwppc (g 'impl st37)) + (g 'mmwrt (g 'impl st37)) + (g 'mmppc (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'emppc (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'deppc (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'fdppc (g 'impl st37)) + (g 'ffwrt (g 'impl st37)) + (g 'ffppc (g 'impl st37)) + (g 'ppc (g 'impl st37)))) + (i_rf_3 (g 'prf (g 'impl st37))) + (i_dmem_3 (g 'pdmemhist_2 (g 'impl st37))) + (i_epc_3 (g 'pepchist_2 (g 'impl st37))) + (i_isexception_3 + (g 'pisexceptionhist_2 (g 'impl st37))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st37)) zero + (g 'mmwrt (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'ffwrt (g 'impl st37)))) + (st38 (simulate_a st37 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st37)) + (g 'pdmemhist_2 (g 'impl st37)))) + (s_pc1_3 (g 'spc (g 'spec st38))) + (s_rf1_3 (g 'srf (g 'spec st38))) + (s_dmem1_3 (g 'sdmem (g 'spec st38))) + (s_epc1_3 (g 'sepc (g 'spec st38))) + (s_isexception1_3 + (g 'sisexception (g 'spec st38))) + (st39 (simulate_a st38 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st38)) + (g 'pdmemhist_2 (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st39)) + (g 'pdmemhist_2 (g 'impl st39)))) + (st41 (simulate_a st40 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st40)) + (g 'pdmemhist_2 (g 'impl st40)))) + (st42 (simulate_a st41 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st41)) + (g 'pdmemhist_2 (g 'impl st41)))) + (i_pc0_4 (committedpc (g 'mwwrt (g 'impl st42)) + (g 'mwppc (g 'impl st42)) + (g 'mmwrt (g 'impl st42)) + (g 'mmppc (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'emppc (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'deppc (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'fdppc (g 'impl st42)) + (g 'ffwrt (g 'impl st42)) + (g 'ffppc (g 'impl st42)) + (g 'ppc (g 'impl st42)))) + (i_rf0_4 (g 'prf (g 'impl st42))) + (i_dmem0_4 (g 'pdmemhist_2 (g 'impl st42))) + (i_epc0_4 (g 'pepchist_2 (g 'impl st42))) + (i_isexception0_4 + (g 'pisexceptionhist_2 (g 'impl st42))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st42)) zero + (g 'mmwrt (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'ffwrt (g 'impl st42)))) + (st43 (simulate_a st42 nil nil t i_pc0_4 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st42)) + (g 'pdmemhist_2 (g 'impl st42)))) + (s_pc0_4 (g 'spc (g 'spec st43))) + (s_rf0_4 (g 'srf (g 'spec st43))) + (s_dmem0_4 (g 'sdmem (g 'spec st43))) + (s_epc0_4 (g 'sepc (g 'spec st43))) + (s_isexception0_4 + (g 'sisexception (g 'spec st43))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st43)) + (g 'mwppc (g 'impl st43)) + (g 'mmwrt (g 'impl st43)) + (g 'mmppc (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'emppc (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'deppc (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'fdppc (g 'impl st43)) + (g 'ffwrt (g 'impl st43)) + (g 'ffppc (g 'impl st43)) + (g 'ppc (g 'impl st43)))) + (i_rf_4 (g 'prf (g 'impl st43))) + (i_dmem_4 (g 'pdmemhist_2 (g 'impl st43))) + (i_epc_4 (g 'pepchist_2 (g 'impl st43))) + (i_isexception_4 + (g 'pisexceptionhist_2 (g 'impl st43))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st43)) zero + (g 'mmwrt (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'ffwrt (g 'impl st43)))) + (st44 (simulate_a st43 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st43)) + (g 'pdmemhist_2 (g 'impl st43)))) + (s_pc1_4 (g 'spc (g 'spec st44))) + (s_rf1_4 (g 'srf (g 'spec st44))) + (s_dmem1_4 (g 'sdmem (g 'spec st44))) + (s_epc1_4 (g 'sepc (g 'spec st44))) + (s_isexception1_4 + (g 'sisexception (g 'spec st44))) + (st45 (simulate_a st44 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st44)) + (g 'pdmemhist_2 (g 'impl st44)))) + (st46 (simulate_a st45 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st45)) + (g 'pdmemhist_2 (g 'impl st45)))) + (st47 (simulate_a st46 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st46)) + (g 'pdmemhist_2 (g 'impl st46)))) + (i_pc0_5 (committedpc (g 'mwwrt (g 'impl st47)) + (g 'mwppc (g 'impl st47)) + (g 'mmwrt (g 'impl st47)) + (g 'mmppc (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'emppc (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'deppc (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'fdppc (g 'impl st47)) + (g 'ffwrt (g 'impl st47)) + (g 'ffppc (g 'impl st47)) + (g 'ppc (g 'impl st47)))) + (i_rf0_5 (g 'prf (g 'impl st47))) + (i_dmem0_5 (g 'pdmemhist_2 (g 'impl st47))) + (i_epc0_5 (g 'pepchist_2 (g 'impl st47))) + (i_isexception0_5 + (g 'pisexceptionhist_2 (g 'impl st47))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st47)) zero + (g 'mmwrt (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'ffwrt (g 'impl st47)))) + (st48 (simulate_a st47 nil nil t i_pc0_5 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st47)) + (g 'pdmemhist_2 (g 'impl st47)))) + (s_pc0_5 (g 'spc (g 'spec st48))) + (s_rf0_5 (g 'srf (g 'spec st48))) + (s_dmem0_5 (g 'sdmem (g 'spec st48))) + (s_epc0_5 (g 'sepc (g 'spec st48))) + (s_isexception0_5 + (g 'sisexception (g 'spec st48))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st48)) + (g 'mwppc (g 'impl st48)) + (g 'mmwrt (g 'impl st48)) + (g 'mmppc (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'emppc (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'deppc (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'fdppc (g 'impl st48)) + (g 'ffwrt (g 'impl st48)) + (g 'ffppc (g 'impl st48)) + (g 'ppc (g 'impl st48)))) + (i_rf_5 (g 'prf (g 'impl st48))) + (i_dmem_5 (g 'pdmemhist_2 (g 'impl st48))) + (i_epc_5 (g 'pepchist_2 (g 'impl st48))) + (i_isexception_5 + (g 'pisexceptionhist_2 (g 'impl st48))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st48)) zero + (g 'mmwrt (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'ffwrt (g 'impl st48)))) + (st49 (simulate_a st48 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st48)) + (g 'pdmemhist_2 (g 'impl st48)))) + (s_pc1_5 (g 'spc (g 'spec st49))) + (s_rf1_5 (g 'srf (g 'spec st49))) + (s_dmem1_5 (g 'sdmem (g 'spec st49))) + (s_epc1_5 (g 'sepc (g 'spec st49))) + (s_isexception1_5 + (g 'sisexception (g 'spec st49))) + (st50 (simulate_a st49 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st49)) + (g 'pdmemhist_2 (g 'impl st49)))) + (st51 (simulate_a st50 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st50)) + (g 'pdmemhist_2 (g 'impl st50)))) + (i_pc0_6 (committedpc (g 'mwwrt (g 'impl st51)) + (g 'mwppc (g 'impl st51)) + (g 'mmwrt (g 'impl st51)) + (g 'mmppc (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'emppc (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'deppc (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'fdppc (g 'impl st51)) + (g 'ffwrt (g 'impl st51)) + (g 'ffppc (g 'impl st51)) + (g 'ppc (g 'impl st51)))) + (i_rf0_6 (g 'prf (g 'impl st51))) + (i_dmem0_6 (g 'pdmemhist_2 (g 'impl st51))) + (i_epc0_6 (g 'pepchist_2 (g 'impl st51))) + (i_isexception0_6 + (g 'pisexceptionhist_2 (g 'impl st51))) + (rank_w_6 + (rank (g 'mwwrt (g 'impl st51)) zero + (g 'mmwrt (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'ffwrt (g 'impl st51)))) + (st52 (simulate_a st51 nil nil t i_pc0_6 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st51)) + (g 'pdmemhist_2 (g 'impl st51)))) + (s_pc0_6 (g 'spc (g 'spec st52))) + (s_rf0_6 (g 'srf (g 'spec st52))) + (s_dmem0_6 (g 'sdmem (g 'spec st52))) + (s_epc0_6 (g 'sepc (g 'spec st52))) + (s_isexception0_6 + (g 'sisexception (g 'spec st52))) + (i_pc_6 (committedpc (g 'mwwrt (g 'impl st52)) + (g 'mwppc (g 'impl st52)) + (g 'mmwrt (g 'impl st52)) + (g 'mmppc (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'emppc (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'deppc (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'fdppc (g 'impl st52)) + (g 'ffwrt (g 'impl st52)) + (g 'ffppc (g 'impl st52)) + (g 'ppc (g 'impl st52)))) + (i_rf_6 (g 'prf (g 'impl st52))) + (i_dmem_6 (g 'pdmemhist_2 (g 'impl st52))) + (i_epc_6 (g 'pepchist_2 (g 'impl st52))) + (i_isexception_6 + (g 'pisexceptionhist_2 (g 'impl st52))) + (rank_v_6 + (rank (g 'mwwrt (g 'impl st52)) zero + (g 'mmwrt (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'ffwrt (g 'impl st52)))) + (st53 (simulate_a st52 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st52)) + (g 'pdmemhist_2 (g 'impl st52)))) + (s_pc1_6 (g 'spc (g 'spec st53))) + (s_rf1_6 (g 'srf (g 'spec st53))) + (s_dmem1_6 (g 'sdmem (g 'spec st53))) + (s_epc1_6 (g 'sepc (g 'spec st53))) + (s_isexception1_6 + (g 'sisexception (g 'spec st53))) + (st54 (simulate_a st53 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st53)) + (g 'pdmemhist_2 (g 'impl st53)))) + (i_pc0_7 (committedpc (g 'mwwrt (g 'impl st54)) + (g 'mwppc (g 'impl st54)) + (g 'mmwrt (g 'impl st54)) + (g 'mmppc (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'emppc (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'deppc (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'fdppc (g 'impl st54)) + (g 'ffwrt (g 'impl st54)) + (g 'ffppc (g 'impl st54)) + (g 'ppc (g 'impl st54)))) + (i_rf0_7 (g 'prf (g 'impl st54))) + (i_dmem0_7 (g 'pdmemhist_2 (g 'impl st54))) + (i_epc0_7 (g 'pepchist_2 (g 'impl st54))) + (i_isexception0_7 + (g 'pisexceptionhist_2 (g 'impl st54))) + (rank_w_7 + (rank (g 'mwwrt (g 'impl st54)) zero + (g 'mmwrt (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'ffwrt (g 'impl st54)))) + (st55 (simulate_a st54 nil nil t i_pc0_7 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st54)) + (g 'pdmemhist_2 (g 'impl st54)))) + (s_pc0_7 (g 'spc (g 'spec st55))) + (s_rf0_7 (g 'srf (g 'spec st55))) + (s_dmem0_7 (g 'sdmem (g 'spec st55))) + (s_epc0_7 (g 'sepc (g 'spec st55))) + (s_isexception0_7 + (g 'sisexception (g 'spec st55))) + (i_pc_7 (committedpc (g 'mwwrt (g 'impl st55)) + (g 'mwppc (g 'impl st55)) + (g 'mmwrt (g 'impl st55)) + (g 'mmppc (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'emppc (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'deppc (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'fdppc (g 'impl st55)) + (g 'ffwrt (g 'impl st55)) + (g 'ffppc (g 'impl st55)) + (g 'ppc (g 'impl st55)))) + (i_rf_7 (g 'prf (g 'impl st55))) + (i_dmem_7 (g 'pdmemhist_2 (g 'impl st55))) + (i_epc_7 (g 'pepchist_2 (g 'impl st55))) + (i_isexception_7 + (g 'pisexceptionhist_2 (g 'impl st55))) + (rank_v_7 + (rank (g 'mwwrt (g 'impl st55)) zero + (g 'mmwrt (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'ffwrt (g 'impl st55)))) + (st56 (simulate_a st55 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st55)) + (g 'pdmemhist_2 (g 'impl st55)))) + (s_pc1_7 (g 'spc (g 'spec st56))) + (s_rf1_7 (g 'srf (g 'spec st56))) + (s_dmem1_7 (g 'sdmem (g 'spec st56))) + (s_epc1_7 (g 'sepc (g 'spec st56))) + (s_isexception1_7 + (g 'sisexception (g 'spec st56)))) + (and (and (and (and (and + (and + (and good_ma_v + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0 i_pc0) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0)) + (equal s_epc0 i_epc0)) + (equalb s_isexception0 + i_isexception0))) + (and + (and + (and + (and (equal s_pc1 i_pc) + (equal + (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem)) + (equal s_epc1 i_epc)) + (equalb s_isexception1 + i_isexception))) + (and + (and + (and + (and (equal s_pc0 i_pc) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (equal s_epc0 i_epc)) + (equalb s_isexception0 + i_isexception)))) + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0_2 i_pc0_2) + (equal + (read-srf_a a1 + s_rf0_2) + (read-prf_a a1 + i_rf0_2))) + (equal s_dmem0_2 + i_dmem0_2)) + (equal s_epc0_2 i_epc0_2)) + (equalb s_isexception0_2 + i_isexception0_2))) + (and + (and + (and + (and + (equal s_pc1_2 i_pc_2) + (equal + (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 + i_dmem_2)) + (equal s_epc1_2 i_epc_2)) + (equalb s_isexception1_2 + i_isexception_2))) + (and + (and + (and + (and + (equal s_pc0_2 i_pc_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)) + (equal s_epc0_2 i_epc_2)) + (equalb s_isexception0_2 + i_isexception_2)))) + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0_3 i_pc0_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 + i_dmem0_3)) + (equal s_epc0_3 i_epc0_3)) + (equalb s_isexception0_3 + i_isexception0_3))) + (and + (and + (and + (and + (equal s_pc1_3 i_pc_3) + (equal + (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3)) + (equal s_epc1_3 i_epc_3)) + (equalb s_isexception1_3 + i_isexception_3))) + (and + (and + (and + (and (equal s_pc0_3 i_pc_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)) + (equal s_epc0_3 i_epc_3)) + (equalb s_isexception0_3 + i_isexception_3)))) + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0_4 i_pc0_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 + i_dmem0_4)) + (equal s_epc0_4 i_epc0_4)) + (equalb s_isexception0_4 + i_isexception0_4))) + (and + (and + (and + (and (equal s_pc1_4 i_pc_4) + (equal + (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4)) + (equal s_epc1_4 i_epc_4)) + (equalb s_isexception1_4 + i_isexception_4))) + (and + (and + (and + (and (equal s_pc0_4 i_pc_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)) + (equal s_epc0_4 i_epc_4)) + (equalb s_isexception0_4 + i_isexception_4)))) + (or (or + (not + (and + (and + (and + (and (equal s_pc0_5 i_pc0_5) + (equal + (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5)) + (equal s_epc0_5 i_epc0_5)) + (equalb s_isexception0_5 + i_isexception0_5))) + (and + (and + (and + (and (equal s_pc1_5 i_pc_5) + (equal + (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5)) + (equal s_epc1_5 i_epc_5)) + (equalb s_isexception1_5 + i_isexception_5))) + (and + (and + (and + (and (equal s_pc0_5 i_pc_5) + (equal + (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)) + (equal s_epc0_5 i_epc_5)) + (equalb s_isexception0_5 + i_isexception_5)))) + (or (or (not + (and + (and + (and + (and (equal s_pc0_6 i_pc0_6) + (equal + (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf0_6))) + (equal s_dmem0_6 i_dmem0_6)) + (equal s_epc0_6 i_epc0_6)) + (equalb s_isexception0_6 + i_isexception0_6))) + (and + (and + (and + (and (equal s_pc1_6 i_pc_6) + (equal (read-srf_a a1 s_rf1_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem1_6 i_dmem_6)) + (equal s_epc1_6 i_epc_6)) + (equalb s_isexception1_6 + i_isexception_6))) + (and (and + (and + (and (equal s_pc0_6 i_pc_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem0_6 i_dmem_6)) + (equal s_epc0_6 i_epc_6)) + (equalb s_isexception0_6 + i_isexception_6)))) + (or (or (not (and + (and + (and + (and (equal s_pc0_7 i_pc0_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf0_7))) + (equal s_dmem0_7 i_dmem0_7)) + (equal s_epc0_7 i_epc0_7)) + (equalb s_isexception0_7 + i_isexception0_7))) + (and (and + (and + (and (equal s_pc1_7 i_pc_7) + (equal (read-srf_a a1 s_rf1_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem1_7 i_dmem_7)) + (equal s_epc1_7 i_epc_7)) + (equalb s_isexception1_7 + i_isexception_7))) + (and (and (and + (and (equal s_pc0_7 i_pc_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem0_7 i_dmem_7)) + (equal s_epc0_7 i_epc_7)) + (equalb s_isexception0_7 + i_isexception_7)))))) + :rule-classes nil) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex.lisp new file mode 100644 index 0000000..0178752 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex.lisp @@ -0,0 +1,4457 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + + (encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + (encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + (encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + (encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + (encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + (encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + (encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + (encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + (encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + (encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + (encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + (encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + (encapsulate ((alu_exception (x3 x2 x1) t)) + (local (defun alu_exception (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm alu_exception-type (booleanp (alu_exception x3 x2 x1)))) + (encapsulate ((getreturnfromexception (x1) t)) + (local (defun getreturnfromexception (x1) + (declare (ignore x1)) + nil)) + (defthm getreturnfromexception-type + (booleanp (getreturnfromexception x1)))) + (encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + (encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + (encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + (defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + (defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (and (and (g 3 (car prf)) + (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (g 7 (car prf))) + (g 8 (car prf))) + (t (read-prf_a a (cdr prf))))))) + (defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + (defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (g 8 (car srf))) + (g 9 (car srf))) + (t (read-srf_a a (cdr srf))))))) + (defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + (defun impl-state_a + (pimem ppc bpstate ffbpstate ffpredicteddirection + ffpredictedtarget ffwrt ffinst ffppc prf fdbpstate fdppc + fdwrt fdinst fdpredicteddirection fdpredictedtarget + debpstate deppc desrc1 desrc2 dearg1 dearg2 dedest deop + deimm deuseimm deisreturnfromexception deregwrite + dememwrite dememtoreg deisbranch dewrt + depredicteddirection depredictedtarget embpstate emppc + emis_alu_exception emis_taken_branch emtargetpc emarg2 + emresult emdest emwrt emisreturnfromexception + emmispredictedtaken emmispredictednottaken emregwrite + emmemwrite emmemtoreg pdmemhist_2 pdmemhist_1 pdmem + pepchist_2 pepchist_1 pepc pisexceptionhist_2 + pisexceptionhist_1 pisexception mmbpstate + mmisreturnfromexception mmis_alu_exception mmppc mmval + mmdest mmwrt mmregwrite mwbpstate + mwisreturnfromexception mwis_alu_exception mwppc mwval + mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'bpstate bpstate 'ffbpstate ffbpstate + 'ffpredicteddirection ffpredicteddirection 'ffpredictedtarget + ffpredictedtarget 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf + prf 'fdbpstate fdbpstate 'fdppc fdppc 'fdwrt fdwrt 'fdinst + fdinst 'fdpredicteddirection fdpredicteddirection + 'fdpredictedtarget fdpredictedtarget 'debpstate debpstate + 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 dearg1 + 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm deimm 'deuseimm + deuseimm 'deisreturnfromexception deisreturnfromexception + 'deregwrite deregwrite 'dememwrite dememwrite 'dememtoreg + dememtoreg 'deisbranch deisbranch 'dewrt dewrt + 'depredicteddirection depredicteddirection 'depredictedtarget + depredictedtarget 'embpstate embpstate 'emppc emppc + 'emis_alu_exception emis_alu_exception 'emis_taken_branch + emis_taken_branch 'emtargetpc emtargetpc 'emarg2 emarg2 + 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emisreturnfromexception emisreturnfromexception + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'pepchist_2 pepchist_2 'pepchist_1 pepchist_1 'pepc pepc + 'pisexceptionhist_2 pisexceptionhist_2 'pisexceptionhist_1 + pisexceptionhist_1 'pisexception pisexception 'mmbpstate + mmbpstate 'mmisreturnfromexception mmisreturnfromexception + 'mmis_alu_exception mmis_alu_exception 'mmppc mmppc 'mmval + mmval 'mmdest mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite + 'mwbpstate mwbpstate 'mwisreturnfromexception + mwisreturnfromexception 'mwis_alu_exception mwis_alu_exception + 'mwppc mwppc 'mwval mwval 'mwdest mwdest 'mwwrt mwwrt + 'mwregwrite mwregwrite)) + (defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + (defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + (defun initppc_a (pc0) pc0) + (defun nextppc_a + (initi pc0 commit_impl commit_pc mem1_is_returnfromexception + pepc mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken emppc mem1_mispredicted_nottaken + emtargetpc stall ppc if_predict_branch_taken + predicted_target) + (cond + (initi pc0) + (commit_impl commit_pc) + (mem1_is_returnfromexception pepc) + (mem1_is_alu_exception alu_exception_handler) + (mem1_mispredicted_taken (add-1 emppc)) + (mem1_mispredicted_nottaken emtargetpc) + (stall ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + (defun initbpstate_a (bpstate0) bpstate0) + (defun nextbpstate_a + (initi bpstate0 commit_impl commit_bpstate stall bpstate) + (cond + (initi bpstate0) + (commit_impl commit_bpstate) + (stall bpstate) + (t (nextbpstate bpstate)))) + (defun initffbpstate_a (ffbpstate0) ffbpstate0) + (defun nextffbpstate_a (initi ffbpstate0 stall ffbpstate bpstate) + (cond (initi ffbpstate0) (stall ffbpstate) (t bpstate))) + (defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + (defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + (defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + (defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + (defun initffwrt_a () nil) + (defun nextffwrt_a (initi commit_impl squash stall ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall ffwrt) + (t t))) + (defun initffinst_a (ffinst0) ffinst0) + (defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + (defun initffppc_a (ffppc0) ffppc0) + (defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + (defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + (defun nextprf_a + (prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest + (s 5 mwregwrite + (s 6 wb_is_alu_exception_bar + (s 7 wb_is_returnfromexception_bar + (s 8 mwval nil))))))))) + prf)) + (defun initfdbpstate_a (fdbpstate0) fdbpstate0) + (defun nextfdbpstate_a (initi fdbpstate0 stall fdbpstate ffbpstate) + (cond (initi fdbpstate0) (stall fdbpstate) (t ffbpstate))) + (defun initfdppc_a (fdppc0) fdppc0) + (defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + (defun initfdwrt_a () nil) + (defun nextfdwrt_a (initi commit_impl squash stall fdwrt ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall fdwrt) + (t ffwrt))) + (defun initfdinst_a (fdinst0) fdinst0) + (defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + (defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + (defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + (defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + (defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + (defun initdebpstate_a (debpstate0) debpstate0) + (defun nextdebpstate_a (initi debpstate0 fdbpstate) + (cond (initi debpstate0) (t fdbpstate))) + (defun initdeppc_a (deppc0) deppc0) + (defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + (defun initdesrc1_a (desrc10) desrc10) + (defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + (defun initdesrc2_a (desrc20) desrc20) + (defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + (defun initdearg1_a (a1) a1) + (defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval))))) + (defun initdearg2_a (a2) a2) + (defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval))))) + (defun initdedest_a (dedest0) dedest0) + (defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + (defun initdeop_a (deop0) deop0) + (defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + (defun initdeimm_a (deimm0) deimm0) + (defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + (defun initdeuseimm_a (deuseimm0) deuseimm0) + (defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + (defun initdeisreturnfromexception_a (deisreturnfromexception0) + deisreturnfromexception0) + (defun nextdeisreturnfromexception_a + (initi deisreturnfromexception0 fdinst) + (cond + (initi deisreturnfromexception0) + (t (getreturnfromexception fdinst)))) + (defun initderegwrite_a (deregwrite0) deregwrite0) + (defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + (defun initdememwrite_a (dememwrite0) dememwrite0) + (defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + (defun initdememtoreg_a (dememtoreg0) dememtoreg0) + (defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + (defun initdeisbranch_a (deisbranch0) deisbranch0) + (defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + (defun initdewrt_a () nil) + (defun nextdewrt_a (initi commit_impl squash stall fdwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (t (and (not stall) fdwrt)))) + (defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + (defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + (defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + (defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + (defun initembpstate_a (embpstate0) embpstate0) + (defun nextembpstate_a (initi embpstate0 debpstate) + (cond (initi embpstate0) (t debpstate))) + (defun initemppc_a (emppc0) emppc0) + (defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + (defun initemis_alu_exception_a (emis_alu_exception0) + emis_alu_exception0) + (defun nextemis_alu_exception_a + (initi emis_alu_exception0 ex_is_alu_exception) + (cond (initi emis_alu_exception0) (t ex_is_alu_exception))) + (defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + (defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + (defun initemtargetpc_a (emtargetpc0) emtargetpc0) + (defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + (defun initemarg2_a (emarg20) emarg20) + (defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + (defun initemresult_a (emresult0) emresult0) + (defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + (defun initemdest_a (emdest0) emdest0) + (defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + (defun initemwrt_a () nil) + (defun nextemwrt_a (initi commit_impl squash dewrt) + (cond (initi nil) (commit_impl nil) (squash nil) (t dewrt))) + (defun initemisreturnfromexception_a (emisreturnfromexception0) + emisreturnfromexception0) + (defun nextemisreturnfromexception_a + (initi emisreturnfromexception0 deisreturnfromexception) + (cond (initi emisreturnfromexception0) (t deisreturnfromexception))) + (defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + (defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + (defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + (defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + (defun initemregwrite_a (emregwrite0) emregwrite0) + (defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + (defun initemmemwrite_a (emmemwrite0) emmemwrite0) + (defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + (defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + (defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + (defun initpdmemhist_2_a (dmem0) dmem0) + (defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + (defun initpdmemhist_1_a (dmem0) dmem0) + (defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + (defun initpdmem_a (dmem0) dmem0) + (defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_2 emwrt emmemwrite + mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar pdmem emresult emarg2) + (cond + (initi dmem0) + (commit_impl pdmemhist_2) + ((and (and (and emwrt emmemwrite) mem1_is_alu_exception_bar) + mem1_is_returnfromexception_bar) + (nextdmem pdmem emresult emarg2)) + (t pdmem))) + (defun initpepchist_2_a (epc0) epc0) + (defun nextpepchist_2_a (initi epc0 pepchist_1) + (cond (initi epc0) (t pepchist_1))) + (defun initpepchist_1_a (epc0) epc0) + (defun nextpepchist_1_a (initi epc0 pepc) + (cond (initi epc0) (t pepc))) + (defun initpepc_a (epc0) epc0) + (defun nextpepc_a + (initi epc0 commit_impl pepchist_2 mem1_is_alu_exception + mem1_is_returnfromexception_bar emppc pepc) + (cond + (initi epc0) + (commit_impl pepchist_2) + ((and mem1_is_alu_exception mem1_is_returnfromexception_bar) + emppc) + (t pepc))) + (defun initpisexceptionhist_2_a (isexception0) isexception0) + (defun nextpisexceptionhist_2_a + (initi isexception0 pisexceptionhist_1) + (cond (initi isexception0) (t pisexceptionhist_1))) + (defun initpisexceptionhist_1_a (isexception0) isexception0) + (defun nextpisexceptionhist_1_a (initi isexception0 pisexception) + (cond (initi isexception0) (t pisexception))) + (defun initpisexception_a (isexception0) isexception0) + (defun nextpisexception_a + (initi isexception0 commit_impl pisexceptionhist_2 + mem1_is_alu_exception mem1_is_returnfromexception + mem1_is_returnfromexception_bar pisexception) + (cond + (initi isexception0) + (commit_impl pisexceptionhist_2) + ((or mem1_is_alu_exception mem1_is_returnfromexception) + (and mem1_is_alu_exception mem1_is_returnfromexception_bar)) + (t pisexception))) + (defun initmmbpstate_a (mmbpstate0) mmbpstate0) + (defun nextmmbpstate_a (initi mmbpstate0 embpstate) + (cond (initi mmbpstate0) (t embpstate))) + (defun initmmisreturnfromexception_a (mmisreturnfromexception0) + mmisreturnfromexception0) + (defun nextmmisreturnfromexception_a + (initi mmisreturnfromexception0 emisreturnfromexception) + (cond (initi mmisreturnfromexception0) (t emisreturnfromexception))) + (defun initmmis_alu_exception_a (mmis_alu_exception0) + mmis_alu_exception0) + (defun nextmmis_alu_exception_a + (initi mmis_alu_exception0 emis_alu_exception) + (cond (initi mmis_alu_exception0) (t emis_alu_exception))) + (defun initmmppc_a (mmppc0) mmppc0) + (defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + (defun initmmval_a (mmval0) mmval0) + (defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + (defun initmmdest_a (mmdest0) mmdest0) + (defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + (defun initmmwrt_a () nil) + (defun nextmmwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + (defun initmmregwrite_a (mmregwrite0) mmregwrite0) + (defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + (defun initmwbpstate_a (mwbpstate0) mwbpstate0) + (defun nextmwbpstate_a (initi mwbpstate0 mmbpstate) + (cond (initi mwbpstate0) (t mmbpstate))) + (defun initmwisreturnfromexception_a (mwisreturnfromexception0) + mwisreturnfromexception0) + (defun nextmwisreturnfromexception_a + (initi mwisreturnfromexception0 mmisreturnfromexception) + (cond (initi mwisreturnfromexception0) (t mmisreturnfromexception))) + (defun initmwis_alu_exception_a (mwis_alu_exception0) + mwis_alu_exception0) + (defun nextmwis_alu_exception_a + (initi mwis_alu_exception0 mmis_alu_exception) + (cond (initi mwis_alu_exception0) (t mmis_alu_exception))) + (defun initmwppc_a (mwppc0) mwppc0) + (defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + (defun initmwval_a (mwval0) mwval0) + (defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + (defun initmwdest_a (mwdest0) mwdest0) + (defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + (defun initmwwrt_a () nil) + (defun nextmwwrt_a (initi commit_impl mmwrt) + (cond (initi nil) (commit_impl nil) (t mmwrt))) + (defun initmwregwrite_a (mwregwrite0) mwregwrite0) + (defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + (defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc alu_exception_handler + bpstate0 commit_bpstate ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdbpstate0 fdppc0 + fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) (ffbpstate (g 'ffbpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdbpstate (g 'fdbpstate impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepchist_2 (g 'pepchist_2 impl)) + (pepchist_1 (g 'pepchist_1 impl)) (pepc (g 'pepc impl)) + (pisexceptionhist_2 (g 'pisexceptionhist_2 impl)) + (pisexceptionhist_1 (g 'pisexceptionhist_1 impl)) + (pisexception (g 'pisexception impl)) + (mmbpstate (g 'mmbpstate impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash (or (or mem1_mispredicted mem1_is_alu_exception) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc + mem1_is_returnfromexception pepc mem1_is_alu_exception + alu_exception_handler mem1_mispredicted_taken emppc + mem1_mispredicted_nottaken emtargetpc stall ppc + if_predict_branch_taken predicted_target) + (nextbpstate_a initi bpstate0 commit_impl commit_bpstate + stall bpstate) + (nextffbpstate_a initi ffbpstate0 stall ffbpstate bpstate) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi commit_impl squash stall ffwrt) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (nextfdbpstate_a initi fdbpstate0 stall fdbpstate ffbpstate) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi commit_impl squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdebpstate_a initi debpstate0 fdbpstate) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextdeisreturnfromexception_a initi + deisreturnfromexception0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi commit_impl squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextembpstate_a initi embpstate0 debpstate) + (nextemppc_a initi emppc0 deppc) + (nextemis_alu_exception_a initi emis_alu_exception0 + ex_is_alu_exception) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl squash dewrt) + (nextemisreturnfromexception_a initi + emisreturnfromexception0 deisreturnfromexception) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_2 emwrt + emmemwrite mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar pdmem emresult emarg2) + (nextpepchist_2_a initi epc0 pepchist_1) + (nextpepchist_1_a initi epc0 pepc) + (nextpepc_a initi epc0 commit_impl pepchist_2 + mem1_is_alu_exception mem1_is_returnfromexception_bar + emppc pepc) + (nextpisexceptionhist_2_a initi isexception0 + pisexceptionhist_1) + (nextpisexceptionhist_1_a initi isexception0 pisexception) + (nextpisexception_a initi isexception0 commit_impl + pisexceptionhist_2 mem1_is_alu_exception + mem1_is_returnfromexception + mem1_is_returnfromexception_bar pisexception) + (nextmmbpstate_a initi mmbpstate0 embpstate) + (nextmmisreturnfromexception_a initi + mmisreturnfromexception0 emisreturnfromexception) + (nextmmis_alu_exception_a initi mmis_alu_exception0 + emis_alu_exception) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi commit_impl emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwbpstate_a initi mwbpstate0 mmbpstate) + (nextmwisreturnfromexception_a initi + mwisreturnfromexception0 mmisreturnfromexception) + (nextmwis_alu_exception_a initi mwis_alu_exception0 + mmis_alu_exception) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi commit_impl mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + (defun impl-initialize_a + (impl pc0 bpstate0 ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdbpstate0 fdppc0 + fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) (ffbpstate (g 'ffbpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdbpstate (g 'fdbpstate impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepchist_2 (g 'pepchist_2 impl)) + (pepchist_1 (g 'pepchist_1 impl)) (pepc (g 'pepc impl)) + (pisexceptionhist_2 (g 'pisexceptionhist_2 impl)) + (pisexceptionhist_1 (g 'pisexceptionhist_1 impl)) + (pisexception (g 'pisexception impl)) + (mmbpstate (g 'mmbpstate impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash (or (or mem1_mispredicted mem1_is_alu_exception) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initbpstate_a bpstate0) (initffbpstate_a ffbpstate0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) (initffwrt_a) + (initffinst_a ffinst0) (initffppc_a ffppc0) (initprf_a prf) + (initfdbpstate_a fdbpstate0) (initfdppc_a fdppc0) + (initfdwrt_a) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdebpstate_a debpstate0) (initdeppc_a deppc0) + (initdesrc1_a desrc10) (initdesrc2_a desrc20) + (initdearg1_a a1) (initdearg2_a a2) (initdedest_a dedest0) + (initdeop_a deop0) (initdeimm_a deimm0) + (initdeuseimm_a deuseimm0) + (initdeisreturnfromexception_a deisreturnfromexception0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initembpstate_a embpstate0) (initemppc_a emppc0) + (initemis_alu_exception_a emis_alu_exception0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) + (initemisreturnfromexception_a emisreturnfromexception0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initpepchist_2_a epc0) (initpepchist_1_a epc0) + (initpepc_a epc0) (initpisexceptionhist_2_a isexception0) + (initpisexceptionhist_1_a isexception0) + (initpisexception_a isexception0) + (initmmbpstate_a mmbpstate0) + (initmmisreturnfromexception_a mmisreturnfromexception0) + (initmmis_alu_exception_a mmis_alu_exception0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a) + (initmmregwrite_a mmregwrite0) (initmwbpstate_a mwbpstate0) + (initmwisreturnfromexception_a mwisreturnfromexception0) + (initmwis_alu_exception_a mwis_alu_exception0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + (defun spec-state_a (simem spc srf sdmem sepc sisexception) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem 'sepc sepc + 'sisexception sisexception)) + (defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + (defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + (defun initspc_a (pc0) pc0) + (defun nextspc_a + (initi pc0 project_impl project_pc isa is_returnfromexception + sepc is_alu_exception alu_exception_handler + is_taken_branch targetpc spc) + (cond + (initi pc0) + (project_impl project_pc) + ((and isa is_returnfromexception) sepc) + ((and isa is_alu_exception) alu_exception_handler) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + (defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + (defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_returnfromexception_bar val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa + (s 5 inst + (s 6 regwrite + (s 7 is_alu_exception_bar + (s 8 is_returnfromexception_bar + (s 9 val nil)))))))))) + srf)) + (defun initsdmem_a (dmem0) dmem0) + (defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_2 isa memwrite + is_alu_exception_bar is_returnfromexception_bar sdmem + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_2) + ((and (and (and isa memwrite) is_alu_exception_bar) + is_returnfromexception_bar) + (nextdmem sdmem result arg2_temp)) + (t sdmem))) + (defun initsepc_a (epc0) epc0) + (defun nextsepc_a + (initi epc0 isa is_alu_exception is_returnfromexception_bar spc + sepc) + (cond + (initi epc0) + ((and (and isa is_alu_exception) is_returnfromexception_bar) spc) + (t sepc))) + (defun initsisexception_a (isexception0) isexception0) + (defun nextsisexception_a + (initi isexception0 isa is_alu_exception is_returnfromexception + is_returnfromexception_bar sisexception) + (cond + (initi isexception0) + ((and isa (or is_alu_exception is_returnfromexception)) + (and is_alu_exception is_returnfromexception_bar)) + (t sisexception))) + (defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa + alu_exception_handler impl.prf dmem0 impl.pdmemhist_2 + epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec)) + (sepc (g 'sepc spec)) (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa + is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_returnfromexception_bar val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_2 isa + memwrite is_alu_exception_bar is_returnfromexception_bar + sdmem result arg2_temp) + (nextsepc_a initi epc0 isa is_alu_exception + is_returnfromexception_bar spc sepc) + (nextsisexception_a initi isexception0 isa is_alu_exception + is_returnfromexception is_returnfromexception_bar + sisexception))))) + (defun spec-initialize_a (spec pc0 dmem0 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec)) + (sepc (g 'sepc spec)) (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0) (initsepc_a epc0) + (initsisexception_a isexception0))))) + (defun simulate_a + (st initi isa project_impl project_pc commit_impl commit_pc + commit_bpstate pc0 alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 ffpredictedtarget0 ffinst0 + ffppc0 fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0 + impl.prf impl.pdmemhist_2) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + alu_exception_handler bpstate0 commit_bpstate ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa alu_exception_handler impl.prf dmem0 impl.pdmemhist_2 + epc0 isexception0))) + (defun initialize_a + (st initi isa project_impl project_pc commit_impl commit_pc + commit_bpstate pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmbpstate0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0 epc0 isexception0))) + + (defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem pepc_v impl.pepc pisexception_v + impl.pisexception ffwrt_v impl.ffwrt ffppc_v impl.ffppc + ffinst_v impl.ffinst fdwrt_v impl.fdwrt fdppc_v + impl.fdppc fdinst_v impl.fdinst dewrt_v impl.dewrt + deppc_v impl.deppc deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm deisbranch_v impl.deisbranch + dememtoreg_v impl.dememtoreg dememwrite_v + impl.dememwrite deisreturnfromexception_v + impl.deisreturnfromexception deregwrite_v + impl.deregwrite emwrt_v impl.emwrt emtargetpc_v + impl.emtargetpc emdest_v impl.emdest emarg2_v + impl.emarg2 emregwrite_v impl.emregwrite emresult_v + impl.emresult emis_taken_branch_v impl.emis_taken_branch + emmemtoreg_v impl.emmemtoreg emis_alu_exception_v + impl.emis_alu_exception emisreturnfromexception_v + impl.emisreturnfromexception emmemwrite_v + impl.emmemwrite mmwrt_v impl.mmwrt mmval_v impl.mmval + mmdest_v impl.mmdest mmregwrite_v impl.mmregwrite + mmisreturnfromexception_v impl.mmisreturnfromexception + mmis_alu_exception_v impl.mmis_alu_exception mwwrt_v + impl.mwwrt mwval_v impl.mwval mwdest_v impl.mwdest + mwregwrite_v impl.mwregwrite mwisreturnfromexception_v + impl.mwisreturnfromexception mwis_alu_exception_v + impl.mwis_alu_exception) + (declare (xargs :normalize nil)) + (and (and (and (and (and (and (and (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (equal ppc_v impl.ppc) + (equal + (read-prf_a a1 prf_v) + (read-prf_a a1 + impl.prf))) + (equal + (read-pimem_a a1 + pimem_v) + (read-pimem_a a1 + impl.pimem))) + (equal pdmem_v + impl.pdmem)) + (equal pepc_v impl.pepc)) + (equalb pisexception_v + impl.pisexception)) + (equalb ffwrt_v impl.ffwrt)) + (implies ffwrt_v + (and + (and impl.ffwrt + (equal ffppc_v impl.ffppc)) + (equal ffinst_v + impl.ffinst)))) + (equalb fdwrt_v impl.fdwrt)) + (implies fdwrt_v + (and + (and impl.fdwrt + (equal fdppc_v impl.fdppc)) + (equal fdinst_v impl.fdinst)))) + (equalb dewrt_v impl.dewrt)) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deppc_v + impl.deppc)) + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v + impl.desrc2)) + (equal deimm_v + impl.deimm)) + (equalb deuseimm_v + impl.deuseimm)) + (equalb deisbranch_v + impl.deisbranch)) + (equalb dememtoreg_v + impl.dememtoreg)) + (equalb dememwrite_v + impl.dememwrite)) + (equalb + deisreturnfromexception_v + impl.deisreturnfromexception)) + (equalb deregwrite_v + impl.deregwrite)))) + (equalb emwrt_v impl.emwrt)) + (implies emwrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.emwrt + (equal emtargetpc_v + impl.emtargetpc)) + (equal emdest_v + impl.emdest)) + (equal emarg2_v + impl.emarg2)) + (equalb emregwrite_v + impl.emregwrite)) + (equal emresult_v + impl.emresult)) + (equalb emis_taken_branch_v + impl.emis_taken_branch)) + (equalb emmemtoreg_v + impl.emmemtoreg)) + (equalb emis_alu_exception_v + impl.emis_alu_exception)) + (equalb + emisreturnfromexception_v + impl.emisreturnfromexception)) + (equalb emmemwrite_v + impl.emmemwrite)))) + (equalb mmwrt_v impl.mmwrt)) + (implies mmwrt_v + (and (and (and + (and + (and impl.mmwrt + (equal mmval_v impl.mmval)) + (equal mmdest_v impl.mmdest)) + (equalb mmregwrite_v + impl.mmregwrite)) + (equalb mmisreturnfromexception_v + impl.mmisreturnfromexception)) + (equalb mmis_alu_exception_v + impl.mmis_alu_exception)))) + (equalb mwwrt_v impl.mwwrt)) + (implies mwwrt_v + (and (and (and (and (and impl.mwwrt + (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (equalb mwregwrite_v impl.mwregwrite)) + (equalb mwisreturnfromexception_v + impl.mwisreturnfromexception)) + (equalb mwis_alu_exception_v + impl.mwis_alu_exception))))) + + (defun rank + (impl.mwwrt zero impl.mmwrt impl.emwrt impl.dewrt impl.fdwrt + impl.ffwrt) + (cond + (impl.mwwrt zero) + (impl.mmwrt (add-1 zero)) + (impl.emwrt (add-1 (add-1 zero))) + (impl.dewrt (add-1 (add-1 (add-1 zero)))) + (impl.fdwrt (add-1 (add-1 (add-1 (add-1 zero))))) + (impl.ffwrt (add-1 (add-1 (add-1 (add-1 (add-1 zero)))))) + (t (add-1 (add-1 (add-1 (add-1 (add-1 (add-1 zero))))))))) + + (defun committedpc + (impl.mwwrt impl.mwppc impl.mmwrt impl.mmppc impl.emwrt + impl.emppc impl.dewrt impl.deppc impl.fdwrt impl.fdppc + impl.ffwrt impl.ffppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.mmwrt impl.mmppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (impl.ffwrt impl.ffppc) + (t impl.ppc))) + + (defun committedbpstate + (impl.mwwrt impl.mwbpstate impl.mmwrt impl.mmbpstate impl.emwrt + impl.embpstate impl.dewrt impl.debpstate impl.fdwrt + impl.fdbpstate impl.ffwrt impl.ffbpstate impl.bpstate) + (cond + (impl.mwwrt impl.mwbpstate) + (impl.mmwrt impl.mmbpstate) + (impl.emwrt impl.embpstate) + (impl.dewrt impl.debpstate) + (impl.fdwrt impl.fdbpstate) + (impl.ffwrt impl.ffbpstate) + (t impl.bpstate))) + + (defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp epc0) + (booleanp isexception0) (integerp bpstate0) + (integerp alu_exception_handler) (integerp a) + (integerp zero) (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20) + (booleanp emis_alu_exception0) + (booleanp mmis_alu_exception0) + (booleanp mwis_alu_exception0) + (booleanp deisreturnfromexception0) + (booleanp emisreturnfromexception0) + (booleanp mmisreturnfromexception0) + (booleanp mwisreturnfromexception0)) + (let* ((st0 (initialize_a nil nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_2 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_2 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_2 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_2 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_2 (g 'impl st4)))) + (st6 (simulate_a st5 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_2 (g 'impl st5)))) + (st7 (simulate_a st6 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_2 (g 'impl st6)))) + (ppc_v (g 'ppc (g 'impl st7))) + (prf_v (g 'prf (g 'impl st7))) + (pdmem_v (g 'pdmem (g 'impl st7))) + (pimem_v (g 'pimem (g 'impl st7))) + (deop_v (g 'deop (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (dearg1_v (g 'dearg1 (g 'impl st7))) + (dearg2_v (g 'dearg2 (g 'impl st7))) + (dedest_v (g 'dedest (g 'impl st7))) + (dewrt_v (g 'dewrt (g 'impl st7))) + (fdwrt_v (g 'fdwrt (g 'impl st7))) + (fdinst_v (g 'fdinst (g 'impl st7))) + (emdest_v (g 'emdest (g 'impl st7))) + (emwrt_v (g 'emwrt (g 'impl st7))) + (desrc1_v (g 'desrc1 (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (deregwrite_v (g 'deregwrite (g 'impl st7))) + (emregwrite_v (g 'emregwrite (g 'impl st7))) + (deimm_v (g 'deimm (g 'impl st7))) + (deuseimm_v (g 'deuseimm (g 'impl st7))) + (emresult_v (g 'emresult (g 'impl st7))) + (dememtoreg_v (g 'dememtoreg (g 'impl st7))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st7))) + (dememwrite_v (g 'dememwrite (g 'impl st7))) + (emmemwrite_v (g 'emmemwrite (g 'impl st7))) + (emarg2_v (g 'emarg2 (g 'impl st7))) + (ffwrt_v (g 'ffwrt (g 'impl st7))) + (ffinst_v (g 'ffinst (g 'impl st7))) + (mmval_v (g 'mmval (g 'impl st7))) + (mmdest_v (g 'mmdest (g 'impl st7))) + (mmwrt_v (g 'mmwrt (g 'impl st7))) + (mmregwrite_v (g 'mmregwrite (g 'impl st7))) + (mwval_v (g 'mwval (g 'impl st7))) + (mwdest_v (g 'mwdest (g 'impl st7))) + (mwwrt_v (g 'mwwrt (g 'impl st7))) + (mwregwrite_v (g 'mwregwrite (g 'impl st7))) + (deisbranch_v (g 'deisbranch (g 'impl st7))) + (emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st7))) + (emtargetpc_v (g 'emtargetpc (g 'impl st7))) + (ffppc_v (g 'ffppc (g 'impl st7))) + (fdppc_v (g 'fdppc (g 'impl st7))) + (deppc_v (g 'deppc (g 'impl st7))) + (emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st7))) + (mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st7))) + (mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st7))) + (deisreturnfromexception_v + (g 'deisreturnfromexception (g 'impl st7))) + (mmisreturnfromexception_v + (g 'mmisreturnfromexception (g 'impl st7))) + (mwisreturnfromexception_v + (g 'mwisreturnfromexception (g 'impl st7))) + (emisreturnfromexception_v + (g 'emisreturnfromexception (g 'impl st7))) + (mmisreturnfromexception_v + (g 'mmisreturnfromexception (g 'impl st7))) + (mwisreturnfromexception_v + (g 'mwisreturnfromexception (g 'impl st7))) + (pepc_v (g 'pepc (g 'impl st7))) + (pisexception_v + (g 'pisexception (g 'impl st7))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st7)) + (g 'mwppc (g 'impl st7)) + (g 'mmwrt (g 'impl st7)) + (g 'mmppc (g 'impl st7)) + (g 'emwrt (g 'impl st7)) + (g 'emppc (g 'impl st7)) + (g 'dewrt (g 'impl st7)) + (g 'deppc (g 'impl st7)) + (g 'fdwrt (g 'impl st7)) + (g 'fdppc (g 'impl st7)) + (g 'ffwrt (g 'impl st7)) + (g 'ffppc (g 'impl st7)) + (g 'ppc (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 t i_pc0 + committedbpstate pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_2 (g 'impl st7)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) + pimem_v (g 'pimem (g 'impl st8)) + pdmem_v (g 'pdmem (g 'impl st8)) + pepc_v (g 'pepc (g 'impl st8)) + pisexception_v + (g 'pisexception (g 'impl st8)) + ffwrt_v (g 'ffwrt (g 'impl st8)) + ffppc_v (g 'ffppc (g 'impl st8)) + ffinst_v (g 'ffinst (g 'impl st8)) + fdwrt_v (g 'fdwrt (g 'impl st8)) + fdppc_v (g 'fdppc (g 'impl st8)) + fdinst_v (g 'fdinst (g 'impl st8)) + dewrt_v (g 'dewrt (g 'impl st8)) + deppc_v (g 'deppc (g 'impl st8)) + deop_v (g 'deop (g 'impl st8)) + dearg1_v (g 'dearg1 (g 'impl st8)) + dearg2_v (g 'dearg2 (g 'impl st8)) + dedest_v (g 'dedest (g 'impl st8)) + desrc1_v (g 'desrc1 (g 'impl st8)) + desrc2_v (g 'desrc2 (g 'impl st8)) + deimm_v (g 'deimm (g 'impl st8)) + deuseimm_v (g 'deuseimm (g 'impl st8)) + deisbranch_v + (g 'deisbranch (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emtargetpc_v + (g 'emtargetpc (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emarg2_v + (g 'emarg2 (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st8)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mmwrt_v + (g 'mmwrt (g 'impl st8)) mmval_v + (g 'mmval (g 'impl st8)) mmdest_v + (g 'mmdest (g 'impl st8)) mmregwrite_v + (g 'mmregwrite (g 'impl st8)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st8)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st8)) + mwwrt_v (g 'mwwrt (g 'impl st8)) + mwval_v (g 'mwval (g 'impl st8)) + mwdest_v (g 'mwdest (g 'impl st8)) + mwregwrite_v + (g 'mwregwrite (g 'impl st8)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st8)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_2 (g 'impl st8)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) + pimem_v (g 'pimem (g 'impl st9)) + pdmem_v (g 'pdmem (g 'impl st9)) + pepc_v (g 'pepc (g 'impl st9)) + pisexception_v + (g 'pisexception (g 'impl st9)) + ffwrt_v (g 'ffwrt (g 'impl st9)) + ffppc_v (g 'ffppc (g 'impl st9)) + ffinst_v (g 'ffinst (g 'impl st9)) + fdwrt_v (g 'fdwrt (g 'impl st9)) + fdppc_v (g 'fdppc (g 'impl st9)) + fdinst_v (g 'fdinst (g 'impl st9)) + dewrt_v (g 'dewrt (g 'impl st9)) + deppc_v (g 'deppc (g 'impl st9)) + deop_v (g 'deop (g 'impl st9)) + dearg1_v (g 'dearg1 (g 'impl st9)) + dearg2_v (g 'dearg2 (g 'impl st9)) + dedest_v (g 'dedest (g 'impl st9)) + desrc1_v (g 'desrc1 (g 'impl st9)) + desrc2_v (g 'desrc2 (g 'impl st9)) + deimm_v (g 'deimm (g 'impl st9)) + deuseimm_v (g 'deuseimm (g 'impl st9)) + deisbranch_v + (g 'deisbranch (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emtargetpc_v + (g 'emtargetpc (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emarg2_v + (g 'emarg2 (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st9)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mmwrt_v + (g 'mmwrt (g 'impl st9)) mmval_v + (g 'mmval (g 'impl st9)) mmdest_v + (g 'mmdest (g 'impl st9)) mmregwrite_v + (g 'mmregwrite (g 'impl st9)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st9)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st9)) + mwwrt_v (g 'mwwrt (g 'impl st9)) + mwval_v (g 'mwval (g 'impl st9)) + mwdest_v (g 'mwdest (g 'impl st9)) + mwregwrite_v + (g 'mwregwrite (g 'impl st9)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st9)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_2 (g 'impl st9)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + pepc_v (g 'pepc (g 'impl st10)) + pisexception_v + (g 'pisexception (g 'impl st10)) + ffwrt_v (g 'ffwrt (g 'impl st10)) + ffppc_v (g 'ffppc (g 'impl st10)) + ffinst_v (g 'ffinst (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdppc_v (g 'fdppc (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deppc_v (g 'deppc (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v + (g 'deuseimm (g 'impl st10)) + deisbranch_v + (g 'deisbranch (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emtargetpc_v + (g 'emtargetpc (g 'impl st10)) + emdest_v (g 'emdest (g 'impl st10)) + emarg2_v (g 'emarg2 (g 'impl st10)) + emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v + (g 'emresult (g 'impl st10)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st10)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mmwrt_v + (g 'mmwrt (g 'impl st10)) mmval_v + (g 'mmval (g 'impl st10)) mmdest_v + (g 'mmdest (g 'impl st10)) + mmregwrite_v + (g 'mmregwrite (g 'impl st10)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st10)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st10)) + mwwrt_v (g 'mwwrt (g 'impl st10)) + mwval_v (g 'mwval (g 'impl st10)) + mwdest_v (g 'mwdest (g 'impl st10)) + mwregwrite_v + (g 'mwregwrite (g 'impl st10)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st10)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st10)))) + (st11 (simulate_a st10 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_2 (g 'impl st10)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st11)) + prf_v a1 (g 'prf (g 'impl st11)) + pimem_v (g 'pimem (g 'impl st11)) + pdmem_v (g 'pdmem (g 'impl st11)) + pepc_v (g 'pepc (g 'impl st11)) + pisexception_v + (g 'pisexception (g 'impl st11)) + ffwrt_v (g 'ffwrt (g 'impl st11)) + ffppc_v (g 'ffppc (g 'impl st11)) + ffinst_v (g 'ffinst (g 'impl st11)) + fdwrt_v (g 'fdwrt (g 'impl st11)) + fdppc_v (g 'fdppc (g 'impl st11)) + fdinst_v (g 'fdinst (g 'impl st11)) + dewrt_v (g 'dewrt (g 'impl st11)) + deppc_v (g 'deppc (g 'impl st11)) + deop_v (g 'deop (g 'impl st11)) + dearg1_v (g 'dearg1 (g 'impl st11)) + dearg2_v (g 'dearg2 (g 'impl st11)) + dedest_v (g 'dedest (g 'impl st11)) + desrc1_v (g 'desrc1 (g 'impl st11)) + desrc2_v (g 'desrc2 (g 'impl st11)) + deimm_v (g 'deimm (g 'impl st11)) + deuseimm_v + (g 'deuseimm (g 'impl st11)) + deisbranch_v + (g 'deisbranch (g 'impl st11)) + dememtoreg_v + (g 'dememtoreg (g 'impl st11)) + dememwrite_v + (g 'dememwrite (g 'impl st11)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st11)) + deregwrite_v + (g 'deregwrite (g 'impl st11)) emwrt_v + (g 'emwrt (g 'impl st11)) emtargetpc_v + (g 'emtargetpc (g 'impl st11)) + emdest_v (g 'emdest (g 'impl st11)) + emarg2_v (g 'emarg2 (g 'impl st11)) + emregwrite_v + (g 'emregwrite (g 'impl st11)) + emresult_v + (g 'emresult (g 'impl st11)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st11)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st11)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st11)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st11)) + emmemwrite_v + (g 'emmemwrite (g 'impl st11)) mmwrt_v + (g 'mmwrt (g 'impl st11)) mmval_v + (g 'mmval (g 'impl st11)) mmdest_v + (g 'mmdest (g 'impl st11)) + mmregwrite_v + (g 'mmregwrite (g 'impl st11)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st11)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st11)) + mwwrt_v (g 'mwwrt (g 'impl st11)) + mwval_v (g 'mwval (g 'impl st11)) + mwdest_v (g 'mwdest (g 'impl st11)) + mwregwrite_v + (g 'mwregwrite (g 'impl st11)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st11)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st11)))) + (st12 (simulate_a st11 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_2 (g 'impl st11)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st12)) + prf_v a1 (g 'prf (g 'impl st12)) + pimem_v (g 'pimem (g 'impl st12)) + pdmem_v (g 'pdmem (g 'impl st12)) + pepc_v (g 'pepc (g 'impl st12)) + pisexception_v + (g 'pisexception (g 'impl st12)) + ffwrt_v (g 'ffwrt (g 'impl st12)) + ffppc_v (g 'ffppc (g 'impl st12)) + ffinst_v (g 'ffinst (g 'impl st12)) + fdwrt_v (g 'fdwrt (g 'impl st12)) + fdppc_v (g 'fdppc (g 'impl st12)) + fdinst_v (g 'fdinst (g 'impl st12)) + dewrt_v (g 'dewrt (g 'impl st12)) + deppc_v (g 'deppc (g 'impl st12)) + deop_v (g 'deop (g 'impl st12)) + dearg1_v (g 'dearg1 (g 'impl st12)) + dearg2_v (g 'dearg2 (g 'impl st12)) + dedest_v (g 'dedest (g 'impl st12)) + desrc1_v (g 'desrc1 (g 'impl st12)) + desrc2_v (g 'desrc2 (g 'impl st12)) + deimm_v (g 'deimm (g 'impl st12)) + deuseimm_v + (g 'deuseimm (g 'impl st12)) + deisbranch_v + (g 'deisbranch (g 'impl st12)) + dememtoreg_v + (g 'dememtoreg (g 'impl st12)) + dememwrite_v + (g 'dememwrite (g 'impl st12)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st12)) + deregwrite_v + (g 'deregwrite (g 'impl st12)) emwrt_v + (g 'emwrt (g 'impl st12)) emtargetpc_v + (g 'emtargetpc (g 'impl st12)) + emdest_v (g 'emdest (g 'impl st12)) + emarg2_v (g 'emarg2 (g 'impl st12)) + emregwrite_v + (g 'emregwrite (g 'impl st12)) + emresult_v + (g 'emresult (g 'impl st12)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st12)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st12)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st12)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st12)) + emmemwrite_v + (g 'emmemwrite (g 'impl st12)) mmwrt_v + (g 'mmwrt (g 'impl st12)) mmval_v + (g 'mmval (g 'impl st12)) mmdest_v + (g 'mmdest (g 'impl st12)) + mmregwrite_v + (g 'mmregwrite (g 'impl st12)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st12)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st12)) + mwwrt_v (g 'mwwrt (g 'impl st12)) + mwval_v (g 'mwval (g 'impl st12)) + mwdest_v (g 'mwdest (g 'impl st12)) + mwregwrite_v + (g 'mwregwrite (g 'impl st12)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st12)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st12)))) + (st13 (simulate_a st12 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_2 (g 'impl st12)))) + (equiv_ma_5 + (equiv_ma ppc_v (g 'ppc (g 'impl st13)) + prf_v a1 (g 'prf (g 'impl st13)) + pimem_v (g 'pimem (g 'impl st13)) + pdmem_v (g 'pdmem (g 'impl st13)) + pepc_v (g 'pepc (g 'impl st13)) + pisexception_v + (g 'pisexception (g 'impl st13)) + ffwrt_v (g 'ffwrt (g 'impl st13)) + ffppc_v (g 'ffppc (g 'impl st13)) + ffinst_v (g 'ffinst (g 'impl st13)) + fdwrt_v (g 'fdwrt (g 'impl st13)) + fdppc_v (g 'fdppc (g 'impl st13)) + fdinst_v (g 'fdinst (g 'impl st13)) + dewrt_v (g 'dewrt (g 'impl st13)) + deppc_v (g 'deppc (g 'impl st13)) + deop_v (g 'deop (g 'impl st13)) + dearg1_v (g 'dearg1 (g 'impl st13)) + dearg2_v (g 'dearg2 (g 'impl st13)) + dedest_v (g 'dedest (g 'impl st13)) + desrc1_v (g 'desrc1 (g 'impl st13)) + desrc2_v (g 'desrc2 (g 'impl st13)) + deimm_v (g 'deimm (g 'impl st13)) + deuseimm_v + (g 'deuseimm (g 'impl st13)) + deisbranch_v + (g 'deisbranch (g 'impl st13)) + dememtoreg_v + (g 'dememtoreg (g 'impl st13)) + dememwrite_v + (g 'dememwrite (g 'impl st13)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st13)) + deregwrite_v + (g 'deregwrite (g 'impl st13)) emwrt_v + (g 'emwrt (g 'impl st13)) emtargetpc_v + (g 'emtargetpc (g 'impl st13)) + emdest_v (g 'emdest (g 'impl st13)) + emarg2_v (g 'emarg2 (g 'impl st13)) + emregwrite_v + (g 'emregwrite (g 'impl st13)) + emresult_v + (g 'emresult (g 'impl st13)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st13)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st13)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st13)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st13)) + emmemwrite_v + (g 'emmemwrite (g 'impl st13)) mmwrt_v + (g 'mmwrt (g 'impl st13)) mmval_v + (g 'mmval (g 'impl st13)) mmdest_v + (g 'mmdest (g 'impl st13)) + mmregwrite_v + (g 'mmregwrite (g 'impl st13)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st13)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st13)) + mwwrt_v (g 'mwwrt (g 'impl st13)) + mwval_v (g 'mwval (g 'impl st13)) + mwdest_v (g 'mwdest (g 'impl st13)) + mwregwrite_v + (g 'mwregwrite (g 'impl st13)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st13)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st13)))) + (st14 (simulate_a st13 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_2 (g 'impl st13)))) + (equiv_ma_6 + (equiv_ma ppc_v (g 'ppc (g 'impl st14)) + prf_v a1 (g 'prf (g 'impl st14)) + pimem_v (g 'pimem (g 'impl st14)) + pdmem_v (g 'pdmem (g 'impl st14)) + pepc_v (g 'pepc (g 'impl st14)) + pisexception_v + (g 'pisexception (g 'impl st14)) + ffwrt_v (g 'ffwrt (g 'impl st14)) + ffppc_v (g 'ffppc (g 'impl st14)) + ffinst_v (g 'ffinst (g 'impl st14)) + fdwrt_v (g 'fdwrt (g 'impl st14)) + fdppc_v (g 'fdppc (g 'impl st14)) + fdinst_v (g 'fdinst (g 'impl st14)) + dewrt_v (g 'dewrt (g 'impl st14)) + deppc_v (g 'deppc (g 'impl st14)) + deop_v (g 'deop (g 'impl st14)) + dearg1_v (g 'dearg1 (g 'impl st14)) + dearg2_v (g 'dearg2 (g 'impl st14)) + dedest_v (g 'dedest (g 'impl st14)) + desrc1_v (g 'desrc1 (g 'impl st14)) + desrc2_v (g 'desrc2 (g 'impl st14)) + deimm_v (g 'deimm (g 'impl st14)) + deuseimm_v + (g 'deuseimm (g 'impl st14)) + deisbranch_v + (g 'deisbranch (g 'impl st14)) + dememtoreg_v + (g 'dememtoreg (g 'impl st14)) + dememwrite_v + (g 'dememwrite (g 'impl st14)) + deisreturnfromexception_v + (g 'deisreturnfromexception + (g 'impl st14)) + deregwrite_v + (g 'deregwrite (g 'impl st14)) emwrt_v + (g 'emwrt (g 'impl st14)) emtargetpc_v + (g 'emtargetpc (g 'impl st14)) + emdest_v (g 'emdest (g 'impl st14)) + emarg2_v (g 'emarg2 (g 'impl st14)) + emregwrite_v + (g 'emregwrite (g 'impl st14)) + emresult_v + (g 'emresult (g 'impl st14)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st14)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st14)) + emis_alu_exception_v + (g 'emis_alu_exception (g 'impl st14)) + emisreturnfromexception_v + (g 'emisreturnfromexception + (g 'impl st14)) + emmemwrite_v + (g 'emmemwrite (g 'impl st14)) mmwrt_v + (g 'mmwrt (g 'impl st14)) mmval_v + (g 'mmval (g 'impl st14)) mmdest_v + (g 'mmdest (g 'impl st14)) + mmregwrite_v + (g 'mmregwrite (g 'impl st14)) + mmisreturnfromexception_v + (g 'mmisreturnfromexception + (g 'impl st14)) + mmis_alu_exception_v + (g 'mmis_alu_exception (g 'impl st14)) + mwwrt_v (g 'mwwrt (g 'impl st14)) + mwval_v (g 'mwval (g 'impl st14)) + mwdest_v (g 'mwdest (g 'impl st14)) + mwregwrite_v + (g 'mwregwrite (g 'impl st14)) + mwisreturnfromexception_v + (g 'mwisreturnfromexception + (g 'impl st14)) + mwis_alu_exception_v + (g 'mwis_alu_exception (g 'impl st14)))) + (good_ma_v + (or (or equiv_ma_2 equiv_ma_5) equiv_ma_6)) + (st15 (simulate_a st14 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_2 (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_2 (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_2 (g 'impl st16)))) + (st18 (simulate_a st17 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_2 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_2 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_2 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_2 (g 'impl st20)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'mmwrt (g 'impl st21)) + (g 'mmppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ffwrt (g 'impl st21)) + (g 'ffppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0 (g 'prf (g 'impl st21))) + (i_dmem0 (g 'pdmemhist_2 (g 'impl st21))) + (i_epc0 (g 'pepchist_2 (g 'impl st21))) + (i_isexception0 + (g 'pisexceptionhist_2 (g 'impl st21))) + (rank_w (rank (g 'mwwrt (g 'impl st21)) zero + (g 'mmwrt (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'ffwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st21)) + (g 'pdmemhist_2 (g 'impl st21)))) + (s_pc0 (g 'spc (g 'spec st22))) + (s_rf0 (g 'srf (g 'spec st22))) + (s_dmem0 (g 'sdmem (g 'spec st22))) + (s_epc0 (g 'sepc (g 'spec st22))) + (s_isexception0 + (g 'sisexception (g 'spec st22))) + (i_pc (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'mmwrt (g 'impl st22)) + (g 'mmppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ffwrt (g 'impl st22)) + (g 'ffppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf (g 'prf (g 'impl st22))) + (i_dmem (g 'pdmemhist_2 (g 'impl st22))) + (i_epc (g 'pepchist_2 (g 'impl st22))) + (i_isexception + (g 'pisexceptionhist_2 (g 'impl st22))) + (rank_v (rank (g 'mwwrt (g 'impl st22)) zero + (g 'mmwrt (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'ffwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_2 (g 'impl st22)))) + (s_pc1 (g 'spc (g 'spec st23))) + (s_rf1 (g 'srf (g 'spec st23))) + (s_dmem1 (g 'sdmem (g 'spec st23))) + (s_epc1 (g 'sepc (g 'spec st23))) + (s_isexception1 + (g 'sisexception (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_2 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_2 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_2 (g 'impl st25)))) + (st27 (simulate_a st26 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st26)) + (g 'pdmemhist_2 (g 'impl st26)))) + (st28 (simulate_a st27 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_2 (g 'impl st27)))) + (st29 (simulate_a st28 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_2 (g 'impl st28)))) + (i_pc0_2 (committedpc + (g 'mwwrt (g 'impl st29)) + (g 'mwppc (g 'impl st29)) + (g 'mmwrt (g 'impl st29)) + (g 'mmppc (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'emppc (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'deppc (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'fdppc (g 'impl st29)) + (g 'ffwrt (g 'impl st29)) + (g 'ffppc (g 'impl st29)) + (g 'ppc (g 'impl st29)))) + (i_rf0_2 (g 'prf (g 'impl st29))) + (i_dmem0_2 (g 'pdmemhist_2 (g 'impl st29))) + (i_epc0_2 (g 'pepchist_2 (g 'impl st29))) + (i_isexception0_2 + (g 'pisexceptionhist_2 (g 'impl st29))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st29)) zero + (g 'mmwrt (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'ffwrt (g 'impl st29)))) + (st30 (simulate_a st29 nil nil t i_pc0_2 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st29)) + (g 'pdmemhist_2 (g 'impl st29)))) + (s_pc0_2 (g 'spc (g 'spec st30))) + (s_rf0_2 (g 'srf (g 'spec st30))) + (s_dmem0_2 (g 'sdmem (g 'spec st30))) + (s_epc0_2 (g 'sepc (g 'spec st30))) + (s_isexception0_2 + (g 'sisexception (g 'spec st30))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'mmwrt (g 'impl st30)) + (g 'mmppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ffwrt (g 'impl st30)) + (g 'ffppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf_2 (g 'prf (g 'impl st30))) + (i_dmem_2 (g 'pdmemhist_2 (g 'impl st30))) + (i_epc_2 (g 'pepchist_2 (g 'impl st30))) + (i_isexception_2 + (g 'pisexceptionhist_2 (g 'impl st30))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'mmwrt (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'ffwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st30)) + (g 'pdmemhist_2 (g 'impl st30)))) + (s_pc1_2 (g 'spc (g 'spec st31))) + (s_rf1_2 (g 'srf (g 'spec st31))) + (s_dmem1_2 (g 'sdmem (g 'spec st31))) + (s_epc1_2 (g 'sepc (g 'spec st31))) + (s_isexception1_2 + (g 'sisexception (g 'spec st31))) + (st32 (simulate_a st31 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_2 (g 'impl st31)))) + (st33 (simulate_a st32 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_2 (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st33)) + (g 'pdmemhist_2 (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_2 (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st35)) + (g 'pdmemhist_2 (g 'impl st35)))) + (i_pc0_3 (committedpc + (g 'mwwrt (g 'impl st36)) + (g 'mwppc (g 'impl st36)) + (g 'mmwrt (g 'impl st36)) + (g 'mmppc (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'emppc (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'deppc (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'fdppc (g 'impl st36)) + (g 'ffwrt (g 'impl st36)) + (g 'ffppc (g 'impl st36)) + (g 'ppc (g 'impl st36)))) + (i_rf0_3 (g 'prf (g 'impl st36))) + (i_dmem0_3 (g 'pdmemhist_2 (g 'impl st36))) + (i_epc0_3 (g 'pepchist_2 (g 'impl st36))) + (i_isexception0_3 + (g 'pisexceptionhist_2 (g 'impl st36))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st36)) zero + (g 'mmwrt (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'ffwrt (g 'impl st36)))) + (st37 (simulate_a st36 nil nil t i_pc0_3 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st36)) + (g 'pdmemhist_2 (g 'impl st36)))) + (s_pc0_3 (g 'spc (g 'spec st37))) + (s_rf0_3 (g 'srf (g 'spec st37))) + (s_dmem0_3 (g 'sdmem (g 'spec st37))) + (s_epc0_3 (g 'sepc (g 'spec st37))) + (s_isexception0_3 + (g 'sisexception (g 'spec st37))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st37)) + (g 'mwppc (g 'impl st37)) + (g 'mmwrt (g 'impl st37)) + (g 'mmppc (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'emppc (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'deppc (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'fdppc (g 'impl st37)) + (g 'ffwrt (g 'impl st37)) + (g 'ffppc (g 'impl st37)) + (g 'ppc (g 'impl st37)))) + (i_rf_3 (g 'prf (g 'impl st37))) + (i_dmem_3 (g 'pdmemhist_2 (g 'impl st37))) + (i_epc_3 (g 'pepchist_2 (g 'impl st37))) + (i_isexception_3 + (g 'pisexceptionhist_2 (g 'impl st37))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st37)) zero + (g 'mmwrt (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'ffwrt (g 'impl st37)))) + (st38 (simulate_a st37 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st37)) + (g 'pdmemhist_2 (g 'impl st37)))) + (s_pc1_3 (g 'spc (g 'spec st38))) + (s_rf1_3 (g 'srf (g 'spec st38))) + (s_dmem1_3 (g 'sdmem (g 'spec st38))) + (s_epc1_3 (g 'sepc (g 'spec st38))) + (s_isexception1_3 + (g 'sisexception (g 'spec st38))) + (st39 (simulate_a st38 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st38)) + (g 'pdmemhist_2 (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st39)) + (g 'pdmemhist_2 (g 'impl st39)))) + (st41 (simulate_a st40 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st40)) + (g 'pdmemhist_2 (g 'impl st40)))) + (st42 (simulate_a st41 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st41)) + (g 'pdmemhist_2 (g 'impl st41)))) + (i_pc0_4 (committedpc + (g 'mwwrt (g 'impl st42)) + (g 'mwppc (g 'impl st42)) + (g 'mmwrt (g 'impl st42)) + (g 'mmppc (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'emppc (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'deppc (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'fdppc (g 'impl st42)) + (g 'ffwrt (g 'impl st42)) + (g 'ffppc (g 'impl st42)) + (g 'ppc (g 'impl st42)))) + (i_rf0_4 (g 'prf (g 'impl st42))) + (i_dmem0_4 (g 'pdmemhist_2 (g 'impl st42))) + (i_epc0_4 (g 'pepchist_2 (g 'impl st42))) + (i_isexception0_4 + (g 'pisexceptionhist_2 (g 'impl st42))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st42)) zero + (g 'mmwrt (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'ffwrt (g 'impl st42)))) + (st43 (simulate_a st42 nil nil t i_pc0_4 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st42)) + (g 'pdmemhist_2 (g 'impl st42)))) + (s_pc0_4 (g 'spc (g 'spec st43))) + (s_rf0_4 (g 'srf (g 'spec st43))) + (s_dmem0_4 (g 'sdmem (g 'spec st43))) + (s_epc0_4 (g 'sepc (g 'spec st43))) + (s_isexception0_4 + (g 'sisexception (g 'spec st43))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st43)) + (g 'mwppc (g 'impl st43)) + (g 'mmwrt (g 'impl st43)) + (g 'mmppc (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'emppc (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'deppc (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'fdppc (g 'impl st43)) + (g 'ffwrt (g 'impl st43)) + (g 'ffppc (g 'impl st43)) + (g 'ppc (g 'impl st43)))) + (i_rf_4 (g 'prf (g 'impl st43))) + (i_dmem_4 (g 'pdmemhist_2 (g 'impl st43))) + (i_epc_4 (g 'pepchist_2 (g 'impl st43))) + (i_isexception_4 + (g 'pisexceptionhist_2 (g 'impl st43))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st43)) zero + (g 'mmwrt (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'ffwrt (g 'impl st43)))) + (st44 (simulate_a st43 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st43)) + (g 'pdmemhist_2 (g 'impl st43)))) + (s_pc1_4 (g 'spc (g 'spec st44))) + (s_rf1_4 (g 'srf (g 'spec st44))) + (s_dmem1_4 (g 'sdmem (g 'spec st44))) + (s_epc1_4 (g 'sepc (g 'spec st44))) + (s_isexception1_4 + (g 'sisexception (g 'spec st44))) + (st45 (simulate_a st44 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st44)) + (g 'pdmemhist_2 (g 'impl st44)))) + (st46 (simulate_a st45 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st45)) + (g 'pdmemhist_2 (g 'impl st45)))) + (st47 (simulate_a st46 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st46)) + (g 'pdmemhist_2 (g 'impl st46)))) + (i_pc0_5 (committedpc + (g 'mwwrt (g 'impl st47)) + (g 'mwppc (g 'impl st47)) + (g 'mmwrt (g 'impl st47)) + (g 'mmppc (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'emppc (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'deppc (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'fdppc (g 'impl st47)) + (g 'ffwrt (g 'impl st47)) + (g 'ffppc (g 'impl st47)) + (g 'ppc (g 'impl st47)))) + (i_rf0_5 (g 'prf (g 'impl st47))) + (i_dmem0_5 (g 'pdmemhist_2 (g 'impl st47))) + (i_epc0_5 (g 'pepchist_2 (g 'impl st47))) + (i_isexception0_5 + (g 'pisexceptionhist_2 (g 'impl st47))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st47)) zero + (g 'mmwrt (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'ffwrt (g 'impl st47)))) + (st48 (simulate_a st47 nil nil t i_pc0_5 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st47)) + (g 'pdmemhist_2 (g 'impl st47)))) + (s_pc0_5 (g 'spc (g 'spec st48))) + (s_rf0_5 (g 'srf (g 'spec st48))) + (s_dmem0_5 (g 'sdmem (g 'spec st48))) + (s_epc0_5 (g 'sepc (g 'spec st48))) + (s_isexception0_5 + (g 'sisexception (g 'spec st48))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st48)) + (g 'mwppc (g 'impl st48)) + (g 'mmwrt (g 'impl st48)) + (g 'mmppc (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'emppc (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'deppc (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'fdppc (g 'impl st48)) + (g 'ffwrt (g 'impl st48)) + (g 'ffppc (g 'impl st48)) + (g 'ppc (g 'impl st48)))) + (i_rf_5 (g 'prf (g 'impl st48))) + (i_dmem_5 (g 'pdmemhist_2 (g 'impl st48))) + (i_epc_5 (g 'pepchist_2 (g 'impl st48))) + (i_isexception_5 + (g 'pisexceptionhist_2 (g 'impl st48))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st48)) zero + (g 'mmwrt (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'ffwrt (g 'impl st48)))) + (st49 (simulate_a st48 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st48)) + (g 'pdmemhist_2 (g 'impl st48)))) + (s_pc1_5 (g 'spc (g 'spec st49))) + (s_rf1_5 (g 'srf (g 'spec st49))) + (s_dmem1_5 (g 'sdmem (g 'spec st49))) + (s_epc1_5 (g 'sepc (g 'spec st49))) + (s_isexception1_5 + (g 'sisexception (g 'spec st49))) + (st50 (simulate_a st49 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st49)) + (g 'pdmemhist_2 (g 'impl st49)))) + (st51 (simulate_a st50 nil nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st50)) + (g 'pdmemhist_2 (g 'impl st50)))) + (i_pc0_6 (committedpc + (g 'mwwrt (g 'impl st51)) + (g 'mwppc (g 'impl st51)) + (g 'mmwrt (g 'impl st51)) + (g 'mmppc (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'emppc (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'deppc (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'fdppc (g 'impl st51)) + (g 'ffwrt (g 'impl st51)) + (g 'ffppc (g 'impl st51)) + (g 'ppc (g 'impl st51)))) + (i_rf0_6 (g 'prf (g 'impl st51))) + (i_dmem0_6 (g 'pdmemhist_2 (g 'impl st51))) + (i_epc0_6 (g 'pepchist_2 (g 'impl st51))) + (i_isexception0_6 + (g 'pisexceptionhist_2 (g 'impl st51))) + (rank_w_6 + (rank (g 'mwwrt (g 'impl st51)) zero + (g 'mmwrt (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'ffwrt (g 'impl st51)))) + (st52 (simulate_a st51 nil nil t i_pc0_6 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st51)) + (g 'pdmemhist_2 (g 'impl st51)))) + (s_pc0_6 (g 'spc (g 'spec st52))) + (s_rf0_6 (g 'srf (g 'spec st52))) + (s_dmem0_6 (g 'sdmem (g 'spec st52))) + (s_epc0_6 (g 'sepc (g 'spec st52))) + (s_isexception0_6 + (g 'sisexception (g 'spec st52))) + (i_pc_6 (committedpc (g 'mwwrt (g 'impl st52)) + (g 'mwppc (g 'impl st52)) + (g 'mmwrt (g 'impl st52)) + (g 'mmppc (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'emppc (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'deppc (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'fdppc (g 'impl st52)) + (g 'ffwrt (g 'impl st52)) + (g 'ffppc (g 'impl st52)) + (g 'ppc (g 'impl st52)))) + (i_rf_6 (g 'prf (g 'impl st52))) + (i_dmem_6 (g 'pdmemhist_2 (g 'impl st52))) + (i_epc_6 (g 'pepchist_2 (g 'impl st52))) + (i_isexception_6 + (g 'pisexceptionhist_2 (g 'impl st52))) + (rank_v_6 + (rank (g 'mwwrt (g 'impl st52)) zero + (g 'mmwrt (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'ffwrt (g 'impl st52)))) + (st53 (simulate_a st52 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st52)) + (g 'pdmemhist_2 (g 'impl st52)))) + (s_pc1_6 (g 'spc (g 'spec st53))) + (s_rf1_6 (g 'srf (g 'spec st53))) + (s_dmem1_6 (g 'sdmem (g 'spec st53))) + (s_epc1_6 (g 'sepc (g 'spec st53))) + (s_isexception1_6 + (g 'sisexception (g 'spec st53))) + (st54 (simulate_a st53 t nil nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st53)) + (g 'pdmemhist_2 (g 'impl st53)))) + (i_pc0_7 (committedpc + (g 'mwwrt (g 'impl st54)) + (g 'mwppc (g 'impl st54)) + (g 'mmwrt (g 'impl st54)) + (g 'mmppc (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'emppc (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'deppc (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'fdppc (g 'impl st54)) + (g 'ffwrt (g 'impl st54)) + (g 'ffppc (g 'impl st54)) + (g 'ppc (g 'impl st54)))) + (i_rf0_7 (g 'prf (g 'impl st54))) + (i_dmem0_7 (g 'pdmemhist_2 (g 'impl st54))) + (i_epc0_7 (g 'pepchist_2 (g 'impl st54))) + (i_isexception0_7 + (g 'pisexceptionhist_2 (g 'impl st54))) + (rank_w_7 + (rank (g 'mwwrt (g 'impl st54)) zero + (g 'mmwrt (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'ffwrt (g 'impl st54)))) + (st55 (simulate_a st54 nil nil t i_pc0_7 nil + pc0 bpstate0 pc0 + alu_exception_handler bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st54)) + (g 'pdmemhist_2 (g 'impl st54)))) + (s_pc0_7 (g 'spc (g 'spec st55))) + (s_rf0_7 (g 'srf (g 'spec st55))) + (s_dmem0_7 (g 'sdmem (g 'spec st55))) + (s_epc0_7 (g 'sepc (g 'spec st55))) + (s_isexception0_7 + (g 'sisexception (g 'spec st55))) + (i_pc_7 (committedpc (g 'mwwrt (g 'impl st55)) + (g 'mwppc (g 'impl st55)) + (g 'mmwrt (g 'impl st55)) + (g 'mmppc (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'emppc (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'deppc (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'fdppc (g 'impl st55)) + (g 'ffwrt (g 'impl st55)) + (g 'ffppc (g 'impl st55)) + (g 'ppc (g 'impl st55)))) + (i_rf_7 (g 'prf (g 'impl st55))) + (i_dmem_7 (g 'pdmemhist_2 (g 'impl st55))) + (i_epc_7 (g 'pepchist_2 (g 'impl st55))) + (i_isexception_7 + (g 'pisexceptionhist_2 (g 'impl st55))) + (rank_v_7 + (rank (g 'mwwrt (g 'impl st55)) zero + (g 'mmwrt (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'ffwrt (g 'impl st55)))) + (st56 (simulate_a st55 nil t nil pc0 nil pc0 + bpstate0 pc0 alu_exception_handler + bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmbpstate0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st55)) + (g 'pdmemhist_2 (g 'impl st55)))) + (s_pc1_7 (g 'spc (g 'spec st56))) + (s_rf1_7 (g 'srf (g 'spec st56))) + (s_dmem1_7 (g 'sdmem (g 'spec st56))) + (s_epc1_7 (g 'sepc (g 'spec st56))) + (s_isexception1_7 + (g 'sisexception (g 'spec st56)))) + (and (and (and (and + (and + (and + (and good_ma_v + (or + (or + (not + (and + (and + (and + (and (equal s_pc0 i_pc0) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0)) + (equal s_epc0 i_epc0)) + (equalb s_isexception0 + i_isexception0))) + (and + (and + (and + (and (equal s_pc1 i_pc) + (equal + (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem)) + (equal s_epc1 i_epc)) + (equalb s_isexception1 + i_isexception))) + (and + (and + (and + (and + (and (equal s_pc0 i_pc) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (equal s_epc0 i_epc)) + (equalb s_isexception0 + i_isexception)) + (< rank_v rank_w)))) + (or + (or + (not + (and + (and + (and + (and + (equal s_pc0_2 i_pc0_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf0_2))) + (equal s_dmem0_2 i_dmem0_2)) + (equal s_epc0_2 i_epc0_2)) + (equalb s_isexception0_2 + i_isexception0_2))) + (and + (and + (and + (and (equal s_pc1_2 i_pc_2) + (equal + (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 i_dmem_2)) + (equal s_epc1_2 i_epc_2)) + (equalb s_isexception1_2 + i_isexception_2))) + (and + (and + (and + (and + (and (equal s_pc0_2 i_pc_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)) + (equal s_epc0_2 i_epc_2)) + (equalb s_isexception0_2 + i_isexception_2)) + (< rank_v_2 rank_w_2)))) + (or + (or + (not + (and + (and + (and + (and (equal s_pc0_3 i_pc0_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 i_dmem0_3)) + (equal s_epc0_3 i_epc0_3)) + (equalb s_isexception0_3 + i_isexception0_3))) + (and + (and + (and + (and (equal s_pc1_3 i_pc_3) + (equal + (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3)) + (equal s_epc1_3 i_epc_3)) + (equalb s_isexception1_3 + i_isexception_3))) + (and + (and + (and + (and + (and (equal s_pc0_3 i_pc_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)) + (equal s_epc0_3 i_epc_3)) + (equalb s_isexception0_3 + i_isexception_3)) + (< rank_v_3 rank_w_3)))) + (or + (or + (not + (and + (and + (and + (and (equal s_pc0_4 i_pc0_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 i_dmem0_4)) + (equal s_epc0_4 i_epc0_4)) + (equalb s_isexception0_4 + i_isexception0_4))) + (and + (and + (and + (and (equal s_pc1_4 i_pc_4) + (equal + (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4)) + (equal s_epc1_4 i_epc_4)) + (equalb s_isexception1_4 + i_isexception_4))) + (and + (and + (and + (and + (and (equal s_pc0_4 i_pc_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)) + (equal s_epc0_4 i_epc_4)) + (equalb s_isexception0_4 + i_isexception_4)) + (< rank_v_4 rank_w_4)))) + (or + (or + (not + (and + (and + (and + (and (equal s_pc0_5 i_pc0_5) + (equal + (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5)) + (equal s_epc0_5 i_epc0_5)) + (equalb s_isexception0_5 + i_isexception0_5))) + (and + (and + (and + (and (equal s_pc1_5 i_pc_5) + (equal (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5)) + (equal s_epc1_5 i_epc_5)) + (equalb s_isexception1_5 + i_isexception_5))) + (and + (and + (and + (and + (and (equal s_pc0_5 i_pc_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)) + (equal s_epc0_5 i_epc_5)) + (equalb s_isexception0_5 + i_isexception_5)) + (< rank_v_5 rank_w_5)))) + (or (or (not + (and + (and + (and + (and (equal s_pc0_6 i_pc0_6) + (equal + (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf0_6))) + (equal s_dmem0_6 i_dmem0_6)) + (equal s_epc0_6 i_epc0_6)) + (equalb s_isexception0_6 + i_isexception0_6))) + (and + (and + (and + (and (equal s_pc1_6 i_pc_6) + (equal + (read-srf_a a1 s_rf1_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem1_6 i_dmem_6)) + (equal s_epc1_6 i_epc_6)) + (equalb s_isexception1_6 + i_isexception_6))) + (and (and + (and + (and + (and (equal s_pc0_6 i_pc_6) + (equal + (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem0_6 i_dmem_6)) + (equal s_epc0_6 i_epc_6)) + (equalb s_isexception0_6 + i_isexception_6)) + (< rank_v_6 rank_w_6)))) + (or (or (not (and + (and + (and + (and (equal s_pc0_7 i_pc0_7) + (equal + (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf0_7))) + (equal s_dmem0_7 i_dmem0_7)) + (equal s_epc0_7 i_epc0_7)) + (equalb s_isexception0_7 + i_isexception0_7))) + (and (and + (and + (and (equal s_pc1_7 i_pc_7) + (equal (read-srf_a a1 s_rf1_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem1_7 i_dmem_7)) + (equal s_epc1_7 i_epc_7)) + (equalb s_isexception1_7 + i_isexception_7))) + (and (and (and + (and + (and (equal s_pc0_7 i_pc_7) + (equal + (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem0_7 i_dmem_7)) + (equal s_epc0_7 i_epc_7)) + (equalb s_isexception0_7 + i_isexception_7)) + (< rank_v_7 rank_w_7)))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-safety.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-safety.lisp new file mode 100644 index 0000000..83c5659 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-safety.lisp @@ -0,0 +1,3390 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + +(encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + +(encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (g 3 (car prf)) (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc bpstate ffbpstate ffpredicteddirection + ffpredictedtarget ffwrt ffinst ffppc prf fdbpstate fdppc + fdwrt fdinst fdpredicteddirection fdpredictedtarget + debpstate deppc desrc1 desrc2 dearg1 dearg2 dedest deop + deimm deuseimm deregwrite dememwrite dememtoreg + deisbranch dewrt depredicteddirection depredictedtarget + embpstate emppc emis_taken_branch emtargetpc emarg2 + emresult emdest emwrt emmispredictedtaken + emmispredictednottaken emregwrite emmemwrite emmemtoreg + pdmemhist_2 pdmemhist_1 pdmem mmbpstate mmppc mmval + mmdest mmwrt mmregwrite mwbpstate mwppc mwval mwdest + mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'bpstate bpstate 'ffbpstate ffbpstate + 'ffpredicteddirection ffpredicteddirection 'ffpredictedtarget + ffpredictedtarget 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf + prf 'fdbpstate fdbpstate 'fdppc fdppc 'fdwrt fdwrt 'fdinst + fdinst 'fdpredicteddirection fdpredicteddirection + 'fdpredictedtarget fdpredictedtarget 'debpstate debpstate + 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 dearg1 + 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm deimm 'deuseimm + deuseimm 'deregwrite deregwrite 'dememwrite dememwrite + 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt dewrt + 'depredicteddirection depredicteddirection 'depredictedtarget + depredictedtarget 'embpstate embpstate 'emppc emppc + 'emis_taken_branch emis_taken_branch 'emtargetpc emtargetpc + 'emarg2 emarg2 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'mmbpstate mmbpstate 'mmppc mmppc 'mmval mmval 'mmdest mmdest + 'mmwrt mmwrt 'mmregwrite mmregwrite 'mwbpstate mwbpstate 'mwppc + mwppc 'mwval mwval 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite + mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 commit_impl commit_pc mem1_mispredicted_taken emppc + mem1_mispredicted_nottaken emtargetpc stall ppc + if_predict_branch_taken predicted_target) + (cond + (initi pc0) + (commit_impl commit_pc) + (mem1_mispredicted_taken (add-1 emppc)) + (mem1_mispredicted_nottaken emtargetpc) + (stall ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + +(defun initbpstate_a (bpstate0) bpstate0) + +(defun nextbpstate_a + (initi bpstate0 commit_impl commit_bpstate stall bpstate) + (cond + (initi bpstate0) + (commit_impl commit_bpstate) + (stall bpstate) + (t (nextbpstate bpstate)))) + +(defun initffbpstate_a (ffbpstate0) ffbpstate0) + +(defun nextffbpstate_a (initi ffbpstate0 stall ffbpstate bpstate) + (cond (initi ffbpstate0) (stall ffbpstate) (t bpstate))) + +(defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + +(defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + +(defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + +(defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + +(defun initffwrt_a () nil) + +(defun nextffwrt_a (initi commit_impl squash stall ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall ffwrt) + (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi commit_impl mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest (s 5 mwregwrite (s 6 mwval nil))))))) + prf)) + +(defun initfdbpstate_a (fdbpstate0) fdbpstate0) + +(defun nextfdbpstate_a (initi fdbpstate0 stall fdbpstate ffbpstate) + (cond (initi fdbpstate0) (stall fdbpstate) (t ffbpstate))) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a () nil) + +(defun nextfdwrt_a (initi commit_impl squash stall fdwrt ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall fdwrt) + (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + +(defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + +(defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + +(defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + +(defun initdebpstate_a (debpstate0) debpstate0) + +(defun nextdebpstate_a (initi debpstate0 fdbpstate) + (cond (initi debpstate0) (t fdbpstate))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a () nil) + +(defun nextdewrt_a (initi commit_impl squash stall fdwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (t (and (not stall) fdwrt)))) + +(defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + +(defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + +(defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + +(defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + +(defun initembpstate_a (embpstate0) embpstate0) + +(defun nextembpstate_a (initi embpstate0 debpstate) + (cond (initi embpstate0) (t debpstate))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a () nil) + +(defun nextemwrt_a (initi commit_impl squash dewrt) + (cond (initi nil) (commit_impl nil) (squash nil) (t dewrt))) + +(defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + +(defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + +(defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + +(defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_2 emwrt emmemwrite pdmem + emresult emarg2) + (cond + (initi dmem0) + (commit_impl pdmemhist_2) + ((and emwrt emmemwrite) (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initmmbpstate_a (mmbpstate0) mmbpstate0) + +(defun nextmmbpstate_a (initi mmbpstate0 embpstate) + (cond (initi mmbpstate0) (t embpstate))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a () nil) + +(defun nextmmwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwbpstate_a (mwbpstate0) mwbpstate0) + +(defun nextmwbpstate_a (initi mwbpstate0 mmbpstate) + (cond (initi mwbpstate0) (t mmbpstate))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a () nil) + +(defun nextmwwrt_a (initi commit_impl mmwrt) + (cond (initi nil) (commit_impl nil) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc bpstate0 commit_bpstate + ffbpstate0 ffpredicteddirection0 ffpredictedtarget0 + ffinst0 ffppc0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 debpstate0 + deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmbpstate0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwppc0 + mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) (ffbpstate (g 'ffbpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdbpstate (g 'fdbpstate impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmbpstate (g 'mmbpstate impl)) (mmppc (g 'mmppc impl)) + (mmval (g 'mmval impl)) (mmdest (g 'mmdest impl)) + (mmwrt (g 'mmwrt impl)) (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash mem1_mispredicted)) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc + mem1_mispredicted_taken emppc mem1_mispredicted_nottaken + emtargetpc stall ppc if_predict_branch_taken + predicted_target) + (nextbpstate_a initi bpstate0 commit_impl commit_bpstate + stall bpstate) + (nextffbpstate_a initi ffbpstate0 stall ffbpstate bpstate) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi commit_impl squash stall ffwrt) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval) + (nextfdbpstate_a initi fdbpstate0 stall fdbpstate ffbpstate) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi commit_impl squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdebpstate_a initi debpstate0 fdbpstate) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi commit_impl squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextembpstate_a initi embpstate0 debpstate) + (nextemppc_a initi emppc0 deppc) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl squash dewrt) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_2 emwrt + emmemwrite pdmem emresult emarg2) + (nextmmbpstate_a initi mmbpstate0 embpstate) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi commit_impl emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwbpstate_a initi mwbpstate0 mmbpstate) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi commit_impl mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 bpstate0 ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdbpstate0 fdppc0 + fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 depredicteddirection0 depredictedtarget0 + embpstate0 emppc0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) (ffbpstate (g 'ffbpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdbpstate (g 'fdbpstate impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmbpstate (g 'mmbpstate impl)) (mmppc (g 'mmppc impl)) + (mmval (g 'mmval impl)) (mmdest (g 'mmdest impl)) + (mmwrt (g 'mmwrt impl)) (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash mem1_mispredicted)) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initbpstate_a bpstate0) (initffbpstate_a ffbpstate0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) (initffwrt_a) + (initffinst_a ffinst0) (initffppc_a ffppc0) (initprf_a prf) + (initfdbpstate_a fdbpstate0) (initfdppc_a fdppc0) + (initfdwrt_a) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdebpstate_a debpstate0) (initdeppc_a deppc0) + (initdesrc1_a desrc10) (initdesrc2_a desrc20) + (initdearg1_a a1) (initdearg2_a a2) (initdedest_a dedest0) + (initdeop_a deop0) (initdeimm_a deimm0) + (initdeuseimm_a deuseimm0) (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initembpstate_a embpstate0) (initemppc_a emppc0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initmmbpstate_a mmbpstate0) (initmmppc_a mmppc0) + (initmmval_a mmval0) (initmmdest_a mmdest0) (initmmwrt_a) + (initmmregwrite_a mmregwrite0) (initmwbpstate_a mwbpstate0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl project_pc isa is_taken_branch targetpc + spc) + (cond + (initi pc0) + (project_impl project_pc) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa (s 5 inst (s 6 regwrite (s 7 val nil)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_2 isa memwrite sdmem + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_2) + ((and isa memwrite) (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa impl.prf dmem0 + impl.pdmemhist_2) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa + is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_2 isa + memwrite sdmem result arg2_temp))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st initi isa project_impl project_pc commit_impl commit_pc + commit_bpstate pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmbpstate0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwppc0 mwval0 mwdest0 mwregwrite0 impl.prf + impl.pdmemhist_2) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + bpstate0 commit_bpstate ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmbpstate0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwppc0 mwval0 mwdest0 + mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa impl.prf dmem0 impl.pdmemhist_2))) + +(defun initialize_a + (st initi isa project_impl project_pc commit_impl commit_pc + commit_bpstate pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmbpstate0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwppc0 mwval0 mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmbpstate0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwppc0 mwval0 mwdest0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + +(defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem ffwrt_v impl.ffwrt ffppc_v impl.ffppc + ffinst_v impl.ffinst fdwrt_v impl.fdwrt fdppc_v + impl.fdppc fdinst_v impl.fdinst dewrt_v impl.dewrt + deppc_v impl.deppc deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm deisbranch_v impl.deisbranch + dememtoreg_v impl.dememtoreg dememwrite_v + impl.dememwrite deregwrite_v impl.deregwrite emwrt_v + impl.emwrt emtargetpc_v impl.emtargetpc emdest_v + impl.emdest emarg2_v impl.emarg2 emregwrite_v + impl.emregwrite emresult_v impl.emresult + emis_taken_branch_v impl.emis_taken_branch emmemtoreg_v + impl.emmemtoreg emmemwrite_v impl.emmemwrite mmwrt_v + impl.mmwrt mmval_v impl.mmval mmdest_v impl.mmdest + mmregwrite_v impl.mmregwrite mwwrt_v impl.mwwrt mwval_v + impl.mwval mwdest_v impl.mwdest mwregwrite_v + impl.mwregwrite) + (declare (xargs :normalize nil)) + (and (and (and (and (and (and (and (and + (and + (and + (and + (and + (and + (and + (and + (equal ppc_v impl.ppc) + (equal + (read-prf_a a1 prf_v) + (read-prf_a a1 impl.prf))) + (equal + (read-pimem_a a1 pimem_v) + (read-pimem_a a1 + impl.pimem))) + (equal pdmem_v impl.pdmem)) + (equalb ffwrt_v impl.ffwrt)) + (implies ffwrt_v + (and + (and impl.ffwrt + (equal ffppc_v impl.ffppc)) + (equal ffinst_v + impl.ffinst)))) + (equalb fdwrt_v impl.fdwrt)) + (implies fdwrt_v + (and + (and impl.fdwrt + (equal fdppc_v impl.fdppc)) + (equal fdinst_v impl.fdinst)))) + (equalb dewrt_v impl.dewrt)) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deppc_v + impl.deppc)) + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v + impl.desrc2)) + (equal deimm_v impl.deimm)) + (equalb deuseimm_v + impl.deuseimm)) + (equalb deisbranch_v + impl.deisbranch)) + (equalb dememtoreg_v + impl.dememtoreg)) + (equalb dememwrite_v + impl.dememwrite)) + (equalb deregwrite_v + impl.deregwrite)))) + (equalb emwrt_v impl.emwrt)) + (implies emwrt_v + (and + (and + (and + (and + (and + (and + (and + (and impl.emwrt + (equal emtargetpc_v + impl.emtargetpc)) + (equal emdest_v + impl.emdest)) + (equal emarg2_v impl.emarg2)) + (equalb emregwrite_v + impl.emregwrite)) + (equal emresult_v + impl.emresult)) + (equalb emis_taken_branch_v + impl.emis_taken_branch)) + (equalb emmemtoreg_v + impl.emmemtoreg)) + (equalb emmemwrite_v + impl.emmemwrite)))) + (equalb mmwrt_v impl.mmwrt)) + (implies mmwrt_v + (and (and (and impl.mmwrt + (equal mmval_v impl.mmval)) + (equal mmdest_v impl.mmdest)) + (equalb mmregwrite_v impl.mmregwrite)))) + (equalb mwwrt_v impl.mwwrt)) + (implies mwwrt_v + (and (and (and impl.mwwrt (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (equalb mwregwrite_v impl.mwregwrite))))) + +(defun rank + (impl.mwwrt zero impl.mmwrt impl.emwrt impl.dewrt impl.fdwrt + impl.ffwrt) + (cond + (impl.mwwrt zero) + (impl.mmwrt (add-1 zero)) + (impl.emwrt (add-1 (add-1 zero))) + (impl.dewrt (add-1 (add-1 (add-1 zero)))) + (impl.fdwrt (add-1 (add-1 (add-1 (add-1 zero))))) + (impl.ffwrt (add-1 (add-1 (add-1 (add-1 (add-1 zero)))))) + (t (add-1 (add-1 (add-1 (add-1 (add-1 (add-1 zero))))))))) + +(defun committedpc + (impl.mwwrt impl.mwppc impl.mmwrt impl.mmppc impl.emwrt + impl.emppc impl.dewrt impl.deppc impl.fdwrt impl.fdppc + impl.ffwrt impl.ffppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.mmwrt impl.mmppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (impl.ffwrt impl.ffppc) + (t impl.ppc))) + +(defun committedbpstate + (impl.mwwrt impl.mwbpstate impl.mmwrt impl.mmbpstate impl.emwrt + impl.embpstate impl.dewrt impl.debpstate impl.fdwrt + impl.fdbpstate impl.ffwrt impl.ffbpstate impl.bpstate) + (cond + (impl.mwwrt impl.mwbpstate) + (impl.mmwrt impl.mmbpstate) + (impl.emwrt impl.embpstate) + (impl.dewrt impl.debpstate) + (impl.fdwrt impl.fdbpstate) + (impl.ffwrt impl.ffbpstate) + (t impl.bpstate))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp epc0) + (integerp bpstate0) (integerp a) (integerp zero) + (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20)) + (let* ((st0 (initialize_a nil nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_2 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_2 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_2 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_2 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_2 (g 'impl st4)))) + (st6 (simulate_a st5 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_2 (g 'impl st5)))) + (st7 (simulate_a st6 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_2 (g 'impl st6)))) + (ppc_v (g 'ppc (g 'impl st7))) + (prf_v (g 'prf (g 'impl st7))) + (pdmem_v (g 'pdmem (g 'impl st7))) + (pimem_v (g 'pimem (g 'impl st7))) + (deop_v (g 'deop (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (dearg1_v (g 'dearg1 (g 'impl st7))) + (dearg2_v (g 'dearg2 (g 'impl st7))) + (dedest_v (g 'dedest (g 'impl st7))) + (dewrt_v (g 'dewrt (g 'impl st7))) + (fdwrt_v (g 'fdwrt (g 'impl st7))) + (fdinst_v (g 'fdinst (g 'impl st7))) + (emdest_v (g 'emdest (g 'impl st7))) + (emwrt_v (g 'emwrt (g 'impl st7))) + (desrc1_v (g 'desrc1 (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (deregwrite_v (g 'deregwrite (g 'impl st7))) + (emregwrite_v (g 'emregwrite (g 'impl st7))) + (deimm_v (g 'deimm (g 'impl st7))) + (deuseimm_v (g 'deuseimm (g 'impl st7))) + (emresult_v (g 'emresult (g 'impl st7))) + (dememtoreg_v (g 'dememtoreg (g 'impl st7))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st7))) + (dememwrite_v (g 'dememwrite (g 'impl st7))) + (emmemwrite_v (g 'emmemwrite (g 'impl st7))) + (emarg2_v (g 'emarg2 (g 'impl st7))) + (ffwrt_v (g 'ffwrt (g 'impl st7))) + (ffinst_v (g 'ffinst (g 'impl st7))) + (mmval_v (g 'mmval (g 'impl st7))) + (mmdest_v (g 'mmdest (g 'impl st7))) + (mmwrt_v (g 'mmwrt (g 'impl st7))) + (mmregwrite_v (g 'mmregwrite (g 'impl st7))) + (mwval_v (g 'mwval (g 'impl st7))) + (mwdest_v (g 'mwdest (g 'impl st7))) + (mwwrt_v (g 'mwwrt (g 'impl st7))) + (mwregwrite_v (g 'mwregwrite (g 'impl st7))) + (deisbranch_v (g 'deisbranch (g 'impl st7))) + (emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st7))) + (emtargetpc_v (g 'emtargetpc (g 'impl st7))) + (ffppc_v (g 'ffppc (g 'impl st7))) + (fdppc_v (g 'fdppc (g 'impl st7))) + (deppc_v (g 'deppc (g 'impl st7))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st7)) + (g 'mwppc (g 'impl st7)) + (g 'mmwrt (g 'impl st7)) + (g 'mmppc (g 'impl st7)) + (g 'emwrt (g 'impl st7)) + (g 'emppc (g 'impl st7)) + (g 'dewrt (g 'impl st7)) + (g 'deppc (g 'impl st7)) + (g 'fdwrt (g 'impl st7)) + (g 'fdppc (g 'impl st7)) + (g 'ffwrt (g 'impl st7)) + (g 'ffppc (g 'impl st7)) + (g 'ppc (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 t i_pc0 + committedbpstate pc0 bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_2 (g 'impl st7)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) pimem_v + (g 'pimem (g 'impl st8)) pdmem_v + (g 'pdmem (g 'impl st8)) ffwrt_v + (g 'ffwrt (g 'impl st8)) ffppc_v + (g 'ffppc (g 'impl st8)) ffinst_v + (g 'ffinst (g 'impl st8)) fdwrt_v + (g 'fdwrt (g 'impl st8)) fdppc_v + (g 'fdppc (g 'impl st8)) fdinst_v + (g 'fdinst (g 'impl st8)) dewrt_v + (g 'dewrt (g 'impl st8)) deppc_v + (g 'deppc (g 'impl st8)) deop_v + (g 'deop (g 'impl st8)) dearg1_v + (g 'dearg1 (g 'impl st8)) dearg2_v + (g 'dearg2 (g 'impl st8)) dedest_v + (g 'dedest (g 'impl st8)) desrc1_v + (g 'desrc1 (g 'impl st8)) desrc2_v + (g 'desrc2 (g 'impl st8)) deimm_v + (g 'deimm (g 'impl st8)) deuseimm_v + (g 'deuseimm (g 'impl st8)) + deisbranch_v + (g 'deisbranch (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emtargetpc_v + (g 'emtargetpc (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emarg2_v + (g 'emarg2 (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mmwrt_v + (g 'mmwrt (g 'impl st8)) mmval_v + (g 'mmval (g 'impl st8)) mmdest_v + (g 'mmdest (g 'impl st8)) mmregwrite_v + (g 'mmregwrite (g 'impl st8)) mwwrt_v + (g 'mwwrt (g 'impl st8)) mwval_v + (g 'mwval (g 'impl st8)) mwdest_v + (g 'mwdest (g 'impl st8)) mwregwrite_v + (g 'mwregwrite (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_2 (g 'impl st8)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) pimem_v + (g 'pimem (g 'impl st9)) pdmem_v + (g 'pdmem (g 'impl st9)) ffwrt_v + (g 'ffwrt (g 'impl st9)) ffppc_v + (g 'ffppc (g 'impl st9)) ffinst_v + (g 'ffinst (g 'impl st9)) fdwrt_v + (g 'fdwrt (g 'impl st9)) fdppc_v + (g 'fdppc (g 'impl st9)) fdinst_v + (g 'fdinst (g 'impl st9)) dewrt_v + (g 'dewrt (g 'impl st9)) deppc_v + (g 'deppc (g 'impl st9)) deop_v + (g 'deop (g 'impl st9)) dearg1_v + (g 'dearg1 (g 'impl st9)) dearg2_v + (g 'dearg2 (g 'impl st9)) dedest_v + (g 'dedest (g 'impl st9)) desrc1_v + (g 'desrc1 (g 'impl st9)) desrc2_v + (g 'desrc2 (g 'impl st9)) deimm_v + (g 'deimm (g 'impl st9)) deuseimm_v + (g 'deuseimm (g 'impl st9)) + deisbranch_v + (g 'deisbranch (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emtargetpc_v + (g 'emtargetpc (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emarg2_v + (g 'emarg2 (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mmwrt_v + (g 'mmwrt (g 'impl st9)) mmval_v + (g 'mmval (g 'impl st9)) mmdest_v + (g 'mmdest (g 'impl st9)) mmregwrite_v + (g 'mmregwrite (g 'impl st9)) mwwrt_v + (g 'mwwrt (g 'impl st9)) mwval_v + (g 'mwval (g 'impl st9)) mwdest_v + (g 'mwdest (g 'impl st9)) mwregwrite_v + (g 'mwregwrite (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_2 (g 'impl st9)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + ffwrt_v (g 'ffwrt (g 'impl st10)) + ffppc_v (g 'ffppc (g 'impl st10)) + ffinst_v (g 'ffinst (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdppc_v (g 'fdppc (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deppc_v (g 'deppc (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v (g 'deuseimm (g 'impl st10)) + deisbranch_v + (g 'deisbranch (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emtargetpc_v + (g 'emtargetpc (g 'impl st10)) emdest_v + (g 'emdest (g 'impl st10)) emarg2_v + (g 'emarg2 (g 'impl st10)) emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v (g 'emresult (g 'impl st10)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mmwrt_v + (g 'mmwrt (g 'impl st10)) mmval_v + (g 'mmval (g 'impl st10)) mmdest_v + (g 'mmdest (g 'impl st10)) mmregwrite_v + (g 'mmregwrite (g 'impl st10)) mwwrt_v + (g 'mwwrt (g 'impl st10)) mwval_v + (g 'mwval (g 'impl st10)) mwdest_v + (g 'mwdest (g 'impl st10)) mwregwrite_v + (g 'mwregwrite (g 'impl st10)))) + (st11 (simulate_a st10 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_2 (g 'impl st10)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st11)) + prf_v a1 (g 'prf (g 'impl st11)) + pimem_v (g 'pimem (g 'impl st11)) + pdmem_v (g 'pdmem (g 'impl st11)) + ffwrt_v (g 'ffwrt (g 'impl st11)) + ffppc_v (g 'ffppc (g 'impl st11)) + ffinst_v (g 'ffinst (g 'impl st11)) + fdwrt_v (g 'fdwrt (g 'impl st11)) + fdppc_v (g 'fdppc (g 'impl st11)) + fdinst_v (g 'fdinst (g 'impl st11)) + dewrt_v (g 'dewrt (g 'impl st11)) + deppc_v (g 'deppc (g 'impl st11)) + deop_v (g 'deop (g 'impl st11)) + dearg1_v (g 'dearg1 (g 'impl st11)) + dearg2_v (g 'dearg2 (g 'impl st11)) + dedest_v (g 'dedest (g 'impl st11)) + desrc1_v (g 'desrc1 (g 'impl st11)) + desrc2_v (g 'desrc2 (g 'impl st11)) + deimm_v (g 'deimm (g 'impl st11)) + deuseimm_v (g 'deuseimm (g 'impl st11)) + deisbranch_v + (g 'deisbranch (g 'impl st11)) + dememtoreg_v + (g 'dememtoreg (g 'impl st11)) + dememwrite_v + (g 'dememwrite (g 'impl st11)) + deregwrite_v + (g 'deregwrite (g 'impl st11)) emwrt_v + (g 'emwrt (g 'impl st11)) emtargetpc_v + (g 'emtargetpc (g 'impl st11)) emdest_v + (g 'emdest (g 'impl st11)) emarg2_v + (g 'emarg2 (g 'impl st11)) emregwrite_v + (g 'emregwrite (g 'impl st11)) + emresult_v (g 'emresult (g 'impl st11)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st11)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st11)) + emmemwrite_v + (g 'emmemwrite (g 'impl st11)) mmwrt_v + (g 'mmwrt (g 'impl st11)) mmval_v + (g 'mmval (g 'impl st11)) mmdest_v + (g 'mmdest (g 'impl st11)) mmregwrite_v + (g 'mmregwrite (g 'impl st11)) mwwrt_v + (g 'mwwrt (g 'impl st11)) mwval_v + (g 'mwval (g 'impl st11)) mwdest_v + (g 'mwdest (g 'impl st11)) mwregwrite_v + (g 'mwregwrite (g 'impl st11)))) + (st12 (simulate_a st11 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_2 (g 'impl st11)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st12)) + prf_v a1 (g 'prf (g 'impl st12)) + pimem_v (g 'pimem (g 'impl st12)) + pdmem_v (g 'pdmem (g 'impl st12)) + ffwrt_v (g 'ffwrt (g 'impl st12)) + ffppc_v (g 'ffppc (g 'impl st12)) + ffinst_v (g 'ffinst (g 'impl st12)) + fdwrt_v (g 'fdwrt (g 'impl st12)) + fdppc_v (g 'fdppc (g 'impl st12)) + fdinst_v (g 'fdinst (g 'impl st12)) + dewrt_v (g 'dewrt (g 'impl st12)) + deppc_v (g 'deppc (g 'impl st12)) + deop_v (g 'deop (g 'impl st12)) + dearg1_v (g 'dearg1 (g 'impl st12)) + dearg2_v (g 'dearg2 (g 'impl st12)) + dedest_v (g 'dedest (g 'impl st12)) + desrc1_v (g 'desrc1 (g 'impl st12)) + desrc2_v (g 'desrc2 (g 'impl st12)) + deimm_v (g 'deimm (g 'impl st12)) + deuseimm_v (g 'deuseimm (g 'impl st12)) + deisbranch_v + (g 'deisbranch (g 'impl st12)) + dememtoreg_v + (g 'dememtoreg (g 'impl st12)) + dememwrite_v + (g 'dememwrite (g 'impl st12)) + deregwrite_v + (g 'deregwrite (g 'impl st12)) emwrt_v + (g 'emwrt (g 'impl st12)) emtargetpc_v + (g 'emtargetpc (g 'impl st12)) emdest_v + (g 'emdest (g 'impl st12)) emarg2_v + (g 'emarg2 (g 'impl st12)) emregwrite_v + (g 'emregwrite (g 'impl st12)) + emresult_v (g 'emresult (g 'impl st12)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st12)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st12)) + emmemwrite_v + (g 'emmemwrite (g 'impl st12)) mmwrt_v + (g 'mmwrt (g 'impl st12)) mmval_v + (g 'mmval (g 'impl st12)) mmdest_v + (g 'mmdest (g 'impl st12)) mmregwrite_v + (g 'mmregwrite (g 'impl st12)) mwwrt_v + (g 'mwwrt (g 'impl st12)) mwval_v + (g 'mwval (g 'impl st12)) mwdest_v + (g 'mwdest (g 'impl st12)) mwregwrite_v + (g 'mwregwrite (g 'impl st12)))) + (st13 (simulate_a st12 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_2 (g 'impl st12)))) + (equiv_ma_5 + (equiv_ma ppc_v (g 'ppc (g 'impl st13)) + prf_v a1 (g 'prf (g 'impl st13)) + pimem_v (g 'pimem (g 'impl st13)) + pdmem_v (g 'pdmem (g 'impl st13)) + ffwrt_v (g 'ffwrt (g 'impl st13)) + ffppc_v (g 'ffppc (g 'impl st13)) + ffinst_v (g 'ffinst (g 'impl st13)) + fdwrt_v (g 'fdwrt (g 'impl st13)) + fdppc_v (g 'fdppc (g 'impl st13)) + fdinst_v (g 'fdinst (g 'impl st13)) + dewrt_v (g 'dewrt (g 'impl st13)) + deppc_v (g 'deppc (g 'impl st13)) + deop_v (g 'deop (g 'impl st13)) + dearg1_v (g 'dearg1 (g 'impl st13)) + dearg2_v (g 'dearg2 (g 'impl st13)) + dedest_v (g 'dedest (g 'impl st13)) + desrc1_v (g 'desrc1 (g 'impl st13)) + desrc2_v (g 'desrc2 (g 'impl st13)) + deimm_v (g 'deimm (g 'impl st13)) + deuseimm_v (g 'deuseimm (g 'impl st13)) + deisbranch_v + (g 'deisbranch (g 'impl st13)) + dememtoreg_v + (g 'dememtoreg (g 'impl st13)) + dememwrite_v + (g 'dememwrite (g 'impl st13)) + deregwrite_v + (g 'deregwrite (g 'impl st13)) emwrt_v + (g 'emwrt (g 'impl st13)) emtargetpc_v + (g 'emtargetpc (g 'impl st13)) emdest_v + (g 'emdest (g 'impl st13)) emarg2_v + (g 'emarg2 (g 'impl st13)) emregwrite_v + (g 'emregwrite (g 'impl st13)) + emresult_v (g 'emresult (g 'impl st13)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st13)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st13)) + emmemwrite_v + (g 'emmemwrite (g 'impl st13)) mmwrt_v + (g 'mmwrt (g 'impl st13)) mmval_v + (g 'mmval (g 'impl st13)) mmdest_v + (g 'mmdest (g 'impl st13)) mmregwrite_v + (g 'mmregwrite (g 'impl st13)) mwwrt_v + (g 'mwwrt (g 'impl st13)) mwval_v + (g 'mwval (g 'impl st13)) mwdest_v + (g 'mwdest (g 'impl st13)) mwregwrite_v + (g 'mwregwrite (g 'impl st13)))) + (st14 (simulate_a st13 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_2 (g 'impl st13)))) + (equiv_ma_6 + (equiv_ma ppc_v (g 'ppc (g 'impl st14)) + prf_v a1 (g 'prf (g 'impl st14)) + pimem_v (g 'pimem (g 'impl st14)) + pdmem_v (g 'pdmem (g 'impl st14)) + ffwrt_v (g 'ffwrt (g 'impl st14)) + ffppc_v (g 'ffppc (g 'impl st14)) + ffinst_v (g 'ffinst (g 'impl st14)) + fdwrt_v (g 'fdwrt (g 'impl st14)) + fdppc_v (g 'fdppc (g 'impl st14)) + fdinst_v (g 'fdinst (g 'impl st14)) + dewrt_v (g 'dewrt (g 'impl st14)) + deppc_v (g 'deppc (g 'impl st14)) + deop_v (g 'deop (g 'impl st14)) + dearg1_v (g 'dearg1 (g 'impl st14)) + dearg2_v (g 'dearg2 (g 'impl st14)) + dedest_v (g 'dedest (g 'impl st14)) + desrc1_v (g 'desrc1 (g 'impl st14)) + desrc2_v (g 'desrc2 (g 'impl st14)) + deimm_v (g 'deimm (g 'impl st14)) + deuseimm_v (g 'deuseimm (g 'impl st14)) + deisbranch_v + (g 'deisbranch (g 'impl st14)) + dememtoreg_v + (g 'dememtoreg (g 'impl st14)) + dememwrite_v + (g 'dememwrite (g 'impl st14)) + deregwrite_v + (g 'deregwrite (g 'impl st14)) emwrt_v + (g 'emwrt (g 'impl st14)) emtargetpc_v + (g 'emtargetpc (g 'impl st14)) emdest_v + (g 'emdest (g 'impl st14)) emarg2_v + (g 'emarg2 (g 'impl st14)) emregwrite_v + (g 'emregwrite (g 'impl st14)) + emresult_v (g 'emresult (g 'impl st14)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st14)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st14)) + emmemwrite_v + (g 'emmemwrite (g 'impl st14)) mmwrt_v + (g 'mmwrt (g 'impl st14)) mmval_v + (g 'mmval (g 'impl st14)) mmdest_v + (g 'mmdest (g 'impl st14)) mmregwrite_v + (g 'mmregwrite (g 'impl st14)) mwwrt_v + (g 'mwwrt (g 'impl st14)) mwval_v + (g 'mwval (g 'impl st14)) mwdest_v + (g 'mwdest (g 'impl st14)) mwregwrite_v + (g 'mwregwrite (g 'impl st14)))) + (good_ma_v + (or (or equiv_ma_2 equiv_ma_5) equiv_ma_6)) + (st15 (simulate_a st14 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_2 (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_2 (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_2 (g 'impl st16)))) + (st18 (simulate_a st17 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_2 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_2 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_2 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_2 (g 'impl st20)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'mmwrt (g 'impl st21)) + (g 'mmppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ffwrt (g 'impl st21)) + (g 'ffppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0 (g 'prf (g 'impl st21))) + (i_dmem0 (g 'pdmemhist_2 (g 'impl st21))) + (rank_w (rank (g 'mwwrt (g 'impl st21)) zero + (g 'mmwrt (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'ffwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st21)) + (g 'pdmemhist_2 (g 'impl st21)))) + (s_pc0 (g 'spc (g 'spec st22))) + (s_rf0 (g 'srf (g 'spec st22))) + (s_dmem0 (g 'sdmem (g 'spec st22))) + (i_pc (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'mmwrt (g 'impl st22)) + (g 'mmppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ffwrt (g 'impl st22)) + (g 'ffppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf (g 'prf (g 'impl st22))) + (i_dmem (g 'pdmemhist_2 (g 'impl st22))) + (rank_v (rank (g 'mwwrt (g 'impl st22)) zero + (g 'mmwrt (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'ffwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_2 (g 'impl st22)))) + (s_pc1 (g 'spc (g 'spec st23))) + (s_rf1 (g 'srf (g 'spec st23))) + (s_dmem1 (g 'sdmem (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_2 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_2 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_2 (g 'impl st25)))) + (st27 (simulate_a st26 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st26)) + (g 'pdmemhist_2 (g 'impl st26)))) + (st28 (simulate_a st27 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_2 (g 'impl st27)))) + (st29 (simulate_a st28 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_2 (g 'impl st28)))) + (i_pc0_2 (committedpc (g 'mwwrt (g 'impl st29)) + (g 'mwppc (g 'impl st29)) + (g 'mmwrt (g 'impl st29)) + (g 'mmppc (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'emppc (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'deppc (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'fdppc (g 'impl st29)) + (g 'ffwrt (g 'impl st29)) + (g 'ffppc (g 'impl st29)) + (g 'ppc (g 'impl st29)))) + (i_rf0_2 (g 'prf (g 'impl st29))) + (i_dmem0_2 (g 'pdmemhist_2 (g 'impl st29))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st29)) zero + (g 'mmwrt (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'ffwrt (g 'impl st29)))) + (st30 (simulate_a st29 nil nil t i_pc0_2 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st29)) + (g 'pdmemhist_2 (g 'impl st29)))) + (s_pc0_2 (g 'spc (g 'spec st30))) + (s_rf0_2 (g 'srf (g 'spec st30))) + (s_dmem0_2 (g 'sdmem (g 'spec st30))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'mmwrt (g 'impl st30)) + (g 'mmppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ffwrt (g 'impl st30)) + (g 'ffppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf_2 (g 'prf (g 'impl st30))) + (i_dmem_2 (g 'pdmemhist_2 (g 'impl st30))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'mmwrt (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'ffwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st30)) + (g 'pdmemhist_2 (g 'impl st30)))) + (s_pc1_2 (g 'spc (g 'spec st31))) + (s_rf1_2 (g 'srf (g 'spec st31))) + (s_dmem1_2 (g 'sdmem (g 'spec st31))) + (st32 (simulate_a st31 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_2 (g 'impl st31)))) + (st33 (simulate_a st32 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_2 (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st33)) + (g 'pdmemhist_2 (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_2 (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st35)) + (g 'pdmemhist_2 (g 'impl st35)))) + (i_pc0_3 (committedpc (g 'mwwrt (g 'impl st36)) + (g 'mwppc (g 'impl st36)) + (g 'mmwrt (g 'impl st36)) + (g 'mmppc (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'emppc (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'deppc (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'fdppc (g 'impl st36)) + (g 'ffwrt (g 'impl st36)) + (g 'ffppc (g 'impl st36)) + (g 'ppc (g 'impl st36)))) + (i_rf0_3 (g 'prf (g 'impl st36))) + (i_dmem0_3 (g 'pdmemhist_2 (g 'impl st36))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st36)) zero + (g 'mmwrt (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'ffwrt (g 'impl st36)))) + (st37 (simulate_a st36 nil nil t i_pc0_3 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st36)) + (g 'pdmemhist_2 (g 'impl st36)))) + (s_pc0_3 (g 'spc (g 'spec st37))) + (s_rf0_3 (g 'srf (g 'spec st37))) + (s_dmem0_3 (g 'sdmem (g 'spec st37))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st37)) + (g 'mwppc (g 'impl st37)) + (g 'mmwrt (g 'impl st37)) + (g 'mmppc (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'emppc (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'deppc (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'fdppc (g 'impl st37)) + (g 'ffwrt (g 'impl st37)) + (g 'ffppc (g 'impl st37)) + (g 'ppc (g 'impl st37)))) + (i_rf_3 (g 'prf (g 'impl st37))) + (i_dmem_3 (g 'pdmemhist_2 (g 'impl st37))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st37)) zero + (g 'mmwrt (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'ffwrt (g 'impl st37)))) + (st38 (simulate_a st37 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st37)) + (g 'pdmemhist_2 (g 'impl st37)))) + (s_pc1_3 (g 'spc (g 'spec st38))) + (s_rf1_3 (g 'srf (g 'spec st38))) + (s_dmem1_3 (g 'sdmem (g 'spec st38))) + (st39 (simulate_a st38 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st38)) + (g 'pdmemhist_2 (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st39)) + (g 'pdmemhist_2 (g 'impl st39)))) + (st41 (simulate_a st40 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st40)) + (g 'pdmemhist_2 (g 'impl st40)))) + (st42 (simulate_a st41 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st41)) + (g 'pdmemhist_2 (g 'impl st41)))) + (i_pc0_4 (committedpc (g 'mwwrt (g 'impl st42)) + (g 'mwppc (g 'impl st42)) + (g 'mmwrt (g 'impl st42)) + (g 'mmppc (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'emppc (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'deppc (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'fdppc (g 'impl st42)) + (g 'ffwrt (g 'impl st42)) + (g 'ffppc (g 'impl st42)) + (g 'ppc (g 'impl st42)))) + (i_rf0_4 (g 'prf (g 'impl st42))) + (i_dmem0_4 (g 'pdmemhist_2 (g 'impl st42))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st42)) zero + (g 'mmwrt (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'ffwrt (g 'impl st42)))) + (st43 (simulate_a st42 nil nil t i_pc0_4 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st42)) + (g 'pdmemhist_2 (g 'impl st42)))) + (s_pc0_4 (g 'spc (g 'spec st43))) + (s_rf0_4 (g 'srf (g 'spec st43))) + (s_dmem0_4 (g 'sdmem (g 'spec st43))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st43)) + (g 'mwppc (g 'impl st43)) + (g 'mmwrt (g 'impl st43)) + (g 'mmppc (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'emppc (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'deppc (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'fdppc (g 'impl st43)) + (g 'ffwrt (g 'impl st43)) + (g 'ffppc (g 'impl st43)) + (g 'ppc (g 'impl st43)))) + (i_rf_4 (g 'prf (g 'impl st43))) + (i_dmem_4 (g 'pdmemhist_2 (g 'impl st43))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st43)) zero + (g 'mmwrt (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'ffwrt (g 'impl st43)))) + (st44 (simulate_a st43 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st43)) + (g 'pdmemhist_2 (g 'impl st43)))) + (s_pc1_4 (g 'spc (g 'spec st44))) + (s_rf1_4 (g 'srf (g 'spec st44))) + (s_dmem1_4 (g 'sdmem (g 'spec st44))) + (st45 (simulate_a st44 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st44)) + (g 'pdmemhist_2 (g 'impl st44)))) + (st46 (simulate_a st45 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st45)) + (g 'pdmemhist_2 (g 'impl st45)))) + (st47 (simulate_a st46 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st46)) + (g 'pdmemhist_2 (g 'impl st46)))) + (i_pc0_5 (committedpc (g 'mwwrt (g 'impl st47)) + (g 'mwppc (g 'impl st47)) + (g 'mmwrt (g 'impl st47)) + (g 'mmppc (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'emppc (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'deppc (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'fdppc (g 'impl st47)) + (g 'ffwrt (g 'impl st47)) + (g 'ffppc (g 'impl st47)) + (g 'ppc (g 'impl st47)))) + (i_rf0_5 (g 'prf (g 'impl st47))) + (i_dmem0_5 (g 'pdmemhist_2 (g 'impl st47))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st47)) zero + (g 'mmwrt (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'ffwrt (g 'impl st47)))) + (st48 (simulate_a st47 nil nil t i_pc0_5 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st47)) + (g 'pdmemhist_2 (g 'impl st47)))) + (s_pc0_5 (g 'spc (g 'spec st48))) + (s_rf0_5 (g 'srf (g 'spec st48))) + (s_dmem0_5 (g 'sdmem (g 'spec st48))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st48)) + (g 'mwppc (g 'impl st48)) + (g 'mmwrt (g 'impl st48)) + (g 'mmppc (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'emppc (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'deppc (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'fdppc (g 'impl st48)) + (g 'ffwrt (g 'impl st48)) + (g 'ffppc (g 'impl st48)) + (g 'ppc (g 'impl st48)))) + (i_rf_5 (g 'prf (g 'impl st48))) + (i_dmem_5 (g 'pdmemhist_2 (g 'impl st48))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st48)) zero + (g 'mmwrt (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'ffwrt (g 'impl st48)))) + (st49 (simulate_a st48 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st48)) + (g 'pdmemhist_2 (g 'impl st48)))) + (s_pc1_5 (g 'spc (g 'spec st49))) + (s_rf1_5 (g 'srf (g 'spec st49))) + (s_dmem1_5 (g 'sdmem (g 'spec st49))) + (st50 (simulate_a st49 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st49)) + (g 'pdmemhist_2 (g 'impl st49)))) + (st51 (simulate_a st50 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st50)) + (g 'pdmemhist_2 (g 'impl st50)))) + (i_pc0_6 (committedpc (g 'mwwrt (g 'impl st51)) + (g 'mwppc (g 'impl st51)) + (g 'mmwrt (g 'impl st51)) + (g 'mmppc (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'emppc (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'deppc (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'fdppc (g 'impl st51)) + (g 'ffwrt (g 'impl st51)) + (g 'ffppc (g 'impl st51)) + (g 'ppc (g 'impl st51)))) + (i_rf0_6 (g 'prf (g 'impl st51))) + (i_dmem0_6 (g 'pdmemhist_2 (g 'impl st51))) + (rank_w_6 + (rank (g 'mwwrt (g 'impl st51)) zero + (g 'mmwrt (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'ffwrt (g 'impl st51)))) + (st52 (simulate_a st51 nil nil t i_pc0_6 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st51)) + (g 'pdmemhist_2 (g 'impl st51)))) + (s_pc0_6 (g 'spc (g 'spec st52))) + (s_rf0_6 (g 'srf (g 'spec st52))) + (s_dmem0_6 (g 'sdmem (g 'spec st52))) + (i_pc_6 (committedpc (g 'mwwrt (g 'impl st52)) + (g 'mwppc (g 'impl st52)) + (g 'mmwrt (g 'impl st52)) + (g 'mmppc (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'emppc (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'deppc (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'fdppc (g 'impl st52)) + (g 'ffwrt (g 'impl st52)) + (g 'ffppc (g 'impl st52)) + (g 'ppc (g 'impl st52)))) + (i_rf_6 (g 'prf (g 'impl st52))) + (i_dmem_6 (g 'pdmemhist_2 (g 'impl st52))) + (rank_v_6 + (rank (g 'mwwrt (g 'impl st52)) zero + (g 'mmwrt (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'ffwrt (g 'impl st52)))) + (st53 (simulate_a st52 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st52)) + (g 'pdmemhist_2 (g 'impl st52)))) + (s_pc1_6 (g 'spc (g 'spec st53))) + (s_rf1_6 (g 'srf (g 'spec st53))) + (s_dmem1_6 (g 'sdmem (g 'spec st53))) + (st54 (simulate_a st53 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st53)) + (g 'pdmemhist_2 (g 'impl st53)))) + (i_pc0_7 (committedpc (g 'mwwrt (g 'impl st54)) + (g 'mwppc (g 'impl st54)) + (g 'mmwrt (g 'impl st54)) + (g 'mmppc (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'emppc (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'deppc (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'fdppc (g 'impl st54)) + (g 'ffwrt (g 'impl st54)) + (g 'ffppc (g 'impl st54)) + (g 'ppc (g 'impl st54)))) + (i_rf0_7 (g 'prf (g 'impl st54))) + (i_dmem0_7 (g 'pdmemhist_2 (g 'impl st54))) + (rank_w_7 + (rank (g 'mwwrt (g 'impl st54)) zero + (g 'mmwrt (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'ffwrt (g 'impl st54)))) + (st55 (simulate_a st54 nil nil t i_pc0_7 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st54)) + (g 'pdmemhist_2 (g 'impl st54)))) + (s_pc0_7 (g 'spc (g 'spec st55))) + (s_rf0_7 (g 'srf (g 'spec st55))) + (s_dmem0_7 (g 'sdmem (g 'spec st55))) + (i_pc_7 (committedpc (g 'mwwrt (g 'impl st55)) + (g 'mwppc (g 'impl st55)) + (g 'mmwrt (g 'impl st55)) + (g 'mmppc (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'emppc (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'deppc (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'fdppc (g 'impl st55)) + (g 'ffwrt (g 'impl st55)) + (g 'ffppc (g 'impl st55)) + (g 'ppc (g 'impl st55)))) + (i_rf_7 (g 'prf (g 'impl st55))) + (i_dmem_7 (g 'pdmemhist_2 (g 'impl st55))) + (rank_v_7 + (rank (g 'mwwrt (g 'impl st55)) zero + (g 'mmwrt (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'ffwrt (g 'impl st55)))) + (st56 (simulate_a st55 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st55)) + (g 'pdmemhist_2 (g 'impl st55)))) + (s_pc1_7 (g 'spc (g 'spec st56))) + (s_rf1_7 (g 'srf (g 'spec st56))) + (s_dmem1_7 (g 'sdmem (g 'spec st56)))) + (and (and (and (and (and + (and + (and good_ma_v + (or + (or + (not + (and + (and (equal s_pc0 i_pc0) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0))) + (and + (and (equal s_pc1 i_pc) + (equal + (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem))) + (and + (and (equal s_pc0 i_pc) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)))) + (or + (or + (not + (and + (and + (equal s_pc0_2 i_pc0_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf0_2))) + (equal s_dmem0_2 + i_dmem0_2))) + (and + (and (equal s_pc1_2 i_pc_2) + (equal + (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 i_dmem_2))) + (and + (and (equal s_pc0_2 i_pc_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)))) + (or + (or + (not + (and + (and + (equal s_pc0_3 i_pc0_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 i_dmem0_3))) + (and + (and (equal s_pc1_3 i_pc_3) + (equal + (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3))) + (and + (and (equal s_pc0_3 i_pc_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)))) + (or + (or + (not + (and + (and (equal s_pc0_4 i_pc0_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 i_dmem0_4))) + (and + (and (equal s_pc1_4 i_pc_4) + (equal + (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4))) + (and + (and (equal s_pc0_4 i_pc_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)))) + (or (or + (not + (and + (and (equal s_pc0_5 i_pc0_5) + (equal + (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5))) + (and + (and (equal s_pc1_5 i_pc_5) + (equal (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5))) + (and + (and (equal s_pc0_5 i_pc_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)))) + (or (or (not + (and + (and (equal s_pc0_6 i_pc0_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf0_6))) + (equal s_dmem0_6 i_dmem0_6))) + (and + (and (equal s_pc1_6 i_pc_6) + (equal (read-srf_a a1 s_rf1_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem1_6 i_dmem_6))) + (and (and (equal s_pc0_6 i_pc_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem0_6 i_dmem_6)))) + (or (or (not (and + (and (equal s_pc0_7 i_pc0_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf0_7))) + (equal s_dmem0_7 i_dmem0_7))) + (and (and (equal s_pc1_7 i_pc_7) + (equal (read-srf_a a1 s_rf1_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem1_7 i_dmem_7))) + (and (and (equal s_pc0_7 i_pc_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem0_7 i_dmem_7)))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp.lisp new file mode 100644 index 0000000..5df59dd --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp.lisp @@ -0,0 +1,3435 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + +(encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + +(encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (g 3 (car prf)) (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc bpstate ffbpstate ffpredicteddirection + ffpredictedtarget ffwrt ffinst ffppc prf fdbpstate fdppc + fdwrt fdinst fdpredicteddirection fdpredictedtarget + debpstate deppc desrc1 desrc2 dearg1 dearg2 dedest deop + deimm deuseimm deregwrite dememwrite dememtoreg + deisbranch dewrt depredicteddirection depredictedtarget + embpstate emppc emis_taken_branch emtargetpc emarg2 + emresult emdest emwrt emmispredictedtaken + emmispredictednottaken emregwrite emmemwrite emmemtoreg + pdmemhist_2 pdmemhist_1 pdmem mmbpstate mmppc mmval + mmdest mmwrt mmregwrite mwbpstate mwppc mwval mwdest + mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'bpstate bpstate 'ffbpstate ffbpstate + 'ffpredicteddirection ffpredicteddirection 'ffpredictedtarget + ffpredictedtarget 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf + prf 'fdbpstate fdbpstate 'fdppc fdppc 'fdwrt fdwrt 'fdinst + fdinst 'fdpredicteddirection fdpredicteddirection + 'fdpredictedtarget fdpredictedtarget 'debpstate debpstate + 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 dearg1 + 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm deimm 'deuseimm + deuseimm 'deregwrite deregwrite 'dememwrite dememwrite + 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt dewrt + 'depredicteddirection depredicteddirection 'depredictedtarget + depredictedtarget 'embpstate embpstate 'emppc emppc + 'emis_taken_branch emis_taken_branch 'emtargetpc emtargetpc + 'emarg2 emarg2 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'mmbpstate mmbpstate 'mmppc mmppc 'mmval mmval 'mmdest mmdest + 'mmwrt mmwrt 'mmregwrite mmregwrite 'mwbpstate mwbpstate 'mwppc + mwppc 'mwval mwval 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite + mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 commit_impl commit_pc mem1_mispredicted_taken emppc + mem1_mispredicted_nottaken emtargetpc stall ppc + if_predict_branch_taken predicted_target) + (cond + (initi pc0) + (commit_impl commit_pc) + (mem1_mispredicted_taken (add-1 emppc)) + (mem1_mispredicted_nottaken emtargetpc) + (stall ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + +(defun initbpstate_a (bpstate0) bpstate0) + +(defun nextbpstate_a + (initi bpstate0 commit_impl commit_bpstate stall bpstate) + (cond + (initi bpstate0) + (commit_impl commit_bpstate) + (stall bpstate) + (t (nextbpstate bpstate)))) + +(defun initffbpstate_a (ffbpstate0) ffbpstate0) + +(defun nextffbpstate_a (initi ffbpstate0 stall ffbpstate bpstate) + (cond (initi ffbpstate0) (stall ffbpstate) (t bpstate))) + +(defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + +(defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + +(defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + +(defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + +(defun initffwrt_a () nil) + +(defun nextffwrt_a (initi commit_impl squash stall ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall ffwrt) + (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi commit_impl mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest (s 5 mwregwrite (s 6 mwval nil))))))) + prf)) + +(defun initfdbpstate_a (fdbpstate0) fdbpstate0) + +(defun nextfdbpstate_a (initi fdbpstate0 stall fdbpstate ffbpstate) + (cond (initi fdbpstate0) (stall fdbpstate) (t ffbpstate))) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a () nil) + +(defun nextfdwrt_a (initi commit_impl squash stall fdwrt ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall fdwrt) + (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + +(defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + +(defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + +(defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + +(defun initdebpstate_a (debpstate0) debpstate0) + +(defun nextdebpstate_a (initi debpstate0 fdbpstate) + (cond (initi debpstate0) (t fdbpstate))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a () nil) + +(defun nextdewrt_a (initi commit_impl squash stall fdwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (t (and (not stall) fdwrt)))) + +(defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + +(defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + +(defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + +(defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + +(defun initembpstate_a (embpstate0) embpstate0) + +(defun nextembpstate_a (initi embpstate0 debpstate) + (cond (initi embpstate0) (t debpstate))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a () nil) + +(defun nextemwrt_a (initi commit_impl squash dewrt) + (cond (initi nil) (commit_impl nil) (squash nil) (t dewrt))) + +(defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + +(defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + +(defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + +(defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_2 emwrt emmemwrite pdmem + emresult emarg2) + (cond + (initi dmem0) + (commit_impl pdmemhist_2) + ((and emwrt emmemwrite) (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initmmbpstate_a (mmbpstate0) mmbpstate0) + +(defun nextmmbpstate_a (initi mmbpstate0 embpstate) + (cond (initi mmbpstate0) (t embpstate))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a () nil) + +(defun nextmmwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwbpstate_a (mwbpstate0) mwbpstate0) + +(defun nextmwbpstate_a (initi mwbpstate0 mmbpstate) + (cond (initi mwbpstate0) (t mmbpstate))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a () nil) + +(defun nextmwwrt_a (initi commit_impl mmwrt) + (cond (initi nil) (commit_impl nil) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc bpstate0 commit_bpstate + ffbpstate0 ffpredicteddirection0 ffpredictedtarget0 + ffinst0 ffppc0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 debpstate0 + deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmbpstate0 + mmppc0 mmval0 mmdest0 mmregwrite0 mwbpstate0 mwppc0 + mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) (ffbpstate (g 'ffbpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdbpstate (g 'fdbpstate impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmbpstate (g 'mmbpstate impl)) (mmppc (g 'mmppc impl)) + (mmval (g 'mmval impl)) (mmdest (g 'mmdest impl)) + (mmwrt (g 'mmwrt impl)) (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash mem1_mispredicted)) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc + mem1_mispredicted_taken emppc mem1_mispredicted_nottaken + emtargetpc stall ppc if_predict_branch_taken + predicted_target) + (nextbpstate_a initi bpstate0 commit_impl commit_bpstate + stall bpstate) + (nextffbpstate_a initi ffbpstate0 stall ffbpstate bpstate) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi commit_impl squash stall ffwrt) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval) + (nextfdbpstate_a initi fdbpstate0 stall fdbpstate ffbpstate) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi commit_impl squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdebpstate_a initi debpstate0 fdbpstate) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi commit_impl squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextembpstate_a initi embpstate0 debpstate) + (nextemppc_a initi emppc0 deppc) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl squash dewrt) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_2 emwrt + emmemwrite pdmem emresult emarg2) + (nextmmbpstate_a initi mmbpstate0 embpstate) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi commit_impl emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwbpstate_a initi mwbpstate0 mmbpstate) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi commit_impl mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 bpstate0 ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdbpstate0 fdppc0 + fdinst0 fdpredicteddirection0 fdpredictedtarget0 + debpstate0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 depredicteddirection0 depredictedtarget0 + embpstate0 emppc0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) (ffbpstate (g 'ffbpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdbpstate (g 'fdbpstate impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (debpstate (g 'debpstate impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (embpstate (g 'embpstate impl)) (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmbpstate (g 'mmbpstate impl)) (mmppc (g 'mmppc impl)) + (mmval (g 'mmval impl)) (mmdest (g 'mmdest impl)) + (mmwrt (g 'mmwrt impl)) (mmregwrite (g 'mmregwrite impl)) + (mwbpstate (g 'mwbpstate impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash mem1_mispredicted)) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initbpstate_a bpstate0) (initffbpstate_a ffbpstate0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) (initffwrt_a) + (initffinst_a ffinst0) (initffppc_a ffppc0) (initprf_a prf) + (initfdbpstate_a fdbpstate0) (initfdppc_a fdppc0) + (initfdwrt_a) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdebpstate_a debpstate0) (initdeppc_a deppc0) + (initdesrc1_a desrc10) (initdesrc2_a desrc20) + (initdearg1_a a1) (initdearg2_a a2) (initdedest_a dedest0) + (initdeop_a deop0) (initdeimm_a deimm0) + (initdeuseimm_a deuseimm0) (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initembpstate_a embpstate0) (initemppc_a emppc0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initmmbpstate_a mmbpstate0) (initmmppc_a mmppc0) + (initmmval_a mmval0) (initmmdest_a mmdest0) (initmmwrt_a) + (initmmregwrite_a mmregwrite0) (initmwbpstate_a mwbpstate0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl project_pc isa is_taken_branch targetpc + spc) + (cond + (initi pc0) + (project_impl project_pc) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa (s 5 inst (s 6 regwrite (s 7 val nil)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_2 isa memwrite sdmem + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_2) + ((and isa memwrite) (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa impl.prf dmem0 + impl.pdmemhist_2) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa + is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_2 isa + memwrite sdmem result arg2_temp))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st initi isa project_impl project_pc commit_impl commit_pc + commit_bpstate pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmbpstate0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwppc0 mwval0 mwdest0 mwregwrite0 impl.prf + impl.pdmemhist_2) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + bpstate0 commit_bpstate ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmbpstate0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwbpstate0 mwppc0 mwval0 mwdest0 + mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa impl.prf dmem0 impl.pdmemhist_2))) + +(defun initialize_a + (st initi isa project_impl project_pc commit_impl commit_pc + commit_bpstate pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmbpstate0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwppc0 mwval0 mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmbpstate0 mmppc0 mmval0 mmdest0 mmregwrite0 + mwbpstate0 mwppc0 mwval0 mwdest0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + +(defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem ffwrt_v impl.ffwrt ffppc_v impl.ffppc + ffinst_v impl.ffinst fdwrt_v impl.fdwrt fdppc_v + impl.fdppc fdinst_v impl.fdinst dewrt_v impl.dewrt + deppc_v impl.deppc deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm deisbranch_v impl.deisbranch + dememtoreg_v impl.dememtoreg dememwrite_v + impl.dememwrite deregwrite_v impl.deregwrite emwrt_v + impl.emwrt emtargetpc_v impl.emtargetpc emdest_v + impl.emdest emarg2_v impl.emarg2 emregwrite_v + impl.emregwrite emresult_v impl.emresult + emis_taken_branch_v impl.emis_taken_branch emmemtoreg_v + impl.emmemtoreg emmemwrite_v impl.emmemwrite mmwrt_v + impl.mmwrt mmval_v impl.mmval mmdest_v impl.mmdest + mmregwrite_v impl.mmregwrite mwwrt_v impl.mwwrt mwval_v + impl.mwval mwdest_v impl.mwdest mwregwrite_v + impl.mwregwrite) + (declare (xargs :normalize nil)) + (and (and (and (and (and (and (and (and + (and + (and + (and + (and + (and + (and + (and + (equal ppc_v impl.ppc) + (equal + (read-prf_a a1 prf_v) + (read-prf_a a1 impl.prf))) + (equal + (read-pimem_a a1 pimem_v) + (read-pimem_a a1 + impl.pimem))) + (equal pdmem_v impl.pdmem)) + (equalb ffwrt_v impl.ffwrt)) + (implies ffwrt_v + (and + (and impl.ffwrt + (equal ffppc_v impl.ffppc)) + (equal ffinst_v + impl.ffinst)))) + (equalb fdwrt_v impl.fdwrt)) + (implies fdwrt_v + (and + (and impl.fdwrt + (equal fdppc_v impl.fdppc)) + (equal fdinst_v impl.fdinst)))) + (equalb dewrt_v impl.dewrt)) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deppc_v + impl.deppc)) + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v + impl.desrc2)) + (equal deimm_v impl.deimm)) + (equalb deuseimm_v + impl.deuseimm)) + (equalb deisbranch_v + impl.deisbranch)) + (equalb dememtoreg_v + impl.dememtoreg)) + (equalb dememwrite_v + impl.dememwrite)) + (equalb deregwrite_v + impl.deregwrite)))) + (equalb emwrt_v impl.emwrt)) + (implies emwrt_v + (and + (and + (and + (and + (and + (and + (and + (and impl.emwrt + (equal emtargetpc_v + impl.emtargetpc)) + (equal emdest_v + impl.emdest)) + (equal emarg2_v impl.emarg2)) + (equalb emregwrite_v + impl.emregwrite)) + (equal emresult_v + impl.emresult)) + (equalb emis_taken_branch_v + impl.emis_taken_branch)) + (equalb emmemtoreg_v + impl.emmemtoreg)) + (equalb emmemwrite_v + impl.emmemwrite)))) + (equalb mmwrt_v impl.mmwrt)) + (implies mmwrt_v + (and (and (and impl.mmwrt + (equal mmval_v impl.mmval)) + (equal mmdest_v impl.mmdest)) + (equalb mmregwrite_v impl.mmregwrite)))) + (equalb mwwrt_v impl.mwwrt)) + (implies mwwrt_v + (and (and (and impl.mwwrt (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (equalb mwregwrite_v impl.mwregwrite))))) + +(defun rank + (impl.mwwrt zero impl.mmwrt impl.emwrt impl.dewrt impl.fdwrt + impl.ffwrt) + (cond + (impl.mwwrt zero) + (impl.mmwrt (add-1 zero)) + (impl.emwrt (add-1 (add-1 zero))) + (impl.dewrt (add-1 (add-1 (add-1 zero)))) + (impl.fdwrt (add-1 (add-1 (add-1 (add-1 zero))))) + (impl.ffwrt (add-1 (add-1 (add-1 (add-1 (add-1 zero)))))) + (t (add-1 (add-1 (add-1 (add-1 (add-1 (add-1 zero))))))))) + +(defun committedpc + (impl.mwwrt impl.mwppc impl.mmwrt impl.mmppc impl.emwrt + impl.emppc impl.dewrt impl.deppc impl.fdwrt impl.fdppc + impl.ffwrt impl.ffppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.mmwrt impl.mmppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (impl.ffwrt impl.ffppc) + (t impl.ppc))) + +(defun committedbpstate + (impl.mwwrt impl.mwbpstate impl.mmwrt impl.mmbpstate impl.emwrt + impl.embpstate impl.dewrt impl.debpstate impl.fdwrt + impl.fdbpstate impl.ffwrt impl.ffbpstate impl.bpstate) + (cond + (impl.mwwrt impl.mwbpstate) + (impl.mmwrt impl.mmbpstate) + (impl.emwrt impl.embpstate) + (impl.dewrt impl.debpstate) + (impl.fdwrt impl.fdbpstate) + (impl.ffwrt impl.ffbpstate) + (t impl.bpstate))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp epc0) + (integerp bpstate0) (integerp a) (integerp zero) + (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20)) + (let* ((st0 (initialize_a nil nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_2 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_2 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_2 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_2 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_2 (g 'impl st4)))) + (st6 (simulate_a st5 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_2 (g 'impl st5)))) + (st7 (simulate_a st6 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_2 (g 'impl st6)))) + (ppc_v (g 'ppc (g 'impl st7))) + (prf_v (g 'prf (g 'impl st7))) + (pdmem_v (g 'pdmem (g 'impl st7))) + (pimem_v (g 'pimem (g 'impl st7))) + (deop_v (g 'deop (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (dearg1_v (g 'dearg1 (g 'impl st7))) + (dearg2_v (g 'dearg2 (g 'impl st7))) + (dedest_v (g 'dedest (g 'impl st7))) + (dewrt_v (g 'dewrt (g 'impl st7))) + (fdwrt_v (g 'fdwrt (g 'impl st7))) + (fdinst_v (g 'fdinst (g 'impl st7))) + (emdest_v (g 'emdest (g 'impl st7))) + (emwrt_v (g 'emwrt (g 'impl st7))) + (desrc1_v (g 'desrc1 (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (deregwrite_v (g 'deregwrite (g 'impl st7))) + (emregwrite_v (g 'emregwrite (g 'impl st7))) + (deimm_v (g 'deimm (g 'impl st7))) + (deuseimm_v (g 'deuseimm (g 'impl st7))) + (emresult_v (g 'emresult (g 'impl st7))) + (dememtoreg_v (g 'dememtoreg (g 'impl st7))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st7))) + (dememwrite_v (g 'dememwrite (g 'impl st7))) + (emmemwrite_v (g 'emmemwrite (g 'impl st7))) + (emarg2_v (g 'emarg2 (g 'impl st7))) + (ffwrt_v (g 'ffwrt (g 'impl st7))) + (ffinst_v (g 'ffinst (g 'impl st7))) + (mmval_v (g 'mmval (g 'impl st7))) + (mmdest_v (g 'mmdest (g 'impl st7))) + (mmwrt_v (g 'mmwrt (g 'impl st7))) + (mmregwrite_v (g 'mmregwrite (g 'impl st7))) + (mwval_v (g 'mwval (g 'impl st7))) + (mwdest_v (g 'mwdest (g 'impl st7))) + (mwwrt_v (g 'mwwrt (g 'impl st7))) + (mwregwrite_v (g 'mwregwrite (g 'impl st7))) + (deisbranch_v (g 'deisbranch (g 'impl st7))) + (emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st7))) + (emtargetpc_v (g 'emtargetpc (g 'impl st7))) + (ffppc_v (g 'ffppc (g 'impl st7))) + (fdppc_v (g 'fdppc (g 'impl st7))) + (deppc_v (g 'deppc (g 'impl st7))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st7)) + (g 'mwppc (g 'impl st7)) + (g 'mmwrt (g 'impl st7)) + (g 'mmppc (g 'impl st7)) + (g 'emwrt (g 'impl st7)) + (g 'emppc (g 'impl st7)) + (g 'dewrt (g 'impl st7)) + (g 'deppc (g 'impl st7)) + (g 'fdwrt (g 'impl st7)) + (g 'fdppc (g 'impl st7)) + (g 'ffwrt (g 'impl st7)) + (g 'ffppc (g 'impl st7)) + (g 'ppc (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 t i_pc0 + committedbpstate pc0 bpstate0 + ffbpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_2 (g 'impl st7)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) + pimem_v (g 'pimem (g 'impl st8)) + pdmem_v (g 'pdmem (g 'impl st8)) + ffwrt_v (g 'ffwrt (g 'impl st8)) + ffppc_v (g 'ffppc (g 'impl st8)) + ffinst_v (g 'ffinst (g 'impl st8)) + fdwrt_v (g 'fdwrt (g 'impl st8)) + fdppc_v (g 'fdppc (g 'impl st8)) + fdinst_v (g 'fdinst (g 'impl st8)) + dewrt_v (g 'dewrt (g 'impl st8)) + deppc_v (g 'deppc (g 'impl st8)) + deop_v (g 'deop (g 'impl st8)) + dearg1_v (g 'dearg1 (g 'impl st8)) + dearg2_v (g 'dearg2 (g 'impl st8)) + dedest_v (g 'dedest (g 'impl st8)) + desrc1_v (g 'desrc1 (g 'impl st8)) + desrc2_v (g 'desrc2 (g 'impl st8)) + deimm_v (g 'deimm (g 'impl st8)) + deuseimm_v (g 'deuseimm (g 'impl st8)) + deisbranch_v + (g 'deisbranch (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emtargetpc_v + (g 'emtargetpc (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emarg2_v + (g 'emarg2 (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mmwrt_v + (g 'mmwrt (g 'impl st8)) mmval_v + (g 'mmval (g 'impl st8)) mmdest_v + (g 'mmdest (g 'impl st8)) mmregwrite_v + (g 'mmregwrite (g 'impl st8)) mwwrt_v + (g 'mwwrt (g 'impl st8)) mwval_v + (g 'mwval (g 'impl st8)) mwdest_v + (g 'mwdest (g 'impl st8)) mwregwrite_v + (g 'mwregwrite (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_2 (g 'impl st8)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) + pimem_v (g 'pimem (g 'impl st9)) + pdmem_v (g 'pdmem (g 'impl st9)) + ffwrt_v (g 'ffwrt (g 'impl st9)) + ffppc_v (g 'ffppc (g 'impl st9)) + ffinst_v (g 'ffinst (g 'impl st9)) + fdwrt_v (g 'fdwrt (g 'impl st9)) + fdppc_v (g 'fdppc (g 'impl st9)) + fdinst_v (g 'fdinst (g 'impl st9)) + dewrt_v (g 'dewrt (g 'impl st9)) + deppc_v (g 'deppc (g 'impl st9)) + deop_v (g 'deop (g 'impl st9)) + dearg1_v (g 'dearg1 (g 'impl st9)) + dearg2_v (g 'dearg2 (g 'impl st9)) + dedest_v (g 'dedest (g 'impl st9)) + desrc1_v (g 'desrc1 (g 'impl st9)) + desrc2_v (g 'desrc2 (g 'impl st9)) + deimm_v (g 'deimm (g 'impl st9)) + deuseimm_v (g 'deuseimm (g 'impl st9)) + deisbranch_v + (g 'deisbranch (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emtargetpc_v + (g 'emtargetpc (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emarg2_v + (g 'emarg2 (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mmwrt_v + (g 'mmwrt (g 'impl st9)) mmval_v + (g 'mmval (g 'impl st9)) mmdest_v + (g 'mmdest (g 'impl st9)) mmregwrite_v + (g 'mmregwrite (g 'impl st9)) mwwrt_v + (g 'mwwrt (g 'impl st9)) mwval_v + (g 'mwval (g 'impl st9)) mwdest_v + (g 'mwdest (g 'impl st9)) mwregwrite_v + (g 'mwregwrite (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_2 (g 'impl st9)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + ffwrt_v (g 'ffwrt (g 'impl st10)) + ffppc_v (g 'ffppc (g 'impl st10)) + ffinst_v (g 'ffinst (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdppc_v (g 'fdppc (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deppc_v (g 'deppc (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v + (g 'deuseimm (g 'impl st10)) + deisbranch_v + (g 'deisbranch (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emtargetpc_v + (g 'emtargetpc (g 'impl st10)) + emdest_v (g 'emdest (g 'impl st10)) + emarg2_v (g 'emarg2 (g 'impl st10)) + emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v + (g 'emresult (g 'impl st10)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mmwrt_v + (g 'mmwrt (g 'impl st10)) mmval_v + (g 'mmval (g 'impl st10)) mmdest_v + (g 'mmdest (g 'impl st10)) + mmregwrite_v + (g 'mmregwrite (g 'impl st10)) mwwrt_v + (g 'mwwrt (g 'impl st10)) mwval_v + (g 'mwval (g 'impl st10)) mwdest_v + (g 'mwdest (g 'impl st10)) + mwregwrite_v + (g 'mwregwrite (g 'impl st10)))) + (st11 (simulate_a st10 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_2 (g 'impl st10)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st11)) + prf_v a1 (g 'prf (g 'impl st11)) + pimem_v (g 'pimem (g 'impl st11)) + pdmem_v (g 'pdmem (g 'impl st11)) + ffwrt_v (g 'ffwrt (g 'impl st11)) + ffppc_v (g 'ffppc (g 'impl st11)) + ffinst_v (g 'ffinst (g 'impl st11)) + fdwrt_v (g 'fdwrt (g 'impl st11)) + fdppc_v (g 'fdppc (g 'impl st11)) + fdinst_v (g 'fdinst (g 'impl st11)) + dewrt_v (g 'dewrt (g 'impl st11)) + deppc_v (g 'deppc (g 'impl st11)) + deop_v (g 'deop (g 'impl st11)) + dearg1_v (g 'dearg1 (g 'impl st11)) + dearg2_v (g 'dearg2 (g 'impl st11)) + dedest_v (g 'dedest (g 'impl st11)) + desrc1_v (g 'desrc1 (g 'impl st11)) + desrc2_v (g 'desrc2 (g 'impl st11)) + deimm_v (g 'deimm (g 'impl st11)) + deuseimm_v + (g 'deuseimm (g 'impl st11)) + deisbranch_v + (g 'deisbranch (g 'impl st11)) + dememtoreg_v + (g 'dememtoreg (g 'impl st11)) + dememwrite_v + (g 'dememwrite (g 'impl st11)) + deregwrite_v + (g 'deregwrite (g 'impl st11)) emwrt_v + (g 'emwrt (g 'impl st11)) emtargetpc_v + (g 'emtargetpc (g 'impl st11)) + emdest_v (g 'emdest (g 'impl st11)) + emarg2_v (g 'emarg2 (g 'impl st11)) + emregwrite_v + (g 'emregwrite (g 'impl st11)) + emresult_v + (g 'emresult (g 'impl st11)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st11)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st11)) + emmemwrite_v + (g 'emmemwrite (g 'impl st11)) mmwrt_v + (g 'mmwrt (g 'impl st11)) mmval_v + (g 'mmval (g 'impl st11)) mmdest_v + (g 'mmdest (g 'impl st11)) + mmregwrite_v + (g 'mmregwrite (g 'impl st11)) mwwrt_v + (g 'mwwrt (g 'impl st11)) mwval_v + (g 'mwval (g 'impl st11)) mwdest_v + (g 'mwdest (g 'impl st11)) + mwregwrite_v + (g 'mwregwrite (g 'impl st11)))) + (st12 (simulate_a st11 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_2 (g 'impl st11)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st12)) + prf_v a1 (g 'prf (g 'impl st12)) + pimem_v (g 'pimem (g 'impl st12)) + pdmem_v (g 'pdmem (g 'impl st12)) + ffwrt_v (g 'ffwrt (g 'impl st12)) + ffppc_v (g 'ffppc (g 'impl st12)) + ffinst_v (g 'ffinst (g 'impl st12)) + fdwrt_v (g 'fdwrt (g 'impl st12)) + fdppc_v (g 'fdppc (g 'impl st12)) + fdinst_v (g 'fdinst (g 'impl st12)) + dewrt_v (g 'dewrt (g 'impl st12)) + deppc_v (g 'deppc (g 'impl st12)) + deop_v (g 'deop (g 'impl st12)) + dearg1_v (g 'dearg1 (g 'impl st12)) + dearg2_v (g 'dearg2 (g 'impl st12)) + dedest_v (g 'dedest (g 'impl st12)) + desrc1_v (g 'desrc1 (g 'impl st12)) + desrc2_v (g 'desrc2 (g 'impl st12)) + deimm_v (g 'deimm (g 'impl st12)) + deuseimm_v + (g 'deuseimm (g 'impl st12)) + deisbranch_v + (g 'deisbranch (g 'impl st12)) + dememtoreg_v + (g 'dememtoreg (g 'impl st12)) + dememwrite_v + (g 'dememwrite (g 'impl st12)) + deregwrite_v + (g 'deregwrite (g 'impl st12)) emwrt_v + (g 'emwrt (g 'impl st12)) emtargetpc_v + (g 'emtargetpc (g 'impl st12)) + emdest_v (g 'emdest (g 'impl st12)) + emarg2_v (g 'emarg2 (g 'impl st12)) + emregwrite_v + (g 'emregwrite (g 'impl st12)) + emresult_v + (g 'emresult (g 'impl st12)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st12)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st12)) + emmemwrite_v + (g 'emmemwrite (g 'impl st12)) mmwrt_v + (g 'mmwrt (g 'impl st12)) mmval_v + (g 'mmval (g 'impl st12)) mmdest_v + (g 'mmdest (g 'impl st12)) + mmregwrite_v + (g 'mmregwrite (g 'impl st12)) mwwrt_v + (g 'mwwrt (g 'impl st12)) mwval_v + (g 'mwval (g 'impl st12)) mwdest_v + (g 'mwdest (g 'impl st12)) + mwregwrite_v + (g 'mwregwrite (g 'impl st12)))) + (st13 (simulate_a st12 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_2 (g 'impl st12)))) + (equiv_ma_5 + (equiv_ma ppc_v (g 'ppc (g 'impl st13)) + prf_v a1 (g 'prf (g 'impl st13)) + pimem_v (g 'pimem (g 'impl st13)) + pdmem_v (g 'pdmem (g 'impl st13)) + ffwrt_v (g 'ffwrt (g 'impl st13)) + ffppc_v (g 'ffppc (g 'impl st13)) + ffinst_v (g 'ffinst (g 'impl st13)) + fdwrt_v (g 'fdwrt (g 'impl st13)) + fdppc_v (g 'fdppc (g 'impl st13)) + fdinst_v (g 'fdinst (g 'impl st13)) + dewrt_v (g 'dewrt (g 'impl st13)) + deppc_v (g 'deppc (g 'impl st13)) + deop_v (g 'deop (g 'impl st13)) + dearg1_v (g 'dearg1 (g 'impl st13)) + dearg2_v (g 'dearg2 (g 'impl st13)) + dedest_v (g 'dedest (g 'impl st13)) + desrc1_v (g 'desrc1 (g 'impl st13)) + desrc2_v (g 'desrc2 (g 'impl st13)) + deimm_v (g 'deimm (g 'impl st13)) + deuseimm_v + (g 'deuseimm (g 'impl st13)) + deisbranch_v + (g 'deisbranch (g 'impl st13)) + dememtoreg_v + (g 'dememtoreg (g 'impl st13)) + dememwrite_v + (g 'dememwrite (g 'impl st13)) + deregwrite_v + (g 'deregwrite (g 'impl st13)) emwrt_v + (g 'emwrt (g 'impl st13)) emtargetpc_v + (g 'emtargetpc (g 'impl st13)) + emdest_v (g 'emdest (g 'impl st13)) + emarg2_v (g 'emarg2 (g 'impl st13)) + emregwrite_v + (g 'emregwrite (g 'impl st13)) + emresult_v + (g 'emresult (g 'impl st13)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st13)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st13)) + emmemwrite_v + (g 'emmemwrite (g 'impl st13)) mmwrt_v + (g 'mmwrt (g 'impl st13)) mmval_v + (g 'mmval (g 'impl st13)) mmdest_v + (g 'mmdest (g 'impl st13)) + mmregwrite_v + (g 'mmregwrite (g 'impl st13)) mwwrt_v + (g 'mwwrt (g 'impl st13)) mwval_v + (g 'mwval (g 'impl st13)) mwdest_v + (g 'mwdest (g 'impl st13)) + mwregwrite_v + (g 'mwregwrite (g 'impl st13)))) + (st14 (simulate_a st13 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_2 (g 'impl st13)))) + (equiv_ma_6 + (equiv_ma ppc_v (g 'ppc (g 'impl st14)) + prf_v a1 (g 'prf (g 'impl st14)) + pimem_v (g 'pimem (g 'impl st14)) + pdmem_v (g 'pdmem (g 'impl st14)) + ffwrt_v (g 'ffwrt (g 'impl st14)) + ffppc_v (g 'ffppc (g 'impl st14)) + ffinst_v (g 'ffinst (g 'impl st14)) + fdwrt_v (g 'fdwrt (g 'impl st14)) + fdppc_v (g 'fdppc (g 'impl st14)) + fdinst_v (g 'fdinst (g 'impl st14)) + dewrt_v (g 'dewrt (g 'impl st14)) + deppc_v (g 'deppc (g 'impl st14)) + deop_v (g 'deop (g 'impl st14)) + dearg1_v (g 'dearg1 (g 'impl st14)) + dearg2_v (g 'dearg2 (g 'impl st14)) + dedest_v (g 'dedest (g 'impl st14)) + desrc1_v (g 'desrc1 (g 'impl st14)) + desrc2_v (g 'desrc2 (g 'impl st14)) + deimm_v (g 'deimm (g 'impl st14)) + deuseimm_v + (g 'deuseimm (g 'impl st14)) + deisbranch_v + (g 'deisbranch (g 'impl st14)) + dememtoreg_v + (g 'dememtoreg (g 'impl st14)) + dememwrite_v + (g 'dememwrite (g 'impl st14)) + deregwrite_v + (g 'deregwrite (g 'impl st14)) emwrt_v + (g 'emwrt (g 'impl st14)) emtargetpc_v + (g 'emtargetpc (g 'impl st14)) + emdest_v (g 'emdest (g 'impl st14)) + emarg2_v (g 'emarg2 (g 'impl st14)) + emregwrite_v + (g 'emregwrite (g 'impl st14)) + emresult_v + (g 'emresult (g 'impl st14)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st14)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st14)) + emmemwrite_v + (g 'emmemwrite (g 'impl st14)) mmwrt_v + (g 'mmwrt (g 'impl st14)) mmval_v + (g 'mmval (g 'impl st14)) mmdest_v + (g 'mmdest (g 'impl st14)) + mmregwrite_v + (g 'mmregwrite (g 'impl st14)) mwwrt_v + (g 'mwwrt (g 'impl st14)) mwval_v + (g 'mwval (g 'impl st14)) mwdest_v + (g 'mwdest (g 'impl st14)) + mwregwrite_v + (g 'mwregwrite (g 'impl st14)))) + (good_ma_v + (or (or equiv_ma_2 equiv_ma_5) equiv_ma_6)) + (st15 (simulate_a st14 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_2 (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_2 (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_2 (g 'impl st16)))) + (st18 (simulate_a st17 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_2 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_2 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_2 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_2 (g 'impl st20)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'mmwrt (g 'impl st21)) + (g 'mmppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ffwrt (g 'impl st21)) + (g 'ffppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0 (g 'prf (g 'impl st21))) + (i_dmem0 (g 'pdmemhist_2 (g 'impl st21))) + (rank_w (rank (g 'mwwrt (g 'impl st21)) zero + (g 'mmwrt (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'ffwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st21)) + (g 'pdmemhist_2 (g 'impl st21)))) + (s_pc0 (g 'spc (g 'spec st22))) + (s_rf0 (g 'srf (g 'spec st22))) + (s_dmem0 (g 'sdmem (g 'spec st22))) + (i_pc (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'mmwrt (g 'impl st22)) + (g 'mmppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ffwrt (g 'impl st22)) + (g 'ffppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf (g 'prf (g 'impl st22))) + (i_dmem (g 'pdmemhist_2 (g 'impl st22))) + (rank_v (rank (g 'mwwrt (g 'impl st22)) zero + (g 'mmwrt (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'ffwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_2 (g 'impl st22)))) + (s_pc1 (g 'spc (g 'spec st23))) + (s_rf1 (g 'srf (g 'spec st23))) + (s_dmem1 (g 'sdmem (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_2 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_2 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_2 (g 'impl st25)))) + (st27 (simulate_a st26 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st26)) + (g 'pdmemhist_2 (g 'impl st26)))) + (st28 (simulate_a st27 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_2 (g 'impl st27)))) + (st29 (simulate_a st28 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_2 (g 'impl st28)))) + (i_pc0_2 (committedpc + (g 'mwwrt (g 'impl st29)) + (g 'mwppc (g 'impl st29)) + (g 'mmwrt (g 'impl st29)) + (g 'mmppc (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'emppc (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'deppc (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'fdppc (g 'impl st29)) + (g 'ffwrt (g 'impl st29)) + (g 'ffppc (g 'impl st29)) + (g 'ppc (g 'impl st29)))) + (i_rf0_2 (g 'prf (g 'impl st29))) + (i_dmem0_2 (g 'pdmemhist_2 (g 'impl st29))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st29)) zero + (g 'mmwrt (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'ffwrt (g 'impl st29)))) + (st30 (simulate_a st29 nil nil t i_pc0_2 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st29)) + (g 'pdmemhist_2 (g 'impl st29)))) + (s_pc0_2 (g 'spc (g 'spec st30))) + (s_rf0_2 (g 'srf (g 'spec st30))) + (s_dmem0_2 (g 'sdmem (g 'spec st30))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'mmwrt (g 'impl st30)) + (g 'mmppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ffwrt (g 'impl st30)) + (g 'ffppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf_2 (g 'prf (g 'impl st30))) + (i_dmem_2 (g 'pdmemhist_2 (g 'impl st30))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'mmwrt (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'ffwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st30)) + (g 'pdmemhist_2 (g 'impl st30)))) + (s_pc1_2 (g 'spc (g 'spec st31))) + (s_rf1_2 (g 'srf (g 'spec st31))) + (s_dmem1_2 (g 'sdmem (g 'spec st31))) + (st32 (simulate_a st31 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_2 (g 'impl st31)))) + (st33 (simulate_a st32 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_2 (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st33)) + (g 'pdmemhist_2 (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_2 (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st35)) + (g 'pdmemhist_2 (g 'impl st35)))) + (i_pc0_3 (committedpc + (g 'mwwrt (g 'impl st36)) + (g 'mwppc (g 'impl st36)) + (g 'mmwrt (g 'impl st36)) + (g 'mmppc (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'emppc (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'deppc (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'fdppc (g 'impl st36)) + (g 'ffwrt (g 'impl st36)) + (g 'ffppc (g 'impl st36)) + (g 'ppc (g 'impl st36)))) + (i_rf0_3 (g 'prf (g 'impl st36))) + (i_dmem0_3 (g 'pdmemhist_2 (g 'impl st36))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st36)) zero + (g 'mmwrt (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'ffwrt (g 'impl st36)))) + (st37 (simulate_a st36 nil nil t i_pc0_3 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st36)) + (g 'pdmemhist_2 (g 'impl st36)))) + (s_pc0_3 (g 'spc (g 'spec st37))) + (s_rf0_3 (g 'srf (g 'spec st37))) + (s_dmem0_3 (g 'sdmem (g 'spec st37))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st37)) + (g 'mwppc (g 'impl st37)) + (g 'mmwrt (g 'impl st37)) + (g 'mmppc (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'emppc (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'deppc (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'fdppc (g 'impl st37)) + (g 'ffwrt (g 'impl st37)) + (g 'ffppc (g 'impl st37)) + (g 'ppc (g 'impl st37)))) + (i_rf_3 (g 'prf (g 'impl st37))) + (i_dmem_3 (g 'pdmemhist_2 (g 'impl st37))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st37)) zero + (g 'mmwrt (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'ffwrt (g 'impl st37)))) + (st38 (simulate_a st37 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st37)) + (g 'pdmemhist_2 (g 'impl st37)))) + (s_pc1_3 (g 'spc (g 'spec st38))) + (s_rf1_3 (g 'srf (g 'spec st38))) + (s_dmem1_3 (g 'sdmem (g 'spec st38))) + (st39 (simulate_a st38 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st38)) + (g 'pdmemhist_2 (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st39)) + (g 'pdmemhist_2 (g 'impl st39)))) + (st41 (simulate_a st40 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st40)) + (g 'pdmemhist_2 (g 'impl st40)))) + (st42 (simulate_a st41 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st41)) + (g 'pdmemhist_2 (g 'impl st41)))) + (i_pc0_4 (committedpc + (g 'mwwrt (g 'impl st42)) + (g 'mwppc (g 'impl st42)) + (g 'mmwrt (g 'impl st42)) + (g 'mmppc (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'emppc (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'deppc (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'fdppc (g 'impl st42)) + (g 'ffwrt (g 'impl st42)) + (g 'ffppc (g 'impl st42)) + (g 'ppc (g 'impl st42)))) + (i_rf0_4 (g 'prf (g 'impl st42))) + (i_dmem0_4 (g 'pdmemhist_2 (g 'impl st42))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st42)) zero + (g 'mmwrt (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'ffwrt (g 'impl st42)))) + (st43 (simulate_a st42 nil nil t i_pc0_4 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st42)) + (g 'pdmemhist_2 (g 'impl st42)))) + (s_pc0_4 (g 'spc (g 'spec st43))) + (s_rf0_4 (g 'srf (g 'spec st43))) + (s_dmem0_4 (g 'sdmem (g 'spec st43))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st43)) + (g 'mwppc (g 'impl st43)) + (g 'mmwrt (g 'impl st43)) + (g 'mmppc (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'emppc (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'deppc (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'fdppc (g 'impl st43)) + (g 'ffwrt (g 'impl st43)) + (g 'ffppc (g 'impl st43)) + (g 'ppc (g 'impl st43)))) + (i_rf_4 (g 'prf (g 'impl st43))) + (i_dmem_4 (g 'pdmemhist_2 (g 'impl st43))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st43)) zero + (g 'mmwrt (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'ffwrt (g 'impl st43)))) + (st44 (simulate_a st43 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st43)) + (g 'pdmemhist_2 (g 'impl st43)))) + (s_pc1_4 (g 'spc (g 'spec st44))) + (s_rf1_4 (g 'srf (g 'spec st44))) + (s_dmem1_4 (g 'sdmem (g 'spec st44))) + (st45 (simulate_a st44 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st44)) + (g 'pdmemhist_2 (g 'impl st44)))) + (st46 (simulate_a st45 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st45)) + (g 'pdmemhist_2 (g 'impl st45)))) + (st47 (simulate_a st46 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st46)) + (g 'pdmemhist_2 (g 'impl st46)))) + (i_pc0_5 (committedpc + (g 'mwwrt (g 'impl st47)) + (g 'mwppc (g 'impl st47)) + (g 'mmwrt (g 'impl st47)) + (g 'mmppc (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'emppc (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'deppc (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'fdppc (g 'impl st47)) + (g 'ffwrt (g 'impl st47)) + (g 'ffppc (g 'impl st47)) + (g 'ppc (g 'impl st47)))) + (i_rf0_5 (g 'prf (g 'impl st47))) + (i_dmem0_5 (g 'pdmemhist_2 (g 'impl st47))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st47)) zero + (g 'mmwrt (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'ffwrt (g 'impl st47)))) + (st48 (simulate_a st47 nil nil t i_pc0_5 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st47)) + (g 'pdmemhist_2 (g 'impl st47)))) + (s_pc0_5 (g 'spc (g 'spec st48))) + (s_rf0_5 (g 'srf (g 'spec st48))) + (s_dmem0_5 (g 'sdmem (g 'spec st48))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st48)) + (g 'mwppc (g 'impl st48)) + (g 'mmwrt (g 'impl st48)) + (g 'mmppc (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'emppc (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'deppc (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'fdppc (g 'impl st48)) + (g 'ffwrt (g 'impl st48)) + (g 'ffppc (g 'impl st48)) + (g 'ppc (g 'impl st48)))) + (i_rf_5 (g 'prf (g 'impl st48))) + (i_dmem_5 (g 'pdmemhist_2 (g 'impl st48))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st48)) zero + (g 'mmwrt (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'ffwrt (g 'impl st48)))) + (st49 (simulate_a st48 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st48)) + (g 'pdmemhist_2 (g 'impl st48)))) + (s_pc1_5 (g 'spc (g 'spec st49))) + (s_rf1_5 (g 'srf (g 'spec st49))) + (s_dmem1_5 (g 'sdmem (g 'spec st49))) + (st50 (simulate_a st49 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st49)) + (g 'pdmemhist_2 (g 'impl st49)))) + (st51 (simulate_a st50 nil nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st50)) + (g 'pdmemhist_2 (g 'impl st50)))) + (i_pc0_6 (committedpc + (g 'mwwrt (g 'impl st51)) + (g 'mwppc (g 'impl st51)) + (g 'mmwrt (g 'impl st51)) + (g 'mmppc (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'emppc (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'deppc (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'fdppc (g 'impl st51)) + (g 'ffwrt (g 'impl st51)) + (g 'ffppc (g 'impl st51)) + (g 'ppc (g 'impl st51)))) + (i_rf0_6 (g 'prf (g 'impl st51))) + (i_dmem0_6 (g 'pdmemhist_2 (g 'impl st51))) + (rank_w_6 + (rank (g 'mwwrt (g 'impl st51)) zero + (g 'mmwrt (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'ffwrt (g 'impl st51)))) + (st52 (simulate_a st51 nil nil t i_pc0_6 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st51)) + (g 'pdmemhist_2 (g 'impl st51)))) + (s_pc0_6 (g 'spc (g 'spec st52))) + (s_rf0_6 (g 'srf (g 'spec st52))) + (s_dmem0_6 (g 'sdmem (g 'spec st52))) + (i_pc_6 (committedpc (g 'mwwrt (g 'impl st52)) + (g 'mwppc (g 'impl st52)) + (g 'mmwrt (g 'impl st52)) + (g 'mmppc (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'emppc (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'deppc (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'fdppc (g 'impl st52)) + (g 'ffwrt (g 'impl st52)) + (g 'ffppc (g 'impl st52)) + (g 'ppc (g 'impl st52)))) + (i_rf_6 (g 'prf (g 'impl st52))) + (i_dmem_6 (g 'pdmemhist_2 (g 'impl st52))) + (rank_v_6 + (rank (g 'mwwrt (g 'impl st52)) zero + (g 'mmwrt (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'ffwrt (g 'impl st52)))) + (st53 (simulate_a st52 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st52)) + (g 'pdmemhist_2 (g 'impl st52)))) + (s_pc1_6 (g 'spc (g 'spec st53))) + (s_rf1_6 (g 'srf (g 'spec st53))) + (s_dmem1_6 (g 'sdmem (g 'spec st53))) + (st54 (simulate_a st53 t nil nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st53)) + (g 'pdmemhist_2 (g 'impl st53)))) + (i_pc0_7 (committedpc + (g 'mwwrt (g 'impl st54)) + (g 'mwppc (g 'impl st54)) + (g 'mmwrt (g 'impl st54)) + (g 'mmppc (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'emppc (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'deppc (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'fdppc (g 'impl st54)) + (g 'ffwrt (g 'impl st54)) + (g 'ffppc (g 'impl st54)) + (g 'ppc (g 'impl st54)))) + (i_rf0_7 (g 'prf (g 'impl st54))) + (i_dmem0_7 (g 'pdmemhist_2 (g 'impl st54))) + (rank_w_7 + (rank (g 'mwwrt (g 'impl st54)) zero + (g 'mmwrt (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'ffwrt (g 'impl st54)))) + (st55 (simulate_a st54 nil nil t i_pc0_7 nil + pc0 bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st54)) + (g 'pdmemhist_2 (g 'impl st54)))) + (s_pc0_7 (g 'spc (g 'spec st55))) + (s_rf0_7 (g 'srf (g 'spec st55))) + (s_dmem0_7 (g 'sdmem (g 'spec st55))) + (i_pc_7 (committedpc (g 'mwwrt (g 'impl st55)) + (g 'mwppc (g 'impl st55)) + (g 'mmwrt (g 'impl st55)) + (g 'mmppc (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'emppc (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'deppc (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'fdppc (g 'impl st55)) + (g 'ffwrt (g 'impl st55)) + (g 'ffppc (g 'impl st55)) + (g 'ppc (g 'impl st55)))) + (i_rf_7 (g 'prf (g 'impl st55))) + (i_dmem_7 (g 'pdmemhist_2 (g 'impl st55))) + (rank_v_7 + (rank (g 'mwwrt (g 'impl st55)) zero + (g 'mmwrt (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'ffwrt (g 'impl st55)))) + (st56 (simulate_a st55 nil t nil pc0 nil pc0 + bpstate0 pc0 bpstate0 ffbpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffinst0 ffppc0 + fdbpstate0 fdppc0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 debpstate0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + depredicteddirection0 + depredictedtarget0 embpstate0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmbpstate0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwbpstate0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st55)) + (g 'pdmemhist_2 (g 'impl st55)))) + (s_pc1_7 (g 'spc (g 'spec st56))) + (s_rf1_7 (g 'srf (g 'spec st56))) + (s_dmem1_7 (g 'sdmem (g 'spec st56)))) + (and (and (and (and + (and + (and + (and good_ma_v + (or + (or + (not + (and + (and (equal s_pc0 i_pc0) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0))) + (and + (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem))) + (and + (and + (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (< rank_v rank_w)))) + (or + (or + (not + (and + (and (equal s_pc0_2 i_pc0_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf0_2))) + (equal s_dmem0_2 i_dmem0_2))) + (and + (and (equal s_pc1_2 i_pc_2) + (equal + (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 i_dmem_2))) + (and + (and + (and (equal s_pc0_2 i_pc_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)) + (< rank_v_2 rank_w_2)))) + (or + (or + (not + (and + (and (equal s_pc0_3 i_pc0_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 i_dmem0_3))) + (and + (and (equal s_pc1_3 i_pc_3) + (equal (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3))) + (and + (and + (and (equal s_pc0_3 i_pc_3) + (equal (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)) + (< rank_v_3 rank_w_3)))) + (or + (or + (not + (and + (and (equal s_pc0_4 i_pc0_4) + (equal (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 i_dmem0_4))) + (and + (and (equal s_pc1_4 i_pc_4) + (equal (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4))) + (and + (and + (and (equal s_pc0_4 i_pc_4) + (equal (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)) + (< rank_v_4 rank_w_4)))) + (or + (or + (not + (and + (and (equal s_pc0_5 i_pc0_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5))) + (and + (and (equal s_pc1_5 i_pc_5) + (equal (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5))) + (and + (and + (and (equal s_pc0_5 i_pc_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)) + (< rank_v_5 rank_w_5)))) + (or (or (not + (and + (and (equal s_pc0_6 i_pc0_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf0_6))) + (equal s_dmem0_6 i_dmem0_6))) + (and + (and (equal s_pc1_6 i_pc_6) + (equal (read-srf_a a1 s_rf1_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem1_6 i_dmem_6))) + (and (and + (and (equal s_pc0_6 i_pc_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem0_6 i_dmem_6)) + (< rank_v_6 rank_w_6)))) + (or (or (not (and + (and (equal s_pc0_7 i_pc0_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf0_7))) + (equal s_dmem0_7 i_dmem0_7))) + (and (and (equal s_pc1_7 i_pc_7) + (equal (read-srf_a a1 s_rf1_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem1_7 i_dmem_7))) + (and (and (and (equal s_pc0_7 i_pc_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem0_7 i_dmem_7)) + (< rank_v_7 rank_w_7)))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-safety.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-safety.lisp new file mode 100644 index 0000000..7cc8cc1 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-safety.lisp @@ -0,0 +1,2518 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (g 3 (car prf)) (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + (defun impl-state_a + (pimem ppc ffwrt ffinst ffppc prf fdppc fdwrt fdinst deppc + desrc1 desrc2 dearg1 dearg2 dedest deop deimm deuseimm + deregwrite dememwrite dememtoreg deisbranch dewrt emppc + emis_taken_branch emtargetpc emarg2 emresult emdest + emwrt emregwrite emmemwrite emmemtoreg pdmemhist_2 + pdmemhist_1 pdmem mmppc mmval mmdest mmwrt mmregwrite + mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'ffwrt ffwrt 'ffinst ffinst 'ffppc + ffppc 'prf prf 'fdppc fdppc 'fdwrt fdwrt 'fdinst fdinst 'deppc + deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 dearg1 'dearg2 + dearg2 'dedest dedest 'deop deop 'deimm deimm 'deuseimm + deuseimm 'deregwrite deregwrite 'dememwrite dememwrite + 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt dewrt + 'emppc emppc 'emis_taken_branch emis_taken_branch 'emtargetpc + emtargetpc 'emarg2 emarg2 'emresult emresult 'emdest emdest + 'emwrt emwrt 'emregwrite emregwrite 'emmemwrite emmemwrite + 'emmemtoreg emmemtoreg 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 + pdmemhist_1 'pdmem pdmem 'mmppc mmppc 'mmval mmval 'mmdest + mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite 'mwppc mwppc 'mwval + mwval 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 commit_impl commit_pc mem1_is_taken_branch + emtargetpc stall ppc) + (cond + (initi pc0) + (commit_impl commit_pc) + (mem1_is_taken_branch emtargetpc) + (stall ppc) + (t (add-1 ppc)))) + +(defun initffwrt_a () nil) + +(defun nextffwrt_a (initi commit_impl squash stall ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall ffwrt) + (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi commit_impl mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest (s 5 mwregwrite (s 6 mwval nil))))))) + prf)) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a () nil) + +(defun nextfdwrt_a (initi commit_impl squash stall fdwrt ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall fdwrt) + (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a () nil) + +(defun nextdewrt_a (initi commit_impl squash stall fdwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (t (and (not stall) fdwrt)))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a () nil) + +(defun nextemwrt_a (initi commit_impl squash dewrt) + (cond (initi nil) (commit_impl nil) (squash nil) (t dewrt))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_2 emwrt emmemwrite pdmem + emresult emarg2) + (cond + (initi dmem0) + (commit_impl pdmemhist_2) + ((and emwrt emmemwrite) (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a () nil) + +(defun nextmmwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a () nil) + +(defun nextmwwrt_a (initi commit_impl mmwrt) + (cond (initi nil) (commit_impl nil) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (squash mem1_is_taken_branch)) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc + mem1_is_taken_branch emtargetpc stall ppc) + (nextffwrt_a initi commit_impl squash stall ffwrt) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi commit_impl squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi commit_impl squash stall fdwrt) + (nextemppc_a initi emppc0 deppc) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl squash dewrt) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_2 emwrt + emmemwrite pdmem emresult emarg2) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi commit_impl emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi commit_impl mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 ffinst0 ffppc0 fdppc0 fdinst0 deppc0 desrc10 desrc20 + a1 a2 dedest0 deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (squash mem1_is_taken_branch)) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) (initffwrt_a) + (initffinst_a ffinst0) (initffppc_a ffppc0) (initprf_a prf) + (initfdppc_a fdppc0) (initfdwrt_a) (initfdinst_a fdinst0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a) + (initemppc_a emppc0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a) + (initmmregwrite_a mmregwrite0) (initmwppc_a mwppc0) + (initmwval_a mwval0) (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl project_pc isa is_taken_branch targetpc + spc) + (cond + (initi pc0) + (project_impl project_pc) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa (s 5 inst (s 6 regwrite (s 7 val nil)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_2 isa memwrite sdmem + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_2) + ((and isa memwrite) (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa impl.prf dmem0 + impl.pdmemhist_2) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa + is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_2 isa + memwrite sdmem result arg2_temp))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st initi isa project_impl project_pc commit_impl commit_pc pc0 + ffinst0 ffppc0 fdppc0 fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwregwrite0 impl.prf + impl.pdmemhist_2) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + ffinst0 ffppc0 fdppc0 fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa impl.prf dmem0 impl.pdmemhist_2))) + +(defun initialize_a + (st initi isa project_impl project_pc commit_impl commit_pc pc0 + ffinst0 ffppc0 fdppc0 fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + +(defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem ffwrt_v impl.ffwrt ffppc_v impl.ffppc + ffinst_v impl.ffinst fdwrt_v impl.fdwrt fdppc_v + impl.fdppc fdinst_v impl.fdinst dewrt_v impl.dewrt + deppc_v impl.deppc deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm deisbranch_v impl.deisbranch + dememtoreg_v impl.dememtoreg dememwrite_v + impl.dememwrite deregwrite_v impl.deregwrite emwrt_v + impl.emwrt emtargetpc_v impl.emtargetpc emdest_v + impl.emdest emarg2_v impl.emarg2 emregwrite_v + impl.emregwrite emresult_v impl.emresult + emis_taken_branch_v impl.emis_taken_branch emmemtoreg_v + impl.emmemtoreg emmemwrite_v impl.emmemwrite mmwrt_v + impl.mmwrt mmval_v impl.mmval mmdest_v impl.mmdest + mmregwrite_v impl.mmregwrite mwwrt_v impl.mwwrt mwval_v + impl.mwval mwdest_v impl.mwdest mwregwrite_v + impl.mwregwrite) + (declare (xargs :normalize nil)) + (and (and (and (and (and (and (and (and + (and + (and + (and + (and + (and + (and + (and + (equal ppc_v impl.ppc) + (equal + (read-prf_a a1 prf_v) + (read-prf_a a1 impl.prf))) + (equal + (read-pimem_a a1 pimem_v) + (read-pimem_a a1 + impl.pimem))) + (equal pdmem_v impl.pdmem)) + (equalb ffwrt_v impl.ffwrt)) + (implies ffwrt_v + (and + (and impl.ffwrt + (equal ffppc_v impl.ffppc)) + (equal ffinst_v + impl.ffinst)))) + (equalb fdwrt_v impl.fdwrt)) + (implies fdwrt_v + (and + (and impl.fdwrt + (equal fdppc_v impl.fdppc)) + (equal fdinst_v impl.fdinst)))) + (equalb dewrt_v impl.dewrt)) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deppc_v + impl.deppc)) + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v + impl.desrc2)) + (equal deimm_v impl.deimm)) + (equalb deuseimm_v + impl.deuseimm)) + (equalb deisbranch_v + impl.deisbranch)) + (equalb dememtoreg_v + impl.dememtoreg)) + (equalb dememwrite_v + impl.dememwrite)) + (equalb deregwrite_v + impl.deregwrite)))) + (equalb emwrt_v impl.emwrt)) + (implies emwrt_v + (and + (and + (and + (and + (and + (and + (and + (and impl.emwrt + (equal emtargetpc_v + impl.emtargetpc)) + (equal emdest_v + impl.emdest)) + (equal emarg2_v impl.emarg2)) + (equalb emregwrite_v + impl.emregwrite)) + (equal emresult_v + impl.emresult)) + (equalb emis_taken_branch_v + impl.emis_taken_branch)) + (equalb emmemtoreg_v + impl.emmemtoreg)) + (equalb emmemwrite_v + impl.emmemwrite)))) + (equalb mmwrt_v impl.mmwrt)) + (implies mmwrt_v + (and (and (and impl.mmwrt + (equal mmval_v impl.mmval)) + (equal mmdest_v impl.mmdest)) + (equalb mmregwrite_v impl.mmregwrite)))) + (equalb mwwrt_v impl.mwwrt)) + (implies mwwrt_v + (and (and (and impl.mwwrt (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (equalb mwregwrite_v impl.mwregwrite))))) + +(defun rank + (impl.mwwrt zero impl.mmwrt impl.emwrt impl.dewrt impl.fdwrt + impl.ffwrt) + (cond + (impl.mwwrt zero) + (impl.mmwrt (add-1 zero)) + (impl.emwrt (add-1 (add-1 zero))) + (impl.dewrt (add-1 (add-1 (add-1 zero)))) + (impl.fdwrt (add-1 (add-1 (add-1 (add-1 zero))))) + (impl.ffwrt (add-1 (add-1 (add-1 (add-1 (add-1 zero)))))) + (t (add-1 (add-1 (add-1 (add-1 (add-1 (add-1 zero))))))))) + +(defun committedpc + (impl.mwwrt impl.mwppc impl.mmwrt impl.mmppc impl.emwrt + impl.emppc impl.dewrt impl.deppc impl.fdwrt impl.fdppc + impl.ffwrt impl.ffppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.mmwrt impl.mmppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (impl.ffwrt impl.ffppc) + (t impl.ppc))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp a) + (integerp zero) (integerp emppc0) + (integerp mmppc0) (integerp mwppc0) + (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20)) + (let* ((st0 (initialize_a nil nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_2 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_2 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_2 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_2 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_2 (g 'impl st4)))) + (st6 (simulate_a st5 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_2 (g 'impl st5)))) + (st7 (simulate_a st6 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_2 (g 'impl st6)))) + (ppc_v (g 'ppc (g 'impl st7))) + (prf_v (g 'prf (g 'impl st7))) + (pdmem_v (g 'pdmem (g 'impl st7))) + (pimem_v (g 'pimem (g 'impl st7))) + (deop_v (g 'deop (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (dearg1_v (g 'dearg1 (g 'impl st7))) + (dearg2_v (g 'dearg2 (g 'impl st7))) + (dedest_v (g 'dedest (g 'impl st7))) + (dewrt_v (g 'dewrt (g 'impl st7))) + (fdwrt_v (g 'fdwrt (g 'impl st7))) + (fdinst_v (g 'fdinst (g 'impl st7))) + (emdest_v (g 'emdest (g 'impl st7))) + (emwrt_v (g 'emwrt (g 'impl st7))) + (desrc1_v (g 'desrc1 (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (deregwrite_v (g 'deregwrite (g 'impl st7))) + (emregwrite_v (g 'emregwrite (g 'impl st7))) + (deimm_v (g 'deimm (g 'impl st7))) + (deuseimm_v (g 'deuseimm (g 'impl st7))) + (emresult_v (g 'emresult (g 'impl st7))) + (dememtoreg_v (g 'dememtoreg (g 'impl st7))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st7))) + (dememwrite_v (g 'dememwrite (g 'impl st7))) + (emmemwrite_v (g 'emmemwrite (g 'impl st7))) + (emarg2_v (g 'emarg2 (g 'impl st7))) + (ffwrt_v (g 'ffwrt (g 'impl st7))) + (ffinst_v (g 'ffinst (g 'impl st7))) + (mmval_v (g 'mmval (g 'impl st7))) + (mmdest_v (g 'mmdest (g 'impl st7))) + (mmwrt_v (g 'mmwrt (g 'impl st7))) + (mmregwrite_v (g 'mmregwrite (g 'impl st7))) + (mwval_v (g 'mwval (g 'impl st7))) + (mwdest_v (g 'mwdest (g 'impl st7))) + (mwwrt_v (g 'mwwrt (g 'impl st7))) + (mwregwrite_v (g 'mwregwrite (g 'impl st7))) + (deisbranch_v (g 'deisbranch (g 'impl st7))) + (emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st7))) + (emtargetpc_v (g 'emtargetpc (g 'impl st7))) + (ffppc_v (g 'ffppc (g 'impl st7))) + (fdppc_v (g 'fdppc (g 'impl st7))) + (deppc_v (g 'deppc (g 'impl st7))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st7)) + (g 'mwppc (g 'impl st7)) + (g 'mmwrt (g 'impl st7)) + (g 'mmppc (g 'impl st7)) + (g 'emwrt (g 'impl st7)) + (g 'emppc (g 'impl st7)) + (g 'dewrt (g 'impl st7)) + (g 'deppc (g 'impl st7)) + (g 'fdwrt (g 'impl st7)) + (g 'fdppc (g 'impl st7)) + (g 'ffwrt (g 'impl st7)) + (g 'ffppc (g 'impl st7)) + (g 'ppc (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 t i_pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_2 (g 'impl st7)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) pimem_v + (g 'pimem (g 'impl st8)) pdmem_v + (g 'pdmem (g 'impl st8)) ffwrt_v + (g 'ffwrt (g 'impl st8)) ffppc_v + (g 'ffppc (g 'impl st8)) ffinst_v + (g 'ffinst (g 'impl st8)) fdwrt_v + (g 'fdwrt (g 'impl st8)) fdppc_v + (g 'fdppc (g 'impl st8)) fdinst_v + (g 'fdinst (g 'impl st8)) dewrt_v + (g 'dewrt (g 'impl st8)) deppc_v + (g 'deppc (g 'impl st8)) deop_v + (g 'deop (g 'impl st8)) dearg1_v + (g 'dearg1 (g 'impl st8)) dearg2_v + (g 'dearg2 (g 'impl st8)) dedest_v + (g 'dedest (g 'impl st8)) desrc1_v + (g 'desrc1 (g 'impl st8)) desrc2_v + (g 'desrc2 (g 'impl st8)) deimm_v + (g 'deimm (g 'impl st8)) deuseimm_v + (g 'deuseimm (g 'impl st8)) + deisbranch_v + (g 'deisbranch (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emtargetpc_v + (g 'emtargetpc (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emarg2_v + (g 'emarg2 (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mmwrt_v + (g 'mmwrt (g 'impl st8)) mmval_v + (g 'mmval (g 'impl st8)) mmdest_v + (g 'mmdest (g 'impl st8)) mmregwrite_v + (g 'mmregwrite (g 'impl st8)) mwwrt_v + (g 'mwwrt (g 'impl st8)) mwval_v + (g 'mwval (g 'impl st8)) mwdest_v + (g 'mwdest (g 'impl st8)) mwregwrite_v + (g 'mwregwrite (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_2 (g 'impl st8)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) pimem_v + (g 'pimem (g 'impl st9)) pdmem_v + (g 'pdmem (g 'impl st9)) ffwrt_v + (g 'ffwrt (g 'impl st9)) ffppc_v + (g 'ffppc (g 'impl st9)) ffinst_v + (g 'ffinst (g 'impl st9)) fdwrt_v + (g 'fdwrt (g 'impl st9)) fdppc_v + (g 'fdppc (g 'impl st9)) fdinst_v + (g 'fdinst (g 'impl st9)) dewrt_v + (g 'dewrt (g 'impl st9)) deppc_v + (g 'deppc (g 'impl st9)) deop_v + (g 'deop (g 'impl st9)) dearg1_v + (g 'dearg1 (g 'impl st9)) dearg2_v + (g 'dearg2 (g 'impl st9)) dedest_v + (g 'dedest (g 'impl st9)) desrc1_v + (g 'desrc1 (g 'impl st9)) desrc2_v + (g 'desrc2 (g 'impl st9)) deimm_v + (g 'deimm (g 'impl st9)) deuseimm_v + (g 'deuseimm (g 'impl st9)) + deisbranch_v + (g 'deisbranch (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emtargetpc_v + (g 'emtargetpc (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emarg2_v + (g 'emarg2 (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mmwrt_v + (g 'mmwrt (g 'impl st9)) mmval_v + (g 'mmval (g 'impl st9)) mmdest_v + (g 'mmdest (g 'impl st9)) mmregwrite_v + (g 'mmregwrite (g 'impl st9)) mwwrt_v + (g 'mwwrt (g 'impl st9)) mwval_v + (g 'mwval (g 'impl st9)) mwdest_v + (g 'mwdest (g 'impl st9)) mwregwrite_v + (g 'mwregwrite (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_2 (g 'impl st9)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + ffwrt_v (g 'ffwrt (g 'impl st10)) + ffppc_v (g 'ffppc (g 'impl st10)) + ffinst_v (g 'ffinst (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdppc_v (g 'fdppc (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deppc_v (g 'deppc (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v (g 'deuseimm (g 'impl st10)) + deisbranch_v + (g 'deisbranch (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emtargetpc_v + (g 'emtargetpc (g 'impl st10)) emdest_v + (g 'emdest (g 'impl st10)) emarg2_v + (g 'emarg2 (g 'impl st10)) emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v (g 'emresult (g 'impl st10)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mmwrt_v + (g 'mmwrt (g 'impl st10)) mmval_v + (g 'mmval (g 'impl st10)) mmdest_v + (g 'mmdest (g 'impl st10)) mmregwrite_v + (g 'mmregwrite (g 'impl st10)) mwwrt_v + (g 'mwwrt (g 'impl st10)) mwval_v + (g 'mwval (g 'impl st10)) mwdest_v + (g 'mwdest (g 'impl st10)) mwregwrite_v + (g 'mwregwrite (g 'impl st10)))) + (st11 (simulate_a st10 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_2 (g 'impl st10)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st11)) + prf_v a1 (g 'prf (g 'impl st11)) + pimem_v (g 'pimem (g 'impl st11)) + pdmem_v (g 'pdmem (g 'impl st11)) + ffwrt_v (g 'ffwrt (g 'impl st11)) + ffppc_v (g 'ffppc (g 'impl st11)) + ffinst_v (g 'ffinst (g 'impl st11)) + fdwrt_v (g 'fdwrt (g 'impl st11)) + fdppc_v (g 'fdppc (g 'impl st11)) + fdinst_v (g 'fdinst (g 'impl st11)) + dewrt_v (g 'dewrt (g 'impl st11)) + deppc_v (g 'deppc (g 'impl st11)) + deop_v (g 'deop (g 'impl st11)) + dearg1_v (g 'dearg1 (g 'impl st11)) + dearg2_v (g 'dearg2 (g 'impl st11)) + dedest_v (g 'dedest (g 'impl st11)) + desrc1_v (g 'desrc1 (g 'impl st11)) + desrc2_v (g 'desrc2 (g 'impl st11)) + deimm_v (g 'deimm (g 'impl st11)) + deuseimm_v (g 'deuseimm (g 'impl st11)) + deisbranch_v + (g 'deisbranch (g 'impl st11)) + dememtoreg_v + (g 'dememtoreg (g 'impl st11)) + dememwrite_v + (g 'dememwrite (g 'impl st11)) + deregwrite_v + (g 'deregwrite (g 'impl st11)) emwrt_v + (g 'emwrt (g 'impl st11)) emtargetpc_v + (g 'emtargetpc (g 'impl st11)) emdest_v + (g 'emdest (g 'impl st11)) emarg2_v + (g 'emarg2 (g 'impl st11)) emregwrite_v + (g 'emregwrite (g 'impl st11)) + emresult_v (g 'emresult (g 'impl st11)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st11)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st11)) + emmemwrite_v + (g 'emmemwrite (g 'impl st11)) mmwrt_v + (g 'mmwrt (g 'impl st11)) mmval_v + (g 'mmval (g 'impl st11)) mmdest_v + (g 'mmdest (g 'impl st11)) mmregwrite_v + (g 'mmregwrite (g 'impl st11)) mwwrt_v + (g 'mwwrt (g 'impl st11)) mwval_v + (g 'mwval (g 'impl st11)) mwdest_v + (g 'mwdest (g 'impl st11)) mwregwrite_v + (g 'mwregwrite (g 'impl st11)))) + (st12 (simulate_a st11 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_2 (g 'impl st11)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st12)) + prf_v a1 (g 'prf (g 'impl st12)) + pimem_v (g 'pimem (g 'impl st12)) + pdmem_v (g 'pdmem (g 'impl st12)) + ffwrt_v (g 'ffwrt (g 'impl st12)) + ffppc_v (g 'ffppc (g 'impl st12)) + ffinst_v (g 'ffinst (g 'impl st12)) + fdwrt_v (g 'fdwrt (g 'impl st12)) + fdppc_v (g 'fdppc (g 'impl st12)) + fdinst_v (g 'fdinst (g 'impl st12)) + dewrt_v (g 'dewrt (g 'impl st12)) + deppc_v (g 'deppc (g 'impl st12)) + deop_v (g 'deop (g 'impl st12)) + dearg1_v (g 'dearg1 (g 'impl st12)) + dearg2_v (g 'dearg2 (g 'impl st12)) + dedest_v (g 'dedest (g 'impl st12)) + desrc1_v (g 'desrc1 (g 'impl st12)) + desrc2_v (g 'desrc2 (g 'impl st12)) + deimm_v (g 'deimm (g 'impl st12)) + deuseimm_v (g 'deuseimm (g 'impl st12)) + deisbranch_v + (g 'deisbranch (g 'impl st12)) + dememtoreg_v + (g 'dememtoreg (g 'impl st12)) + dememwrite_v + (g 'dememwrite (g 'impl st12)) + deregwrite_v + (g 'deregwrite (g 'impl st12)) emwrt_v + (g 'emwrt (g 'impl st12)) emtargetpc_v + (g 'emtargetpc (g 'impl st12)) emdest_v + (g 'emdest (g 'impl st12)) emarg2_v + (g 'emarg2 (g 'impl st12)) emregwrite_v + (g 'emregwrite (g 'impl st12)) + emresult_v (g 'emresult (g 'impl st12)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st12)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st12)) + emmemwrite_v + (g 'emmemwrite (g 'impl st12)) mmwrt_v + (g 'mmwrt (g 'impl st12)) mmval_v + (g 'mmval (g 'impl st12)) mmdest_v + (g 'mmdest (g 'impl st12)) mmregwrite_v + (g 'mmregwrite (g 'impl st12)) mwwrt_v + (g 'mwwrt (g 'impl st12)) mwval_v + (g 'mwval (g 'impl st12)) mwdest_v + (g 'mwdest (g 'impl st12)) mwregwrite_v + (g 'mwregwrite (g 'impl st12)))) + (st13 (simulate_a st12 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_2 (g 'impl st12)))) + (equiv_ma_5 + (equiv_ma ppc_v (g 'ppc (g 'impl st13)) + prf_v a1 (g 'prf (g 'impl st13)) + pimem_v (g 'pimem (g 'impl st13)) + pdmem_v (g 'pdmem (g 'impl st13)) + ffwrt_v (g 'ffwrt (g 'impl st13)) + ffppc_v (g 'ffppc (g 'impl st13)) + ffinst_v (g 'ffinst (g 'impl st13)) + fdwrt_v (g 'fdwrt (g 'impl st13)) + fdppc_v (g 'fdppc (g 'impl st13)) + fdinst_v (g 'fdinst (g 'impl st13)) + dewrt_v (g 'dewrt (g 'impl st13)) + deppc_v (g 'deppc (g 'impl st13)) + deop_v (g 'deop (g 'impl st13)) + dearg1_v (g 'dearg1 (g 'impl st13)) + dearg2_v (g 'dearg2 (g 'impl st13)) + dedest_v (g 'dedest (g 'impl st13)) + desrc1_v (g 'desrc1 (g 'impl st13)) + desrc2_v (g 'desrc2 (g 'impl st13)) + deimm_v (g 'deimm (g 'impl st13)) + deuseimm_v (g 'deuseimm (g 'impl st13)) + deisbranch_v + (g 'deisbranch (g 'impl st13)) + dememtoreg_v + (g 'dememtoreg (g 'impl st13)) + dememwrite_v + (g 'dememwrite (g 'impl st13)) + deregwrite_v + (g 'deregwrite (g 'impl st13)) emwrt_v + (g 'emwrt (g 'impl st13)) emtargetpc_v + (g 'emtargetpc (g 'impl st13)) emdest_v + (g 'emdest (g 'impl st13)) emarg2_v + (g 'emarg2 (g 'impl st13)) emregwrite_v + (g 'emregwrite (g 'impl st13)) + emresult_v (g 'emresult (g 'impl st13)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st13)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st13)) + emmemwrite_v + (g 'emmemwrite (g 'impl st13)) mmwrt_v + (g 'mmwrt (g 'impl st13)) mmval_v + (g 'mmval (g 'impl st13)) mmdest_v + (g 'mmdest (g 'impl st13)) mmregwrite_v + (g 'mmregwrite (g 'impl st13)) mwwrt_v + (g 'mwwrt (g 'impl st13)) mwval_v + (g 'mwval (g 'impl st13)) mwdest_v + (g 'mwdest (g 'impl st13)) mwregwrite_v + (g 'mwregwrite (g 'impl st13)))) + (st14 (simulate_a st13 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_2 (g 'impl st13)))) + (equiv_ma_6 + (equiv_ma ppc_v (g 'ppc (g 'impl st14)) + prf_v a1 (g 'prf (g 'impl st14)) + pimem_v (g 'pimem (g 'impl st14)) + pdmem_v (g 'pdmem (g 'impl st14)) + ffwrt_v (g 'ffwrt (g 'impl st14)) + ffppc_v (g 'ffppc (g 'impl st14)) + ffinst_v (g 'ffinst (g 'impl st14)) + fdwrt_v (g 'fdwrt (g 'impl st14)) + fdppc_v (g 'fdppc (g 'impl st14)) + fdinst_v (g 'fdinst (g 'impl st14)) + dewrt_v (g 'dewrt (g 'impl st14)) + deppc_v (g 'deppc (g 'impl st14)) + deop_v (g 'deop (g 'impl st14)) + dearg1_v (g 'dearg1 (g 'impl st14)) + dearg2_v (g 'dearg2 (g 'impl st14)) + dedest_v (g 'dedest (g 'impl st14)) + desrc1_v (g 'desrc1 (g 'impl st14)) + desrc2_v (g 'desrc2 (g 'impl st14)) + deimm_v (g 'deimm (g 'impl st14)) + deuseimm_v (g 'deuseimm (g 'impl st14)) + deisbranch_v + (g 'deisbranch (g 'impl st14)) + dememtoreg_v + (g 'dememtoreg (g 'impl st14)) + dememwrite_v + (g 'dememwrite (g 'impl st14)) + deregwrite_v + (g 'deregwrite (g 'impl st14)) emwrt_v + (g 'emwrt (g 'impl st14)) emtargetpc_v + (g 'emtargetpc (g 'impl st14)) emdest_v + (g 'emdest (g 'impl st14)) emarg2_v + (g 'emarg2 (g 'impl st14)) emregwrite_v + (g 'emregwrite (g 'impl st14)) + emresult_v (g 'emresult (g 'impl st14)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st14)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st14)) + emmemwrite_v + (g 'emmemwrite (g 'impl st14)) mmwrt_v + (g 'mmwrt (g 'impl st14)) mmval_v + (g 'mmval (g 'impl st14)) mmdest_v + (g 'mmdest (g 'impl st14)) mmregwrite_v + (g 'mmregwrite (g 'impl st14)) mwwrt_v + (g 'mwwrt (g 'impl st14)) mwval_v + (g 'mwval (g 'impl st14)) mwdest_v + (g 'mwdest (g 'impl st14)) mwregwrite_v + (g 'mwregwrite (g 'impl st14)))) + (good_ma_v + (or (or equiv_ma_2 equiv_ma_5) equiv_ma_6)) + (st15 (simulate_a st14 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_2 (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_2 (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_2 (g 'impl st16)))) + (st18 (simulate_a st17 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_2 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_2 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_2 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_2 (g 'impl st20)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'mmwrt (g 'impl st21)) + (g 'mmppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ffwrt (g 'impl st21)) + (g 'ffppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0 (g 'prf (g 'impl st21))) + (i_dmem0 (g 'pdmemhist_2 (g 'impl st21))) + (rank_w (rank (g 'mwwrt (g 'impl st21)) zero + (g 'mmwrt (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'ffwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st21)) + (g 'pdmemhist_2 (g 'impl st21)))) + (s_pc0 (g 'spc (g 'spec st22))) + (s_rf0 (g 'srf (g 'spec st22))) + (s_dmem0 (g 'sdmem (g 'spec st22))) + (i_pc (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'mmwrt (g 'impl st22)) + (g 'mmppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ffwrt (g 'impl st22)) + (g 'ffppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf (g 'prf (g 'impl st22))) + (i_dmem (g 'pdmemhist_2 (g 'impl st22))) + (rank_v (rank (g 'mwwrt (g 'impl st22)) zero + (g 'mmwrt (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'ffwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_2 (g 'impl st22)))) + (s_pc1 (g 'spc (g 'spec st23))) + (s_rf1 (g 'srf (g 'spec st23))) + (s_dmem1 (g 'sdmem (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_2 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_2 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_2 (g 'impl st25)))) + (st27 (simulate_a st26 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st26)) + (g 'pdmemhist_2 (g 'impl st26)))) + (st28 (simulate_a st27 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_2 (g 'impl st27)))) + (st29 (simulate_a st28 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_2 (g 'impl st28)))) + (i_pc0_2 (committedpc (g 'mwwrt (g 'impl st29)) + (g 'mwppc (g 'impl st29)) + (g 'mmwrt (g 'impl st29)) + (g 'mmppc (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'emppc (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'deppc (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'fdppc (g 'impl st29)) + (g 'ffwrt (g 'impl st29)) + (g 'ffppc (g 'impl st29)) + (g 'ppc (g 'impl st29)))) + (i_rf0_2 (g 'prf (g 'impl st29))) + (i_dmem0_2 (g 'pdmemhist_2 (g 'impl st29))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st29)) zero + (g 'mmwrt (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'ffwrt (g 'impl st29)))) + (st30 (simulate_a st29 nil nil t i_pc0_2 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st29)) + (g 'pdmemhist_2 (g 'impl st29)))) + (s_pc0_2 (g 'spc (g 'spec st30))) + (s_rf0_2 (g 'srf (g 'spec st30))) + (s_dmem0_2 (g 'sdmem (g 'spec st30))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'mmwrt (g 'impl st30)) + (g 'mmppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ffwrt (g 'impl st30)) + (g 'ffppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf_2 (g 'prf (g 'impl st30))) + (i_dmem_2 (g 'pdmemhist_2 (g 'impl st30))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'mmwrt (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'ffwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st30)) + (g 'pdmemhist_2 (g 'impl st30)))) + (s_pc1_2 (g 'spc (g 'spec st31))) + (s_rf1_2 (g 'srf (g 'spec st31))) + (s_dmem1_2 (g 'sdmem (g 'spec st31))) + (st32 (simulate_a st31 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_2 (g 'impl st31)))) + (st33 (simulate_a st32 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_2 (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st33)) + (g 'pdmemhist_2 (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_2 (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st35)) + (g 'pdmemhist_2 (g 'impl st35)))) + (i_pc0_3 (committedpc (g 'mwwrt (g 'impl st36)) + (g 'mwppc (g 'impl st36)) + (g 'mmwrt (g 'impl st36)) + (g 'mmppc (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'emppc (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'deppc (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'fdppc (g 'impl st36)) + (g 'ffwrt (g 'impl st36)) + (g 'ffppc (g 'impl st36)) + (g 'ppc (g 'impl st36)))) + (i_rf0_3 (g 'prf (g 'impl st36))) + (i_dmem0_3 (g 'pdmemhist_2 (g 'impl st36))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st36)) zero + (g 'mmwrt (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'ffwrt (g 'impl st36)))) + (st37 (simulate_a st36 nil nil t i_pc0_3 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st36)) + (g 'pdmemhist_2 (g 'impl st36)))) + (s_pc0_3 (g 'spc (g 'spec st37))) + (s_rf0_3 (g 'srf (g 'spec st37))) + (s_dmem0_3 (g 'sdmem (g 'spec st37))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st37)) + (g 'mwppc (g 'impl st37)) + (g 'mmwrt (g 'impl st37)) + (g 'mmppc (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'emppc (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'deppc (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'fdppc (g 'impl st37)) + (g 'ffwrt (g 'impl st37)) + (g 'ffppc (g 'impl st37)) + (g 'ppc (g 'impl st37)))) + (i_rf_3 (g 'prf (g 'impl st37))) + (i_dmem_3 (g 'pdmemhist_2 (g 'impl st37))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st37)) zero + (g 'mmwrt (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'ffwrt (g 'impl st37)))) + (st38 (simulate_a st37 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st37)) + (g 'pdmemhist_2 (g 'impl st37)))) + (s_pc1_3 (g 'spc (g 'spec st38))) + (s_rf1_3 (g 'srf (g 'spec st38))) + (s_dmem1_3 (g 'sdmem (g 'spec st38))) + (st39 (simulate_a st38 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st38)) + (g 'pdmemhist_2 (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st39)) + (g 'pdmemhist_2 (g 'impl st39)))) + (st41 (simulate_a st40 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st40)) + (g 'pdmemhist_2 (g 'impl st40)))) + (st42 (simulate_a st41 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st41)) + (g 'pdmemhist_2 (g 'impl st41)))) + (i_pc0_4 (committedpc (g 'mwwrt (g 'impl st42)) + (g 'mwppc (g 'impl st42)) + (g 'mmwrt (g 'impl st42)) + (g 'mmppc (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'emppc (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'deppc (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'fdppc (g 'impl st42)) + (g 'ffwrt (g 'impl st42)) + (g 'ffppc (g 'impl st42)) + (g 'ppc (g 'impl st42)))) + (i_rf0_4 (g 'prf (g 'impl st42))) + (i_dmem0_4 (g 'pdmemhist_2 (g 'impl st42))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st42)) zero + (g 'mmwrt (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'ffwrt (g 'impl st42)))) + (st43 (simulate_a st42 nil nil t i_pc0_4 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st42)) + (g 'pdmemhist_2 (g 'impl st42)))) + (s_pc0_4 (g 'spc (g 'spec st43))) + (s_rf0_4 (g 'srf (g 'spec st43))) + (s_dmem0_4 (g 'sdmem (g 'spec st43))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st43)) + (g 'mwppc (g 'impl st43)) + (g 'mmwrt (g 'impl st43)) + (g 'mmppc (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'emppc (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'deppc (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'fdppc (g 'impl st43)) + (g 'ffwrt (g 'impl st43)) + (g 'ffppc (g 'impl st43)) + (g 'ppc (g 'impl st43)))) + (i_rf_4 (g 'prf (g 'impl st43))) + (i_dmem_4 (g 'pdmemhist_2 (g 'impl st43))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st43)) zero + (g 'mmwrt (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'ffwrt (g 'impl st43)))) + (st44 (simulate_a st43 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st43)) + (g 'pdmemhist_2 (g 'impl st43)))) + (s_pc1_4 (g 'spc (g 'spec st44))) + (s_rf1_4 (g 'srf (g 'spec st44))) + (s_dmem1_4 (g 'sdmem (g 'spec st44))) + (st45 (simulate_a st44 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st44)) + (g 'pdmemhist_2 (g 'impl st44)))) + (st46 (simulate_a st45 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st45)) + (g 'pdmemhist_2 (g 'impl st45)))) + (st47 (simulate_a st46 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st46)) + (g 'pdmemhist_2 (g 'impl st46)))) + (i_pc0_5 (committedpc (g 'mwwrt (g 'impl st47)) + (g 'mwppc (g 'impl st47)) + (g 'mmwrt (g 'impl st47)) + (g 'mmppc (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'emppc (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'deppc (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'fdppc (g 'impl st47)) + (g 'ffwrt (g 'impl st47)) + (g 'ffppc (g 'impl st47)) + (g 'ppc (g 'impl st47)))) + (i_rf0_5 (g 'prf (g 'impl st47))) + (i_dmem0_5 (g 'pdmemhist_2 (g 'impl st47))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st47)) zero + (g 'mmwrt (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'ffwrt (g 'impl st47)))) + (st48 (simulate_a st47 nil nil t i_pc0_5 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st47)) + (g 'pdmemhist_2 (g 'impl st47)))) + (s_pc0_5 (g 'spc (g 'spec st48))) + (s_rf0_5 (g 'srf (g 'spec st48))) + (s_dmem0_5 (g 'sdmem (g 'spec st48))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st48)) + (g 'mwppc (g 'impl st48)) + (g 'mmwrt (g 'impl st48)) + (g 'mmppc (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'emppc (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'deppc (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'fdppc (g 'impl st48)) + (g 'ffwrt (g 'impl st48)) + (g 'ffppc (g 'impl st48)) + (g 'ppc (g 'impl st48)))) + (i_rf_5 (g 'prf (g 'impl st48))) + (i_dmem_5 (g 'pdmemhist_2 (g 'impl st48))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st48)) zero + (g 'mmwrt (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'ffwrt (g 'impl st48)))) + (st49 (simulate_a st48 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st48)) + (g 'pdmemhist_2 (g 'impl st48)))) + (s_pc1_5 (g 'spc (g 'spec st49))) + (s_rf1_5 (g 'srf (g 'spec st49))) + (s_dmem1_5 (g 'sdmem (g 'spec st49))) + (st50 (simulate_a st49 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st49)) + (g 'pdmemhist_2 (g 'impl st49)))) + (st51 (simulate_a st50 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st50)) + (g 'pdmemhist_2 (g 'impl st50)))) + (i_pc0_6 (committedpc (g 'mwwrt (g 'impl st51)) + (g 'mwppc (g 'impl st51)) + (g 'mmwrt (g 'impl st51)) + (g 'mmppc (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'emppc (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'deppc (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'fdppc (g 'impl st51)) + (g 'ffwrt (g 'impl st51)) + (g 'ffppc (g 'impl st51)) + (g 'ppc (g 'impl st51)))) + (i_rf0_6 (g 'prf (g 'impl st51))) + (i_dmem0_6 (g 'pdmemhist_2 (g 'impl st51))) + (rank_w_6 + (rank (g 'mwwrt (g 'impl st51)) zero + (g 'mmwrt (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'ffwrt (g 'impl st51)))) + (st52 (simulate_a st51 nil nil t i_pc0_6 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st51)) + (g 'pdmemhist_2 (g 'impl st51)))) + (s_pc0_6 (g 'spc (g 'spec st52))) + (s_rf0_6 (g 'srf (g 'spec st52))) + (s_dmem0_6 (g 'sdmem (g 'spec st52))) + (i_pc_6 (committedpc (g 'mwwrt (g 'impl st52)) + (g 'mwppc (g 'impl st52)) + (g 'mmwrt (g 'impl st52)) + (g 'mmppc (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'emppc (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'deppc (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'fdppc (g 'impl st52)) + (g 'ffwrt (g 'impl st52)) + (g 'ffppc (g 'impl st52)) + (g 'ppc (g 'impl st52)))) + (i_rf_6 (g 'prf (g 'impl st52))) + (i_dmem_6 (g 'pdmemhist_2 (g 'impl st52))) + (rank_v_6 + (rank (g 'mwwrt (g 'impl st52)) zero + (g 'mmwrt (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'ffwrt (g 'impl st52)))) + (st53 (simulate_a st52 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st52)) + (g 'pdmemhist_2 (g 'impl st52)))) + (s_pc1_6 (g 'spc (g 'spec st53))) + (s_rf1_6 (g 'srf (g 'spec st53))) + (s_dmem1_6 (g 'sdmem (g 'spec st53))) + (st54 (simulate_a st53 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st53)) + (g 'pdmemhist_2 (g 'impl st53)))) + (i_pc0_7 (committedpc (g 'mwwrt (g 'impl st54)) + (g 'mwppc (g 'impl st54)) + (g 'mmwrt (g 'impl st54)) + (g 'mmppc (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'emppc (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'deppc (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'fdppc (g 'impl st54)) + (g 'ffwrt (g 'impl st54)) + (g 'ffppc (g 'impl st54)) + (g 'ppc (g 'impl st54)))) + (i_rf0_7 (g 'prf (g 'impl st54))) + (i_dmem0_7 (g 'pdmemhist_2 (g 'impl st54))) + (rank_w_7 + (rank (g 'mwwrt (g 'impl st54)) zero + (g 'mmwrt (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'ffwrt (g 'impl st54)))) + (st55 (simulate_a st54 nil nil t i_pc0_7 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st54)) + (g 'pdmemhist_2 (g 'impl st54)))) + (s_pc0_7 (g 'spc (g 'spec st55))) + (s_rf0_7 (g 'srf (g 'spec st55))) + (s_dmem0_7 (g 'sdmem (g 'spec st55))) + (i_pc_7 (committedpc (g 'mwwrt (g 'impl st55)) + (g 'mwppc (g 'impl st55)) + (g 'mmwrt (g 'impl st55)) + (g 'mmppc (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'emppc (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'deppc (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'fdppc (g 'impl st55)) + (g 'ffwrt (g 'impl st55)) + (g 'ffppc (g 'impl st55)) + (g 'ppc (g 'impl st55)))) + (i_rf_7 (g 'prf (g 'impl st55))) + (i_dmem_7 (g 'pdmemhist_2 (g 'impl st55))) + (rank_v_7 + (rank (g 'mwwrt (g 'impl st55)) zero + (g 'mmwrt (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'ffwrt (g 'impl st55)))) + (st56 (simulate_a st55 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st55)) + (g 'pdmemhist_2 (g 'impl st55)))) + (s_pc1_7 (g 'spc (g 'spec st56))) + (s_rf1_7 (g 'srf (g 'spec st56))) + (s_dmem1_7 (g 'sdmem (g 'spec st56)))) + (and (and (and (and (and + (and + (and good_ma_v + (or + (or + (not + (and + (and (equal s_pc0 i_pc0) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0))) + (and + (and (equal s_pc1 i_pc) + (equal + (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem))) + (and + (and (equal s_pc0 i_pc) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)))) + (or + (or + (not + (and + (and + (equal s_pc0_2 i_pc0_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf0_2))) + (equal s_dmem0_2 + i_dmem0_2))) + (and + (and (equal s_pc1_2 i_pc_2) + (equal + (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 i_dmem_2))) + (and + (and (equal s_pc0_2 i_pc_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)))) + (or + (or + (not + (and + (and + (equal s_pc0_3 i_pc0_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 i_dmem0_3))) + (and + (and (equal s_pc1_3 i_pc_3) + (equal + (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3))) + (and + (and (equal s_pc0_3 i_pc_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)))) + (or + (or + (not + (and + (and (equal s_pc0_4 i_pc0_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 i_dmem0_4))) + (and + (and (equal s_pc1_4 i_pc_4) + (equal + (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4))) + (and + (and (equal s_pc0_4 i_pc_4) + (equal + (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)))) + (or (or + (not + (and + (and (equal s_pc0_5 i_pc0_5) + (equal + (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5))) + (and + (and (equal s_pc1_5 i_pc_5) + (equal (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5))) + (and + (and (equal s_pc0_5 i_pc_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)))) + (or (or (not + (and + (and (equal s_pc0_6 i_pc0_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf0_6))) + (equal s_dmem0_6 i_dmem0_6))) + (and + (and (equal s_pc1_6 i_pc_6) + (equal (read-srf_a a1 s_rf1_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem1_6 i_dmem_6))) + (and (and (equal s_pc0_6 i_pc_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem0_6 i_dmem_6)))) + (or (or (not (and + (and (equal s_pc0_7 i_pc0_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf0_7))) + (equal s_dmem0_7 i_dmem0_7))) + (and (and (equal s_pc1_7 i_pc_7) + (equal (read-srf_a a1 s_rf1_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem1_7 i_dmem_7))) + (and (and (equal s_pc0_7 i_pc_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem0_7 i_dmem_7)))))) + :rule-classes nil) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs.lisp new file mode 100644 index 0000000..dfdbead --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs.lisp @@ -0,0 +1,2599 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((g 2 (car prf)) (read-prf_a a (cdr prf))) + ((and (and (g 3 (car prf)) (equal a (g 4 (car prf)))) + (g 5 (car prf))) + (g 6 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) (read-simem_a a (cdr simem))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + (defun impl-state_a + (pimem ppc ffwrt ffinst ffppc prf fdppc fdwrt fdinst deppc + desrc1 desrc2 dearg1 dearg2 dedest deop deimm deuseimm + deregwrite dememwrite dememtoreg deisbranch dewrt emppc + emis_taken_branch emtargetpc emarg2 emresult emdest + emwrt emregwrite emmemwrite emmemtoreg pdmemhist_2 + pdmemhist_1 pdmem mmppc mmval mmdest mmwrt mmregwrite + mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'ffwrt ffwrt 'ffinst ffinst 'ffppc + ffppc 'prf prf 'fdppc fdppc 'fdwrt fdwrt 'fdinst fdinst 'deppc + deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 dearg1 'dearg2 + dearg2 'dedest dedest 'deop deop 'deimm deimm 'deuseimm + deuseimm 'deregwrite deregwrite 'dememwrite dememwrite + 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt dewrt + 'emppc emppc 'emis_taken_branch emis_taken_branch 'emtargetpc + emtargetpc 'emarg2 emarg2 'emresult emresult 'emdest emdest + 'emwrt emwrt 'emregwrite emregwrite 'emmemwrite emmemwrite + 'emmemtoreg emmemtoreg 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 + pdmemhist_1 'pdmem pdmem 'mmppc mmppc 'mmval mmval 'mmdest + mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite 'mwppc mwppc 'mwval + mwval 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 commit_impl commit_pc mem1_is_taken_branch + emtargetpc stall ppc) + (cond + (initi pc0) + (commit_impl commit_pc) + (mem1_is_taken_branch emtargetpc) + (stall ppc) + (t (add-1 ppc)))) + +(defun initffwrt_a () nil) + +(defun nextffwrt_a (initi commit_impl squash stall ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall ffwrt) + (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi commit_impl mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 commit_impl + (s 3 mwwrt + (s 4 mwdest (s 5 mwregwrite (s 6 mwval nil))))))) + prf)) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a () nil) + +(defun nextfdwrt_a (initi commit_impl squash stall fdwrt ffwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (stall fdwrt) + (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf commit_impl mwwrt mwdest mwregwrite + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a () nil) + +(defun nextdewrt_a (initi commit_impl squash stall fdwrt) + (cond + (initi nil) + (commit_impl nil) + (squash nil) + (t (and (not stall) fdwrt)))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a () nil) + +(defun nextemwrt_a (initi commit_impl squash dewrt) + (cond (initi nil) (commit_impl nil) (squash nil) (t dewrt))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 commit_impl pdmemhist_2 emwrt emmemwrite pdmem + emresult emarg2) + (cond + (initi dmem0) + (commit_impl pdmemhist_2) + ((and emwrt emmemwrite) (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a () nil) + +(defun nextmmwrt_a (initi commit_impl emwrt) + (cond (initi nil) (commit_impl nil) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a () nil) + +(defun nextmwwrt_a (initi commit_impl mmwrt) + (cond (initi nil) (commit_impl nil) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 commit_impl commit_pc ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (squash mem1_is_taken_branch)) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 commit_impl commit_pc + mem1_is_taken_branch emtargetpc stall ppc) + (nextffwrt_a initi commit_impl squash stall ffwrt) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi commit_impl mwwrt mwdest mwregwrite + mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi commit_impl squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf commit_impl mwwrt + mwdest mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi commit_impl squash stall fdwrt) + (nextemppc_a initi emppc0 deppc) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi commit_impl squash dewrt) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 commit_impl pdmemhist_2 emwrt + emmemwrite pdmem emresult emarg2) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi commit_impl emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi commit_impl mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 ffinst0 ffppc0 fdppc0 fdinst0 deppc0 desrc10 desrc20 + a1 a2 dedest0 deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 mwdest0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (squash mem1_is_taken_branch)) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) (initffwrt_a) + (initffinst_a ffinst0) (initffppc_a ffppc0) (initprf_a prf) + (initfdppc_a fdppc0) (initfdwrt_a) (initfdinst_a fdinst0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a) + (initemppc_a emppc0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a) (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a) + (initmmregwrite_a mmregwrite0) (initmwppc_a mwppc0) + (initmwval_a mwval0) (initmwdest_a mwdest0) (initmwwrt_a) + (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem) (cons (s 0 nil (s 1 nil nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl project_pc isa is_taken_branch targetpc + spc) + (cond + (initi pc0) + (project_impl project_pc) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa (s 5 inst (s 6 regwrite (s 7 val nil)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmemhist_2 isa memwrite sdmem + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmemhist_2) + ((and isa memwrite) (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl project_pc isa impl.prf dmem0 + impl.pdmemhist_2) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem) + (nextspc_a initi pc0 project_impl project_pc isa + is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmemhist_2 isa + memwrite sdmem result arg2_temp))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st initi isa project_impl project_pc commit_impl commit_pc pc0 + ffinst0 ffppc0 fdppc0 fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwregwrite0 impl.prf + impl.pdmemhist_2) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 commit_impl commit_pc + ffinst0 ffppc0 fdppc0 fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl project_pc + isa impl.prf dmem0 impl.pdmemhist_2))) + +(defun initialize_a + (st initi isa project_impl project_pc commit_impl commit_pc pc0 + ffinst0 ffppc0 fdppc0 fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + +(defun equiv_ma + (ppc_v impl.ppc prf_v a1 impl.prf pimem_v impl.pimem pdmem_v + impl.pdmem ffwrt_v impl.ffwrt ffppc_v impl.ffppc + ffinst_v impl.ffinst fdwrt_v impl.fdwrt fdppc_v + impl.fdppc fdinst_v impl.fdinst dewrt_v impl.dewrt + deppc_v impl.deppc deop_v impl.deop dearg1_v impl.dearg1 + dearg2_v impl.dearg2 dedest_v impl.dedest desrc1_v + impl.desrc1 desrc2_v impl.desrc2 deimm_v impl.deimm + deuseimm_v impl.deuseimm deisbranch_v impl.deisbranch + dememtoreg_v impl.dememtoreg dememwrite_v + impl.dememwrite deregwrite_v impl.deregwrite emwrt_v + impl.emwrt emtargetpc_v impl.emtargetpc emdest_v + impl.emdest emarg2_v impl.emarg2 emregwrite_v + impl.emregwrite emresult_v impl.emresult + emis_taken_branch_v impl.emis_taken_branch emmemtoreg_v + impl.emmemtoreg emmemwrite_v impl.emmemwrite mmwrt_v + impl.mmwrt mmval_v impl.mmval mmdest_v impl.mmdest + mmregwrite_v impl.mmregwrite mwwrt_v impl.mwwrt mwval_v + impl.mwval mwdest_v impl.mwdest mwregwrite_v + impl.mwregwrite) + (declare (xargs :normalize nil)) + (and (and (and (and (and (and (and (and + (and + (and + (and + (and + (and + (and + (and + (equal ppc_v impl.ppc) + (equal + (read-prf_a a1 prf_v) + (read-prf_a a1 impl.prf))) + (equal + (read-pimem_a a1 pimem_v) + (read-pimem_a a1 + impl.pimem))) + (equal pdmem_v impl.pdmem)) + (equalb ffwrt_v impl.ffwrt)) + (implies ffwrt_v + (and + (and impl.ffwrt + (equal ffppc_v impl.ffppc)) + (equal ffinst_v + impl.ffinst)))) + (equalb fdwrt_v impl.fdwrt)) + (implies fdwrt_v + (and + (and impl.fdwrt + (equal fdppc_v impl.fdppc)) + (equal fdinst_v impl.fdinst)))) + (equalb dewrt_v impl.dewrt)) + (implies dewrt_v + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and + (and impl.dewrt + (equal deppc_v + impl.deppc)) + (equal deop_v + impl.deop)) + (equal dearg1_v + impl.dearg1)) + (equal dearg2_v + impl.dearg2)) + (equal dedest_v + impl.dedest)) + (equal desrc1_v + impl.desrc1)) + (equal desrc2_v + impl.desrc2)) + (equal deimm_v impl.deimm)) + (equalb deuseimm_v + impl.deuseimm)) + (equalb deisbranch_v + impl.deisbranch)) + (equalb dememtoreg_v + impl.dememtoreg)) + (equalb dememwrite_v + impl.dememwrite)) + (equalb deregwrite_v + impl.deregwrite)))) + (equalb emwrt_v impl.emwrt)) + (implies emwrt_v + (and + (and + (and + (and + (and + (and + (and + (and impl.emwrt + (equal emtargetpc_v + impl.emtargetpc)) + (equal emdest_v + impl.emdest)) + (equal emarg2_v impl.emarg2)) + (equalb emregwrite_v + impl.emregwrite)) + (equal emresult_v + impl.emresult)) + (equalb emis_taken_branch_v + impl.emis_taken_branch)) + (equalb emmemtoreg_v + impl.emmemtoreg)) + (equalb emmemwrite_v + impl.emmemwrite)))) + (equalb mmwrt_v impl.mmwrt)) + (implies mmwrt_v + (and (and (and impl.mmwrt + (equal mmval_v impl.mmval)) + (equal mmdest_v impl.mmdest)) + (equalb mmregwrite_v impl.mmregwrite)))) + (equalb mwwrt_v impl.mwwrt)) + (implies mwwrt_v + (and (and (and impl.mwwrt (equal mwval_v impl.mwval)) + (equal mwdest_v impl.mwdest)) + (equalb mwregwrite_v impl.mwregwrite))))) + +(defun rank + (impl.mwwrt zero impl.mmwrt impl.emwrt impl.dewrt impl.fdwrt + impl.ffwrt) + (cond + (impl.mwwrt zero) + (impl.mmwrt (add-1 zero)) + (impl.emwrt (add-1 (add-1 zero))) + (impl.dewrt (add-1 (add-1 (add-1 zero)))) + (impl.fdwrt (add-1 (add-1 (add-1 (add-1 zero))))) + (impl.ffwrt (add-1 (add-1 (add-1 (add-1 (add-1 zero)))))) + (t (add-1 (add-1 (add-1 (add-1 (add-1 (add-1 zero))))))))) + +(defun committedpc + (impl.mwwrt impl.mwppc impl.mmwrt impl.mmppc impl.emwrt + impl.emppc impl.dewrt impl.deppc impl.fdwrt impl.fdppc + impl.ffwrt impl.ffppc impl.ppc) + (cond + (impl.mwwrt impl.mwppc) + (impl.mmwrt impl.mmppc) + (impl.emwrt impl.emppc) + (impl.dewrt impl.deppc) + (impl.fdwrt impl.fdppc) + (impl.ffwrt impl.ffppc) + (t impl.ppc))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp a) + (integerp zero) (integerp emppc0) + (integerp mmppc0) (integerp mwppc0) + (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20)) + (let* ((st0 (initialize_a nil nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0)) + (st1 (simulate_a st0 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st0)) + (g 'pdmemhist_2 (g 'impl st0)))) + (st2 (simulate_a st1 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st1)) + (g 'pdmemhist_2 (g 'impl st1)))) + (st3 (simulate_a st2 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st2)) + (g 'pdmemhist_2 (g 'impl st2)))) + (st4 (simulate_a st3 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st3)) + (g 'pdmemhist_2 (g 'impl st3)))) + (st5 (simulate_a st4 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st4)) + (g 'pdmemhist_2 (g 'impl st4)))) + (st6 (simulate_a st5 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st5)) + (g 'pdmemhist_2 (g 'impl st5)))) + (st7 (simulate_a st6 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st6)) + (g 'pdmemhist_2 (g 'impl st6)))) + (ppc_v (g 'ppc (g 'impl st7))) + (prf_v (g 'prf (g 'impl st7))) + (pdmem_v (g 'pdmem (g 'impl st7))) + (pimem_v (g 'pimem (g 'impl st7))) + (deop_v (g 'deop (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (dearg1_v (g 'dearg1 (g 'impl st7))) + (dearg2_v (g 'dearg2 (g 'impl st7))) + (dedest_v (g 'dedest (g 'impl st7))) + (dewrt_v (g 'dewrt (g 'impl st7))) + (fdwrt_v (g 'fdwrt (g 'impl st7))) + (fdinst_v (g 'fdinst (g 'impl st7))) + (emdest_v (g 'emdest (g 'impl st7))) + (emwrt_v (g 'emwrt (g 'impl st7))) + (desrc1_v (g 'desrc1 (g 'impl st7))) + (desrc2_v (g 'desrc2 (g 'impl st7))) + (deregwrite_v (g 'deregwrite (g 'impl st7))) + (emregwrite_v (g 'emregwrite (g 'impl st7))) + (deimm_v (g 'deimm (g 'impl st7))) + (deuseimm_v (g 'deuseimm (g 'impl st7))) + (emresult_v (g 'emresult (g 'impl st7))) + (dememtoreg_v (g 'dememtoreg (g 'impl st7))) + (emmemtoreg_v (g 'emmemtoreg (g 'impl st7))) + (dememwrite_v (g 'dememwrite (g 'impl st7))) + (emmemwrite_v (g 'emmemwrite (g 'impl st7))) + (emarg2_v (g 'emarg2 (g 'impl st7))) + (ffwrt_v (g 'ffwrt (g 'impl st7))) + (ffinst_v (g 'ffinst (g 'impl st7))) + (mmval_v (g 'mmval (g 'impl st7))) + (mmdest_v (g 'mmdest (g 'impl st7))) + (mmwrt_v (g 'mmwrt (g 'impl st7))) + (mmregwrite_v (g 'mmregwrite (g 'impl st7))) + (mwval_v (g 'mwval (g 'impl st7))) + (mwdest_v (g 'mwdest (g 'impl st7))) + (mwwrt_v (g 'mwwrt (g 'impl st7))) + (mwregwrite_v (g 'mwregwrite (g 'impl st7))) + (deisbranch_v (g 'deisbranch (g 'impl st7))) + (emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st7))) + (emtargetpc_v (g 'emtargetpc (g 'impl st7))) + (ffppc_v (g 'ffppc (g 'impl st7))) + (fdppc_v (g 'fdppc (g 'impl st7))) + (deppc_v (g 'deppc (g 'impl st7))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st7)) + (g 'mwppc (g 'impl st7)) + (g 'mmwrt (g 'impl st7)) + (g 'mmppc (g 'impl st7)) + (g 'emwrt (g 'impl st7)) + (g 'emppc (g 'impl st7)) + (g 'dewrt (g 'impl st7)) + (g 'deppc (g 'impl st7)) + (g 'fdwrt (g 'impl st7)) + (g 'fdppc (g 'impl st7)) + (g 'ffwrt (g 'impl st7)) + (g 'ffppc (g 'impl st7)) + (g 'ppc (g 'impl st7)))) + (st8 (simulate_a st7 nil nil nil pc0 t i_pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st7)) + (g 'pdmemhist_2 (g 'impl st7)))) + (equiv_ma_0 + (equiv_ma ppc_v (g 'ppc (g 'impl st8)) + prf_v a1 (g 'prf (g 'impl st8)) + pimem_v (g 'pimem (g 'impl st8)) + pdmem_v (g 'pdmem (g 'impl st8)) + ffwrt_v (g 'ffwrt (g 'impl st8)) + ffppc_v (g 'ffppc (g 'impl st8)) + ffinst_v (g 'ffinst (g 'impl st8)) + fdwrt_v (g 'fdwrt (g 'impl st8)) + fdppc_v (g 'fdppc (g 'impl st8)) + fdinst_v (g 'fdinst (g 'impl st8)) + dewrt_v (g 'dewrt (g 'impl st8)) + deppc_v (g 'deppc (g 'impl st8)) + deop_v (g 'deop (g 'impl st8)) + dearg1_v (g 'dearg1 (g 'impl st8)) + dearg2_v (g 'dearg2 (g 'impl st8)) + dedest_v (g 'dedest (g 'impl st8)) + desrc1_v (g 'desrc1 (g 'impl st8)) + desrc2_v (g 'desrc2 (g 'impl st8)) + deimm_v (g 'deimm (g 'impl st8)) + deuseimm_v (g 'deuseimm (g 'impl st8)) + deisbranch_v + (g 'deisbranch (g 'impl st8)) + dememtoreg_v + (g 'dememtoreg (g 'impl st8)) + dememwrite_v + (g 'dememwrite (g 'impl st8)) + deregwrite_v + (g 'deregwrite (g 'impl st8)) emwrt_v + (g 'emwrt (g 'impl st8)) emtargetpc_v + (g 'emtargetpc (g 'impl st8)) emdest_v + (g 'emdest (g 'impl st8)) emarg2_v + (g 'emarg2 (g 'impl st8)) emregwrite_v + (g 'emregwrite (g 'impl st8)) + emresult_v (g 'emresult (g 'impl st8)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st8)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st8)) + emmemwrite_v + (g 'emmemwrite (g 'impl st8)) mmwrt_v + (g 'mmwrt (g 'impl st8)) mmval_v + (g 'mmval (g 'impl st8)) mmdest_v + (g 'mmdest (g 'impl st8)) mmregwrite_v + (g 'mmregwrite (g 'impl st8)) mwwrt_v + (g 'mwwrt (g 'impl st8)) mwval_v + (g 'mwval (g 'impl st8)) mwdest_v + (g 'mwdest (g 'impl st8)) mwregwrite_v + (g 'mwregwrite (g 'impl st8)))) + (st9 (simulate_a st8 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwregwrite0 + (g 'prf (g 'impl st8)) + (g 'pdmemhist_2 (g 'impl st8)))) + (equiv_ma_1 + (equiv_ma ppc_v (g 'ppc (g 'impl st9)) + prf_v a1 (g 'prf (g 'impl st9)) + pimem_v (g 'pimem (g 'impl st9)) + pdmem_v (g 'pdmem (g 'impl st9)) + ffwrt_v (g 'ffwrt (g 'impl st9)) + ffppc_v (g 'ffppc (g 'impl st9)) + ffinst_v (g 'ffinst (g 'impl st9)) + fdwrt_v (g 'fdwrt (g 'impl st9)) + fdppc_v (g 'fdppc (g 'impl st9)) + fdinst_v (g 'fdinst (g 'impl st9)) + dewrt_v (g 'dewrt (g 'impl st9)) + deppc_v (g 'deppc (g 'impl st9)) + deop_v (g 'deop (g 'impl st9)) + dearg1_v (g 'dearg1 (g 'impl st9)) + dearg2_v (g 'dearg2 (g 'impl st9)) + dedest_v (g 'dedest (g 'impl st9)) + desrc1_v (g 'desrc1 (g 'impl st9)) + desrc2_v (g 'desrc2 (g 'impl st9)) + deimm_v (g 'deimm (g 'impl st9)) + deuseimm_v (g 'deuseimm (g 'impl st9)) + deisbranch_v + (g 'deisbranch (g 'impl st9)) + dememtoreg_v + (g 'dememtoreg (g 'impl st9)) + dememwrite_v + (g 'dememwrite (g 'impl st9)) + deregwrite_v + (g 'deregwrite (g 'impl st9)) emwrt_v + (g 'emwrt (g 'impl st9)) emtargetpc_v + (g 'emtargetpc (g 'impl st9)) emdest_v + (g 'emdest (g 'impl st9)) emarg2_v + (g 'emarg2 (g 'impl st9)) emregwrite_v + (g 'emregwrite (g 'impl st9)) + emresult_v (g 'emresult (g 'impl st9)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st9)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st9)) + emmemwrite_v + (g 'emmemwrite (g 'impl st9)) mmwrt_v + (g 'mmwrt (g 'impl st9)) mmval_v + (g 'mmval (g 'impl st9)) mmdest_v + (g 'mmdest (g 'impl st9)) mmregwrite_v + (g 'mmregwrite (g 'impl st9)) mwwrt_v + (g 'mwwrt (g 'impl st9)) mwval_v + (g 'mwval (g 'impl st9)) mwdest_v + (g 'mwdest (g 'impl st9)) mwregwrite_v + (g 'mwregwrite (g 'impl st9)))) + (st10 (simulate_a st9 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st9)) + (g 'pdmemhist_2 (g 'impl st9)))) + (equiv_ma_2 + (equiv_ma ppc_v (g 'ppc (g 'impl st10)) + prf_v a1 (g 'prf (g 'impl st10)) + pimem_v (g 'pimem (g 'impl st10)) + pdmem_v (g 'pdmem (g 'impl st10)) + ffwrt_v (g 'ffwrt (g 'impl st10)) + ffppc_v (g 'ffppc (g 'impl st10)) + ffinst_v (g 'ffinst (g 'impl st10)) + fdwrt_v (g 'fdwrt (g 'impl st10)) + fdppc_v (g 'fdppc (g 'impl st10)) + fdinst_v (g 'fdinst (g 'impl st10)) + dewrt_v (g 'dewrt (g 'impl st10)) + deppc_v (g 'deppc (g 'impl st10)) + deop_v (g 'deop (g 'impl st10)) + dearg1_v (g 'dearg1 (g 'impl st10)) + dearg2_v (g 'dearg2 (g 'impl st10)) + dedest_v (g 'dedest (g 'impl st10)) + desrc1_v (g 'desrc1 (g 'impl st10)) + desrc2_v (g 'desrc2 (g 'impl st10)) + deimm_v (g 'deimm (g 'impl st10)) + deuseimm_v + (g 'deuseimm (g 'impl st10)) + deisbranch_v + (g 'deisbranch (g 'impl st10)) + dememtoreg_v + (g 'dememtoreg (g 'impl st10)) + dememwrite_v + (g 'dememwrite (g 'impl st10)) + deregwrite_v + (g 'deregwrite (g 'impl st10)) emwrt_v + (g 'emwrt (g 'impl st10)) emtargetpc_v + (g 'emtargetpc (g 'impl st10)) + emdest_v (g 'emdest (g 'impl st10)) + emarg2_v (g 'emarg2 (g 'impl st10)) + emregwrite_v + (g 'emregwrite (g 'impl st10)) + emresult_v + (g 'emresult (g 'impl st10)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st10)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st10)) + emmemwrite_v + (g 'emmemwrite (g 'impl st10)) mmwrt_v + (g 'mmwrt (g 'impl st10)) mmval_v + (g 'mmval (g 'impl st10)) mmdest_v + (g 'mmdest (g 'impl st10)) + mmregwrite_v + (g 'mmregwrite (g 'impl st10)) mwwrt_v + (g 'mwwrt (g 'impl st10)) mwval_v + (g 'mwval (g 'impl st10)) mwdest_v + (g 'mwdest (g 'impl st10)) + mwregwrite_v + (g 'mwregwrite (g 'impl st10)))) + (st11 (simulate_a st10 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st10)) + (g 'pdmemhist_2 (g 'impl st10)))) + (equiv_ma_3 + (equiv_ma ppc_v (g 'ppc (g 'impl st11)) + prf_v a1 (g 'prf (g 'impl st11)) + pimem_v (g 'pimem (g 'impl st11)) + pdmem_v (g 'pdmem (g 'impl st11)) + ffwrt_v (g 'ffwrt (g 'impl st11)) + ffppc_v (g 'ffppc (g 'impl st11)) + ffinst_v (g 'ffinst (g 'impl st11)) + fdwrt_v (g 'fdwrt (g 'impl st11)) + fdppc_v (g 'fdppc (g 'impl st11)) + fdinst_v (g 'fdinst (g 'impl st11)) + dewrt_v (g 'dewrt (g 'impl st11)) + deppc_v (g 'deppc (g 'impl st11)) + deop_v (g 'deop (g 'impl st11)) + dearg1_v (g 'dearg1 (g 'impl st11)) + dearg2_v (g 'dearg2 (g 'impl st11)) + dedest_v (g 'dedest (g 'impl st11)) + desrc1_v (g 'desrc1 (g 'impl st11)) + desrc2_v (g 'desrc2 (g 'impl st11)) + deimm_v (g 'deimm (g 'impl st11)) + deuseimm_v + (g 'deuseimm (g 'impl st11)) + deisbranch_v + (g 'deisbranch (g 'impl st11)) + dememtoreg_v + (g 'dememtoreg (g 'impl st11)) + dememwrite_v + (g 'dememwrite (g 'impl st11)) + deregwrite_v + (g 'deregwrite (g 'impl st11)) emwrt_v + (g 'emwrt (g 'impl st11)) emtargetpc_v + (g 'emtargetpc (g 'impl st11)) + emdest_v (g 'emdest (g 'impl st11)) + emarg2_v (g 'emarg2 (g 'impl st11)) + emregwrite_v + (g 'emregwrite (g 'impl st11)) + emresult_v + (g 'emresult (g 'impl st11)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st11)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st11)) + emmemwrite_v + (g 'emmemwrite (g 'impl st11)) mmwrt_v + (g 'mmwrt (g 'impl st11)) mmval_v + (g 'mmval (g 'impl st11)) mmdest_v + (g 'mmdest (g 'impl st11)) + mmregwrite_v + (g 'mmregwrite (g 'impl st11)) mwwrt_v + (g 'mwwrt (g 'impl st11)) mwval_v + (g 'mwval (g 'impl st11)) mwdest_v + (g 'mwdest (g 'impl st11)) + mwregwrite_v + (g 'mwregwrite (g 'impl st11)))) + (st12 (simulate_a st11 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st11)) + (g 'pdmemhist_2 (g 'impl st11)))) + (equiv_ma_4 + (equiv_ma ppc_v (g 'ppc (g 'impl st12)) + prf_v a1 (g 'prf (g 'impl st12)) + pimem_v (g 'pimem (g 'impl st12)) + pdmem_v (g 'pdmem (g 'impl st12)) + ffwrt_v (g 'ffwrt (g 'impl st12)) + ffppc_v (g 'ffppc (g 'impl st12)) + ffinst_v (g 'ffinst (g 'impl st12)) + fdwrt_v (g 'fdwrt (g 'impl st12)) + fdppc_v (g 'fdppc (g 'impl st12)) + fdinst_v (g 'fdinst (g 'impl st12)) + dewrt_v (g 'dewrt (g 'impl st12)) + deppc_v (g 'deppc (g 'impl st12)) + deop_v (g 'deop (g 'impl st12)) + dearg1_v (g 'dearg1 (g 'impl st12)) + dearg2_v (g 'dearg2 (g 'impl st12)) + dedest_v (g 'dedest (g 'impl st12)) + desrc1_v (g 'desrc1 (g 'impl st12)) + desrc2_v (g 'desrc2 (g 'impl st12)) + deimm_v (g 'deimm (g 'impl st12)) + deuseimm_v + (g 'deuseimm (g 'impl st12)) + deisbranch_v + (g 'deisbranch (g 'impl st12)) + dememtoreg_v + (g 'dememtoreg (g 'impl st12)) + dememwrite_v + (g 'dememwrite (g 'impl st12)) + deregwrite_v + (g 'deregwrite (g 'impl st12)) emwrt_v + (g 'emwrt (g 'impl st12)) emtargetpc_v + (g 'emtargetpc (g 'impl st12)) + emdest_v (g 'emdest (g 'impl st12)) + emarg2_v (g 'emarg2 (g 'impl st12)) + emregwrite_v + (g 'emregwrite (g 'impl st12)) + emresult_v + (g 'emresult (g 'impl st12)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st12)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st12)) + emmemwrite_v + (g 'emmemwrite (g 'impl st12)) mmwrt_v + (g 'mmwrt (g 'impl st12)) mmval_v + (g 'mmval (g 'impl st12)) mmdest_v + (g 'mmdest (g 'impl st12)) + mmregwrite_v + (g 'mmregwrite (g 'impl st12)) mwwrt_v + (g 'mwwrt (g 'impl st12)) mwval_v + (g 'mwval (g 'impl st12)) mwdest_v + (g 'mwdest (g 'impl st12)) + mwregwrite_v + (g 'mwregwrite (g 'impl st12)))) + (st13 (simulate_a st12 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st12)) + (g 'pdmemhist_2 (g 'impl st12)))) + (equiv_ma_5 + (equiv_ma ppc_v (g 'ppc (g 'impl st13)) + prf_v a1 (g 'prf (g 'impl st13)) + pimem_v (g 'pimem (g 'impl st13)) + pdmem_v (g 'pdmem (g 'impl st13)) + ffwrt_v (g 'ffwrt (g 'impl st13)) + ffppc_v (g 'ffppc (g 'impl st13)) + ffinst_v (g 'ffinst (g 'impl st13)) + fdwrt_v (g 'fdwrt (g 'impl st13)) + fdppc_v (g 'fdppc (g 'impl st13)) + fdinst_v (g 'fdinst (g 'impl st13)) + dewrt_v (g 'dewrt (g 'impl st13)) + deppc_v (g 'deppc (g 'impl st13)) + deop_v (g 'deop (g 'impl st13)) + dearg1_v (g 'dearg1 (g 'impl st13)) + dearg2_v (g 'dearg2 (g 'impl st13)) + dedest_v (g 'dedest (g 'impl st13)) + desrc1_v (g 'desrc1 (g 'impl st13)) + desrc2_v (g 'desrc2 (g 'impl st13)) + deimm_v (g 'deimm (g 'impl st13)) + deuseimm_v + (g 'deuseimm (g 'impl st13)) + deisbranch_v + (g 'deisbranch (g 'impl st13)) + dememtoreg_v + (g 'dememtoreg (g 'impl st13)) + dememwrite_v + (g 'dememwrite (g 'impl st13)) + deregwrite_v + (g 'deregwrite (g 'impl st13)) emwrt_v + (g 'emwrt (g 'impl st13)) emtargetpc_v + (g 'emtargetpc (g 'impl st13)) + emdest_v (g 'emdest (g 'impl st13)) + emarg2_v (g 'emarg2 (g 'impl st13)) + emregwrite_v + (g 'emregwrite (g 'impl st13)) + emresult_v + (g 'emresult (g 'impl st13)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st13)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st13)) + emmemwrite_v + (g 'emmemwrite (g 'impl st13)) mmwrt_v + (g 'mmwrt (g 'impl st13)) mmval_v + (g 'mmval (g 'impl st13)) mmdest_v + (g 'mmdest (g 'impl st13)) + mmregwrite_v + (g 'mmregwrite (g 'impl st13)) mwwrt_v + (g 'mwwrt (g 'impl st13)) mwval_v + (g 'mwval (g 'impl st13)) mwdest_v + (g 'mwdest (g 'impl st13)) + mwregwrite_v + (g 'mwregwrite (g 'impl st13)))) + (st14 (simulate_a st13 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st13)) + (g 'pdmemhist_2 (g 'impl st13)))) + (equiv_ma_6 + (equiv_ma ppc_v (g 'ppc (g 'impl st14)) + prf_v a1 (g 'prf (g 'impl st14)) + pimem_v (g 'pimem (g 'impl st14)) + pdmem_v (g 'pdmem (g 'impl st14)) + ffwrt_v (g 'ffwrt (g 'impl st14)) + ffppc_v (g 'ffppc (g 'impl st14)) + ffinst_v (g 'ffinst (g 'impl st14)) + fdwrt_v (g 'fdwrt (g 'impl st14)) + fdppc_v (g 'fdppc (g 'impl st14)) + fdinst_v (g 'fdinst (g 'impl st14)) + dewrt_v (g 'dewrt (g 'impl st14)) + deppc_v (g 'deppc (g 'impl st14)) + deop_v (g 'deop (g 'impl st14)) + dearg1_v (g 'dearg1 (g 'impl st14)) + dearg2_v (g 'dearg2 (g 'impl st14)) + dedest_v (g 'dedest (g 'impl st14)) + desrc1_v (g 'desrc1 (g 'impl st14)) + desrc2_v (g 'desrc2 (g 'impl st14)) + deimm_v (g 'deimm (g 'impl st14)) + deuseimm_v + (g 'deuseimm (g 'impl st14)) + deisbranch_v + (g 'deisbranch (g 'impl st14)) + dememtoreg_v + (g 'dememtoreg (g 'impl st14)) + dememwrite_v + (g 'dememwrite (g 'impl st14)) + deregwrite_v + (g 'deregwrite (g 'impl st14)) emwrt_v + (g 'emwrt (g 'impl st14)) emtargetpc_v + (g 'emtargetpc (g 'impl st14)) + emdest_v (g 'emdest (g 'impl st14)) + emarg2_v (g 'emarg2 (g 'impl st14)) + emregwrite_v + (g 'emregwrite (g 'impl st14)) + emresult_v + (g 'emresult (g 'impl st14)) + emis_taken_branch_v + (g 'emis_taken_branch (g 'impl st14)) + emmemtoreg_v + (g 'emmemtoreg (g 'impl st14)) + emmemwrite_v + (g 'emmemwrite (g 'impl st14)) mmwrt_v + (g 'mmwrt (g 'impl st14)) mmval_v + (g 'mmval (g 'impl st14)) mmdest_v + (g 'mmdest (g 'impl st14)) + mmregwrite_v + (g 'mmregwrite (g 'impl st14)) mwwrt_v + (g 'mwwrt (g 'impl st14)) mwval_v + (g 'mwval (g 'impl st14)) mwdest_v + (g 'mwdest (g 'impl st14)) + mwregwrite_v + (g 'mwregwrite (g 'impl st14)))) + (good_ma_v + (or (or equiv_ma_2 equiv_ma_5) equiv_ma_6)) + (st15 (simulate_a st14 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st14)) + (g 'pdmemhist_2 (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st15)) + (g 'pdmemhist_2 (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st16)) + (g 'pdmemhist_2 (g 'impl st16)))) + (st18 (simulate_a st17 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st17)) + (g 'pdmemhist_2 (g 'impl st17)))) + (st19 (simulate_a st18 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st18)) + (g 'pdmemhist_2 (g 'impl st18)))) + (st20 (simulate_a st19 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st19)) + (g 'pdmemhist_2 (g 'impl st19)))) + (st21 (simulate_a st20 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st20)) + (g 'pdmemhist_2 (g 'impl st20)))) + (i_pc0 (committedpc (g 'mwwrt (g 'impl st21)) + (g 'mwppc (g 'impl st21)) + (g 'mmwrt (g 'impl st21)) + (g 'mmppc (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'emppc (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'deppc (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'fdppc (g 'impl st21)) + (g 'ffwrt (g 'impl st21)) + (g 'ffppc (g 'impl st21)) + (g 'ppc (g 'impl st21)))) + (i_rf0 (g 'prf (g 'impl st21))) + (i_dmem0 (g 'pdmemhist_2 (g 'impl st21))) + (rank_w (rank (g 'mwwrt (g 'impl st21)) zero + (g 'mmwrt (g 'impl st21)) + (g 'emwrt (g 'impl st21)) + (g 'dewrt (g 'impl st21)) + (g 'fdwrt (g 'impl st21)) + (g 'ffwrt (g 'impl st21)))) + (st22 (simulate_a st21 nil nil t i_pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st21)) + (g 'pdmemhist_2 (g 'impl st21)))) + (s_pc0 (g 'spc (g 'spec st22))) + (s_rf0 (g 'srf (g 'spec st22))) + (s_dmem0 (g 'sdmem (g 'spec st22))) + (i_pc (committedpc (g 'mwwrt (g 'impl st22)) + (g 'mwppc (g 'impl st22)) + (g 'mmwrt (g 'impl st22)) + (g 'mmppc (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'emppc (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'deppc (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'fdppc (g 'impl st22)) + (g 'ffwrt (g 'impl st22)) + (g 'ffppc (g 'impl st22)) + (g 'ppc (g 'impl st22)))) + (i_rf (g 'prf (g 'impl st22))) + (i_dmem (g 'pdmemhist_2 (g 'impl st22))) + (rank_v (rank (g 'mwwrt (g 'impl st22)) zero + (g 'mmwrt (g 'impl st22)) + (g 'emwrt (g 'impl st22)) + (g 'dewrt (g 'impl st22)) + (g 'fdwrt (g 'impl st22)) + (g 'ffwrt (g 'impl st22)))) + (st23 (simulate_a st22 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st22)) + (g 'pdmemhist_2 (g 'impl st22)))) + (s_pc1 (g 'spc (g 'spec st23))) + (s_rf1 (g 'srf (g 'spec st23))) + (s_dmem1 (g 'sdmem (g 'spec st23))) + (st24 (simulate_a st23 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st23)) + (g 'pdmemhist_2 (g 'impl st23)))) + (st25 (simulate_a st24 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st24)) + (g 'pdmemhist_2 (g 'impl st24)))) + (st26 (simulate_a st25 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st25)) + (g 'pdmemhist_2 (g 'impl st25)))) + (st27 (simulate_a st26 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st26)) + (g 'pdmemhist_2 (g 'impl st26)))) + (st28 (simulate_a st27 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st27)) + (g 'pdmemhist_2 (g 'impl st27)))) + (st29 (simulate_a st28 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st28)) + (g 'pdmemhist_2 (g 'impl st28)))) + (i_pc0_2 (committedpc + (g 'mwwrt (g 'impl st29)) + (g 'mwppc (g 'impl st29)) + (g 'mmwrt (g 'impl st29)) + (g 'mmppc (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'emppc (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'deppc (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'fdppc (g 'impl st29)) + (g 'ffwrt (g 'impl st29)) + (g 'ffppc (g 'impl st29)) + (g 'ppc (g 'impl st29)))) + (i_rf0_2 (g 'prf (g 'impl st29))) + (i_dmem0_2 (g 'pdmemhist_2 (g 'impl st29))) + (rank_w_2 + (rank (g 'mwwrt (g 'impl st29)) zero + (g 'mmwrt (g 'impl st29)) + (g 'emwrt (g 'impl st29)) + (g 'dewrt (g 'impl st29)) + (g 'fdwrt (g 'impl st29)) + (g 'ffwrt (g 'impl st29)))) + (st30 (simulate_a st29 nil nil t i_pc0_2 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st29)) + (g 'pdmemhist_2 (g 'impl st29)))) + (s_pc0_2 (g 'spc (g 'spec st30))) + (s_rf0_2 (g 'srf (g 'spec st30))) + (s_dmem0_2 (g 'sdmem (g 'spec st30))) + (i_pc_2 (committedpc (g 'mwwrt (g 'impl st30)) + (g 'mwppc (g 'impl st30)) + (g 'mmwrt (g 'impl st30)) + (g 'mmppc (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'emppc (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'deppc (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'fdppc (g 'impl st30)) + (g 'ffwrt (g 'impl st30)) + (g 'ffppc (g 'impl st30)) + (g 'ppc (g 'impl st30)))) + (i_rf_2 (g 'prf (g 'impl st30))) + (i_dmem_2 (g 'pdmemhist_2 (g 'impl st30))) + (rank_v_2 + (rank (g 'mwwrt (g 'impl st30)) zero + (g 'mmwrt (g 'impl st30)) + (g 'emwrt (g 'impl st30)) + (g 'dewrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30)) + (g 'ffwrt (g 'impl st30)))) + (st31 (simulate_a st30 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st30)) + (g 'pdmemhist_2 (g 'impl st30)))) + (s_pc1_2 (g 'spc (g 'spec st31))) + (s_rf1_2 (g 'srf (g 'spec st31))) + (s_dmem1_2 (g 'sdmem (g 'spec st31))) + (st32 (simulate_a st31 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st31)) + (g 'pdmemhist_2 (g 'impl st31)))) + (st33 (simulate_a st32 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st32)) + (g 'pdmemhist_2 (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st33)) + (g 'pdmemhist_2 (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st34)) + (g 'pdmemhist_2 (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st35)) + (g 'pdmemhist_2 (g 'impl st35)))) + (i_pc0_3 (committedpc + (g 'mwwrt (g 'impl st36)) + (g 'mwppc (g 'impl st36)) + (g 'mmwrt (g 'impl st36)) + (g 'mmppc (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'emppc (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'deppc (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'fdppc (g 'impl st36)) + (g 'ffwrt (g 'impl st36)) + (g 'ffppc (g 'impl st36)) + (g 'ppc (g 'impl st36)))) + (i_rf0_3 (g 'prf (g 'impl st36))) + (i_dmem0_3 (g 'pdmemhist_2 (g 'impl st36))) + (rank_w_3 + (rank (g 'mwwrt (g 'impl st36)) zero + (g 'mmwrt (g 'impl st36)) + (g 'emwrt (g 'impl st36)) + (g 'dewrt (g 'impl st36)) + (g 'fdwrt (g 'impl st36)) + (g 'ffwrt (g 'impl st36)))) + (st37 (simulate_a st36 nil nil t i_pc0_3 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st36)) + (g 'pdmemhist_2 (g 'impl st36)))) + (s_pc0_3 (g 'spc (g 'spec st37))) + (s_rf0_3 (g 'srf (g 'spec st37))) + (s_dmem0_3 (g 'sdmem (g 'spec st37))) + (i_pc_3 (committedpc (g 'mwwrt (g 'impl st37)) + (g 'mwppc (g 'impl st37)) + (g 'mmwrt (g 'impl st37)) + (g 'mmppc (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'emppc (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'deppc (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'fdppc (g 'impl st37)) + (g 'ffwrt (g 'impl st37)) + (g 'ffppc (g 'impl st37)) + (g 'ppc (g 'impl st37)))) + (i_rf_3 (g 'prf (g 'impl st37))) + (i_dmem_3 (g 'pdmemhist_2 (g 'impl st37))) + (rank_v_3 + (rank (g 'mwwrt (g 'impl st37)) zero + (g 'mmwrt (g 'impl st37)) + (g 'emwrt (g 'impl st37)) + (g 'dewrt (g 'impl st37)) + (g 'fdwrt (g 'impl st37)) + (g 'ffwrt (g 'impl st37)))) + (st38 (simulate_a st37 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st37)) + (g 'pdmemhist_2 (g 'impl st37)))) + (s_pc1_3 (g 'spc (g 'spec st38))) + (s_rf1_3 (g 'srf (g 'spec st38))) + (s_dmem1_3 (g 'sdmem (g 'spec st38))) + (st39 (simulate_a st38 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st38)) + (g 'pdmemhist_2 (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st39)) + (g 'pdmemhist_2 (g 'impl st39)))) + (st41 (simulate_a st40 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st40)) + (g 'pdmemhist_2 (g 'impl st40)))) + (st42 (simulate_a st41 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st41)) + (g 'pdmemhist_2 (g 'impl st41)))) + (i_pc0_4 (committedpc + (g 'mwwrt (g 'impl st42)) + (g 'mwppc (g 'impl st42)) + (g 'mmwrt (g 'impl st42)) + (g 'mmppc (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'emppc (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'deppc (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'fdppc (g 'impl st42)) + (g 'ffwrt (g 'impl st42)) + (g 'ffppc (g 'impl st42)) + (g 'ppc (g 'impl st42)))) + (i_rf0_4 (g 'prf (g 'impl st42))) + (i_dmem0_4 (g 'pdmemhist_2 (g 'impl st42))) + (rank_w_4 + (rank (g 'mwwrt (g 'impl st42)) zero + (g 'mmwrt (g 'impl st42)) + (g 'emwrt (g 'impl st42)) + (g 'dewrt (g 'impl st42)) + (g 'fdwrt (g 'impl st42)) + (g 'ffwrt (g 'impl st42)))) + (st43 (simulate_a st42 nil nil t i_pc0_4 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st42)) + (g 'pdmemhist_2 (g 'impl st42)))) + (s_pc0_4 (g 'spc (g 'spec st43))) + (s_rf0_4 (g 'srf (g 'spec st43))) + (s_dmem0_4 (g 'sdmem (g 'spec st43))) + (i_pc_4 (committedpc (g 'mwwrt (g 'impl st43)) + (g 'mwppc (g 'impl st43)) + (g 'mmwrt (g 'impl st43)) + (g 'mmppc (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'emppc (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'deppc (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'fdppc (g 'impl st43)) + (g 'ffwrt (g 'impl st43)) + (g 'ffppc (g 'impl st43)) + (g 'ppc (g 'impl st43)))) + (i_rf_4 (g 'prf (g 'impl st43))) + (i_dmem_4 (g 'pdmemhist_2 (g 'impl st43))) + (rank_v_4 + (rank (g 'mwwrt (g 'impl st43)) zero + (g 'mmwrt (g 'impl st43)) + (g 'emwrt (g 'impl st43)) + (g 'dewrt (g 'impl st43)) + (g 'fdwrt (g 'impl st43)) + (g 'ffwrt (g 'impl st43)))) + (st44 (simulate_a st43 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st43)) + (g 'pdmemhist_2 (g 'impl st43)))) + (s_pc1_4 (g 'spc (g 'spec st44))) + (s_rf1_4 (g 'srf (g 'spec st44))) + (s_dmem1_4 (g 'sdmem (g 'spec st44))) + (st45 (simulate_a st44 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st44)) + (g 'pdmemhist_2 (g 'impl st44)))) + (st46 (simulate_a st45 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st45)) + (g 'pdmemhist_2 (g 'impl st45)))) + (st47 (simulate_a st46 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st46)) + (g 'pdmemhist_2 (g 'impl st46)))) + (i_pc0_5 (committedpc + (g 'mwwrt (g 'impl st47)) + (g 'mwppc (g 'impl st47)) + (g 'mmwrt (g 'impl st47)) + (g 'mmppc (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'emppc (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'deppc (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'fdppc (g 'impl st47)) + (g 'ffwrt (g 'impl st47)) + (g 'ffppc (g 'impl st47)) + (g 'ppc (g 'impl st47)))) + (i_rf0_5 (g 'prf (g 'impl st47))) + (i_dmem0_5 (g 'pdmemhist_2 (g 'impl st47))) + (rank_w_5 + (rank (g 'mwwrt (g 'impl st47)) zero + (g 'mmwrt (g 'impl st47)) + (g 'emwrt (g 'impl st47)) + (g 'dewrt (g 'impl st47)) + (g 'fdwrt (g 'impl st47)) + (g 'ffwrt (g 'impl st47)))) + (st48 (simulate_a st47 nil nil t i_pc0_5 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st47)) + (g 'pdmemhist_2 (g 'impl st47)))) + (s_pc0_5 (g 'spc (g 'spec st48))) + (s_rf0_5 (g 'srf (g 'spec st48))) + (s_dmem0_5 (g 'sdmem (g 'spec st48))) + (i_pc_5 (committedpc (g 'mwwrt (g 'impl st48)) + (g 'mwppc (g 'impl st48)) + (g 'mmwrt (g 'impl st48)) + (g 'mmppc (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'emppc (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'deppc (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'fdppc (g 'impl st48)) + (g 'ffwrt (g 'impl st48)) + (g 'ffppc (g 'impl st48)) + (g 'ppc (g 'impl st48)))) + (i_rf_5 (g 'prf (g 'impl st48))) + (i_dmem_5 (g 'pdmemhist_2 (g 'impl st48))) + (rank_v_5 + (rank (g 'mwwrt (g 'impl st48)) zero + (g 'mmwrt (g 'impl st48)) + (g 'emwrt (g 'impl st48)) + (g 'dewrt (g 'impl st48)) + (g 'fdwrt (g 'impl st48)) + (g 'ffwrt (g 'impl st48)))) + (st49 (simulate_a st48 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st48)) + (g 'pdmemhist_2 (g 'impl st48)))) + (s_pc1_5 (g 'spc (g 'spec st49))) + (s_rf1_5 (g 'srf (g 'spec st49))) + (s_dmem1_5 (g 'sdmem (g 'spec st49))) + (st50 (simulate_a st49 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st49)) + (g 'pdmemhist_2 (g 'impl st49)))) + (st51 (simulate_a st50 nil nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st50)) + (g 'pdmemhist_2 (g 'impl st50)))) + (i_pc0_6 (committedpc + (g 'mwwrt (g 'impl st51)) + (g 'mwppc (g 'impl st51)) + (g 'mmwrt (g 'impl st51)) + (g 'mmppc (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'emppc (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'deppc (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'fdppc (g 'impl st51)) + (g 'ffwrt (g 'impl st51)) + (g 'ffppc (g 'impl st51)) + (g 'ppc (g 'impl st51)))) + (i_rf0_6 (g 'prf (g 'impl st51))) + (i_dmem0_6 (g 'pdmemhist_2 (g 'impl st51))) + (rank_w_6 + (rank (g 'mwwrt (g 'impl st51)) zero + (g 'mmwrt (g 'impl st51)) + (g 'emwrt (g 'impl st51)) + (g 'dewrt (g 'impl st51)) + (g 'fdwrt (g 'impl st51)) + (g 'ffwrt (g 'impl st51)))) + (st52 (simulate_a st51 nil nil t i_pc0_6 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st51)) + (g 'pdmemhist_2 (g 'impl st51)))) + (s_pc0_6 (g 'spc (g 'spec st52))) + (s_rf0_6 (g 'srf (g 'spec st52))) + (s_dmem0_6 (g 'sdmem (g 'spec st52))) + (i_pc_6 (committedpc (g 'mwwrt (g 'impl st52)) + (g 'mwppc (g 'impl st52)) + (g 'mmwrt (g 'impl st52)) + (g 'mmppc (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'emppc (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'deppc (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'fdppc (g 'impl st52)) + (g 'ffwrt (g 'impl st52)) + (g 'ffppc (g 'impl st52)) + (g 'ppc (g 'impl st52)))) + (i_rf_6 (g 'prf (g 'impl st52))) + (i_dmem_6 (g 'pdmemhist_2 (g 'impl st52))) + (rank_v_6 + (rank (g 'mwwrt (g 'impl st52)) zero + (g 'mmwrt (g 'impl st52)) + (g 'emwrt (g 'impl st52)) + (g 'dewrt (g 'impl st52)) + (g 'fdwrt (g 'impl st52)) + (g 'ffwrt (g 'impl st52)))) + (st53 (simulate_a st52 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st52)) + (g 'pdmemhist_2 (g 'impl st52)))) + (s_pc1_6 (g 'spc (g 'spec st53))) + (s_rf1_6 (g 'srf (g 'spec st53))) + (s_dmem1_6 (g 'sdmem (g 'spec st53))) + (st54 (simulate_a st53 t nil nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st53)) + (g 'pdmemhist_2 (g 'impl st53)))) + (i_pc0_7 (committedpc + (g 'mwwrt (g 'impl st54)) + (g 'mwppc (g 'impl st54)) + (g 'mmwrt (g 'impl st54)) + (g 'mmppc (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'emppc (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'deppc (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'fdppc (g 'impl st54)) + (g 'ffwrt (g 'impl st54)) + (g 'ffppc (g 'impl st54)) + (g 'ppc (g 'impl st54)))) + (i_rf0_7 (g 'prf (g 'impl st54))) + (i_dmem0_7 (g 'pdmemhist_2 (g 'impl st54))) + (rank_w_7 + (rank (g 'mwwrt (g 'impl st54)) zero + (g 'mmwrt (g 'impl st54)) + (g 'emwrt (g 'impl st54)) + (g 'dewrt (g 'impl st54)) + (g 'fdwrt (g 'impl st54)) + (g 'ffwrt (g 'impl st54)))) + (st55 (simulate_a st54 nil nil t i_pc0_7 nil + pc0 pc0 ffinst0 ffppc0 fdppc0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwregwrite0 (g 'prf (g 'impl st54)) + (g 'pdmemhist_2 (g 'impl st54)))) + (s_pc0_7 (g 'spc (g 'spec st55))) + (s_rf0_7 (g 'srf (g 'spec st55))) + (s_dmem0_7 (g 'sdmem (g 'spec st55))) + (i_pc_7 (committedpc (g 'mwwrt (g 'impl st55)) + (g 'mwppc (g 'impl st55)) + (g 'mmwrt (g 'impl st55)) + (g 'mmppc (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'emppc (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'deppc (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'fdppc (g 'impl st55)) + (g 'ffwrt (g 'impl st55)) + (g 'ffppc (g 'impl st55)) + (g 'ppc (g 'impl st55)))) + (i_rf_7 (g 'prf (g 'impl st55))) + (i_dmem_7 (g 'pdmemhist_2 (g 'impl st55))) + (rank_v_7 + (rank (g 'mwwrt (g 'impl st55)) zero + (g 'mmwrt (g 'impl st55)) + (g 'emwrt (g 'impl st55)) + (g 'dewrt (g 'impl st55)) + (g 'fdwrt (g 'impl st55)) + (g 'ffwrt (g 'impl st55)))) + (st56 (simulate_a st55 nil t nil pc0 nil pc0 + pc0 ffinst0 ffppc0 fdppc0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwregwrite0 + (g 'prf (g 'impl st55)) + (g 'pdmemhist_2 (g 'impl st55)))) + (s_pc1_7 (g 'spc (g 'spec st56))) + (s_rf1_7 (g 'srf (g 'spec st56))) + (s_dmem1_7 (g 'sdmem (g 'spec st56)))) + (and (and (and (and + (and + (and + (and good_ma_v + (or + (or + (not + (and + (and (equal s_pc0 i_pc0) + (equal + (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf0))) + (equal s_dmem0 i_dmem0))) + (and + (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem))) + (and + (and + (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (< rank_v rank_w)))) + (or + (or + (not + (and + (and (equal s_pc0_2 i_pc0_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf0_2))) + (equal s_dmem0_2 i_dmem0_2))) + (and + (and (equal s_pc1_2 i_pc_2) + (equal + (read-srf_a a1 s_rf1_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem1_2 i_dmem_2))) + (and + (and + (and (equal s_pc0_2 i_pc_2) + (equal + (read-srf_a a1 s_rf0_2) + (read-prf_a a1 i_rf_2))) + (equal s_dmem0_2 i_dmem_2)) + (< rank_v_2 rank_w_2)))) + (or + (or + (not + (and + (and (equal s_pc0_3 i_pc0_3) + (equal + (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf0_3))) + (equal s_dmem0_3 i_dmem0_3))) + (and + (and (equal s_pc1_3 i_pc_3) + (equal (read-srf_a a1 s_rf1_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem1_3 i_dmem_3))) + (and + (and + (and (equal s_pc0_3 i_pc_3) + (equal (read-srf_a a1 s_rf0_3) + (read-prf_a a1 i_rf_3))) + (equal s_dmem0_3 i_dmem_3)) + (< rank_v_3 rank_w_3)))) + (or + (or + (not + (and + (and (equal s_pc0_4 i_pc0_4) + (equal (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf0_4))) + (equal s_dmem0_4 i_dmem0_4))) + (and + (and (equal s_pc1_4 i_pc_4) + (equal (read-srf_a a1 s_rf1_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem1_4 i_dmem_4))) + (and + (and + (and (equal s_pc0_4 i_pc_4) + (equal (read-srf_a a1 s_rf0_4) + (read-prf_a a1 i_rf_4))) + (equal s_dmem0_4 i_dmem_4)) + (< rank_v_4 rank_w_4)))) + (or + (or + (not + (and + (and (equal s_pc0_5 i_pc0_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf0_5))) + (equal s_dmem0_5 i_dmem0_5))) + (and + (and (equal s_pc1_5 i_pc_5) + (equal (read-srf_a a1 s_rf1_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem1_5 i_dmem_5))) + (and + (and + (and (equal s_pc0_5 i_pc_5) + (equal (read-srf_a a1 s_rf0_5) + (read-prf_a a1 i_rf_5))) + (equal s_dmem0_5 i_dmem_5)) + (< rank_v_5 rank_w_5)))) + (or (or (not + (and + (and (equal s_pc0_6 i_pc0_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf0_6))) + (equal s_dmem0_6 i_dmem0_6))) + (and + (and (equal s_pc1_6 i_pc_6) + (equal (read-srf_a a1 s_rf1_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem1_6 i_dmem_6))) + (and (and + (and (equal s_pc0_6 i_pc_6) + (equal (read-srf_a a1 s_rf0_6) + (read-prf_a a1 i_rf_6))) + (equal s_dmem0_6 i_dmem_6)) + (< rank_v_6 rank_w_6)))) + (or (or (not (and + (and (equal s_pc0_7 i_pc0_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf0_7))) + (equal s_dmem0_7 i_dmem0_7))) + (and (and (equal s_pc1_7 i_pc_7) + (equal (read-srf_a a1 s_rf1_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem1_7 i_dmem_7))) + (and (and (and (equal s_pc0_7 i_pc_7) + (equal (read-srf_a a1 s_rf0_7) + (read-prf_a a1 i_rf_7))) + (equal s_dmem0_7 i_dmem_7)) + (< rank_v_7 rank_w_7)))))) + :rule-classes nil) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-inp-safety.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-inp-safety.lisp new file mode 100644 index 0000000..b8beadf --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-inp-safety.lisp @@ -0,0 +1,2912 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((intrp_mod_dmem (x1) t)) + (local (defun intrp_mod_dmem (x1) (declare (ignore x1)) 1)) + (defthm intrp_mod_dmem-type (integerp (intrp_mod_dmem x1)))) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((nextintrp (x1) t)) + (local (defun nextintrp (x1) (declare (ignore x1)) 1)) + (defthm nextintrp-type (integerp (nextintrp x1)))) + (encapsulate ((isinterrupt (x1) t)) + (local (defun isinterrupt (x1) (declare (ignore x1)) nil)) + (defthm isinterrupt-type (booleanp (isinterrupt x1)))) + (encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + (encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + (encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + (encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + (encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + (encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + (encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + (encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + (encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + (encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + (encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + (encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + (encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + (encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + (encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + (encapsulate ((alu_exception (x3 x2 x1) t)) + (local (defun alu_exception (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm alu_exception-type (booleanp (alu_exception x3 x2 x1)))) + (encapsulate ((getreturnfromexception (x1) t)) + (local (defun getreturnfromexception (x1) + (declare (ignore x1)) + nil)) + (defthm getreturnfromexception-type + (booleanp (getreturnfromexception x1)))) + (encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + (encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + (encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + (defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + (defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((and (and (and (and (and (g 2 (car prf)) + (equal a (g 3 (car prf)))) + (g 4 (car prf))) + (g 5 (car prf))) + (g 6 (car prf))) + (g 7 (car prf))) + (g 8 (car prf))) + (t (read-prf_a a (cdr prf))))))) + (defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) + (cond + ((g 1 (car simem)) (imem0 a)) + (t (read-simem_a a (cdr simem))))))) + (defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (and (and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (g 8 (car srf))) + (g 9 (car srf))) + (g 10 (car srf))) + (t (read-srf_a a (cdr srf))))))) + (defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + (defun impl-state_a + (pimem ppc pintrp bpstate ffpintrp ffpredicteddirection + ffpredictedtarget ffwrt ffinst ffppc fdpintrp prf fdppc + fdwrt fdinst fdpredicteddirection fdpredictedtarget + depintrp deppc desrc1 desrc2 dearg1 dearg2 dedest deop + deimm deuseimm deisreturnfromexception deregwrite + dememwrite dememtoreg deisbranch dewrt + depredicteddirection depredictedtarget empintrp emppc + emis_alu_exception emis_taken_branch emtargetpc emarg2 + emresult emdest emwrt emisreturnfromexception + emmispredictedtaken emmispredictednottaken emregwrite + emmemwrite emmemtoreg pdmemhist_2 pdmemhist_1 pdmem pepc + pisexception mmpintrp mmisreturnfromexception + mmis_alu_exception mmppc mmval mmdest mmwrt mmregwrite + mwpintrp mwisreturnfromexception mwis_alu_exception + mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'pintrp pintrp 'bpstate bpstate + 'ffpintrp ffpintrp 'ffpredicteddirection ffpredicteddirection + 'ffpredictedtarget ffpredictedtarget 'ffwrt ffwrt 'ffinst + ffinst 'ffppc ffppc 'fdpintrp fdpintrp 'prf prf 'fdppc fdppc + 'fdwrt fdwrt 'fdinst fdinst 'fdpredicteddirection + fdpredicteddirection 'fdpredictedtarget fdpredictedtarget + 'depintrp depintrp 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 + 'dearg1 dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm + deimm 'deuseimm deuseimm 'deisreturnfromexception + deisreturnfromexception 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt + dewrt 'depredicteddirection depredicteddirection + 'depredictedtarget depredictedtarget 'empintrp empintrp 'emppc + emppc 'emis_alu_exception emis_alu_exception 'emis_taken_branch + emis_taken_branch 'emtargetpc emtargetpc 'emarg2 emarg2 + 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emisreturnfromexception emisreturnfromexception + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'pepc pepc 'pisexception pisexception 'mmpintrp mmpintrp + 'mmisreturnfromexception mmisreturnfromexception + 'mmis_alu_exception mmis_alu_exception 'mmppc mmppc 'mmval + mmval 'mmdest mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite + 'mwpintrp mwpintrp 'mwisreturnfromexception + mwisreturnfromexception 'mwis_alu_exception mwis_alu_exception + 'mwppc mwppc 'mwval mwval 'mwdest mwdest 'mwwrt mwwrt + 'mwregwrite mwregwrite)) + (defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + (defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + (defun initppc_a (pc0) pc0) + (defun nextppc_a + (initi pc0 mem1_is_interrupt emppc mem1_is_returnfromexception + pepc mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken mem1_mispredicted_nottaken + emtargetpc stall flush ppc if_predict_branch_taken + predicted_target) + (cond + (initi pc0) + (mem1_is_interrupt emppc) + (mem1_is_returnfromexception pepc) + (mem1_is_alu_exception alu_exception_handler) + (mem1_mispredicted_taken emppc) + (mem1_mispredicted_nottaken emtargetpc) + ((or stall flush) ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + (defun initpintrp_a (intrp0) intrp0) + (defun nextpintrp_a (initi intrp0 stall flush pintrp) + (cond + (initi intrp0) + ((or stall flush) pintrp) + (t (nextintrp pintrp)))) + (defun initbpstate_a (bpstate0) bpstate0) + (defun nextbpstate_a (initi bpstate0 stall bpstate) + (cond (initi bpstate0) (stall bpstate) (t (nextbpstate bpstate)))) + (defun initffpintrp_a (ffpintrp0) ffpintrp0) + (defun nextffpintrp_a (initi ffpintrp0 stall ffpintrp pintrp) + (cond (initi ffpintrp0) (stall ffpintrp) (t pintrp))) + (defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + (defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + (defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + (defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + (defun initffwrt_a (ffwrt0) ffwrt0) + (defun nextffwrt_a (initi ffwrt0 squash stall ffwrt flush) + (cond (initi ffwrt0) (squash nil) (stall ffwrt) (flush nil) (t t))) + (defun initffinst_a (ffinst0) ffinst0) + (defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + (defun initffppc_a (ffppc0) ffppc0) + (defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + (defun initfdpintrp_a (fdpintrp0) fdpintrp0) + (defun nextfdpintrp_a (initi fdpintrp0 stall fdpintrp ffpintrp) + (cond (initi fdpintrp0) (stall fdpintrp) (t ffpintrp))) + (defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + (defun nextprf_a + (prf initi mwwrt mwdest mwregwrite wb_is_alu_exception_bar + wb_is_interrupt_bar wb_is_returnfromexception_bar mwval) + (cons (s 0 nil + (s 1 initi + (s 2 mwwrt + (s 3 mwdest + (s 4 mwregwrite + (s 5 wb_is_alu_exception_bar + (s 6 wb_is_interrupt_bar + (s 7 wb_is_returnfromexception_bar + (s 8 mwval nil))))))))) + prf)) + (defun initfdppc_a (fdppc0) fdppc0) + (defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + (defun initfdwrt_a (fdwrt0) fdwrt0) + (defun nextfdwrt_a (initi fdwrt0 squash stall fdwrt ffwrt) + (cond (initi fdwrt0) (squash nil) (stall fdwrt) (t ffwrt))) + (defun initfdinst_a (fdinst0) fdinst0) + (defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + (defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + (defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + (defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + (defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + (defun initdepintrp_a (depintrp0) depintrp0) + (defun nextdepintrp_a (initi depintrp0 fdpintrp) + (cond (initi depintrp0) (t fdpintrp))) + (defun initdeppc_a (deppc0) deppc0) + (defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + (defun initdesrc1_a (desrc10) desrc10) + (defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + (defun initdesrc2_a (desrc20) desrc20) + (defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + (defun initdearg1_a (a1) a1) + (defun nextdearg1_a + (initi a1 if_id_src1 prf mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval))))) + (defun initdearg2_a (a2) a2) + (defun nextdearg2_a + (initi a2 if_id_src2 prf mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval))))) + (defun initdedest_a (dedest0) dedest0) + (defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + (defun initdeop_a (deop0) deop0) + (defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + (defun initdeimm_a (deimm0) deimm0) + (defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + (defun initdeuseimm_a (deuseimm0) deuseimm0) + (defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + (defun initdeisreturnfromexception_a (deisreturnfromexception0) + deisreturnfromexception0) + (defun nextdeisreturnfromexception_a + (initi deisreturnfromexception0 fdinst) + (cond + (initi deisreturnfromexception0) + (t (getreturnfromexception fdinst)))) + (defun initderegwrite_a (deregwrite0) deregwrite0) + (defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + (defun initdememwrite_a (dememwrite0) dememwrite0) + (defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + (defun initdememtoreg_a (dememtoreg0) dememtoreg0) + (defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + (defun initdeisbranch_a (deisbranch0) deisbranch0) + (defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + (defun initdewrt_a (dewrt0) dewrt0) + (defun nextdewrt_a (initi dewrt0 squash stall fdwrt) + (cond (initi dewrt0) (squash nil) (t (and (not stall) fdwrt)))) + (defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + (defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + (defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + (defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + (defun initempintrp_a (empintrp0) empintrp0) + (defun nextempintrp_a (initi empintrp0 depintrp) + (cond (initi empintrp0) (t depintrp))) + (defun initemppc_a (emppc0) emppc0) + (defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + (defun initemis_alu_exception_a (emis_alu_exception0) + emis_alu_exception0) + (defun nextemis_alu_exception_a + (initi emis_alu_exception0 ex_is_alu_exception) + (cond (initi emis_alu_exception0) (t ex_is_alu_exception))) + (defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + (defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + (defun initemtargetpc_a (emtargetpc0) emtargetpc0) + (defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + (defun initemarg2_a (emarg20) emarg20) + (defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + (defun initemresult_a (emresult0) emresult0) + (defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + (defun initemdest_a (emdest0) emdest0) + (defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + (defun initemwrt_a (emwrt0) emwrt0) + (defun nextemwrt_a (initi emwrt0 squash dewrt) + (cond (initi emwrt0) (squash nil) (t dewrt))) + (defun initemisreturnfromexception_a (emisreturnfromexception0) + emisreturnfromexception0) + (defun nextemisreturnfromexception_a + (initi emisreturnfromexception0 deisreturnfromexception) + (cond (initi emisreturnfromexception0) (t deisreturnfromexception))) + (defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + (defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + (defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + (defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + (defun initemregwrite_a (emregwrite0) emregwrite0) + (defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + (defun initemmemwrite_a (emmemwrite0) emmemwrite0) + (defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + (defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + (defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + (defun initpdmemhist_2_a (dmem0) dmem0) + (defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + (defun initpdmemhist_1_a (dmem0) dmem0) + (defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + (defun initpdmem_a (dmem0) dmem0) + (defun nextpdmem_a + (initi dmem0 mem1_is_interrupt pdmem emwrt emmemwrite + mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar emresult emarg2) + (cond + (initi dmem0) + (mem1_is_interrupt (intrp_mod_dmem pdmem)) + ((and (and (and emwrt emmemwrite) mem1_is_alu_exception_bar) + mem1_is_returnfromexception_bar) + (nextdmem pdmem emresult emarg2)) + (t pdmem))) + (defun initpepc_a (epc0) epc0) + (defun nextpepc_a + (initi epc0 mem1_is_alu_exception + mem1_is_returnfromexception_bar mem1_is_interrupt_bar + emppc pepc) + (cond + (initi epc0) + ((and (and mem1_is_alu_exception mem1_is_returnfromexception_bar) + mem1_is_interrupt_bar) + emppc) + (t pepc))) + (defun initpisexception_a (isexception0) isexception0) + (defun nextpisexception_a + (initi isexception0 mem1_is_alu_exception + mem1_is_returnfromexception mem1_is_interrupt_bar + mem1_is_returnfromexception_bar pisexception) + (cond + (initi isexception0) + ((and (or mem1_is_alu_exception mem1_is_returnfromexception) + mem1_is_interrupt_bar) + (and mem1_is_alu_exception mem1_is_returnfromexception_bar)) + (t pisexception))) + (defun initmmpintrp_a (mmpintrp0) mmpintrp0) + (defun nextmmpintrp_a (initi mmpintrp0 empintrp) + (cond (initi mmpintrp0) (t empintrp))) + (defun initmmisreturnfromexception_a (mmisreturnfromexception0) + mmisreturnfromexception0) + (defun nextmmisreturnfromexception_a + (initi mmisreturnfromexception0 emisreturnfromexception) + (cond (initi mmisreturnfromexception0) (t emisreturnfromexception))) + (defun initmmis_alu_exception_a (mmis_alu_exception0) + mmis_alu_exception0) + (defun nextmmis_alu_exception_a + (initi mmis_alu_exception0 emis_alu_exception) + (cond (initi mmis_alu_exception0) (t emis_alu_exception))) + (defun initmmppc_a (mmppc0) mmppc0) + (defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + (defun initmmval_a (mmval0) mmval0) + (defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + (defun initmmdest_a (mmdest0) mmdest0) + (defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + (defun initmmwrt_a (mmwrt0) mmwrt0) + (defun nextmmwrt_a (initi mmwrt0 emwrt) + (cond (initi mmwrt0) (t emwrt))) + (defun initmmregwrite_a (mmregwrite0) mmregwrite0) + (defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + (defun initmwpintrp_a (mwpintrp0) mwpintrp0) + (defun nextmwpintrp_a (initi mwpintrp0 mmpintrp) + (cond (initi mwpintrp0) (t mmpintrp))) + (defun initmwisreturnfromexception_a (mwisreturnfromexception0) + mwisreturnfromexception0) + (defun nextmwisreturnfromexception_a + (initi mwisreturnfromexception0 mmisreturnfromexception) + (cond (initi mwisreturnfromexception0) (t mmisreturnfromexception))) + (defun initmwis_alu_exception_a (mwis_alu_exception0) + mwis_alu_exception0) + (defun nextmwis_alu_exception_a + (initi mwis_alu_exception0 mmis_alu_exception) + (cond (initi mwis_alu_exception0) (t mmis_alu_exception))) + (defun initmwppc_a (mwppc0) mwppc0) + (defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + (defun initmwval_a (mwval0) mwval0) + (defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + (defun initmwdest_a (mwdest0) mwdest0) + (defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + (defun initmwwrt_a (mwwrt0) mwwrt0) + (defun nextmwwrt_a (initi mwwrt0 mmwrt) + (cond (initi mwwrt0) (t mmwrt))) + (defun initmwregwrite_a (mwregwrite0) mwregwrite0) + (defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + (defun impl-simulate_a + (impl initi pc0 alu_exception_handler flush intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 ffpredictedtarget0 ffwrt0 + ffinst0 ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 epc0 isexception0 mmpintrp0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (pintrp (g 'pintrp impl)) (bpstate (g 'bpstate impl)) + (ffpintrp (g 'ffpintrp impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (fdpintrp (g 'fdpintrp impl)) + (prf (g 'prf impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (depintrp (g 'depintrp impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (empintrp (g 'empintrp impl)) (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepc (g 'pepc impl)) (pisexception (g 'pisexception impl)) + (mmpintrp (g 'mmpintrp impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwpintrp (g 'mwpintrp impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (mem1_is_interrupt_temp (isinterrupt empintrp)) + (mem1_is_interrupt (and mem1_is_interrupt_temp emwrt)) + (mem1_is_interrupt_bar (not mem1_is_interrupt)) + (squash (or (or (or mem1_mispredicted + mem1_is_alu_exception) + mem1_is_interrupt) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception)) + (wb_is_interrupt_temp (isinterrupt mwpintrp)) + (wb_is_interrupt (and wb_is_interrupt_temp mwwrt)) + (wb_is_interrupt_bar (not wb_is_interrupt))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 mem1_is_interrupt emppc + mem1_is_returnfromexception pepc mem1_is_alu_exception + alu_exception_handler mem1_mispredicted_taken + mem1_mispredicted_nottaken emtargetpc stall flush ppc + if_predict_branch_taken predicted_target) + (nextpintrp_a initi intrp0 stall flush pintrp) + (nextbpstate_a initi bpstate0 stall bpstate) + (nextffpintrp_a initi ffpintrp0 stall ffpintrp pintrp) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi ffwrt0 squash stall ffwrt flush) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextfdpintrp_a initi fdpintrp0 stall fdpintrp ffpintrp) + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi fdwrt0 squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdepintrp_a initi depintrp0 fdpintrp) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf mwwrt mwdest + mwregwrite wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (nextdearg2_a initi a2 if_id_src2 prf mwwrt mwdest + mwregwrite wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextdeisreturnfromexception_a initi + deisreturnfromexception0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi dewrt0 squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextempintrp_a initi empintrp0 depintrp) + (nextemppc_a initi emppc0 deppc) + (nextemis_alu_exception_a initi emis_alu_exception0 + ex_is_alu_exception) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi emwrt0 squash dewrt) + (nextemisreturnfromexception_a initi + emisreturnfromexception0 deisreturnfromexception) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 mem1_is_interrupt pdmem emwrt + emmemwrite mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar emresult emarg2) + (nextpepc_a initi epc0 mem1_is_alu_exception + mem1_is_returnfromexception_bar mem1_is_interrupt_bar + emppc pepc) + (nextpisexception_a initi isexception0 mem1_is_alu_exception + mem1_is_returnfromexception mem1_is_interrupt_bar + mem1_is_returnfromexception_bar pisexception) + (nextmmpintrp_a initi mmpintrp0 empintrp) + (nextmmisreturnfromexception_a initi + mmisreturnfromexception0 emisreturnfromexception) + (nextmmis_alu_exception_a initi mmis_alu_exception0 + emis_alu_exception) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi mmwrt0 emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwpintrp_a initi mwpintrp0 mmpintrp) + (nextmwisreturnfromexception_a initi + mwisreturnfromexception0 mmisreturnfromexception) + (nextmwis_alu_exception_a initi mwis_alu_exception0 + mmis_alu_exception) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi mwwrt0 mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + (defun impl-initialize_a + (impl pc0 intrp0 bpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 ffppc0 fdpintrp0 fdppc0 + fdwrt0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmpintrp0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (pintrp (g 'pintrp impl)) (bpstate (g 'bpstate impl)) + (ffpintrp (g 'ffpintrp impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (fdpintrp (g 'fdpintrp impl)) + (prf (g 'prf impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (depintrp (g 'depintrp impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (empintrp (g 'empintrp impl)) (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepc (g 'pepc impl)) (pisexception (g 'pisexception impl)) + (mmpintrp (g 'mmpintrp impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwpintrp (g 'mwpintrp impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (mem1_is_interrupt_temp (isinterrupt empintrp)) + (mem1_is_interrupt (and mem1_is_interrupt_temp emwrt)) + (mem1_is_interrupt_bar (not mem1_is_interrupt)) + (squash (or (or (or mem1_mispredicted + mem1_is_alu_exception) + mem1_is_interrupt) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception)) + (wb_is_interrupt_temp (isinterrupt mwpintrp)) + (wb_is_interrupt (and wb_is_interrupt_temp mwwrt)) + (wb_is_interrupt_bar (not wb_is_interrupt))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initpintrp_a intrp0) (initbpstate_a bpstate0) + (initffpintrp_a ffpintrp0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) + (initffwrt_a ffwrt0) (initffinst_a ffinst0) + (initffppc_a ffppc0) (initfdpintrp_a fdpintrp0) + (initprf_a prf) (initfdppc_a fdppc0) (initfdwrt_a fdwrt0) + (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdepintrp_a depintrp0) (initdeppc_a deppc0) + (initdesrc1_a desrc10) (initdesrc2_a desrc20) + (initdearg1_a a1) (initdearg2_a a2) (initdedest_a dedest0) + (initdeop_a deop0) (initdeimm_a deimm0) + (initdeuseimm_a deuseimm0) + (initdeisreturnfromexception_a deisreturnfromexception0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a dewrt0) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initempintrp_a empintrp0) (initemppc_a emppc0) + (initemis_alu_exception_a emis_alu_exception0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a emwrt0) + (initemisreturnfromexception_a emisreturnfromexception0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initpepc_a epc0) (initpisexception_a isexception0) + (initmmpintrp_a mmpintrp0) + (initmmisreturnfromexception_a mmisreturnfromexception0) + (initmmis_alu_exception_a mmis_alu_exception0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a mmwrt0) + (initmmregwrite_a mmregwrite0) (initmwpintrp_a mwpintrp0) + (initmwisreturnfromexception_a mwisreturnfromexception0) + (initmwis_alu_exception_a mwis_alu_exception0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a mwwrt0) + (initmwregwrite_a mwregwrite0))))) + (defun spec-state_a (simem spc sintrp srf sdmem sepc sisexception) + (seq nil 'simem simem 'spc spc 'sintrp sintrp 'srf srf 'sdmem sdmem + 'sepc sepc 'sisexception sisexception)) + (defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + (defun nextsimem_a (simem initi) + (cons (s 0 nil (s 1 initi nil)) simem)) + (defun initspc_a (pc0) pc0) + (defun nextspc_a + (initi pc0 project_impl impl.ppc isa is_interrupt spc + is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc) + (cond + (initi pc0) + (project_impl impl.ppc) + ((and isa is_interrupt) spc) + ((and isa is_returnfromexception) sepc) + ((and isa is_alu_exception) alu_exception_handler) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + (defun initsintrp_a (intrp0) intrp0) + (defun nextsintrp_a (initi intrp0 project_impl impl.pintrp isa sintrp) + (cond + (initi intrp0) + (project_impl impl.pintrp) + (isa (nextintrp sintrp)) + (t sintrp))) + (defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + (defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_interrupt_bar + is_returnfromexception_bar val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa + (s 5 inst + (s 6 regwrite + (s 7 is_alu_exception_bar + (s 8 is_interrupt_bar + (s 9 is_returnfromexception_bar + (s 10 val nil))))))))))) + srf)) + (defun initsdmem_a (dmem0) dmem0) + (defun nextsdmem_a + (initi dmem0 project_impl impl.pdmem isa is_interrupt sdmem + memwrite is_alu_exception_bar is_returnfromexception_bar + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmem) + ((and isa is_interrupt) (intrp_mod_dmem sdmem)) + ((and (and (and isa memwrite) is_alu_exception_bar) + is_returnfromexception_bar) + (nextdmem sdmem result arg2_temp)) + (t sdmem))) + (defun initsepc_a (epc0) epc0) + (defun nextsepc_a + (initi epc0 project_impl impl.pepc isa is_alu_exception + is_returnfromexception_bar is_interrupt_bar spc sepc) + (cond + (initi epc0) + (project_impl impl.pepc) + ((and (and (and isa is_alu_exception) is_returnfromexception_bar) + is_interrupt_bar) + spc) + (t sepc))) + (defun initsisexception_a (isexception0) isexception0) + (defun nextsisexception_a + (initi isexception0 project_impl impl.pisexception isa + is_alu_exception is_returnfromexception is_interrupt_bar + is_returnfromexception_bar sisexception) + (cond + (initi isexception0) + (project_impl impl.pisexception) + ((and (and isa (or is_alu_exception is_returnfromexception)) + is_interrupt_bar) + (and is_alu_exception is_returnfromexception_bar)) + (t sisexception))) + (defun spec-simulate_a + (spec initi pc0 project_impl impl.ppc isa alu_exception_handler + intrp0 impl.pintrp impl.prf dmem0 impl.pdmem epc0 + impl.pepc isexception0 impl.pisexception) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (sintrp (g 'sintrp spec)) (srf (g 'srf spec)) + (sdmem (g 'sdmem spec)) (sepc (g 'sepc spec)) + (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (is_interrupt (isinterrupt sintrp)) + (is_interrupt_bar (not is_interrupt)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem initi) + (nextspc_a initi pc0 project_impl impl.ppc isa is_interrupt + spc is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc) + (nextsintrp_a initi intrp0 project_impl impl.pintrp isa + sintrp) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_interrupt_bar + is_returnfromexception_bar val) + (nextsdmem_a initi dmem0 project_impl impl.pdmem isa + is_interrupt sdmem memwrite is_alu_exception_bar + is_returnfromexception_bar result arg2_temp) + (nextsepc_a initi epc0 project_impl impl.pepc isa + is_alu_exception is_returnfromexception_bar + is_interrupt_bar spc sepc) + (nextsisexception_a initi isexception0 project_impl + impl.pisexception isa is_alu_exception + is_returnfromexception is_interrupt_bar + is_returnfromexception_bar sisexception))))) + (defun spec-initialize_a (spec pc0 intrp0 dmem0 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (sintrp (g 'sintrp spec)) (srf (g 'srf spec)) + (sdmem (g 'sdmem spec)) (sepc (g 'sepc spec)) + (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (is_interrupt (isinterrupt sintrp)) + (is_interrupt_bar (not is_interrupt)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsintrp_a intrp0) (initsrf_a srf) (initsdmem_a dmem0) + (initsepc_a epc0) (initsisexception_a isexception0))))) + (defun simulate_a + (st flush isa project_impl initi pc0 alu_exception_handler + intrp0 bpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 ffppc0 fdpintrp0 fdppc0 + fdwrt0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 epc0 isexception0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 impl.ppc impl.pintrp impl.prf impl.pdmem + impl.pepc impl.pisexception) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 alu_exception_handler + flush intrp0 bpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 ffppc0 fdpintrp0 fdppc0 + fdwrt0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 epc0 isexception0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 + mwpintrp0 mwisreturnfromexception0 mwis_alu_exception0 + mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl impl.ppc + isa alu_exception_handler intrp0 impl.pintrp impl.prf dmem0 + impl.pdmem epc0 impl.pepc isexception0 impl.pisexception))) + (defun initialize_a + (st flush isa project_impl initi pc0 intrp0 bpstate0 ffpintrp0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 epc0 isexception0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 intrp0 bpstate0 ffpintrp0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmpintrp0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 intrp0 dmem0 epc0 + isexception0))) + +(defthm web_core_a + (implies (and (integerp intrp_exception_handler) + (integerp intrp0) (integerp pc0) (integerp dmem0) + (integerp epc0) (booleanp isexception0) + (integerp bpstate0) + (integerp alu_exception_handler) (integerp a) + (integerp zero) (booleanp ffwrt0) + (booleanp fdwrt0) (booleanp dewrt0) + (booleanp emwrt0) (booleanp mmwrt0) + (booleanp mwwrt0) (integerp ffpintrp0) + (integerp fdpintrp0) (integerp depintrp0) + (integerp empintrp0) (integerp mmpintrp0) + (integerp mwpintrp0) (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20) + (booleanp emis_alu_exception0) + (booleanp mmis_alu_exception0) + (booleanp mwis_alu_exception0) + (booleanp deisreturnfromexception0) + (booleanp emisreturnfromexception0) + (booleanp mmisreturnfromexception0) + (booleanp mwisreturnfromexception0)) + (let* ((st0 (initialize_a nil nil nil nil nil pc0 + intrp0 bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0)) + (st1 (simulate_a st0 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st0)) + (g 'pintrp (g 'impl st0)) + (g 'prf (g 'impl st0)) + (g 'pdmem (g 'impl st0)) + (g 'pepc (g 'impl st0)) + (g 'pisexception (g 'impl st0)))) + (st2 (simulate_a st1 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st1)) + (g 'pintrp (g 'impl st1)) + (g 'prf (g 'impl st1)) + (g 'pdmem (g 'impl st1)) + (g 'pepc (g 'impl st1)) + (g 'pisexception (g 'impl st1)))) + (st3 (simulate_a st2 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st2)) + (g 'pintrp (g 'impl st2)) + (g 'prf (g 'impl st2)) + (g 'pdmem (g 'impl st2)) + (g 'pepc (g 'impl st2)) + (g 'pisexception (g 'impl st2)))) + (st4 (simulate_a st3 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st3)) + (g 'pintrp (g 'impl st3)) + (g 'prf (g 'impl st3)) + (g 'pdmem (g 'impl st3)) + (g 'pepc (g 'impl st3)) + (g 'pisexception (g 'impl st3)))) + (st5 (simulate_a st4 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st4)) + (g 'pintrp (g 'impl st4)) + (g 'prf (g 'impl st4)) + (g 'pdmem (g 'impl st4)) + (g 'pepc (g 'impl st4)) + (g 'pisexception (g 'impl st4)))) + (st6 (simulate_a st5 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st5)) + (g 'pintrp (g 'impl st5)) + (g 'prf (g 'impl st5)) + (g 'pdmem (g 'impl st5)) + (g 'pepc (g 'impl st5)) + (g 'pisexception (g 'impl st5)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st6)) + (g 'fdwrt (g 'impl st6))) + (g 'dewrt (g 'impl st6))) + (g 'emwrt (g 'impl st6))) + (g 'mmwrt (g 'impl st6))) + (g 'mwwrt (g 'impl st6))))) + (st7 (simulate_a st6 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st6)) + (g 'pintrp (g 'impl st6)) + (g 'prf (g 'impl st6)) + (g 'pdmem (g 'impl st6)) + (g 'pepc (g 'impl st6)) + (g 'pisexception (g 'impl st6)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st7)) + (g 'fdwrt (g 'impl st7))) + (g 'dewrt (g 'impl st7))) + (g 'emwrt (g 'impl st7))) + (g 'mmwrt (g 'impl st7))) + (g 'mwwrt (g 'impl st7))))) + (st8 (simulate_a st7 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st7)) + (g 'pintrp (g 'impl st7)) + (g 'prf (g 'impl st7)) + (g 'pdmem (g 'impl st7)) + (g 'pepc (g 'impl st7)) + (g 'pisexception (g 'impl st7)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (st9 (simulate_a st8 nil nil t nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st8)) + (g 'pintrp (g 'impl st8)) + (g 'prf (g 'impl st8)) + (g 'pdmem (g 'impl st8)) + (g 'pepc (g 'impl st8)) + (g 'pisexception (g 'impl st8)))) + (s_pc0 (g 'spc (g 'spec st9))) + (s_rf0 (g 'srf (g 'spec st9))) + (s_dmem0 (g 'sdmem (g 'spec st9))) + (s_epc0 (g 'sepc (g 'spec st9))) + (s_isexception0 + (g 'sisexception (g 'spec st9))) + (st10 (simulate_a st9 nil t nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st9)) + (g 'pintrp (g 'impl st9)) + (g 'prf (g 'impl st9)) + (g 'pdmem (g 'impl st9)) + (g 'pepc (g 'impl st9)) + (g 'pisexception (g 'impl st9)))) + (s_pc1 (g 'spc (g 'spec st10))) + (s_rf1 (g 'srf (g 'spec st10))) + (s_dmem1 (g 'sdmem (g 'spec st10))) + (s_epc1 (g 'sepc (g 'spec st10))) + (s_isexception1 + (g 'sisexception (g 'spec st10))) + (st11 (simulate_a st10 nil nil nil t pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st10)) + (g 'pintrp (g 'impl st10)) + (g 'prf (g 'impl st10)) + (g 'pdmem (g 'impl st10)) + (g 'pepc (g 'impl st10)) + (g 'pisexception (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st11)) + (g 'pintrp (g 'impl st11)) + (g 'prf (g 'impl st11)) + (g 'pdmem (g 'impl st11)) + (g 'pepc (g 'impl st11)) + (g 'pisexception (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st12)) + (g 'pintrp (g 'impl st12)) + (g 'prf (g 'impl st12)) + (g 'pdmem (g 'impl st12)) + (g 'pepc (g 'impl st12)) + (g 'pisexception (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st13)) + (g 'pintrp (g 'impl st13)) + (g 'prf (g 'impl st13)) + (g 'pdmem (g 'impl st13)) + (g 'pepc (g 'impl st13)) + (g 'pisexception (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st14)) + (g 'pintrp (g 'impl st14)) + (g 'prf (g 'impl st14)) + (g 'pdmem (g 'impl st14)) + (g 'pepc (g 'impl st14)) + (g 'pisexception (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st15)) + (g 'pintrp (g 'impl st15)) + (g 'prf (g 'impl st15)) + (g 'pdmem (g 'impl st15)) + (g 'pepc (g 'impl st15)) + (g 'pisexception (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st16)) + (g 'pintrp (g 'impl st16)) + (g 'prf (g 'impl st16)) + (g 'pdmem (g 'impl st16)) + (g 'pepc (g 'impl st16)) + (g 'pisexception (g 'impl st16)))) + (t1 (g 'mwwrt (g 'impl st17))) + (st18 (simulate_a st17 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st17)) + (g 'pintrp (g 'impl st17)) + (g 'prf (g 'impl st17)) + (g 'pdmem (g 'impl st17)) + (g 'pepc (g 'impl st17)) + (g 'pisexception (g 'impl st17)))) + (t2 (g 'mwwrt (g 'impl st18))) + (st19 (simulate_a st18 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st18)) + (g 'pintrp (g 'impl st18)) + (g 'prf (g 'impl st18)) + (g 'pdmem (g 'impl st18)) + (g 'pepc (g 'impl st18)) + (g 'pisexception (g 'impl st18)))) + (t3 (g 'mwwrt (g 'impl st19))) + (st20 (simulate_a st19 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st19)) + (g 'pintrp (g 'impl st19)) + (g 'prf (g 'impl st19)) + (g 'pdmem (g 'impl st19)) + (g 'pepc (g 'impl st19)) + (g 'pisexception (g 'impl st19)))) + (t4 (g 'mwwrt (g 'impl st20))) + (st21 (simulate_a st20 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st20)) + (g 'pintrp (g 'impl st20)) + (g 'prf (g 'impl st20)) + (g 'pdmem (g 'impl st20)) + (g 'pepc (g 'impl st20)) + (g 'pisexception (g 'impl st20)))) + (t5 (g 'mwwrt (g 'impl st21))) + (st22 (simulate_a st21 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st21)) + (g 'pintrp (g 'impl st21)) + (g 'prf (g 'impl st21)) + (g 'pdmem (g 'impl st21)) + (g 'pepc (g 'impl st21)) + (g 'pisexception (g 'impl st21)))) + (t6 (g 'mwwrt (g 'impl st22))) + (rank_w (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))) + (t (add-1 + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter)))))))))) + (st23 (simulate_a st22 nil nil nil t pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st22)) + (g 'pintrp (g 'impl st22)) + (g 'prf (g 'impl st22)) + (g 'pdmem (g 'impl st22)) + (g 'pepc (g 'impl st22)) + (g 'pisexception (g 'impl st22)))) + (st24 (simulate_a st23 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st23)) + (g 'pintrp (g 'impl st23)) + (g 'prf (g 'impl st23)) + (g 'pdmem (g 'impl st23)) + (g 'pepc (g 'impl st23)) + (g 'pisexception (g 'impl st23)))) + (st25 (simulate_a st24 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st24)) + (g 'pintrp (g 'impl st24)) + (g 'prf (g 'impl st24)) + (g 'pdmem (g 'impl st24)) + (g 'pepc (g 'impl st24)) + (g 'pisexception (g 'impl st24)))) + (st26 (simulate_a st25 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st25)) + (g 'pintrp (g 'impl st25)) + (g 'prf (g 'impl st25)) + (g 'pdmem (g 'impl st25)) + (g 'pepc (g 'impl st25)) + (g 'pisexception (g 'impl st25)))) + (st27 (simulate_a st26 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st26)) + (g 'pintrp (g 'impl st26)) + (g 'prf (g 'impl st26)) + (g 'pdmem (g 'impl st26)) + (g 'pepc (g 'impl st26)) + (g 'pisexception (g 'impl st26)))) + (st28 (simulate_a st27 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st27)) + (g 'pintrp (g 'impl st27)) + (g 'prf (g 'impl st27)) + (g 'pdmem (g 'impl st27)) + (g 'pepc (g 'impl st27)) + (g 'pisexception (g 'impl st27)))) + (st29 (simulate_a st28 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st28)) + (g 'pintrp (g 'impl st28)) + (g 'prf (g 'impl st28)) + (g 'pdmem (g 'impl st28)) + (g 'pepc (g 'impl st28)) + (g 'pisexception (g 'impl st28)))) + (st30 (simulate_a st29 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st29)) + (g 'pintrp (g 'impl st29)) + (g 'prf (g 'impl st29)) + (g 'pdmem (g 'impl st29)) + (g 'pepc (g 'impl st29)) + (g 'pisexception (g 'impl st29)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30))) + (g 'dewrt (g 'impl st30))) + (g 'emwrt (g 'impl st30))) + (g 'mmwrt (g 'impl st30))) + (g 'mwwrt (g 'impl st30))))) + (st31 (simulate_a st30 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st30)) + (g 'pintrp (g 'impl st30)) + (g 'prf (g 'impl st30)) + (g 'pdmem (g 'impl st30)) + (g 'pepc (g 'impl st30)) + (g 'pisexception (g 'impl st30)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31))) + (g 'dewrt (g 'impl st31))) + (g 'emwrt (g 'impl st31))) + (g 'mmwrt (g 'impl st31))) + (g 'mwwrt (g 'impl st31))))) + (st32 (simulate_a st31 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st31)) + (g 'pintrp (g 'impl st31)) + (g 'prf (g 'impl st31)) + (g 'pdmem (g 'impl st31)) + (g 'pepc (g 'impl st31)) + (g 'pisexception (g 'impl st31)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (i_pc (g 'ppc (g 'impl st32))) + (i_rf (g 'prf (g 'impl st32))) + (i_dmem (g 'pdmem (g 'impl st32))) + (i_epc (g 'pepc (g 'impl st32))) + (i_isexception + (g 'pisexception (g 'impl st32))) + (st33 (simulate_a st32 nil nil nil t pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st32)) + (g 'pintrp (g 'impl st32)) + (g 'prf (g 'impl st32)) + (g 'pdmem (g 'impl st32)) + (g 'pepc (g 'impl st32)) + (g 'pisexception (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st33)) + (g 'pintrp (g 'impl st33)) + (g 'prf (g 'impl st33)) + (g 'pdmem (g 'impl st33)) + (g 'pepc (g 'impl st33)) + (g 'pisexception (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st34)) + (g 'pintrp (g 'impl st34)) + (g 'prf (g 'impl st34)) + (g 'pdmem (g 'impl st34)) + (g 'pepc (g 'impl st34)) + (g 'pisexception (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st35)) + (g 'pintrp (g 'impl st35)) + (g 'prf (g 'impl st35)) + (g 'pdmem (g 'impl st35)) + (g 'pepc (g 'impl st35)) + (g 'pisexception (g 'impl st35)))) + (st37 (simulate_a st36 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st36)) + (g 'pintrp (g 'impl st36)) + (g 'prf (g 'impl st36)) + (g 'pdmem (g 'impl st36)) + (g 'pepc (g 'impl st36)) + (g 'pisexception (g 'impl st36)))) + (st38 (simulate_a st37 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st37)) + (g 'pintrp (g 'impl st37)) + (g 'prf (g 'impl st37)) + (g 'pdmem (g 'impl st37)) + (g 'pepc (g 'impl st37)) + (g 'pisexception (g 'impl st37)))) + (st39 (simulate_a st38 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st38)) + (g 'pintrp (g 'impl st38)) + (g 'prf (g 'impl st38)) + (g 'pdmem (g 'impl st38)) + (g 'pepc (g 'impl st38)) + (g 'pisexception (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st39)) + (g 'pintrp (g 'impl st39)) + (g 'prf (g 'impl st39)) + (g 'pdmem (g 'impl st39)) + (g 'pepc (g 'impl st39)) + (g 'pisexception (g 'impl st39)))) + (t1 (g 'mwwrt (g 'impl st40))) + (st41 (simulate_a st40 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st40)) + (g 'pintrp (g 'impl st40)) + (g 'prf (g 'impl st40)) + (g 'pdmem (g 'impl st40)) + (g 'pepc (g 'impl st40)) + (g 'pisexception (g 'impl st40)))) + (t2 (g 'mwwrt (g 'impl st41))) + (st42 (simulate_a st41 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st41)) + (g 'pintrp (g 'impl st41)) + (g 'prf (g 'impl st41)) + (g 'pdmem (g 'impl st41)) + (g 'pepc (g 'impl st41)) + (g 'pisexception (g 'impl st41)))) + (t3 (g 'mwwrt (g 'impl st42))) + (st43 (simulate_a st42 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st42)) + (g 'pintrp (g 'impl st42)) + (g 'prf (g 'impl st42)) + (g 'pdmem (g 'impl st42)) + (g 'pepc (g 'impl st42)) + (g 'pisexception (g 'impl st42)))) + (t4 (g 'mwwrt (g 'impl st43))) + (st44 (simulate_a st43 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st43)) + (g 'pintrp (g 'impl st43)) + (g 'prf (g 'impl st43)) + (g 'pdmem (g 'impl st43)) + (g 'pepc (g 'impl st43)) + (g 'pisexception (g 'impl st43)))) + (t5 (g 'mwwrt (g 'impl st44))) + (st45 (simulate_a st44 nil nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st44)) + (g 'pintrp (g 'impl st44)) + (g 'prf (g 'impl st44)) + (g 'pdmem (g 'impl st44)) + (g 'pepc (g 'impl st44)) + (g 'pisexception (g 'impl st44)))) + (t6 (g 'mwwrt (g 'impl st45))) + (rank_v (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))) + (t (add-1 + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))))))) + (or (and (and (and (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_epc1 i_epc)) + (equalb s_isexception1 i_isexception)) + (equal s_dmem1 i_dmem)) + (and (and (and (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_epc0 i_epc)) + (equalb s_isexception0 i_isexception)) + (equal s_dmem0 i_dmem))))) + :rule-classes nil) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-inp.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-inp.lisp new file mode 100644 index 0000000..b5aa125 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-inp.lisp @@ -0,0 +1,2966 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((intrp_mod_dmem (x1) t)) + (local (defun intrp_mod_dmem (x1) (declare (ignore x1)) 1)) + (defthm intrp_mod_dmem-type (integerp (intrp_mod_dmem x1)))) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((nextintrp (x1) t)) + (local (defun nextintrp (x1) (declare (ignore x1)) 1)) + (defthm nextintrp-type (integerp (nextintrp x1)))) + (encapsulate ((isinterrupt (x1) t)) + (local (defun isinterrupt (x1) (declare (ignore x1)) nil)) + (defthm isinterrupt-type (booleanp (isinterrupt x1)))) + (encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + (encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + (encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + (encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + (encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + (encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + (encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + (encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + (encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + (encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + (encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + (encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + (encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + (encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + (encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + (encapsulate ((alu_exception (x3 x2 x1) t)) + (local (defun alu_exception (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm alu_exception-type (booleanp (alu_exception x3 x2 x1)))) + (encapsulate ((getreturnfromexception (x1) t)) + (local (defun getreturnfromexception (x1) + (declare (ignore x1)) + nil)) + (defthm getreturnfromexception-type + (booleanp (getreturnfromexception x1)))) + (encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + (encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + (encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + (defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + (defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((and (and (and (and (and (g 2 (car prf)) + (equal a (g 3 (car prf)))) + (g 4 (car prf))) + (g 5 (car prf))) + (g 6 (car prf))) + (g 7 (car prf))) + (g 8 (car prf))) + (t (read-prf_a a (cdr prf))))))) + (defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) + (cond + ((g 1 (car simem)) (imem0 a)) + (t (read-simem_a a (cdr simem))))))) + (defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (and (and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (g 8 (car srf))) + (g 9 (car srf))) + (g 10 (car srf))) + (t (read-srf_a a (cdr srf))))))) + (defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + (defun impl-state_a + (pimem ppc pintrp bpstate ffpintrp ffpredicteddirection + ffpredictedtarget ffwrt ffinst ffppc fdpintrp prf fdppc + fdwrt fdinst fdpredicteddirection fdpredictedtarget + depintrp deppc desrc1 desrc2 dearg1 dearg2 dedest deop + deimm deuseimm deisreturnfromexception deregwrite + dememwrite dememtoreg deisbranch dewrt + depredicteddirection depredictedtarget empintrp emppc + emis_alu_exception emis_taken_branch emtargetpc emarg2 + emresult emdest emwrt emisreturnfromexception + emmispredictedtaken emmispredictednottaken emregwrite + emmemwrite emmemtoreg pdmemhist_2 pdmemhist_1 pdmem pepc + pisexception mmpintrp mmisreturnfromexception + mmis_alu_exception mmppc mmval mmdest mmwrt mmregwrite + mwpintrp mwisreturnfromexception mwis_alu_exception + mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'pintrp pintrp 'bpstate bpstate + 'ffpintrp ffpintrp 'ffpredicteddirection ffpredicteddirection + 'ffpredictedtarget ffpredictedtarget 'ffwrt ffwrt 'ffinst + ffinst 'ffppc ffppc 'fdpintrp fdpintrp 'prf prf 'fdppc fdppc + 'fdwrt fdwrt 'fdinst fdinst 'fdpredicteddirection + fdpredicteddirection 'fdpredictedtarget fdpredictedtarget + 'depintrp depintrp 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 + 'dearg1 dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm + deimm 'deuseimm deuseimm 'deisreturnfromexception + deisreturnfromexception 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt + dewrt 'depredicteddirection depredicteddirection + 'depredictedtarget depredictedtarget 'empintrp empintrp 'emppc + emppc 'emis_alu_exception emis_alu_exception 'emis_taken_branch + emis_taken_branch 'emtargetpc emtargetpc 'emarg2 emarg2 + 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emisreturnfromexception emisreturnfromexception + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'pepc pepc 'pisexception pisexception 'mmpintrp mmpintrp + 'mmisreturnfromexception mmisreturnfromexception + 'mmis_alu_exception mmis_alu_exception 'mmppc mmppc 'mmval + mmval 'mmdest mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite + 'mwpintrp mwpintrp 'mwisreturnfromexception + mwisreturnfromexception 'mwis_alu_exception mwis_alu_exception + 'mwppc mwppc 'mwval mwval 'mwdest mwdest 'mwwrt mwwrt + 'mwregwrite mwregwrite)) + (defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + (defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + (defun initppc_a (pc0) pc0) + (defun nextppc_a + (initi pc0 mem1_is_interrupt emppc mem1_is_returnfromexception + pepc mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken mem1_mispredicted_nottaken + emtargetpc stall flush ppc if_predict_branch_taken + predicted_target) + (cond + (initi pc0) + (mem1_is_interrupt emppc) + (mem1_is_returnfromexception pepc) + (mem1_is_alu_exception alu_exception_handler) + (mem1_mispredicted_taken emppc) + (mem1_mispredicted_nottaken emtargetpc) + ((or stall flush) ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + (defun initpintrp_a (intrp0) intrp0) + (defun nextpintrp_a (initi intrp0 stall flush pintrp) + (cond + (initi intrp0) + ((or stall flush) pintrp) + (t (nextintrp pintrp)))) + (defun initbpstate_a (bpstate0) bpstate0) + (defun nextbpstate_a (initi bpstate0 stall bpstate) + (cond (initi bpstate0) (stall bpstate) (t (nextbpstate bpstate)))) + (defun initffpintrp_a (ffpintrp0) ffpintrp0) + (defun nextffpintrp_a (initi ffpintrp0 stall ffpintrp pintrp) + (cond (initi ffpintrp0) (stall ffpintrp) (t pintrp))) + (defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + (defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + (defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + (defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + (defun initffwrt_a (ffwrt0) ffwrt0) + (defun nextffwrt_a (initi ffwrt0 squash stall ffwrt flush) + (cond (initi ffwrt0) (squash nil) (stall ffwrt) (flush nil) (t t))) + (defun initffinst_a (ffinst0) ffinst0) + (defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + (defun initffppc_a (ffppc0) ffppc0) + (defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + (defun initfdpintrp_a (fdpintrp0) fdpintrp0) + (defun nextfdpintrp_a (initi fdpintrp0 stall fdpintrp ffpintrp) + (cond (initi fdpintrp0) (stall fdpintrp) (t ffpintrp))) + (defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + (defun nextprf_a + (prf initi mwwrt mwdest mwregwrite wb_is_alu_exception_bar + wb_is_interrupt_bar wb_is_returnfromexception_bar mwval) + (cons (s 0 nil + (s 1 initi + (s 2 mwwrt + (s 3 mwdest + (s 4 mwregwrite + (s 5 wb_is_alu_exception_bar + (s 6 wb_is_interrupt_bar + (s 7 wb_is_returnfromexception_bar + (s 8 mwval nil))))))))) + prf)) + (defun initfdppc_a (fdppc0) fdppc0) + (defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + (defun initfdwrt_a (fdwrt0) fdwrt0) + (defun nextfdwrt_a (initi fdwrt0 squash stall fdwrt ffwrt) + (cond (initi fdwrt0) (squash nil) (stall fdwrt) (t ffwrt))) + (defun initfdinst_a (fdinst0) fdinst0) + (defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + (defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + (defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + (defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + (defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + (defun initdepintrp_a (depintrp0) depintrp0) + (defun nextdepintrp_a (initi depintrp0 fdpintrp) + (cond (initi depintrp0) (t fdpintrp))) + (defun initdeppc_a (deppc0) deppc0) + (defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + (defun initdesrc1_a (desrc10) desrc10) + (defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + (defun initdesrc2_a (desrc20) desrc20) + (defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + (defun initdearg1_a (a1) a1) + (defun nextdearg1_a + (initi a1 if_id_src1 prf mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval))))) + (defun initdearg2_a (a2) a2) + (defun nextdearg2_a + (initi a2 if_id_src2 prf mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval))))) + (defun initdedest_a (dedest0) dedest0) + (defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + (defun initdeop_a (deop0) deop0) + (defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + (defun initdeimm_a (deimm0) deimm0) + (defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + (defun initdeuseimm_a (deuseimm0) deuseimm0) + (defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + (defun initdeisreturnfromexception_a (deisreturnfromexception0) + deisreturnfromexception0) + (defun nextdeisreturnfromexception_a + (initi deisreturnfromexception0 fdinst) + (cond + (initi deisreturnfromexception0) + (t (getreturnfromexception fdinst)))) + (defun initderegwrite_a (deregwrite0) deregwrite0) + (defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + (defun initdememwrite_a (dememwrite0) dememwrite0) + (defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + (defun initdememtoreg_a (dememtoreg0) dememtoreg0) + (defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + (defun initdeisbranch_a (deisbranch0) deisbranch0) + (defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + (defun initdewrt_a (dewrt0) dewrt0) + (defun nextdewrt_a (initi dewrt0 squash stall fdwrt) + (cond (initi dewrt0) (squash nil) (t (and (not stall) fdwrt)))) + (defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + (defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + (defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + (defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + (defun initempintrp_a (empintrp0) empintrp0) + (defun nextempintrp_a (initi empintrp0 depintrp) + (cond (initi empintrp0) (t depintrp))) + (defun initemppc_a (emppc0) emppc0) + (defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + (defun initemis_alu_exception_a (emis_alu_exception0) + emis_alu_exception0) + (defun nextemis_alu_exception_a + (initi emis_alu_exception0 ex_is_alu_exception) + (cond (initi emis_alu_exception0) (t ex_is_alu_exception))) + (defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + (defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + (defun initemtargetpc_a (emtargetpc0) emtargetpc0) + (defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + (defun initemarg2_a (emarg20) emarg20) + (defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + (defun initemresult_a (emresult0) emresult0) + (defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + (defun initemdest_a (emdest0) emdest0) + (defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + (defun initemwrt_a (emwrt0) emwrt0) + (defun nextemwrt_a (initi emwrt0 squash dewrt) + (cond (initi emwrt0) (squash nil) (t dewrt))) + (defun initemisreturnfromexception_a (emisreturnfromexception0) + emisreturnfromexception0) + (defun nextemisreturnfromexception_a + (initi emisreturnfromexception0 deisreturnfromexception) + (cond (initi emisreturnfromexception0) (t deisreturnfromexception))) + (defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + (defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + (defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + (defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + (defun initemregwrite_a (emregwrite0) emregwrite0) + (defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + (defun initemmemwrite_a (emmemwrite0) emmemwrite0) + (defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + (defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + (defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + (defun initpdmemhist_2_a (dmem0) dmem0) + (defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + (defun initpdmemhist_1_a (dmem0) dmem0) + (defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + (defun initpdmem_a (dmem0) dmem0) + (defun nextpdmem_a + (initi dmem0 mem1_is_interrupt pdmem emwrt emmemwrite + mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar emresult emarg2) + (cond + (initi dmem0) + (mem1_is_interrupt (intrp_mod_dmem pdmem)) + ((and (and (and emwrt emmemwrite) mem1_is_alu_exception_bar) + mem1_is_returnfromexception_bar) + (nextdmem pdmem emresult emarg2)) + (t pdmem))) + (defun initpepc_a (epc0) epc0) + (defun nextpepc_a + (initi epc0 mem1_is_alu_exception + mem1_is_returnfromexception_bar mem1_is_interrupt_bar + emppc pepc) + (cond + (initi epc0) + ((and (and mem1_is_alu_exception mem1_is_returnfromexception_bar) + mem1_is_interrupt_bar) + emppc) + (t pepc))) + (defun initpisexception_a (isexception0) isexception0) + (defun nextpisexception_a + (initi isexception0 mem1_is_alu_exception + mem1_is_returnfromexception mem1_is_interrupt_bar + mem1_is_returnfromexception_bar pisexception) + (cond + (initi isexception0) + ((and (or mem1_is_alu_exception mem1_is_returnfromexception) + mem1_is_interrupt_bar) + (and mem1_is_alu_exception mem1_is_returnfromexception_bar)) + (t pisexception))) + (defun initmmpintrp_a (mmpintrp0) mmpintrp0) + (defun nextmmpintrp_a (initi mmpintrp0 empintrp) + (cond (initi mmpintrp0) (t empintrp))) + (defun initmmisreturnfromexception_a (mmisreturnfromexception0) + mmisreturnfromexception0) + (defun nextmmisreturnfromexception_a + (initi mmisreturnfromexception0 emisreturnfromexception) + (cond (initi mmisreturnfromexception0) (t emisreturnfromexception))) + (defun initmmis_alu_exception_a (mmis_alu_exception0) + mmis_alu_exception0) + (defun nextmmis_alu_exception_a + (initi mmis_alu_exception0 emis_alu_exception) + (cond (initi mmis_alu_exception0) (t emis_alu_exception))) + (defun initmmppc_a (mmppc0) mmppc0) + (defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + (defun initmmval_a (mmval0) mmval0) + (defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + (defun initmmdest_a (mmdest0) mmdest0) + (defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + (defun initmmwrt_a (mmwrt0) mmwrt0) + (defun nextmmwrt_a (initi mmwrt0 emwrt) + (cond (initi mmwrt0) (t emwrt))) + (defun initmmregwrite_a (mmregwrite0) mmregwrite0) + (defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + (defun initmwpintrp_a (mwpintrp0) mwpintrp0) + (defun nextmwpintrp_a (initi mwpintrp0 mmpintrp) + (cond (initi mwpintrp0) (t mmpintrp))) + (defun initmwisreturnfromexception_a (mwisreturnfromexception0) + mwisreturnfromexception0) + (defun nextmwisreturnfromexception_a + (initi mwisreturnfromexception0 mmisreturnfromexception) + (cond (initi mwisreturnfromexception0) (t mmisreturnfromexception))) + (defun initmwis_alu_exception_a (mwis_alu_exception0) + mwis_alu_exception0) + (defun nextmwis_alu_exception_a + (initi mwis_alu_exception0 mmis_alu_exception) + (cond (initi mwis_alu_exception0) (t mmis_alu_exception))) + (defun initmwppc_a (mwppc0) mwppc0) + (defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + (defun initmwval_a (mwval0) mwval0) + (defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + (defun initmwdest_a (mwdest0) mwdest0) + (defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + (defun initmwwrt_a (mwwrt0) mwwrt0) + (defun nextmwwrt_a (initi mwwrt0 mmwrt) + (cond (initi mwwrt0) (t mmwrt))) + (defun initmwregwrite_a (mwregwrite0) mwregwrite0) + (defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + (defun impl-simulate_a + (impl initi pc0 alu_exception_handler flush intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 ffpredictedtarget0 ffwrt0 + ffinst0 ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 epc0 isexception0 mmpintrp0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (pintrp (g 'pintrp impl)) (bpstate (g 'bpstate impl)) + (ffpintrp (g 'ffpintrp impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (fdpintrp (g 'fdpintrp impl)) + (prf (g 'prf impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (depintrp (g 'depintrp impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (empintrp (g 'empintrp impl)) (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepc (g 'pepc impl)) (pisexception (g 'pisexception impl)) + (mmpintrp (g 'mmpintrp impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwpintrp (g 'mwpintrp impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (mem1_is_interrupt_temp (isinterrupt empintrp)) + (mem1_is_interrupt (and mem1_is_interrupt_temp emwrt)) + (mem1_is_interrupt_bar (not mem1_is_interrupt)) + (squash (or (or (or mem1_mispredicted + mem1_is_alu_exception) + mem1_is_interrupt) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception)) + (wb_is_interrupt_temp (isinterrupt mwpintrp)) + (wb_is_interrupt (and wb_is_interrupt_temp mwwrt)) + (wb_is_interrupt_bar (not wb_is_interrupt))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 mem1_is_interrupt emppc + mem1_is_returnfromexception pepc mem1_is_alu_exception + alu_exception_handler mem1_mispredicted_taken + mem1_mispredicted_nottaken emtargetpc stall flush ppc + if_predict_branch_taken predicted_target) + (nextpintrp_a initi intrp0 stall flush pintrp) + (nextbpstate_a initi bpstate0 stall bpstate) + (nextffpintrp_a initi ffpintrp0 stall ffpintrp pintrp) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi ffwrt0 squash stall ffwrt flush) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextfdpintrp_a initi fdpintrp0 stall fdpintrp ffpintrp) + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi fdwrt0 squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdepintrp_a initi depintrp0 fdpintrp) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf mwwrt mwdest + mwregwrite wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (nextdearg2_a initi a2 if_id_src2 prf mwwrt mwdest + mwregwrite wb_is_alu_exception_bar wb_is_interrupt_bar + wb_is_returnfromexception_bar mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextdeisreturnfromexception_a initi + deisreturnfromexception0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi dewrt0 squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextempintrp_a initi empintrp0 depintrp) + (nextemppc_a initi emppc0 deppc) + (nextemis_alu_exception_a initi emis_alu_exception0 + ex_is_alu_exception) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi emwrt0 squash dewrt) + (nextemisreturnfromexception_a initi + emisreturnfromexception0 deisreturnfromexception) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 mem1_is_interrupt pdmem emwrt + emmemwrite mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar emresult emarg2) + (nextpepc_a initi epc0 mem1_is_alu_exception + mem1_is_returnfromexception_bar mem1_is_interrupt_bar + emppc pepc) + (nextpisexception_a initi isexception0 mem1_is_alu_exception + mem1_is_returnfromexception mem1_is_interrupt_bar + mem1_is_returnfromexception_bar pisexception) + (nextmmpintrp_a initi mmpintrp0 empintrp) + (nextmmisreturnfromexception_a initi + mmisreturnfromexception0 emisreturnfromexception) + (nextmmis_alu_exception_a initi mmis_alu_exception0 + emis_alu_exception) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi mmwrt0 emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwpintrp_a initi mwpintrp0 mmpintrp) + (nextmwisreturnfromexception_a initi + mwisreturnfromexception0 mmisreturnfromexception) + (nextmwis_alu_exception_a initi mwis_alu_exception0 + mmis_alu_exception) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi mwwrt0 mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + (defun impl-initialize_a + (impl pc0 intrp0 bpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 ffppc0 fdpintrp0 fdppc0 + fdwrt0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmpintrp0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (pintrp (g 'pintrp impl)) (bpstate (g 'bpstate impl)) + (ffpintrp (g 'ffpintrp impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (fdpintrp (g 'fdpintrp impl)) + (prf (g 'prf impl)) (fdppc (g 'fdppc impl)) + (fdwrt (g 'fdwrt impl)) (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (depintrp (g 'depintrp impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (empintrp (g 'empintrp impl)) (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepc (g 'pepc impl)) (pisexception (g 'pisexception impl)) + (mmpintrp (g 'mmpintrp impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwpintrp (g 'mwpintrp impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (mem1_is_interrupt_temp (isinterrupt empintrp)) + (mem1_is_interrupt (and mem1_is_interrupt_temp emwrt)) + (mem1_is_interrupt_bar (not mem1_is_interrupt)) + (squash (or (or (or mem1_mispredicted + mem1_is_alu_exception) + mem1_is_interrupt) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception)) + (wb_is_interrupt_temp (isinterrupt mwpintrp)) + (wb_is_interrupt (and wb_is_interrupt_temp mwwrt)) + (wb_is_interrupt_bar (not wb_is_interrupt))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initpintrp_a intrp0) (initbpstate_a bpstate0) + (initffpintrp_a ffpintrp0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) + (initffwrt_a ffwrt0) (initffinst_a ffinst0) + (initffppc_a ffppc0) (initfdpintrp_a fdpintrp0) + (initprf_a prf) (initfdppc_a fdppc0) (initfdwrt_a fdwrt0) + (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdepintrp_a depintrp0) (initdeppc_a deppc0) + (initdesrc1_a desrc10) (initdesrc2_a desrc20) + (initdearg1_a a1) (initdearg2_a a2) (initdedest_a dedest0) + (initdeop_a deop0) (initdeimm_a deimm0) + (initdeuseimm_a deuseimm0) + (initdeisreturnfromexception_a deisreturnfromexception0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a dewrt0) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initempintrp_a empintrp0) (initemppc_a emppc0) + (initemis_alu_exception_a emis_alu_exception0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a emwrt0) + (initemisreturnfromexception_a emisreturnfromexception0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initpepc_a epc0) (initpisexception_a isexception0) + (initmmpintrp_a mmpintrp0) + (initmmisreturnfromexception_a mmisreturnfromexception0) + (initmmis_alu_exception_a mmis_alu_exception0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a mmwrt0) + (initmmregwrite_a mmregwrite0) (initmwpintrp_a mwpintrp0) + (initmwisreturnfromexception_a mwisreturnfromexception0) + (initmwis_alu_exception_a mwis_alu_exception0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a mwwrt0) + (initmwregwrite_a mwregwrite0))))) + (defun spec-state_a (simem spc sintrp srf sdmem sepc sisexception) + (seq nil 'simem simem 'spc spc 'sintrp sintrp 'srf srf 'sdmem sdmem + 'sepc sepc 'sisexception sisexception)) + (defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + (defun nextsimem_a (simem initi) + (cons (s 0 nil (s 1 initi nil)) simem)) + (defun initspc_a (pc0) pc0) + (defun nextspc_a + (initi pc0 project_impl impl.ppc isa is_interrupt spc + is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc) + (cond + (initi pc0) + (project_impl impl.ppc) + ((and isa is_interrupt) spc) + ((and isa is_returnfromexception) sepc) + ((and isa is_alu_exception) alu_exception_handler) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + (defun initsintrp_a (intrp0) intrp0) + (defun nextsintrp_a (initi intrp0 project_impl impl.pintrp isa sintrp) + (cond + (initi intrp0) + (project_impl impl.pintrp) + (isa (nextintrp sintrp)) + (t sintrp))) + (defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + (defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_interrupt_bar + is_returnfromexception_bar val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa + (s 5 inst + (s 6 regwrite + (s 7 is_alu_exception_bar + (s 8 is_interrupt_bar + (s 9 is_returnfromexception_bar + (s 10 val nil))))))))))) + srf)) + (defun initsdmem_a (dmem0) dmem0) + (defun nextsdmem_a + (initi dmem0 project_impl impl.pdmem isa is_interrupt sdmem + memwrite is_alu_exception_bar is_returnfromexception_bar + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmem) + ((and isa is_interrupt) (intrp_mod_dmem sdmem)) + ((and (and (and isa memwrite) is_alu_exception_bar) + is_returnfromexception_bar) + (nextdmem sdmem result arg2_temp)) + (t sdmem))) + (defun initsepc_a (epc0) epc0) + (defun nextsepc_a + (initi epc0 project_impl impl.pepc isa is_alu_exception + is_returnfromexception_bar is_interrupt_bar spc sepc) + (cond + (initi epc0) + (project_impl impl.pepc) + ((and (and (and isa is_alu_exception) is_returnfromexception_bar) + is_interrupt_bar) + spc) + (t sepc))) + (defun initsisexception_a (isexception0) isexception0) + (defun nextsisexception_a + (initi isexception0 project_impl impl.pisexception isa + is_alu_exception is_returnfromexception is_interrupt_bar + is_returnfromexception_bar sisexception) + (cond + (initi isexception0) + (project_impl impl.pisexception) + ((and (and isa (or is_alu_exception is_returnfromexception)) + is_interrupt_bar) + (and is_alu_exception is_returnfromexception_bar)) + (t sisexception))) + (defun spec-simulate_a + (spec initi pc0 project_impl impl.ppc isa alu_exception_handler + intrp0 impl.pintrp impl.prf dmem0 impl.pdmem epc0 + impl.pepc isexception0 impl.pisexception) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (sintrp (g 'sintrp spec)) (srf (g 'srf spec)) + (sdmem (g 'sdmem spec)) (sepc (g 'sepc spec)) + (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (is_interrupt (isinterrupt sintrp)) + (is_interrupt_bar (not is_interrupt)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem initi) + (nextspc_a initi pc0 project_impl impl.ppc isa is_interrupt + spc is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc) + (nextsintrp_a initi intrp0 project_impl impl.pintrp isa + sintrp) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_interrupt_bar + is_returnfromexception_bar val) + (nextsdmem_a initi dmem0 project_impl impl.pdmem isa + is_interrupt sdmem memwrite is_alu_exception_bar + is_returnfromexception_bar result arg2_temp) + (nextsepc_a initi epc0 project_impl impl.pepc isa + is_alu_exception is_returnfromexception_bar + is_interrupt_bar spc sepc) + (nextsisexception_a initi isexception0 project_impl + impl.pisexception isa is_alu_exception + is_returnfromexception is_interrupt_bar + is_returnfromexception_bar sisexception))))) + (defun spec-initialize_a (spec pc0 intrp0 dmem0 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (sintrp (g 'sintrp spec)) (srf (g 'srf spec)) + (sdmem (g 'sdmem spec)) (sepc (g 'sepc spec)) + (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (is_interrupt (isinterrupt sintrp)) + (is_interrupt_bar (not is_interrupt)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsintrp_a intrp0) (initsrf_a srf) (initsdmem_a dmem0) + (initsepc_a epc0) (initsisexception_a isexception0))))) + (defun simulate_a + (st flush isa project_impl initi pc0 alu_exception_handler + intrp0 bpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 ffppc0 fdpintrp0 fdppc0 + fdwrt0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 epc0 isexception0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 impl.ppc impl.pintrp impl.prf impl.pdmem + impl.pepc impl.pisexception) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 alu_exception_handler + flush intrp0 bpstate0 ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 ffppc0 fdpintrp0 fdppc0 + fdwrt0 fdinst0 fdpredicteddirection0 fdpredictedtarget0 + depintrp0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 epc0 isexception0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 + mwpintrp0 mwisreturnfromexception0 mwis_alu_exception0 + mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl impl.ppc + isa alu_exception_handler intrp0 impl.pintrp impl.prf dmem0 + impl.pdmem epc0 impl.pepc isexception0 impl.pisexception))) + (defun initialize_a + (st flush isa project_impl initi pc0 intrp0 bpstate0 ffpintrp0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 epc0 isexception0 mmpintrp0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwpintrp0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 intrp0 bpstate0 ffpintrp0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 mmpintrp0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 intrp0 dmem0 epc0 + isexception0))) + + (defthm web_core_a + (implies (and (integerp intrp_exception_handler) + (integerp intrp0) (integerp pc0) + (integerp dmem0) (integerp epc0) + (booleanp isexception0) (integerp bpstate0) + (integerp alu_exception_handler) (integerp a) + (integerp zero) (booleanp ffwrt0) + (booleanp fdwrt0) (booleanp dewrt0) + (booleanp emwrt0) (booleanp mmwrt0) + (booleanp mwwrt0) (integerp ffpintrp0) + (integerp fdpintrp0) (integerp depintrp0) + (integerp empintrp0) (integerp mmpintrp0) + (integerp mwpintrp0) (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20) + (booleanp emis_alu_exception0) + (booleanp mmis_alu_exception0) + (booleanp mwis_alu_exception0) + (booleanp deisreturnfromexception0) + (booleanp emisreturnfromexception0) + (booleanp mmisreturnfromexception0) + (booleanp mwisreturnfromexception0)) + (let* ((st0 (initialize_a nil nil nil nil nil pc0 + intrp0 bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0)) + (st1 (simulate_a st0 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st0)) + (g 'pintrp (g 'impl st0)) + (g 'prf (g 'impl st0)) + (g 'pdmem (g 'impl st0)) + (g 'pepc (g 'impl st0)) + (g 'pisexception (g 'impl st0)))) + (st2 (simulate_a st1 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st1)) + (g 'pintrp (g 'impl st1)) + (g 'prf (g 'impl st1)) + (g 'pdmem (g 'impl st1)) + (g 'pepc (g 'impl st1)) + (g 'pisexception (g 'impl st1)))) + (st3 (simulate_a st2 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st2)) + (g 'pintrp (g 'impl st2)) + (g 'prf (g 'impl st2)) + (g 'pdmem (g 'impl st2)) + (g 'pepc (g 'impl st2)) + (g 'pisexception (g 'impl st2)))) + (st4 (simulate_a st3 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st3)) + (g 'pintrp (g 'impl st3)) + (g 'prf (g 'impl st3)) + (g 'pdmem (g 'impl st3)) + (g 'pepc (g 'impl st3)) + (g 'pisexception (g 'impl st3)))) + (st5 (simulate_a st4 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st4)) + (g 'pintrp (g 'impl st4)) + (g 'prf (g 'impl st4)) + (g 'pdmem (g 'impl st4)) + (g 'pepc (g 'impl st4)) + (g 'pisexception (g 'impl st4)))) + (st6 (simulate_a st5 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st5)) + (g 'pintrp (g 'impl st5)) + (g 'prf (g 'impl st5)) + (g 'pdmem (g 'impl st5)) + (g 'pepc (g 'impl st5)) + (g 'pisexception (g 'impl st5)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st6)) + (g 'fdwrt (g 'impl st6))) + (g 'dewrt (g 'impl st6))) + (g 'emwrt (g 'impl st6))) + (g 'mmwrt (g 'impl st6))) + (g 'mwwrt (g 'impl st6))))) + (st7 (simulate_a st6 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st6)) + (g 'pintrp (g 'impl st6)) + (g 'prf (g 'impl st6)) + (g 'pdmem (g 'impl st6)) + (g 'pepc (g 'impl st6)) + (g 'pisexception (g 'impl st6)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st7)) + (g 'fdwrt (g 'impl st7))) + (g 'dewrt (g 'impl st7))) + (g 'emwrt (g 'impl st7))) + (g 'mmwrt (g 'impl st7))) + (g 'mwwrt (g 'impl st7))))) + (st8 (simulate_a st7 t nil nil nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st7)) + (g 'pintrp (g 'impl st7)) + (g 'prf (g 'impl st7)) + (g 'pdmem (g 'impl st7)) + (g 'pepc (g 'impl st7)) + (g 'pisexception (g 'impl st7)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (st9 (simulate_a st8 nil nil t nil pc0 + alu_exception_handler intrp0 bpstate0 + ffpintrp0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st8)) + (g 'pintrp (g 'impl st8)) + (g 'prf (g 'impl st8)) + (g 'pdmem (g 'impl st8)) + (g 'pepc (g 'impl st8)) + (g 'pisexception (g 'impl st8)))) + (s_pc0 (g 'spc (g 'spec st9))) + (s_rf0 (g 'srf (g 'spec st9))) + (s_dmem0 (g 'sdmem (g 'spec st9))) + (s_epc0 (g 'sepc (g 'spec st9))) + (s_isexception0 + (g 'sisexception (g 'spec st9))) + (st10 (simulate_a st9 nil t nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st9)) + (g 'pintrp (g 'impl st9)) + (g 'prf (g 'impl st9)) + (g 'pdmem (g 'impl st9)) + (g 'pepc (g 'impl st9)) + (g 'pisexception (g 'impl st9)))) + (s_pc1 (g 'spc (g 'spec st10))) + (s_rf1 (g 'srf (g 'spec st10))) + (s_dmem1 (g 'sdmem (g 'spec st10))) + (s_epc1 (g 'sepc (g 'spec st10))) + (s_isexception1 + (g 'sisexception (g 'spec st10))) + (st11 (simulate_a st10 nil nil nil t pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st10)) + (g 'pintrp (g 'impl st10)) + (g 'prf (g 'impl st10)) + (g 'pdmem (g 'impl st10)) + (g 'pepc (g 'impl st10)) + (g 'pisexception (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st11)) + (g 'pintrp (g 'impl st11)) + (g 'prf (g 'impl st11)) + (g 'pdmem (g 'impl st11)) + (g 'pepc (g 'impl st11)) + (g 'pisexception (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st12)) + (g 'pintrp (g 'impl st12)) + (g 'prf (g 'impl st12)) + (g 'pdmem (g 'impl st12)) + (g 'pepc (g 'impl st12)) + (g 'pisexception (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st13)) + (g 'pintrp (g 'impl st13)) + (g 'prf (g 'impl st13)) + (g 'pdmem (g 'impl st13)) + (g 'pepc (g 'impl st13)) + (g 'pisexception (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st14)) + (g 'pintrp (g 'impl st14)) + (g 'prf (g 'impl st14)) + (g 'pdmem (g 'impl st14)) + (g 'pepc (g 'impl st14)) + (g 'pisexception (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st15)) + (g 'pintrp (g 'impl st15)) + (g 'prf (g 'impl st15)) + (g 'pdmem (g 'impl st15)) + (g 'pepc (g 'impl st15)) + (g 'pisexception (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st16)) + (g 'pintrp (g 'impl st16)) + (g 'prf (g 'impl st16)) + (g 'pdmem (g 'impl st16)) + (g 'pepc (g 'impl st16)) + (g 'pisexception (g 'impl st16)))) + (t1 (g 'mwwrt (g 'impl st17))) + (st18 (simulate_a st17 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st17)) + (g 'pintrp (g 'impl st17)) + (g 'prf (g 'impl st17)) + (g 'pdmem (g 'impl st17)) + (g 'pepc (g 'impl st17)) + (g 'pisexception (g 'impl st17)))) + (t2 (g 'mwwrt (g 'impl st18))) + (st19 (simulate_a st18 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st18)) + (g 'pintrp (g 'impl st18)) + (g 'prf (g 'impl st18)) + (g 'pdmem (g 'impl st18)) + (g 'pepc (g 'impl st18)) + (g 'pisexception (g 'impl st18)))) + (t3 (g 'mwwrt (g 'impl st19))) + (st20 (simulate_a st19 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st19)) + (g 'pintrp (g 'impl st19)) + (g 'prf (g 'impl st19)) + (g 'pdmem (g 'impl st19)) + (g 'pepc (g 'impl st19)) + (g 'pisexception (g 'impl st19)))) + (t4 (g 'mwwrt (g 'impl st20))) + (st21 (simulate_a st20 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st20)) + (g 'pintrp (g 'impl st20)) + (g 'prf (g 'impl st20)) + (g 'pdmem (g 'impl st20)) + (g 'pepc (g 'impl st20)) + (g 'pisexception (g 'impl st20)))) + (t5 (g 'mwwrt (g 'impl st21))) + (st22 (simulate_a st21 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st21)) + (g 'pintrp (g 'impl st21)) + (g 'prf (g 'impl st21)) + (g 'pdmem (g 'impl st21)) + (g 'pepc (g 'impl st21)) + (g 'pisexception (g 'impl st21)))) + (t6 (g 'mwwrt (g 'impl st22))) + (rank_w (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 + (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))) + (t + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))))))) + (st23 (simulate_a st22 nil nil nil t pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st22)) + (g 'pintrp (g 'impl st22)) + (g 'prf (g 'impl st22)) + (g 'pdmem (g 'impl st22)) + (g 'pepc (g 'impl st22)) + (g 'pisexception (g 'impl st22)))) + (st24 (simulate_a st23 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st23)) + (g 'pintrp (g 'impl st23)) + (g 'prf (g 'impl st23)) + (g 'pdmem (g 'impl st23)) + (g 'pepc (g 'impl st23)) + (g 'pisexception (g 'impl st23)))) + (st25 (simulate_a st24 t nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st24)) + (g 'pintrp (g 'impl st24)) + (g 'prf (g 'impl st24)) + (g 'pdmem (g 'impl st24)) + (g 'pepc (g 'impl st24)) + (g 'pisexception (g 'impl st24)))) + (st26 (simulate_a st25 t nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st25)) + (g 'pintrp (g 'impl st25)) + (g 'prf (g 'impl st25)) + (g 'pdmem (g 'impl st25)) + (g 'pepc (g 'impl st25)) + (g 'pisexception (g 'impl st25)))) + (st27 (simulate_a st26 t nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st26)) + (g 'pintrp (g 'impl st26)) + (g 'prf (g 'impl st26)) + (g 'pdmem (g 'impl st26)) + (g 'pepc (g 'impl st26)) + (g 'pisexception (g 'impl st26)))) + (st28 (simulate_a st27 t nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st27)) + (g 'pintrp (g 'impl st27)) + (g 'prf (g 'impl st27)) + (g 'pdmem (g 'impl st27)) + (g 'pepc (g 'impl st27)) + (g 'pisexception (g 'impl st27)))) + (st29 (simulate_a st28 t nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st28)) + (g 'pintrp (g 'impl st28)) + (g 'prf (g 'impl st28)) + (g 'pdmem (g 'impl st28)) + (g 'pepc (g 'impl st28)) + (g 'pisexception (g 'impl st28)))) + (st30 (simulate_a st29 t nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st29)) + (g 'pintrp (g 'impl st29)) + (g 'prf (g 'impl st29)) + (g 'pdmem (g 'impl st29)) + (g 'pepc (g 'impl st29)) + (g 'pisexception (g 'impl st29)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30))) + (g 'dewrt (g 'impl st30))) + (g 'emwrt (g 'impl st30))) + (g 'mmwrt (g 'impl st30))) + (g 'mwwrt (g 'impl st30))))) + (st31 (simulate_a st30 t nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st30)) + (g 'pintrp (g 'impl st30)) + (g 'prf (g 'impl st30)) + (g 'pdmem (g 'impl st30)) + (g 'pepc (g 'impl st30)) + (g 'pisexception (g 'impl st30)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31))) + (g 'dewrt (g 'impl st31))) + (g 'emwrt (g 'impl st31))) + (g 'mmwrt (g 'impl st31))) + (g 'mwwrt (g 'impl st31))))) + (st32 (simulate_a st31 t nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st31)) + (g 'pintrp (g 'impl st31)) + (g 'prf (g 'impl st31)) + (g 'pdmem (g 'impl st31)) + (g 'pepc (g 'impl st31)) + (g 'pisexception (g 'impl st31)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (i_pc (g 'ppc (g 'impl st32))) + (i_rf (g 'prf (g 'impl st32))) + (i_dmem (g 'pdmem (g 'impl st32))) + (i_epc (g 'pepc (g 'impl st32))) + (i_isexception + (g 'pisexception (g 'impl st32))) + (st33 (simulate_a st32 nil nil nil t pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st32)) + (g 'pintrp (g 'impl st32)) + (g 'prf (g 'impl st32)) + (g 'pdmem (g 'impl st32)) + (g 'pepc (g 'impl st32)) + (g 'pisexception (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st33)) + (g 'pintrp (g 'impl st33)) + (g 'prf (g 'impl st33)) + (g 'pdmem (g 'impl st33)) + (g 'pepc (g 'impl st33)) + (g 'pisexception (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st34)) + (g 'pintrp (g 'impl st34)) + (g 'prf (g 'impl st34)) + (g 'pdmem (g 'impl st34)) + (g 'pepc (g 'impl st34)) + (g 'pisexception (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st35)) + (g 'pintrp (g 'impl st35)) + (g 'prf (g 'impl st35)) + (g 'pdmem (g 'impl st35)) + (g 'pepc (g 'impl st35)) + (g 'pisexception (g 'impl st35)))) + (st37 (simulate_a st36 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st36)) + (g 'pintrp (g 'impl st36)) + (g 'prf (g 'impl st36)) + (g 'pdmem (g 'impl st36)) + (g 'pepc (g 'impl st36)) + (g 'pisexception (g 'impl st36)))) + (st38 (simulate_a st37 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st37)) + (g 'pintrp (g 'impl st37)) + (g 'prf (g 'impl st37)) + (g 'pdmem (g 'impl st37)) + (g 'pepc (g 'impl st37)) + (g 'pisexception (g 'impl st37)))) + (st39 (simulate_a st38 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st38)) + (g 'pintrp (g 'impl st38)) + (g 'prf (g 'impl st38)) + (g 'pdmem (g 'impl st38)) + (g 'pepc (g 'impl st38)) + (g 'pisexception (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st39)) + (g 'pintrp (g 'impl st39)) + (g 'prf (g 'impl st39)) + (g 'pdmem (g 'impl st39)) + (g 'pepc (g 'impl st39)) + (g 'pisexception (g 'impl st39)))) + (t1 (g 'mwwrt (g 'impl st40))) + (st41 (simulate_a st40 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st40)) + (g 'pintrp (g 'impl st40)) + (g 'prf (g 'impl st40)) + (g 'pdmem (g 'impl st40)) + (g 'pepc (g 'impl st40)) + (g 'pisexception (g 'impl st40)))) + (t2 (g 'mwwrt (g 'impl st41))) + (st42 (simulate_a st41 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st41)) + (g 'pintrp (g 'impl st41)) + (g 'prf (g 'impl st41)) + (g 'pdmem (g 'impl st41)) + (g 'pepc (g 'impl st41)) + (g 'pisexception (g 'impl st41)))) + (t3 (g 'mwwrt (g 'impl st42))) + (st43 (simulate_a st42 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st42)) + (g 'pintrp (g 'impl st42)) + (g 'prf (g 'impl st42)) + (g 'pdmem (g 'impl st42)) + (g 'pepc (g 'impl st42)) + (g 'pisexception (g 'impl st42)))) + (t4 (g 'mwwrt (g 'impl st43))) + (st44 (simulate_a st43 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st43)) + (g 'pintrp (g 'impl st43)) + (g 'prf (g 'impl st43)) + (g 'pdmem (g 'impl st43)) + (g 'pepc (g 'impl st43)) + (g 'pisexception (g 'impl st43)))) + (t5 (g 'mwwrt (g 'impl st44))) + (st45 (simulate_a st44 nil nil nil nil pc0 + alu_exception_handler intrp0 + bpstate0 ffpintrp0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdpintrp0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 + fdpredictedtarget0 depintrp0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 depredicteddirection0 + depredictedtarget0 empintrp0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmpintrp0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwpintrp0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st44)) + (g 'pintrp (g 'impl st44)) + (g 'prf (g 'impl st44)) + (g 'pdmem (g 'impl st44)) + (g 'pepc (g 'impl st44)) + (g 'pisexception (g 'impl st44)))) + (t6 (g 'mwwrt (g 'impl st45))) + (rank_v (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 + (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))) + (t + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))))))) + (or (and (and (and (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_epc1 i_epc)) + (equalb s_isexception1 i_isexception)) + (equal s_dmem1 i_dmem)) + (and (and (and (and + (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_epc0 i_epc)) + (equalb s_isexception0 + i_isexception)) + (equal s_dmem0 i_dmem)) + (< rank_v rank_w))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-safety.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-safety.lisp new file mode 100644 index 0000000..0cc2a25 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-safety.lisp @@ -0,0 +1,2716 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + (encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + (encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + (encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + (encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + (encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + (encapsulate ((alu_exception (x3 x2 x1) t)) + (local (defun alu_exception (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm alu_exception-type (booleanp (alu_exception x3 x2 x1)))) + (encapsulate ((getreturnfromexception (x1) t)) + (local (defun getreturnfromexception (x1) + (declare (ignore x1)) + nil)) + (defthm getreturnfromexception-type + (booleanp (getreturnfromexception x1)))) + (encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + (encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + (encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + (defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + (defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((and (and (and (and (g 2 (car prf)) + (equal a (g 3 (car prf)))) + (g 4 (car prf))) + (g 5 (car prf))) + (g 6 (car prf))) + (g 7 (car prf))) + (t (read-prf_a a (cdr prf))))))) + (defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) + (cond + ((g 1 (car simem)) (imem0 a)) + (t (read-simem_a a (cdr simem))))))) + (defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (g 8 (car srf))) + (g 9 (car srf))) + (t (read-srf_a a (cdr srf))))))) + (defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + (defun impl-state_a + (pimem ppc bpstate ffpredicteddirection ffpredictedtarget ffwrt + ffinst ffppc prf fdppc fdwrt fdinst fdpredicteddirection + fdpredictedtarget deppc desrc1 desrc2 dearg1 dearg2 + dedest deop deimm deuseimm deisreturnfromexception + deregwrite dememwrite dememtoreg deisbranch dewrt + depredicteddirection depredictedtarget emppc + emis_alu_exception emis_taken_branch emtargetpc emarg2 + emresult emdest emwrt emisreturnfromexception + emmispredictedtaken emmispredictednottaken emregwrite + emmemwrite emmemtoreg pdmemhist_2 pdmemhist_1 pdmem pepc + pisexception mmisreturnfromexception mmis_alu_exception + mmppc mmval mmdest mmwrt mmregwrite + mwisreturnfromexception mwis_alu_exception mwppc mwval + mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'bpstate bpstate + 'ffpredicteddirection ffpredicteddirection 'ffpredictedtarget + ffpredictedtarget 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf + prf 'fdppc fdppc 'fdwrt fdwrt 'fdinst fdinst + 'fdpredicteddirection fdpredicteddirection 'fdpredictedtarget + fdpredictedtarget 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 + 'dearg1 dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm + deimm 'deuseimm deuseimm 'deisreturnfromexception + deisreturnfromexception 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt + dewrt 'depredicteddirection depredicteddirection + 'depredictedtarget depredictedtarget 'emppc emppc + 'emis_alu_exception emis_alu_exception 'emis_taken_branch + emis_taken_branch 'emtargetpc emtargetpc 'emarg2 emarg2 + 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emisreturnfromexception emisreturnfromexception + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'pepc pepc 'pisexception pisexception 'mmisreturnfromexception + mmisreturnfromexception 'mmis_alu_exception mmis_alu_exception + 'mmppc mmppc 'mmval mmval 'mmdest mmdest 'mmwrt mmwrt + 'mmregwrite mmregwrite 'mwisreturnfromexception + mwisreturnfromexception 'mwis_alu_exception mwis_alu_exception + 'mwppc mwppc 'mwval mwval 'mwdest mwdest 'mwwrt mwwrt + 'mwregwrite mwregwrite)) + (defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + (defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + (defun initppc_a (pc0) pc0) + (defun nextppc_a + (initi pc0 mem1_is_returnfromexception pepc + mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken emppc mem1_mispredicted_nottaken + emtargetpc stall flush ppc if_predict_branch_taken + predicted_target) + (cond + (initi pc0) + (mem1_is_returnfromexception pepc) + (mem1_is_alu_exception alu_exception_handler) + (mem1_mispredicted_taken emppc) + (mem1_mispredicted_nottaken emtargetpc) + ((or stall flush) ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + (defun initbpstate_a (bpstate0) bpstate0) + (defun nextbpstate_a (initi bpstate0 stall bpstate) + (cond (initi bpstate0) (stall bpstate) (t (nextbpstate bpstate)))) + (defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + (defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + (defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + (defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + (defun initffwrt_a (ffwrt0) ffwrt0) + (defun nextffwrt_a (initi ffwrt0 squash stall ffwrt flush) + (cond (initi ffwrt0) (squash nil) (stall ffwrt) (flush nil) (t t))) + (defun initffinst_a (ffinst0) ffinst0) + (defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + (defun initffppc_a (ffppc0) ffppc0) + (defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + (defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + (defun nextprf_a + (prf initi mwwrt mwdest mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (cons (s 0 nil + (s 1 initi + (s 2 mwwrt + (s 3 mwdest + (s 4 mwregwrite + (s 5 wb_is_alu_exception_bar + (s 6 wb_is_returnfromexception_bar + (s 7 mwval nil)))))))) + prf)) + (defun initfdppc_a (fdppc0) fdppc0) + (defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + (defun initfdwrt_a (fdwrt0) fdwrt0) + (defun nextfdwrt_a (initi fdwrt0 squash stall fdwrt ffwrt) + (cond (initi fdwrt0) (squash nil) (stall fdwrt) (t ffwrt))) + (defun initfdinst_a (fdinst0) fdinst0) + (defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + (defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + (defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + (defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + (defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + (defun initdeppc_a (deppc0) deppc0) + (defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + (defun initdesrc1_a (desrc10) desrc10) + (defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + (defun initdesrc2_a (desrc20) desrc20) + (defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + (defun initdearg1_a (a1) a1) + (defun nextdearg1_a + (initi a1 if_id_src1 prf mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval))))) + (defun initdearg2_a (a2) a2) + (defun nextdearg2_a + (initi a2 if_id_src2 prf mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval))))) + (defun initdedest_a (dedest0) dedest0) + (defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + (defun initdeop_a (deop0) deop0) + (defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + (defun initdeimm_a (deimm0) deimm0) + (defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + (defun initdeuseimm_a (deuseimm0) deuseimm0) + (defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + (defun initdeisreturnfromexception_a (deisreturnfromexception0) + deisreturnfromexception0) + (defun nextdeisreturnfromexception_a + (initi deisreturnfromexception0 fdinst) + (cond + (initi deisreturnfromexception0) + (t (getreturnfromexception fdinst)))) + (defun initderegwrite_a (deregwrite0) deregwrite0) + (defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + (defun initdememwrite_a (dememwrite0) dememwrite0) + (defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + (defun initdememtoreg_a (dememtoreg0) dememtoreg0) + (defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + (defun initdeisbranch_a (deisbranch0) deisbranch0) + (defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + (defun initdewrt_a (dewrt0) dewrt0) + (defun nextdewrt_a (initi dewrt0 squash stall fdwrt) + (cond (initi dewrt0) (squash nil) (t (and (not stall) fdwrt)))) + (defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + (defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + (defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + (defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + (defun initemppc_a (emppc0) emppc0) + (defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + (defun initemis_alu_exception_a (emis_alu_exception0) + emis_alu_exception0) + (defun nextemis_alu_exception_a + (initi emis_alu_exception0 ex_is_alu_exception) + (cond (initi emis_alu_exception0) (t ex_is_alu_exception))) + (defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + (defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + (defun initemtargetpc_a (emtargetpc0) emtargetpc0) + (defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + (defun initemarg2_a (emarg20) emarg20) + (defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + (defun initemresult_a (emresult0) emresult0) + (defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + (defun initemdest_a (emdest0) emdest0) + (defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + (defun initemwrt_a (emwrt0) emwrt0) + (defun nextemwrt_a (initi emwrt0 squash dewrt) + (cond (initi emwrt0) (squash nil) (t dewrt))) + (defun initemisreturnfromexception_a (emisreturnfromexception0) + emisreturnfromexception0) + (defun nextemisreturnfromexception_a + (initi emisreturnfromexception0 deisreturnfromexception) + (cond (initi emisreturnfromexception0) (t deisreturnfromexception))) + (defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + (defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + (defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + (defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + (defun initemregwrite_a (emregwrite0) emregwrite0) + (defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + (defun initemmemwrite_a (emmemwrite0) emmemwrite0) + (defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + (defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + (defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + (defun initpdmemhist_2_a (dmem0) dmem0) + (defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + (defun initpdmemhist_1_a (dmem0) dmem0) + (defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + (defun initpdmem_a (dmem0) dmem0) + (defun nextpdmem_a + (initi dmem0 emwrt emmemwrite mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar pdmem emresult emarg2) + (cond + (initi dmem0) + ((and (and (and emwrt emmemwrite) mem1_is_alu_exception_bar) + mem1_is_returnfromexception_bar) + (nextdmem pdmem emresult emarg2)) + (t pdmem))) + (defun initpepc_a (epc0) epc0) + (defun nextpepc_a + (initi epc0 mem1_is_alu_exception + mem1_is_returnfromexception_bar emppc pepc) + (cond + (initi epc0) + ((and mem1_is_alu_exception mem1_is_returnfromexception_bar) + emppc) + (t pepc))) + (defun initpisexception_a (isexception0) isexception0) + (defun nextpisexception_a + (initi isexception0 mem1_is_alu_exception + mem1_is_returnfromexception + mem1_is_returnfromexception_bar pisexception) + (cond + (initi isexception0) + ((or mem1_is_alu_exception mem1_is_returnfromexception) + (and mem1_is_alu_exception mem1_is_returnfromexception_bar)) + (t pisexception))) + (defun initmmisreturnfromexception_a (mmisreturnfromexception0) + mmisreturnfromexception0) + (defun nextmmisreturnfromexception_a + (initi mmisreturnfromexception0 emisreturnfromexception) + (cond (initi mmisreturnfromexception0) (t emisreturnfromexception))) + (defun initmmis_alu_exception_a (mmis_alu_exception0) + mmis_alu_exception0) + (defun nextmmis_alu_exception_a + (initi mmis_alu_exception0 emis_alu_exception) + (cond (initi mmis_alu_exception0) (t emis_alu_exception))) + (defun initmmppc_a (mmppc0) mmppc0) + (defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + (defun initmmval_a (mmval0) mmval0) + (defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + (defun initmmdest_a (mmdest0) mmdest0) + (defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + (defun initmmwrt_a (mmwrt0) mmwrt0) + (defun nextmmwrt_a (initi mmwrt0 emwrt) + (cond (initi mmwrt0) (t emwrt))) + (defun initmmregwrite_a (mmregwrite0) mmregwrite0) + (defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + (defun initmwisreturnfromexception_a (mwisreturnfromexception0) + mwisreturnfromexception0) + (defun nextmwisreturnfromexception_a + (initi mwisreturnfromexception0 mmisreturnfromexception) + (cond (initi mwisreturnfromexception0) (t mmisreturnfromexception))) + (defun initmwis_alu_exception_a (mwis_alu_exception0) + mwis_alu_exception0) + (defun nextmwis_alu_exception_a + (initi mwis_alu_exception0 mmis_alu_exception) + (cond (initi mwis_alu_exception0) (t mmis_alu_exception))) + (defun initmwppc_a (mwppc0) mwppc0) + (defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + (defun initmwval_a (mwval0) mwval0) + (defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + (defun initmwdest_a (mwdest0) mwdest0) + (defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + (defun initmwwrt_a (mwwrt0) mwwrt0) + (defun nextmwwrt_a (initi mwwrt0 mmwrt) + (cond (initi mwwrt0) (t mmwrt))) + (defun initmwregwrite_a (mwregwrite0) mwregwrite0) + (defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + (defun impl-simulate_a + (impl initi pc0 alu_exception_handler flush bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepc (g 'pepc impl)) (pisexception (g 'pisexception impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash (or (or mem1_mispredicted mem1_is_alu_exception) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 mem1_is_returnfromexception pepc + mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken emppc mem1_mispredicted_nottaken + emtargetpc stall flush ppc if_predict_branch_taken + predicted_target) + (nextbpstate_a initi bpstate0 stall bpstate) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi ffwrt0 squash stall ffwrt flush) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi fdwrt0 squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf mwwrt mwdest + mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (nextdearg2_a initi a2 if_id_src2 prf mwwrt mwdest + mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextdeisreturnfromexception_a initi + deisreturnfromexception0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi dewrt0 squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextemppc_a initi emppc0 deppc) + (nextemis_alu_exception_a initi emis_alu_exception0 + ex_is_alu_exception) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi emwrt0 squash dewrt) + (nextemisreturnfromexception_a initi + emisreturnfromexception0 deisreturnfromexception) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 emwrt emmemwrite + mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar pdmem emresult emarg2) + (nextpepc_a initi epc0 mem1_is_alu_exception + mem1_is_returnfromexception_bar emppc pepc) + (nextpisexception_a initi isexception0 mem1_is_alu_exception + mem1_is_returnfromexception + mem1_is_returnfromexception_bar pisexception) + (nextmmisreturnfromexception_a initi + mmisreturnfromexception0 emisreturnfromexception) + (nextmmis_alu_exception_a initi mmis_alu_exception0 + emis_alu_exception) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi mmwrt0 emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwisreturnfromexception_a initi + mwisreturnfromexception0 mmisreturnfromexception) + (nextmwis_alu_exception_a initi mwis_alu_exception0 + mmis_alu_exception) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi mwwrt0 mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + (defun impl-initialize_a + (impl pc0 bpstate0 ffpredicteddirection0 ffpredictedtarget0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepc (g 'pepc impl)) (pisexception (g 'pisexception impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash (or (or mem1_mispredicted mem1_is_alu_exception) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initbpstate_a bpstate0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) + (initffwrt_a ffwrt0) (initffinst_a ffinst0) + (initffppc_a ffppc0) (initprf_a prf) (initfdppc_a fdppc0) + (initfdwrt_a fdwrt0) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initdeisreturnfromexception_a deisreturnfromexception0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a dewrt0) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initemppc_a emppc0) + (initemis_alu_exception_a emis_alu_exception0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a emwrt0) + (initemisreturnfromexception_a emisreturnfromexception0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initpepc_a epc0) (initpisexception_a isexception0) + (initmmisreturnfromexception_a mmisreturnfromexception0) + (initmmis_alu_exception_a mmis_alu_exception0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a mmwrt0) + (initmmregwrite_a mmregwrite0) + (initmwisreturnfromexception_a mwisreturnfromexception0) + (initmwis_alu_exception_a mwis_alu_exception0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a mwwrt0) + (initmwregwrite_a mwregwrite0))))) + (defun spec-state_a (simem spc srf sdmem sepc sisexception) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem 'sepc sepc + 'sisexception sisexception)) + (defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + (defun nextsimem_a (simem initi) + (cons (s 0 nil (s 1 initi nil)) simem)) + (defun initspc_a (pc0) pc0) + (defun nextspc_a + (initi pc0 project_impl impl.ppc isa is_returnfromexception + sepc is_alu_exception alu_exception_handler + is_taken_branch targetpc spc) + (cond + (initi pc0) + (project_impl impl.ppc) + ((and isa is_returnfromexception) sepc) + ((and isa is_alu_exception) alu_exception_handler) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + (defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + (defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_returnfromexception_bar val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa + (s 5 inst + (s 6 regwrite + (s 7 is_alu_exception_bar + (s 8 is_returnfromexception_bar + (s 9 val nil)))))))))) + srf)) + (defun initsdmem_a (dmem0) dmem0) + (defun nextsdmem_a + (initi dmem0 project_impl impl.pdmem isa memwrite + is_alu_exception_bar is_returnfromexception_bar sdmem + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmem) + ((and (and (and isa memwrite) is_alu_exception_bar) + is_returnfromexception_bar) + (nextdmem sdmem result arg2_temp)) + (t sdmem))) + (defun initsepc_a (epc0) epc0) + (defun nextsepc_a + (initi epc0 project_impl impl.pepc isa is_alu_exception + is_returnfromexception_bar spc sepc) + (cond + (initi epc0) + (project_impl impl.pepc) + ((and (and isa is_alu_exception) is_returnfromexception_bar) spc) + (t sepc))) + (defun initsisexception_a (isexception0) isexception0) + (defun nextsisexception_a + (initi isexception0 project_impl impl.pisexception isa + is_alu_exception is_returnfromexception + is_returnfromexception_bar sisexception) + (cond + (initi isexception0) + (project_impl impl.pisexception) + ((and isa (or is_alu_exception is_returnfromexception)) + (and is_alu_exception is_returnfromexception_bar)) + (t sisexception))) + (defun spec-simulate_a + (spec initi pc0 project_impl impl.ppc isa alu_exception_handler + impl.prf dmem0 impl.pdmem epc0 impl.pepc isexception0 + impl.pisexception) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec)) + (sepc (g 'sepc spec)) (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem initi) + (nextspc_a initi pc0 project_impl impl.ppc isa + is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_returnfromexception_bar val) + (nextsdmem_a initi dmem0 project_impl impl.pdmem isa + memwrite is_alu_exception_bar is_returnfromexception_bar + sdmem result arg2_temp) + (nextsepc_a initi epc0 project_impl impl.pepc isa + is_alu_exception is_returnfromexception_bar spc sepc) + (nextsisexception_a initi isexception0 project_impl + impl.pisexception isa is_alu_exception + is_returnfromexception is_returnfromexception_bar + sisexception))))) + (defun spec-initialize_a (spec pc0 dmem0 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec)) + (sepc (g 'sepc spec)) (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0) (initsepc_a epc0) + (initsisexception_a isexception0))))) + (defun simulate_a + (st flush isa project_impl initi pc0 alu_exception_handler + bpstate0 ffpredicteddirection0 ffpredictedtarget0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 impl.ppc impl.prf impl.pdmem impl.pepc + impl.pisexception) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 alu_exception_handler + flush bpstate0 ffpredicteddirection0 ffpredictedtarget0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl impl.ppc + isa alu_exception_handler impl.prf dmem0 impl.pdmem epc0 + impl.pepc isexception0 impl.pisexception))) + (defun initialize_a + (st flush isa project_impl initi pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0 epc0 isexception0))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp epc0) + (booleanp isexception0) (integerp bpstate0) + (integerp alu_exception_handler) (integerp a) + (integerp zero) (booleanp ffwrt0) + (booleanp fdwrt0) (booleanp dewrt0) + (booleanp emwrt0) (booleanp mmwrt0) + (booleanp mwwrt0) (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20) + (booleanp emis_alu_exception0) + (booleanp mmis_alu_exception0) + (booleanp mwis_alu_exception0) + (booleanp deisreturnfromexception0) + (booleanp emisreturnfromexception0) + (booleanp mmisreturnfromexception0) + (booleanp mwisreturnfromexception0)) + (let* ((st0 (initialize_a nil nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0)) + (st1 (simulate_a st0 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st0)) + (g 'prf (g 'impl st0)) + (g 'pdmem (g 'impl st0)) + (g 'pepc (g 'impl st0)) + (g 'pisexception (g 'impl st0)))) + (st2 (simulate_a st1 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st1)) + (g 'prf (g 'impl st1)) + (g 'pdmem (g 'impl st1)) + (g 'pepc (g 'impl st1)) + (g 'pisexception (g 'impl st1)))) + (st3 (simulate_a st2 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st2)) + (g 'prf (g 'impl st2)) + (g 'pdmem (g 'impl st2)) + (g 'pepc (g 'impl st2)) + (g 'pisexception (g 'impl st2)))) + (st4 (simulate_a st3 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st3)) + (g 'prf (g 'impl st3)) + (g 'pdmem (g 'impl st3)) + (g 'pepc (g 'impl st3)) + (g 'pisexception (g 'impl st3)))) + (st5 (simulate_a st4 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st4)) + (g 'prf (g 'impl st4)) + (g 'pdmem (g 'impl st4)) + (g 'pepc (g 'impl st4)) + (g 'pisexception (g 'impl st4)))) + (st6 (simulate_a st5 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st5)) + (g 'prf (g 'impl st5)) + (g 'pdmem (g 'impl st5)) + (g 'pepc (g 'impl st5)) + (g 'pisexception (g 'impl st5)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st6)) + (g 'fdwrt (g 'impl st6))) + (g 'dewrt (g 'impl st6))) + (g 'emwrt (g 'impl st6))) + (g 'mmwrt (g 'impl st6))) + (g 'mwwrt (g 'impl st6))))) + (st7 (simulate_a st6 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st6)) + (g 'prf (g 'impl st6)) + (g 'pdmem (g 'impl st6)) + (g 'pepc (g 'impl st6)) + (g 'pisexception (g 'impl st6)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st7)) + (g 'fdwrt (g 'impl st7))) + (g 'dewrt (g 'impl st7))) + (g 'emwrt (g 'impl st7))) + (g 'mmwrt (g 'impl st7))) + (g 'mwwrt (g 'impl st7))))) + (st8 (simulate_a st7 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st7)) + (g 'prf (g 'impl st7)) + (g 'pdmem (g 'impl st7)) + (g 'pepc (g 'impl st7)) + (g 'pisexception (g 'impl st7)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (st9 (simulate_a st8 nil nil t nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st8)) + (g 'prf (g 'impl st8)) + (g 'pdmem (g 'impl st8)) + (g 'pepc (g 'impl st8)) + (g 'pisexception (g 'impl st8)))) + (s_pc0 (g 'spc (g 'spec st9))) + (s_rf0 (g 'srf (g 'spec st9))) + (s_dmem0 (g 'sdmem (g 'spec st9))) + (s_epc0 (g 'sepc (g 'spec st9))) + (s_isexception0 + (g 'sisexception (g 'spec st9))) + (st10 (simulate_a st9 nil t nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st9)) + (g 'prf (g 'impl st9)) + (g 'pdmem (g 'impl st9)) + (g 'pepc (g 'impl st9)) + (g 'pisexception (g 'impl st9)))) + (s_pc1 (g 'spc (g 'spec st10))) + (s_rf1 (g 'srf (g 'spec st10))) + (s_dmem1 (g 'sdmem (g 'spec st10))) + (s_epc1 (g 'sepc (g 'spec st10))) + (s_isexception1 + (g 'sisexception (g 'spec st10))) + (st11 (simulate_a st10 nil nil nil t pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st10)) + (g 'prf (g 'impl st10)) + (g 'pdmem (g 'impl st10)) + (g 'pepc (g 'impl st10)) + (g 'pisexception (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st11)) + (g 'prf (g 'impl st11)) + (g 'pdmem (g 'impl st11)) + (g 'pepc (g 'impl st11)) + (g 'pisexception (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st12)) + (g 'prf (g 'impl st12)) + (g 'pdmem (g 'impl st12)) + (g 'pepc (g 'impl st12)) + (g 'pisexception (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st13)) + (g 'prf (g 'impl st13)) + (g 'pdmem (g 'impl st13)) + (g 'pepc (g 'impl st13)) + (g 'pisexception (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st14)) + (g 'prf (g 'impl st14)) + (g 'pdmem (g 'impl st14)) + (g 'pepc (g 'impl st14)) + (g 'pisexception (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st15)) + (g 'prf (g 'impl st15)) + (g 'pdmem (g 'impl st15)) + (g 'pepc (g 'impl st15)) + (g 'pisexception (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st16)) + (g 'prf (g 'impl st16)) + (g 'pdmem (g 'impl st16)) + (g 'pepc (g 'impl st16)) + (g 'pisexception (g 'impl st16)))) + (t1 (g 'mwwrt (g 'impl st17))) + (st18 (simulate_a st17 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st17)) + (g 'prf (g 'impl st17)) + (g 'pdmem (g 'impl st17)) + (g 'pepc (g 'impl st17)) + (g 'pisexception (g 'impl st17)))) + (t2 (g 'mwwrt (g 'impl st18))) + (st19 (simulate_a st18 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st18)) + (g 'prf (g 'impl st18)) + (g 'pdmem (g 'impl st18)) + (g 'pepc (g 'impl st18)) + (g 'pisexception (g 'impl st18)))) + (t3 (g 'mwwrt (g 'impl st19))) + (st20 (simulate_a st19 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st19)) + (g 'prf (g 'impl st19)) + (g 'pdmem (g 'impl st19)) + (g 'pepc (g 'impl st19)) + (g 'pisexception (g 'impl st19)))) + (t4 (g 'mwwrt (g 'impl st20))) + (st21 (simulate_a st20 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st20)) + (g 'prf (g 'impl st20)) + (g 'pdmem (g 'impl st20)) + (g 'pepc (g 'impl st20)) + (g 'pisexception (g 'impl st20)))) + (t5 (g 'mwwrt (g 'impl st21))) + (st22 (simulate_a st21 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st21)) + (g 'prf (g 'impl st21)) + (g 'pdmem (g 'impl st21)) + (g 'pepc (g 'impl st21)) + (g 'pisexception (g 'impl st21)))) + (t6 (g 'mwwrt (g 'impl st22))) + (rank_w (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))) + (t (add-1 + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter)))))))))) + (st23 (simulate_a st22 nil nil nil t pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st22)) + (g 'prf (g 'impl st22)) + (g 'pdmem (g 'impl st22)) + (g 'pepc (g 'impl st22)) + (g 'pisexception (g 'impl st22)))) + (st24 (simulate_a st23 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st23)) + (g 'prf (g 'impl st23)) + (g 'pdmem (g 'impl st23)) + (g 'pepc (g 'impl st23)) + (g 'pisexception (g 'impl st23)))) + (st25 (simulate_a st24 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st24)) + (g 'prf (g 'impl st24)) + (g 'pdmem (g 'impl st24)) + (g 'pepc (g 'impl st24)) + (g 'pisexception (g 'impl st24)))) + (st26 (simulate_a st25 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st25)) + (g 'prf (g 'impl st25)) + (g 'pdmem (g 'impl st25)) + (g 'pepc (g 'impl st25)) + (g 'pisexception (g 'impl st25)))) + (st27 (simulate_a st26 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st26)) + (g 'prf (g 'impl st26)) + (g 'pdmem (g 'impl st26)) + (g 'pepc (g 'impl st26)) + (g 'pisexception (g 'impl st26)))) + (st28 (simulate_a st27 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st27)) + (g 'prf (g 'impl st27)) + (g 'pdmem (g 'impl st27)) + (g 'pepc (g 'impl st27)) + (g 'pisexception (g 'impl st27)))) + (st29 (simulate_a st28 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st28)) + (g 'prf (g 'impl st28)) + (g 'pdmem (g 'impl st28)) + (g 'pepc (g 'impl st28)) + (g 'pisexception (g 'impl st28)))) + (st30 (simulate_a st29 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st29)) + (g 'prf (g 'impl st29)) + (g 'pdmem (g 'impl st29)) + (g 'pepc (g 'impl st29)) + (g 'pisexception (g 'impl st29)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30))) + (g 'dewrt (g 'impl st30))) + (g 'emwrt (g 'impl st30))) + (g 'mmwrt (g 'impl st30))) + (g 'mwwrt (g 'impl st30))))) + (st31 (simulate_a st30 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st30)) + (g 'prf (g 'impl st30)) + (g 'pdmem (g 'impl st30)) + (g 'pepc (g 'impl st30)) + (g 'pisexception (g 'impl st30)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31))) + (g 'dewrt (g 'impl st31))) + (g 'emwrt (g 'impl st31))) + (g 'mmwrt (g 'impl st31))) + (g 'mwwrt (g 'impl st31))))) + (st32 (simulate_a st31 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st31)) + (g 'prf (g 'impl st31)) + (g 'pdmem (g 'impl st31)) + (g 'pepc (g 'impl st31)) + (g 'pisexception (g 'impl st31)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (i_pc (g 'ppc (g 'impl st32))) + (i_rf (g 'prf (g 'impl st32))) + (i_dmem (g 'pdmem (g 'impl st32))) + (i_epc (g 'pepc (g 'impl st32))) + (i_isexception + (g 'pisexception (g 'impl st32))) + (st33 (simulate_a st32 nil nil nil t pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st32)) + (g 'prf (g 'impl st32)) + (g 'pdmem (g 'impl st32)) + (g 'pepc (g 'impl st32)) + (g 'pisexception (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st33)) + (g 'prf (g 'impl st33)) + (g 'pdmem (g 'impl st33)) + (g 'pepc (g 'impl st33)) + (g 'pisexception (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st34)) + (g 'prf (g 'impl st34)) + (g 'pdmem (g 'impl st34)) + (g 'pepc (g 'impl st34)) + (g 'pisexception (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st35)) + (g 'prf (g 'impl st35)) + (g 'pdmem (g 'impl st35)) + (g 'pepc (g 'impl st35)) + (g 'pisexception (g 'impl st35)))) + (st37 (simulate_a st36 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st36)) + (g 'prf (g 'impl st36)) + (g 'pdmem (g 'impl st36)) + (g 'pepc (g 'impl st36)) + (g 'pisexception (g 'impl st36)))) + (st38 (simulate_a st37 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st37)) + (g 'prf (g 'impl st37)) + (g 'pdmem (g 'impl st37)) + (g 'pepc (g 'impl st37)) + (g 'pisexception (g 'impl st37)))) + (st39 (simulate_a st38 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st38)) + (g 'prf (g 'impl st38)) + (g 'pdmem (g 'impl st38)) + (g 'pepc (g 'impl st38)) + (g 'pisexception (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st39)) + (g 'prf (g 'impl st39)) + (g 'pdmem (g 'impl st39)) + (g 'pepc (g 'impl st39)) + (g 'pisexception (g 'impl st39)))) + (t1 (g 'mwwrt (g 'impl st40))) + (st41 (simulate_a st40 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st40)) + (g 'prf (g 'impl st40)) + (g 'pdmem (g 'impl st40)) + (g 'pepc (g 'impl st40)) + (g 'pisexception (g 'impl st40)))) + (t2 (g 'mwwrt (g 'impl st41))) + (st42 (simulate_a st41 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st41)) + (g 'prf (g 'impl st41)) + (g 'pdmem (g 'impl st41)) + (g 'pepc (g 'impl st41)) + (g 'pisexception (g 'impl st41)))) + (t3 (g 'mwwrt (g 'impl st42))) + (st43 (simulate_a st42 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st42)) + (g 'prf (g 'impl st42)) + (g 'pdmem (g 'impl st42)) + (g 'pepc (g 'impl st42)) + (g 'pisexception (g 'impl st42)))) + (t4 (g 'mwwrt (g 'impl st43))) + (st44 (simulate_a st43 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st43)) + (g 'prf (g 'impl st43)) + (g 'pdmem (g 'impl st43)) + (g 'pepc (g 'impl st43)) + (g 'pisexception (g 'impl st43)))) + (t5 (g 'mwwrt (g 'impl st44))) + (st45 (simulate_a st44 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st44)) + (g 'prf (g 'impl st44)) + (g 'pdmem (g 'impl st44)) + (g 'pepc (g 'impl st44)) + (g 'pisexception (g 'impl st44)))) + (t6 (g 'mwwrt (g 'impl st45))) + (rank_v (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))) + (t (add-1 + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))))))) + (or (and (and (and (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_epc1 i_epc)) + (equalb s_isexception1 i_isexception)) + (equal s_dmem1 i_dmem)) + (and (and (and (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_epc0 i_epc)) + (equalb s_isexception0 i_isexception)) + (equal s_dmem0 i_dmem))))) + :rule-classes nil) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex.lisp new file mode 100644 index 0000000..9b44957 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex.lisp @@ -0,0 +1,2771 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + (encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + (encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + (encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + (encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + (encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + (encapsulate ((alu_exception (x3 x2 x1) t)) + (local (defun alu_exception (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm alu_exception-type (booleanp (alu_exception x3 x2 x1)))) + (encapsulate ((getreturnfromexception (x1) t)) + (local (defun getreturnfromexception (x1) + (declare (ignore x1)) + nil)) + (defthm getreturnfromexception-type + (booleanp (getreturnfromexception x1)))) + (encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + (encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + (encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + (defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + (defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((and (and (and (and (g 2 (car prf)) + (equal a (g 3 (car prf)))) + (g 4 (car prf))) + (g 5 (car prf))) + (g 6 (car prf))) + (g 7 (car prf))) + (t (read-prf_a a (cdr prf))))))) + (defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) + (cond + ((g 1 (car simem)) (imem0 a)) + (t (read-simem_a a (cdr simem))))))) + (defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (g 8 (car srf))) + (g 9 (car srf))) + (t (read-srf_a a (cdr srf))))))) + (defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + (defun impl-state_a + (pimem ppc bpstate ffpredicteddirection ffpredictedtarget ffwrt + ffinst ffppc prf fdppc fdwrt fdinst fdpredicteddirection + fdpredictedtarget deppc desrc1 desrc2 dearg1 dearg2 + dedest deop deimm deuseimm deisreturnfromexception + deregwrite dememwrite dememtoreg deisbranch dewrt + depredicteddirection depredictedtarget emppc + emis_alu_exception emis_taken_branch emtargetpc emarg2 + emresult emdest emwrt emisreturnfromexception + emmispredictedtaken emmispredictednottaken emregwrite + emmemwrite emmemtoreg pdmemhist_2 pdmemhist_1 pdmem pepc + pisexception mmisreturnfromexception mmis_alu_exception + mmppc mmval mmdest mmwrt mmregwrite + mwisreturnfromexception mwis_alu_exception mwppc mwval + mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'bpstate bpstate + 'ffpredicteddirection ffpredicteddirection 'ffpredictedtarget + ffpredictedtarget 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf + prf 'fdppc fdppc 'fdwrt fdwrt 'fdinst fdinst + 'fdpredicteddirection fdpredicteddirection 'fdpredictedtarget + fdpredictedtarget 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 + 'dearg1 dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm + deimm 'deuseimm deuseimm 'deisreturnfromexception + deisreturnfromexception 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt + dewrt 'depredicteddirection depredicteddirection + 'depredictedtarget depredictedtarget 'emppc emppc + 'emis_alu_exception emis_alu_exception 'emis_taken_branch + emis_taken_branch 'emtargetpc emtargetpc 'emarg2 emarg2 + 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emisreturnfromexception emisreturnfromexception + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'pepc pepc 'pisexception pisexception 'mmisreturnfromexception + mmisreturnfromexception 'mmis_alu_exception mmis_alu_exception + 'mmppc mmppc 'mmval mmval 'mmdest mmdest 'mmwrt mmwrt + 'mmregwrite mmregwrite 'mwisreturnfromexception + mwisreturnfromexception 'mwis_alu_exception mwis_alu_exception + 'mwppc mwppc 'mwval mwval 'mwdest mwdest 'mwwrt mwwrt + 'mwregwrite mwregwrite)) + (defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + (defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + (defun initppc_a (pc0) pc0) + (defun nextppc_a + (initi pc0 mem1_is_returnfromexception pepc + mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken emppc mem1_mispredicted_nottaken + emtargetpc stall flush ppc if_predict_branch_taken + predicted_target) + (cond + (initi pc0) + (mem1_is_returnfromexception pepc) + (mem1_is_alu_exception alu_exception_handler) + (mem1_mispredicted_taken emppc) + (mem1_mispredicted_nottaken emtargetpc) + ((or stall flush) ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + (defun initbpstate_a (bpstate0) bpstate0) + (defun nextbpstate_a (initi bpstate0 stall bpstate) + (cond (initi bpstate0) (stall bpstate) (t (nextbpstate bpstate)))) + (defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + (defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + (defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + (defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + (defun initffwrt_a (ffwrt0) ffwrt0) + (defun nextffwrt_a (initi ffwrt0 squash stall ffwrt flush) + (cond (initi ffwrt0) (squash nil) (stall ffwrt) (flush nil) (t t))) + (defun initffinst_a (ffinst0) ffinst0) + (defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + (defun initffppc_a (ffppc0) ffppc0) + (defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + (defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + (defun nextprf_a + (prf initi mwwrt mwdest mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (cons (s 0 nil + (s 1 initi + (s 2 mwwrt + (s 3 mwdest + (s 4 mwregwrite + (s 5 wb_is_alu_exception_bar + (s 6 wb_is_returnfromexception_bar + (s 7 mwval nil)))))))) + prf)) + (defun initfdppc_a (fdppc0) fdppc0) + (defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + (defun initfdwrt_a (fdwrt0) fdwrt0) + (defun nextfdwrt_a (initi fdwrt0 squash stall fdwrt ffwrt) + (cond (initi fdwrt0) (squash nil) (stall fdwrt) (t ffwrt))) + (defun initfdinst_a (fdinst0) fdinst0) + (defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + (defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + (defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + (defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + (defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + (defun initdeppc_a (deppc0) deppc0) + (defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + (defun initdesrc1_a (desrc10) desrc10) + (defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + (defun initdesrc2_a (desrc20) desrc20) + (defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + (defun initdearg1_a (a1) a1) + (defun nextdearg1_a + (initi a1 if_id_src1 prf mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval))))) + (defun initdearg2_a (a2) a2) + (defun nextdearg2_a + (initi a2 if_id_src2 prf mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval))))) + (defun initdedest_a (dedest0) dedest0) + (defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + (defun initdeop_a (deop0) deop0) + (defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + (defun initdeimm_a (deimm0) deimm0) + (defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + (defun initdeuseimm_a (deuseimm0) deuseimm0) + (defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + (defun initdeisreturnfromexception_a (deisreturnfromexception0) + deisreturnfromexception0) + (defun nextdeisreturnfromexception_a + (initi deisreturnfromexception0 fdinst) + (cond + (initi deisreturnfromexception0) + (t (getreturnfromexception fdinst)))) + (defun initderegwrite_a (deregwrite0) deregwrite0) + (defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + (defun initdememwrite_a (dememwrite0) dememwrite0) + (defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + (defun initdememtoreg_a (dememtoreg0) dememtoreg0) + (defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + (defun initdeisbranch_a (deisbranch0) deisbranch0) + (defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + (defun initdewrt_a (dewrt0) dewrt0) + (defun nextdewrt_a (initi dewrt0 squash stall fdwrt) + (cond (initi dewrt0) (squash nil) (t (and (not stall) fdwrt)))) + (defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + (defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + (defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + (defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + (defun initemppc_a (emppc0) emppc0) + (defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + (defun initemis_alu_exception_a (emis_alu_exception0) + emis_alu_exception0) + (defun nextemis_alu_exception_a + (initi emis_alu_exception0 ex_is_alu_exception) + (cond (initi emis_alu_exception0) (t ex_is_alu_exception))) + (defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + (defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + (defun initemtargetpc_a (emtargetpc0) emtargetpc0) + (defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + (defun initemarg2_a (emarg20) emarg20) + (defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + (defun initemresult_a (emresult0) emresult0) + (defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + (defun initemdest_a (emdest0) emdest0) + (defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + (defun initemwrt_a (emwrt0) emwrt0) + (defun nextemwrt_a (initi emwrt0 squash dewrt) + (cond (initi emwrt0) (squash nil) (t dewrt))) + (defun initemisreturnfromexception_a (emisreturnfromexception0) + emisreturnfromexception0) + (defun nextemisreturnfromexception_a + (initi emisreturnfromexception0 deisreturnfromexception) + (cond (initi emisreturnfromexception0) (t deisreturnfromexception))) + (defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + (defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + (defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + (defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + (defun initemregwrite_a (emregwrite0) emregwrite0) + (defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + (defun initemmemwrite_a (emmemwrite0) emmemwrite0) + (defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + (defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + (defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + (defun initpdmemhist_2_a (dmem0) dmem0) + (defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + (defun initpdmemhist_1_a (dmem0) dmem0) + (defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + (defun initpdmem_a (dmem0) dmem0) + (defun nextpdmem_a + (initi dmem0 emwrt emmemwrite mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar pdmem emresult emarg2) + (cond + (initi dmem0) + ((and (and (and emwrt emmemwrite) mem1_is_alu_exception_bar) + mem1_is_returnfromexception_bar) + (nextdmem pdmem emresult emarg2)) + (t pdmem))) + (defun initpepc_a (epc0) epc0) + (defun nextpepc_a + (initi epc0 mem1_is_alu_exception + mem1_is_returnfromexception_bar emppc pepc) + (cond + (initi epc0) + ((and mem1_is_alu_exception mem1_is_returnfromexception_bar) + emppc) + (t pepc))) + (defun initpisexception_a (isexception0) isexception0) + (defun nextpisexception_a + (initi isexception0 mem1_is_alu_exception + mem1_is_returnfromexception + mem1_is_returnfromexception_bar pisexception) + (cond + (initi isexception0) + ((or mem1_is_alu_exception mem1_is_returnfromexception) + (and mem1_is_alu_exception mem1_is_returnfromexception_bar)) + (t pisexception))) + (defun initmmisreturnfromexception_a (mmisreturnfromexception0) + mmisreturnfromexception0) + (defun nextmmisreturnfromexception_a + (initi mmisreturnfromexception0 emisreturnfromexception) + (cond (initi mmisreturnfromexception0) (t emisreturnfromexception))) + (defun initmmis_alu_exception_a (mmis_alu_exception0) + mmis_alu_exception0) + (defun nextmmis_alu_exception_a + (initi mmis_alu_exception0 emis_alu_exception) + (cond (initi mmis_alu_exception0) (t emis_alu_exception))) + (defun initmmppc_a (mmppc0) mmppc0) + (defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + (defun initmmval_a (mmval0) mmval0) + (defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + (defun initmmdest_a (mmdest0) mmdest0) + (defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + (defun initmmwrt_a (mmwrt0) mmwrt0) + (defun nextmmwrt_a (initi mmwrt0 emwrt) + (cond (initi mmwrt0) (t emwrt))) + (defun initmmregwrite_a (mmregwrite0) mmregwrite0) + (defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + (defun initmwisreturnfromexception_a (mwisreturnfromexception0) + mwisreturnfromexception0) + (defun nextmwisreturnfromexception_a + (initi mwisreturnfromexception0 mmisreturnfromexception) + (cond (initi mwisreturnfromexception0) (t mmisreturnfromexception))) + (defun initmwis_alu_exception_a (mwis_alu_exception0) + mwis_alu_exception0) + (defun nextmwis_alu_exception_a + (initi mwis_alu_exception0 mmis_alu_exception) + (cond (initi mwis_alu_exception0) (t mmis_alu_exception))) + (defun initmwppc_a (mwppc0) mwppc0) + (defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + (defun initmwval_a (mwval0) mwval0) + (defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + (defun initmwdest_a (mwdest0) mwdest0) + (defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + (defun initmwwrt_a (mwwrt0) mwwrt0) + (defun nextmwwrt_a (initi mwwrt0 mmwrt) + (cond (initi mwwrt0) (t mmwrt))) + (defun initmwregwrite_a (mwregwrite0) mwregwrite0) + (defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + (defun impl-simulate_a + (impl initi pc0 alu_exception_handler flush bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepc (g 'pepc impl)) (pisexception (g 'pisexception impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash (or (or mem1_mispredicted mem1_is_alu_exception) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception))) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 mem1_is_returnfromexception pepc + mem1_is_alu_exception alu_exception_handler + mem1_mispredicted_taken emppc mem1_mispredicted_nottaken + emtargetpc stall flush ppc if_predict_branch_taken + predicted_target) + (nextbpstate_a initi bpstate0 stall bpstate) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi ffwrt0 squash stall ffwrt flush) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi mwwrt mwdest mwregwrite + wb_is_alu_exception_bar wb_is_returnfromexception_bar + mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi fdwrt0 squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf mwwrt mwdest + mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (nextdearg2_a initi a2 if_id_src2 prf mwwrt mwdest + mwregwrite wb_is_alu_exception_bar + wb_is_returnfromexception_bar mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextdeisreturnfromexception_a initi + deisreturnfromexception0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi dewrt0 squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextemppc_a initi emppc0 deppc) + (nextemis_alu_exception_a initi emis_alu_exception0 + ex_is_alu_exception) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi emwrt0 squash dewrt) + (nextemisreturnfromexception_a initi + emisreturnfromexception0 deisreturnfromexception) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 emwrt emmemwrite + mem1_is_alu_exception_bar + mem1_is_returnfromexception_bar pdmem emresult emarg2) + (nextpepc_a initi epc0 mem1_is_alu_exception + mem1_is_returnfromexception_bar emppc pepc) + (nextpisexception_a initi isexception0 mem1_is_alu_exception + mem1_is_returnfromexception + mem1_is_returnfromexception_bar pisexception) + (nextmmisreturnfromexception_a initi + mmisreturnfromexception0 emisreturnfromexception) + (nextmmis_alu_exception_a initi mmis_alu_exception0 + emis_alu_exception) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi mmwrt0 emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwisreturnfromexception_a initi + mwisreturnfromexception0 mmisreturnfromexception) + (nextmwis_alu_exception_a initi mwis_alu_exception0 + mmis_alu_exception) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi mwwrt0 mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + (defun impl-initialize_a + (impl pc0 bpstate0 ffpredicteddirection0 ffpredictedtarget0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 depredicteddirection0 + depredictedtarget0 emppc0 emis_alu_exception0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emisreturnfromexception0 emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 mwis_alu_exception0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deisreturnfromexception (g 'deisreturnfromexception impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (emppc (g 'emppc impl)) + (emis_alu_exception (g 'emis_alu_exception impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emisreturnfromexception (g 'emisreturnfromexception impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (pepc (g 'pepc impl)) (pisexception (g 'pisexception impl)) + (mmisreturnfromexception (g 'mmisreturnfromexception impl)) + (mmis_alu_exception (g 'mmis_alu_exception impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) + (mwisreturnfromexception (g 'mwisreturnfromexception impl)) + (mwis_alu_exception (g 'mwis_alu_exception impl)) + (mwppc (g 'mwppc impl)) (mwval (g 'mwval impl)) + (mwdest (g 'mwdest impl)) (mwwrt (g 'mwwrt impl)) + (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception_temp + (alu_exception deop ex_fwd_src1 ex_data2)) + (ex_is_alu_exception + (and (and ex_is_alu_exception_temp dewrt) + (or (or deregwrite dememwrite) deisbranch))) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_is_alu_exception (and emwrt emis_alu_exception)) + (mem1_is_returnfromexception + (and emwrt emisreturnfromexception)) + (mem1_is_returnfromexception_bar + (not mem1_is_returnfromexception)) + (mem1_is_alu_exception_bar (not mem1_is_alu_exception)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash (or (or mem1_mispredicted mem1_is_alu_exception) + mem1_is_returnfromexception)) + (wb_is_alu_exception_bar (not mwis_alu_exception)) + (wb_is_returnfromexception + (and mwwrt mwisreturnfromexception)) + (wb_is_returnfromexception_bar + (not wb_is_returnfromexception))) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initbpstate_a bpstate0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) + (initffwrt_a ffwrt0) (initffinst_a ffinst0) + (initffppc_a ffppc0) (initprf_a prf) (initfdppc_a fdppc0) + (initfdwrt_a fdwrt0) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initdeisreturnfromexception_a deisreturnfromexception0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a dewrt0) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initemppc_a emppc0) + (initemis_alu_exception_a emis_alu_exception0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a emwrt0) + (initemisreturnfromexception_a emisreturnfromexception0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initpepc_a epc0) (initpisexception_a isexception0) + (initmmisreturnfromexception_a mmisreturnfromexception0) + (initmmis_alu_exception_a mmis_alu_exception0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a mmwrt0) + (initmmregwrite_a mmregwrite0) + (initmwisreturnfromexception_a mwisreturnfromexception0) + (initmwis_alu_exception_a mwis_alu_exception0) + (initmwppc_a mwppc0) (initmwval_a mwval0) + (initmwdest_a mwdest0) (initmwwrt_a mwwrt0) + (initmwregwrite_a mwregwrite0))))) + (defun spec-state_a (simem spc srf sdmem sepc sisexception) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem 'sepc sepc + 'sisexception sisexception)) + (defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + (defun nextsimem_a (simem initi) + (cons (s 0 nil (s 1 initi nil)) simem)) + (defun initspc_a (pc0) pc0) + (defun nextspc_a + (initi pc0 project_impl impl.ppc isa is_returnfromexception + sepc is_alu_exception alu_exception_handler + is_taken_branch targetpc spc) + (cond + (initi pc0) + (project_impl impl.ppc) + ((and isa is_returnfromexception) sepc) + ((and isa is_alu_exception) alu_exception_handler) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + (defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + (defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_returnfromexception_bar val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa + (s 5 inst + (s 6 regwrite + (s 7 is_alu_exception_bar + (s 8 is_returnfromexception_bar + (s 9 val nil)))))))))) + srf)) + (defun initsdmem_a (dmem0) dmem0) + (defun nextsdmem_a + (initi dmem0 project_impl impl.pdmem isa memwrite + is_alu_exception_bar is_returnfromexception_bar sdmem + result arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmem) + ((and (and (and isa memwrite) is_alu_exception_bar) + is_returnfromexception_bar) + (nextdmem sdmem result arg2_temp)) + (t sdmem))) + (defun initsepc_a (epc0) epc0) + (defun nextsepc_a + (initi epc0 project_impl impl.pepc isa is_alu_exception + is_returnfromexception_bar spc sepc) + (cond + (initi epc0) + (project_impl impl.pepc) + ((and (and isa is_alu_exception) is_returnfromexception_bar) spc) + (t sepc))) + (defun initsisexception_a (isexception0) isexception0) + (defun nextsisexception_a + (initi isexception0 project_impl impl.pisexception isa + is_alu_exception is_returnfromexception + is_returnfromexception_bar sisexception) + (cond + (initi isexception0) + (project_impl impl.pisexception) + ((and isa (or is_alu_exception is_returnfromexception)) + (and is_alu_exception is_returnfromexception_bar)) + (t sisexception))) + (defun spec-simulate_a + (spec initi pc0 project_impl impl.ppc isa alu_exception_handler + impl.prf dmem0 impl.pdmem epc0 impl.pepc isexception0 + impl.pisexception) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec)) + (sepc (g 'sepc spec)) (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem initi) + (nextspc_a initi pc0 project_impl impl.ppc isa + is_returnfromexception sepc is_alu_exception + alu_exception_handler is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + is_alu_exception_bar is_returnfromexception_bar val) + (nextsdmem_a initi dmem0 project_impl impl.pdmem isa + memwrite is_alu_exception_bar is_returnfromexception_bar + sdmem result arg2_temp) + (nextsepc_a initi epc0 project_impl impl.pepc isa + is_alu_exception is_returnfromexception_bar spc sepc) + (nextsisexception_a initi isexception0 project_impl + impl.pisexception isa is_alu_exception + is_returnfromexception is_returnfromexception_bar + sisexception))))) + (defun spec-initialize_a (spec pc0 dmem0 epc0 isexception0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec)) + (sepc (g 'sepc spec)) (sisexception (g 'sisexception spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (is_returnfromexception (getreturnfromexception inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_alu_exception_temp + (alu_exception (opcode inst) arg1 arg2)) + (is_alu_exception + (and is_alu_exception_temp + (or (or regwrite memwrite) isbranch))) + (is_alu_exception_bar (not is_alu_exception)) + (is_returnfromexception_bar (not is_returnfromexception)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0) (initsepc_a epc0) + (initsisexception_a isexception0))))) + (defun simulate_a + (st flush isa project_impl initi pc0 alu_exception_handler + bpstate0 ffpredicteddirection0 ffpredictedtarget0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 impl.ppc impl.prf impl.pdmem impl.pepc + impl.pisexception) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 alu_exception_handler + flush bpstate0 ffpredicteddirection0 ffpredictedtarget0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deisreturnfromexception0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_alu_exception0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl impl.ppc + isa alu_exception_handler impl.prf dmem0 impl.pdmem epc0 + impl.pepc isexception0 impl.pisexception))) + (defun initialize_a + (st flush isa project_impl initi pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deisreturnfromexception0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_alu_exception0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emisreturnfromexception0 + emmispredictedtaken0 emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 isexception0 + mmisreturnfromexception0 mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0 epc0 isexception0))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp epc0) + (booleanp isexception0) (integerp bpstate0) + (integerp alu_exception_handler) (integerp a) + (integerp zero) (booleanp ffwrt0) + (booleanp fdwrt0) (booleanp dewrt0) + (booleanp emwrt0) (booleanp mmwrt0) + (booleanp mwwrt0) (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20) + (booleanp emis_alu_exception0) + (booleanp mmis_alu_exception0) + (booleanp mwis_alu_exception0) + (booleanp deisreturnfromexception0) + (booleanp emisreturnfromexception0) + (booleanp mmisreturnfromexception0) + (booleanp mwisreturnfromexception0)) + (let* ((st0 (initialize_a nil nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0)) + (st1 (simulate_a st0 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st0)) + (g 'prf (g 'impl st0)) + (g 'pdmem (g 'impl st0)) + (g 'pepc (g 'impl st0)) + (g 'pisexception (g 'impl st0)))) + (st2 (simulate_a st1 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st1)) + (g 'prf (g 'impl st1)) + (g 'pdmem (g 'impl st1)) + (g 'pepc (g 'impl st1)) + (g 'pisexception (g 'impl st1)))) + (st3 (simulate_a st2 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st2)) + (g 'prf (g 'impl st2)) + (g 'pdmem (g 'impl st2)) + (g 'pepc (g 'impl st2)) + (g 'pisexception (g 'impl st2)))) + (st4 (simulate_a st3 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st3)) + (g 'prf (g 'impl st3)) + (g 'pdmem (g 'impl st3)) + (g 'pepc (g 'impl st3)) + (g 'pisexception (g 'impl st3)))) + (st5 (simulate_a st4 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st4)) + (g 'prf (g 'impl st4)) + (g 'pdmem (g 'impl st4)) + (g 'pepc (g 'impl st4)) + (g 'pisexception (g 'impl st4)))) + (st6 (simulate_a st5 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st5)) + (g 'prf (g 'impl st5)) + (g 'pdmem (g 'impl st5)) + (g 'pepc (g 'impl st5)) + (g 'pisexception (g 'impl st5)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st6)) + (g 'fdwrt (g 'impl st6))) + (g 'dewrt (g 'impl st6))) + (g 'emwrt (g 'impl st6))) + (g 'mmwrt (g 'impl st6))) + (g 'mwwrt (g 'impl st6))))) + (st7 (simulate_a st6 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st6)) + (g 'prf (g 'impl st6)) + (g 'pdmem (g 'impl st6)) + (g 'pepc (g 'impl st6)) + (g 'pisexception (g 'impl st6)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st7)) + (g 'fdwrt (g 'impl st7))) + (g 'dewrt (g 'impl st7))) + (g 'emwrt (g 'impl st7))) + (g 'mmwrt (g 'impl st7))) + (g 'mwwrt (g 'impl st7))))) + (st8 (simulate_a st7 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st7)) + (g 'prf (g 'impl st7)) + (g 'pdmem (g 'impl st7)) + (g 'pepc (g 'impl st7)) + (g 'pisexception (g 'impl st7)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (st9 (simulate_a st8 nil nil t nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st8)) + (g 'prf (g 'impl st8)) + (g 'pdmem (g 'impl st8)) + (g 'pepc (g 'impl st8)) + (g 'pisexception (g 'impl st8)))) + (s_pc0 (g 'spc (g 'spec st9))) + (s_rf0 (g 'srf (g 'spec st9))) + (s_dmem0 (g 'sdmem (g 'spec st9))) + (s_epc0 (g 'sepc (g 'spec st9))) + (s_isexception0 + (g 'sisexception (g 'spec st9))) + (st10 (simulate_a st9 nil t nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st9)) + (g 'prf (g 'impl st9)) + (g 'pdmem (g 'impl st9)) + (g 'pepc (g 'impl st9)) + (g 'pisexception (g 'impl st9)))) + (s_pc1 (g 'spc (g 'spec st10))) + (s_rf1 (g 'srf (g 'spec st10))) + (s_dmem1 (g 'sdmem (g 'spec st10))) + (s_epc1 (g 'sepc (g 'spec st10))) + (s_isexception1 + (g 'sisexception (g 'spec st10))) + (st11 (simulate_a st10 nil nil nil t pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st10)) + (g 'prf (g 'impl st10)) + (g 'pdmem (g 'impl st10)) + (g 'pepc (g 'impl st10)) + (g 'pisexception (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st11)) + (g 'prf (g 'impl st11)) + (g 'pdmem (g 'impl st11)) + (g 'pepc (g 'impl st11)) + (g 'pisexception (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st12)) + (g 'prf (g 'impl st12)) + (g 'pdmem (g 'impl st12)) + (g 'pepc (g 'impl st12)) + (g 'pisexception (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st13)) + (g 'prf (g 'impl st13)) + (g 'pdmem (g 'impl st13)) + (g 'pepc (g 'impl st13)) + (g 'pisexception (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st14)) + (g 'prf (g 'impl st14)) + (g 'pdmem (g 'impl st14)) + (g 'pepc (g 'impl st14)) + (g 'pisexception (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st15)) + (g 'prf (g 'impl st15)) + (g 'pdmem (g 'impl st15)) + (g 'pepc (g 'impl st15)) + (g 'pisexception (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st16)) + (g 'prf (g 'impl st16)) + (g 'pdmem (g 'impl st16)) + (g 'pepc (g 'impl st16)) + (g 'pisexception (g 'impl st16)))) + (t1 (g 'mwwrt (g 'impl st17))) + (st18 (simulate_a st17 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st17)) + (g 'prf (g 'impl st17)) + (g 'pdmem (g 'impl st17)) + (g 'pepc (g 'impl st17)) + (g 'pisexception (g 'impl st17)))) + (t2 (g 'mwwrt (g 'impl st18))) + (st19 (simulate_a st18 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st18)) + (g 'prf (g 'impl st18)) + (g 'pdmem (g 'impl st18)) + (g 'pepc (g 'impl st18)) + (g 'pisexception (g 'impl st18)))) + (t3 (g 'mwwrt (g 'impl st19))) + (st20 (simulate_a st19 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st19)) + (g 'prf (g 'impl st19)) + (g 'pdmem (g 'impl st19)) + (g 'pepc (g 'impl st19)) + (g 'pisexception (g 'impl st19)))) + (t4 (g 'mwwrt (g 'impl st20))) + (st21 (simulate_a st20 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st20)) + (g 'prf (g 'impl st20)) + (g 'pdmem (g 'impl st20)) + (g 'pepc (g 'impl st20)) + (g 'pisexception (g 'impl st20)))) + (t5 (g 'mwwrt (g 'impl st21))) + (st22 (simulate_a st21 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st21)) + (g 'prf (g 'impl st21)) + (g 'pdmem (g 'impl st21)) + (g 'pepc (g 'impl st21)) + (g 'pisexception (g 'impl st21)))) + (t6 (g 'mwwrt (g 'impl st22))) + (rank_w (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 + (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))) + (t + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))))))) + (st23 (simulate_a st22 nil nil nil t pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st22)) + (g 'prf (g 'impl st22)) + (g 'pdmem (g 'impl st22)) + (g 'pepc (g 'impl st22)) + (g 'pisexception (g 'impl st22)))) + (st24 (simulate_a st23 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st23)) + (g 'prf (g 'impl st23)) + (g 'pdmem (g 'impl st23)) + (g 'pepc (g 'impl st23)) + (g 'pisexception (g 'impl st23)))) + (st25 (simulate_a st24 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st24)) + (g 'prf (g 'impl st24)) + (g 'pdmem (g 'impl st24)) + (g 'pepc (g 'impl st24)) + (g 'pisexception (g 'impl st24)))) + (st26 (simulate_a st25 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st25)) + (g 'prf (g 'impl st25)) + (g 'pdmem (g 'impl st25)) + (g 'pepc (g 'impl st25)) + (g 'pisexception (g 'impl st25)))) + (st27 (simulate_a st26 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st26)) + (g 'prf (g 'impl st26)) + (g 'pdmem (g 'impl st26)) + (g 'pepc (g 'impl st26)) + (g 'pisexception (g 'impl st26)))) + (st28 (simulate_a st27 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st27)) + (g 'prf (g 'impl st27)) + (g 'pdmem (g 'impl st27)) + (g 'pepc (g 'impl st27)) + (g 'pisexception (g 'impl st27)))) + (st29 (simulate_a st28 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st28)) + (g 'prf (g 'impl st28)) + (g 'pdmem (g 'impl st28)) + (g 'pepc (g 'impl st28)) + (g 'pisexception (g 'impl st28)))) + (st30 (simulate_a st29 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st29)) + (g 'prf (g 'impl st29)) + (g 'pdmem (g 'impl st29)) + (g 'pepc (g 'impl st29)) + (g 'pisexception (g 'impl st29)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30))) + (g 'dewrt (g 'impl st30))) + (g 'emwrt (g 'impl st30))) + (g 'mmwrt (g 'impl st30))) + (g 'mwwrt (g 'impl st30))))) + (st31 (simulate_a st30 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st30)) + (g 'prf (g 'impl st30)) + (g 'pdmem (g 'impl st30)) + (g 'pepc (g 'impl st30)) + (g 'pisexception (g 'impl st30)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31))) + (g 'dewrt (g 'impl st31))) + (g 'emwrt (g 'impl st31))) + (g 'mmwrt (g 'impl st31))) + (g 'mwwrt (g 'impl st31))))) + (st32 (simulate_a st31 t nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st31)) + (g 'prf (g 'impl st31)) + (g 'pdmem (g 'impl st31)) + (g 'pepc (g 'impl st31)) + (g 'pisexception (g 'impl st31)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (i_pc (g 'ppc (g 'impl st32))) + (i_rf (g 'prf (g 'impl st32))) + (i_dmem (g 'pdmem (g 'impl st32))) + (i_epc (g 'pepc (g 'impl st32))) + (i_isexception + (g 'pisexception (g 'impl st32))) + (st33 (simulate_a st32 nil nil nil t pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st32)) + (g 'prf (g 'impl st32)) + (g 'pdmem (g 'impl st32)) + (g 'pepc (g 'impl st32)) + (g 'pisexception (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st33)) + (g 'prf (g 'impl st33)) + (g 'pdmem (g 'impl st33)) + (g 'pepc (g 'impl st33)) + (g 'pisexception (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st34)) + (g 'prf (g 'impl st34)) + (g 'pdmem (g 'impl st34)) + (g 'pepc (g 'impl st34)) + (g 'pisexception (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st35)) + (g 'prf (g 'impl st35)) + (g 'pdmem (g 'impl st35)) + (g 'pepc (g 'impl st35)) + (g 'pisexception (g 'impl st35)))) + (st37 (simulate_a st36 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st36)) + (g 'prf (g 'impl st36)) + (g 'pdmem (g 'impl st36)) + (g 'pepc (g 'impl st36)) + (g 'pisexception (g 'impl st36)))) + (st38 (simulate_a st37 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st37)) + (g 'prf (g 'impl st37)) + (g 'pdmem (g 'impl st37)) + (g 'pepc (g 'impl st37)) + (g 'pisexception (g 'impl st37)))) + (st39 (simulate_a st38 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st38)) + (g 'prf (g 'impl st38)) + (g 'pdmem (g 'impl st38)) + (g 'pepc (g 'impl st38)) + (g 'pisexception (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st39)) + (g 'prf (g 'impl st39)) + (g 'pdmem (g 'impl st39)) + (g 'pepc (g 'impl st39)) + (g 'pisexception (g 'impl st39)))) + (t1 (g 'mwwrt (g 'impl st40))) + (st41 (simulate_a st40 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st40)) + (g 'prf (g 'impl st40)) + (g 'pdmem (g 'impl st40)) + (g 'pepc (g 'impl st40)) + (g 'pisexception (g 'impl st40)))) + (t2 (g 'mwwrt (g 'impl st41))) + (st42 (simulate_a st41 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st41)) + (g 'prf (g 'impl st41)) + (g 'pdmem (g 'impl st41)) + (g 'pepc (g 'impl st41)) + (g 'pisexception (g 'impl st41)))) + (t3 (g 'mwwrt (g 'impl st42))) + (st43 (simulate_a st42 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st42)) + (g 'prf (g 'impl st42)) + (g 'pdmem (g 'impl st42)) + (g 'pepc (g 'impl st42)) + (g 'pisexception (g 'impl st42)))) + (t4 (g 'mwwrt (g 'impl st43))) + (st44 (simulate_a st43 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st43)) + (g 'prf (g 'impl st43)) + (g 'pdmem (g 'impl st43)) + (g 'pepc (g 'impl st43)) + (g 'pisexception (g 'impl st43)))) + (t5 (g 'mwwrt (g 'impl st44))) + (st45 (simulate_a st44 nil nil nil nil pc0 + alu_exception_handler bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deisreturnfromexception0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_alu_exception0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emisreturnfromexception0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 epc0 + isexception0 + mmisreturnfromexception0 + mmis_alu_exception0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 + mwisreturnfromexception0 + mwis_alu_exception0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st44)) + (g 'prf (g 'impl st44)) + (g 'pdmem (g 'impl st44)) + (g 'pepc (g 'impl st44)) + (g 'pisexception (g 'impl st44)))) + (t6 (g 'mwwrt (g 'impl st45))) + (rank_v (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 + (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))) + (t + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))))))) + (or (and (and (and (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_epc1 i_epc)) + (equalb s_isexception1 i_isexception)) + (equal s_dmem1 i_dmem)) + (and (and (and (and + (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_epc0 i_epc)) + (equalb s_isexception0 + i_isexception)) + (equal s_dmem0 i_dmem)) + (< rank_v rank_w))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-safety.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-safety.lisp new file mode 100644 index 0000000..94755d4 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-safety.lisp @@ -0,0 +1,2110 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + +(encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + +(encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((and (and (g 2 (car prf)) (equal a (g 3 (car prf)))) + (g 4 (car prf))) + (g 5 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) + (cond + ((g 1 (car simem)) (imem0 a)) + (t (read-simem_a a (cdr simem))))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc bpstate ffpredicteddirection ffpredictedtarget ffwrt + ffinst ffppc prf fdppc fdwrt fdinst fdpredicteddirection + fdpredictedtarget deppc desrc1 desrc2 dearg1 dearg2 + dedest deop deimm deuseimm deregwrite dememwrite + dememtoreg deisbranch dewrt depredicteddirection + depredictedtarget emppc emis_taken_branch emtargetpc + emarg2 emresult emdest emwrt emmispredictedtaken + emmispredictednottaken emregwrite emmemwrite emmemtoreg + pdmemhist_2 pdmemhist_1 pdmem mmppc mmval mmdest mmwrt + mmregwrite mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'bpstate bpstate + 'ffpredicteddirection ffpredicteddirection 'ffpredictedtarget + ffpredictedtarget 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf + prf 'fdppc fdppc 'fdwrt fdwrt 'fdinst fdinst + 'fdpredicteddirection fdpredicteddirection 'fdpredictedtarget + fdpredictedtarget 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 + 'dearg1 dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm + deimm 'deuseimm deuseimm 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt + dewrt 'depredicteddirection depredicteddirection + 'depredictedtarget depredictedtarget 'emppc emppc + 'emis_taken_branch emis_taken_branch 'emtargetpc emtargetpc + 'emarg2 emarg2 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'mmppc mmppc 'mmval mmval 'mmdest mmdest 'mmwrt mmwrt + 'mmregwrite mmregwrite 'mwppc mwppc 'mwval mwval 'mwdest mwdest + 'mwwrt mwwrt 'mwregwrite mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 mem1_mispredicted_taken emppc + mem1_mispredicted_nottaken emtargetpc stall flush ppc + if_predict_branch_taken predicted_target) + (cond + (initi pc0) + (mem1_mispredicted_taken emppc) + (mem1_mispredicted_nottaken emtargetpc) + ((or stall flush) ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + +(defun initbpstate_a (bpstate0) bpstate0) + +(defun nextbpstate_a (initi bpstate0 stall bpstate) + (cond (initi bpstate0) (stall bpstate) (t (nextbpstate bpstate)))) + +(defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + +(defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + +(defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + +(defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + +(defun initffwrt_a (ffwrt0) ffwrt0) + +(defun nextffwrt_a (initi ffwrt0 squash stall ffwrt flush) + (cond (initi ffwrt0) (squash nil) (stall ffwrt) (flush nil) (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 mwwrt + (s 3 mwdest (s 4 mwregwrite (s 5 mwval nil)))))) + prf)) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a (fdwrt0) fdwrt0) + +(defun nextfdwrt_a (initi fdwrt0 squash stall fdwrt ffwrt) + (cond (initi fdwrt0) (squash nil) (stall fdwrt) (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + +(defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + +(defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + +(defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf mwwrt mwdest mwregwrite mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf mwwrt mwdest mwregwrite mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a (dewrt0) dewrt0) + +(defun nextdewrt_a (initi dewrt0 squash stall fdwrt) + (cond (initi dewrt0) (squash nil) (t (and (not stall) fdwrt)))) + +(defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + +(defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + +(defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + +(defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a (emwrt0) emwrt0) + +(defun nextemwrt_a (initi emwrt0 squash dewrt) + (cond (initi emwrt0) (squash nil) (t dewrt))) + +(defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + +(defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + +(defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + +(defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 emwrt emmemwrite pdmem emresult emarg2) + (cond + (initi dmem0) + ((and emwrt emmemwrite) (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a (mmwrt0) mmwrt0) + +(defun nextmmwrt_a (initi mmwrt0 emwrt) + (cond (initi mmwrt0) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a (mwwrt0) mwwrt0) + +(defun nextmwwrt_a (initi mwwrt0 mmwrt) + (cond (initi mwwrt0) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 flush bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 fdpredictedtarget0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash mem1_mispredicted)) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 mem1_mispredicted_taken emppc + mem1_mispredicted_nottaken emtargetpc stall flush ppc + if_predict_branch_taken predicted_target) + (nextbpstate_a initi bpstate0 stall bpstate) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi ffwrt0 squash stall ffwrt flush) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi fdwrt0 squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf mwwrt mwdest + mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf mwwrt mwdest + mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi dewrt0 squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextemppc_a initi emppc0 deppc) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi emwrt0 squash dewrt) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 emwrt emmemwrite pdmem emresult + emarg2) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi mmwrt0 emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi mwwrt0 mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 bpstate0 ffpredicteddirection0 ffpredictedtarget0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash mem1_mispredicted)) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initbpstate_a bpstate0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) + (initffwrt_a ffwrt0) (initffinst_a ffinst0) + (initffppc_a ffppc0) (initprf_a prf) (initfdppc_a fdppc0) + (initfdwrt_a fdwrt0) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a dewrt0) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initemppc_a emppc0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a emwrt0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a mmwrt0) + (initmmregwrite_a mmregwrite0) (initmwppc_a mwppc0) + (initmwval_a mwval0) (initmwdest_a mwdest0) + (initmwwrt_a mwwrt0) (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem initi) + (cons (s 0 nil (s 1 initi nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl impl.ppc isa is_taken_branch targetpc + spc) + (cond + (initi pc0) + (project_impl impl.ppc) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa (s 5 inst (s 6 regwrite (s 7 val nil)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmem isa memwrite sdmem result + arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmem) + ((and isa memwrite) (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl impl.ppc isa impl.prf dmem0 + impl.pdmem) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem initi) + (nextspc_a initi pc0 project_impl impl.ppc isa + is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmem isa + memwrite sdmem result arg2_temp))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st flush isa project_impl initi pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 impl.ppc impl.prf impl.pdmem) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 flush bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl impl.ppc + isa impl.prf dmem0 impl.pdmem))) + +(defun initialize_a + (st flush isa project_impl initi pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) + (integerp bpstate0) (integerp a) (integerp zero) + (booleanp ffwrt0) (booleanp fdwrt0) + (booleanp dewrt0) (booleanp emwrt0) + (booleanp mmwrt0) (booleanp mwwrt0) + (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20)) + (let* ((st0 (initialize_a nil nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0)) + (st1 (simulate_a st0 t nil nil nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st0)) + (g 'prf (g 'impl st0)) + (g 'pdmem (g 'impl st0)))) + (st2 (simulate_a st1 t nil nil nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st1)) + (g 'prf (g 'impl st1)) + (g 'pdmem (g 'impl st1)))) + (st3 (simulate_a st2 t nil nil nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st2)) + (g 'prf (g 'impl st2)) + (g 'pdmem (g 'impl st2)))) + (st4 (simulate_a st3 t nil nil nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st3)) + (g 'prf (g 'impl st3)) + (g 'pdmem (g 'impl st3)))) + (st5 (simulate_a st4 t nil nil nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st4)) + (g 'prf (g 'impl st4)) + (g 'pdmem (g 'impl st4)))) + (st6 (simulate_a st5 t nil nil nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st5)) + (g 'prf (g 'impl st5)) + (g 'pdmem (g 'impl st5)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st6)) + (g 'fdwrt (g 'impl st6))) + (g 'dewrt (g 'impl st6))) + (g 'emwrt (g 'impl st6))) + (g 'mmwrt (g 'impl st6))) + (g 'mwwrt (g 'impl st6))))) + (st7 (simulate_a st6 t nil nil nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st6)) + (g 'prf (g 'impl st6)) + (g 'pdmem (g 'impl st6)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st7)) + (g 'fdwrt (g 'impl st7))) + (g 'dewrt (g 'impl st7))) + (g 'emwrt (g 'impl st7))) + (g 'mmwrt (g 'impl st7))) + (g 'mwwrt (g 'impl st7))))) + (st8 (simulate_a st7 t nil nil nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st7)) + (g 'prf (g 'impl st7)) + (g 'pdmem (g 'impl st7)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (st9 (simulate_a st8 nil nil t nil pc0 bpstate0 + ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st8)) + (g 'prf (g 'impl st8)) + (g 'pdmem (g 'impl st8)))) + (s_pc0 (g 'spc (g 'spec st9))) + (s_rf0 (g 'srf (g 'spec st9))) + (s_dmem0 (g 'sdmem (g 'spec st9))) + (st10 (simulate_a st9 nil t nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st9)) + (g 'prf (g 'impl st9)) + (g 'pdmem (g 'impl st9)))) + (s_pc1 (g 'spc (g 'spec st10))) + (s_rf1 (g 'srf (g 'spec st10))) + (s_dmem1 (g 'sdmem (g 'spec st10))) + (st11 (simulate_a st10 nil nil nil t pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st10)) + (g 'prf (g 'impl st10)) + (g 'pdmem (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st11)) + (g 'prf (g 'impl st11)) + (g 'pdmem (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st12)) + (g 'prf (g 'impl st12)) + (g 'pdmem (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st13)) + (g 'prf (g 'impl st13)) + (g 'pdmem (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st14)) + (g 'prf (g 'impl st14)) + (g 'pdmem (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st15)) + (g 'prf (g 'impl st15)) + (g 'pdmem (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st16)) + (g 'prf (g 'impl st16)) + (g 'pdmem (g 'impl st16)))) + (t1 (g 'mwwrt (g 'impl st17))) + (st18 (simulate_a st17 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st17)) + (g 'prf (g 'impl st17)) + (g 'pdmem (g 'impl st17)))) + (t2 (g 'mwwrt (g 'impl st18))) + (st19 (simulate_a st18 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st18)) + (g 'prf (g 'impl st18)) + (g 'pdmem (g 'impl st18)))) + (t3 (g 'mwwrt (g 'impl st19))) + (st20 (simulate_a st19 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st19)) + (g 'prf (g 'impl st19)) + (g 'pdmem (g 'impl st19)))) + (t4 (g 'mwwrt (g 'impl st20))) + (st21 (simulate_a st20 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st20)) + (g 'prf (g 'impl st20)) + (g 'pdmem (g 'impl st20)))) + (t5 (g 'mwwrt (g 'impl st21))) + (st22 (simulate_a st21 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st21)) + (g 'prf (g 'impl st21)) + (g 'pdmem (g 'impl st21)))) + (t6 (g 'mwwrt (g 'impl st22))) + (rank_w (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))) + (t (add-1 + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter)))))))))) + (st23 (simulate_a st22 nil nil nil t pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st22)) + (g 'prf (g 'impl st22)) + (g 'pdmem (g 'impl st22)))) + (st24 (simulate_a st23 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st23)) + (g 'prf (g 'impl st23)) + (g 'pdmem (g 'impl st23)))) + (st25 (simulate_a st24 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st24)) + (g 'prf (g 'impl st24)) + (g 'pdmem (g 'impl st24)))) + (st26 (simulate_a st25 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st25)) + (g 'prf (g 'impl st25)) + (g 'pdmem (g 'impl st25)))) + (st27 (simulate_a st26 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st26)) + (g 'prf (g 'impl st26)) + (g 'pdmem (g 'impl st26)))) + (st28 (simulate_a st27 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st27)) + (g 'prf (g 'impl st27)) + (g 'pdmem (g 'impl st27)))) + (st29 (simulate_a st28 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st28)) + (g 'prf (g 'impl st28)) + (g 'pdmem (g 'impl st28)))) + (st30 (simulate_a st29 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st29)) + (g 'prf (g 'impl st29)) + (g 'pdmem (g 'impl st29)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30))) + (g 'dewrt (g 'impl st30))) + (g 'emwrt (g 'impl st30))) + (g 'mmwrt (g 'impl st30))) + (g 'mwwrt (g 'impl st30))))) + (st31 (simulate_a st30 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st30)) + (g 'prf (g 'impl st30)) + (g 'pdmem (g 'impl st30)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31))) + (g 'dewrt (g 'impl st31))) + (g 'emwrt (g 'impl st31))) + (g 'mmwrt (g 'impl st31))) + (g 'mwwrt (g 'impl st31))))) + (st32 (simulate_a st31 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st31)) + (g 'prf (g 'impl st31)) + (g 'pdmem (g 'impl st31)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (i_pc (g 'ppc (g 'impl st32))) + (i_rf (g 'prf (g 'impl st32))) + (i_dmem (g 'pdmem (g 'impl st32))) + (st33 (simulate_a st32 nil nil nil t pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st32)) + (g 'prf (g 'impl st32)) + (g 'pdmem (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st33)) + (g 'prf (g 'impl st33)) + (g 'pdmem (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st34)) + (g 'prf (g 'impl st34)) + (g 'pdmem (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st35)) + (g 'prf (g 'impl st35)) + (g 'pdmem (g 'impl st35)))) + (st37 (simulate_a st36 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st36)) + (g 'prf (g 'impl st36)) + (g 'pdmem (g 'impl st36)))) + (st38 (simulate_a st37 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st37)) + (g 'prf (g 'impl st37)) + (g 'pdmem (g 'impl st37)))) + (st39 (simulate_a st38 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st38)) + (g 'prf (g 'impl st38)) + (g 'pdmem (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st39)) + (g 'prf (g 'impl st39)) + (g 'pdmem (g 'impl st39)))) + (t1 (g 'mwwrt (g 'impl st40))) + (st41 (simulate_a st40 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st40)) + (g 'prf (g 'impl st40)) + (g 'pdmem (g 'impl st40)))) + (t2 (g 'mwwrt (g 'impl st41))) + (st42 (simulate_a st41 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st41)) + (g 'prf (g 'impl st41)) + (g 'pdmem (g 'impl st41)))) + (t3 (g 'mwwrt (g 'impl st42))) + (st43 (simulate_a st42 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st42)) + (g 'prf (g 'impl st42)) + (g 'pdmem (g 'impl st42)))) + (t4 (g 'mwwrt (g 'impl st43))) + (st44 (simulate_a st43 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st43)) + (g 'prf (g 'impl st43)) + (g 'pdmem (g 'impl st43)))) + (t5 (g 'mwwrt (g 'impl st44))) + (st45 (simulate_a st44 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st44)) + (g 'prf (g 'impl st44)) + (g 'pdmem (g 'impl st44)))) + (t6 (g 'mwwrt (g 'impl st45))) + (rank_v (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))) + (t (add-1 + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))))))) + (or (and (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem)) + (and (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem))))) + :rule-classes nil) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp.lisp new file mode 100644 index 0000000..17f74f2 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp.lisp @@ -0,0 +1,2116 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(encapsulate ((nextbpstate (x1) t)) + (local (defun nextbpstate (x1) (declare (ignore x1)) 1)) + (defthm nextbpstate-type (integerp (nextbpstate x1)))) + +(encapsulate ((predictdirection (x1) t)) + (local (defun predictdirection (x1) (declare (ignore x1)) nil)) + (defthm predictdirection-type (booleanp (predictdirection x1)))) + +(encapsulate ((predicttarget (x1) t)) + (local (defun predicttarget (x1) (declare (ignore x1)) 1)) + (defthm predicttarget-type (integerp (predicttarget x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((and (and (g 2 (car prf)) (equal a (g 3 (car prf)))) + (g 4 (car prf))) + (g 5 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) + (cond + ((g 1 (car simem)) (imem0 a)) + (t (read-simem_a a (cdr simem))))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc bpstate ffpredicteddirection ffpredictedtarget ffwrt + ffinst ffppc prf fdppc fdwrt fdinst fdpredicteddirection + fdpredictedtarget deppc desrc1 desrc2 dearg1 dearg2 + dedest deop deimm deuseimm deregwrite dememwrite + dememtoreg deisbranch dewrt depredicteddirection + depredictedtarget emppc emis_taken_branch emtargetpc + emarg2 emresult emdest emwrt emmispredictedtaken + emmispredictednottaken emregwrite emmemwrite emmemtoreg + pdmemhist_2 pdmemhist_1 pdmem mmppc mmval mmdest mmwrt + mmregwrite mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'bpstate bpstate + 'ffpredicteddirection ffpredicteddirection 'ffpredictedtarget + ffpredictedtarget 'ffwrt ffwrt 'ffinst ffinst 'ffppc ffppc 'prf + prf 'fdppc fdppc 'fdwrt fdwrt 'fdinst fdinst + 'fdpredicteddirection fdpredicteddirection 'fdpredictedtarget + fdpredictedtarget 'deppc deppc 'desrc1 desrc1 'desrc2 desrc2 + 'dearg1 dearg1 'dearg2 dearg2 'dedest dedest 'deop deop 'deimm + deimm 'deuseimm deuseimm 'deregwrite deregwrite 'dememwrite + dememwrite 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt + dewrt 'depredicteddirection depredicteddirection + 'depredictedtarget depredictedtarget 'emppc emppc + 'emis_taken_branch emis_taken_branch 'emtargetpc emtargetpc + 'emarg2 emarg2 'emresult emresult 'emdest emdest 'emwrt emwrt + 'emmispredictedtaken emmispredictedtaken + 'emmispredictednottaken emmispredictednottaken 'emregwrite + emregwrite 'emmemwrite emmemwrite 'emmemtoreg emmemtoreg + 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 pdmemhist_1 'pdmem pdmem + 'mmppc mmppc 'mmval mmval 'mmdest mmdest 'mmwrt mmwrt + 'mmregwrite mmregwrite 'mwppc mwppc 'mwval mwval 'mwdest mwdest + 'mwwrt mwwrt 'mwregwrite mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 mem1_mispredicted_taken emppc + mem1_mispredicted_nottaken emtargetpc stall flush ppc + if_predict_branch_taken predicted_target) + (cond + (initi pc0) + (mem1_mispredicted_taken emppc) + (mem1_mispredicted_nottaken emtargetpc) + ((or stall flush) ppc) + (if_predict_branch_taken predicted_target) + (t (add-1 ppc)))) + +(defun initbpstate_a (bpstate0) bpstate0) + +(defun nextbpstate_a (initi bpstate0 stall bpstate) + (cond (initi bpstate0) (stall bpstate) (t (nextbpstate bpstate)))) + +(defun initffpredicteddirection_a (ffpredicteddirection0) + ffpredicteddirection0) + +(defun nextffpredicteddirection_a + (initi ffpredicteddirection0 stall ffpredicteddirection + if_predict_branch_taken) + (cond + (initi ffpredicteddirection0) + (stall ffpredicteddirection) + (t if_predict_branch_taken))) + +(defun initffpredictedtarget_a (ffpredictedtarget0) + ffpredictedtarget0) + +(defun nextffpredictedtarget_a + (initi ffpredictedtarget0 stall ffpredictedtarget + predicted_target) + (cond + (initi ffpredictedtarget0) + (stall ffpredictedtarget) + (t predicted_target))) + +(defun initffwrt_a (ffwrt0) ffwrt0) + +(defun nextffwrt_a (initi ffwrt0 squash stall ffwrt flush) + (cond (initi ffwrt0) (squash nil) (stall ffwrt) (flush nil) (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 mwwrt + (s 3 mwdest (s 4 mwregwrite (s 5 mwval nil)))))) + prf)) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a (fdwrt0) fdwrt0) + +(defun nextfdwrt_a (initi fdwrt0 squash stall fdwrt ffwrt) + (cond (initi fdwrt0) (squash nil) (stall fdwrt) (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initfdpredicteddirection_a (fdpredicteddirection0) + fdpredicteddirection0) + +(defun nextfdpredicteddirection_a + (initi fdpredicteddirection0 stall fdpredicteddirection + ffpredicteddirection) + (cond + (initi fdpredicteddirection0) + (stall fdpredicteddirection) + (t ffpredicteddirection))) + +(defun initfdpredictedtarget_a (fdpredictedtarget0) + fdpredictedtarget0) + +(defun nextfdpredictedtarget_a + (initi fdpredictedtarget0 stall fdpredictedtarget + ffpredictedtarget) + (cond + (initi fdpredictedtarget0) + (stall fdpredictedtarget) + (t ffpredictedtarget))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf mwwrt mwdest mwregwrite mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf mwwrt mwdest mwregwrite mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a (dewrt0) dewrt0) + +(defun nextdewrt_a (initi dewrt0 squash stall fdwrt) + (cond (initi dewrt0) (squash nil) (t (and (not stall) fdwrt)))) + +(defun initdepredicteddirection_a (depredicteddirection0) + depredicteddirection0) + +(defun nextdepredicteddirection_a + (initi depredicteddirection0 stall depredicteddirection + fdpredicteddirection) + (cond + (initi depredicteddirection0) + (stall depredicteddirection) + (t fdpredicteddirection))) + +(defun initdepredictedtarget_a (depredictedtarget0) + depredictedtarget0) + +(defun nextdepredictedtarget_a + (initi depredictedtarget0 stall depredictedtarget + fdpredictedtarget) + (cond + (initi depredictedtarget0) + (stall depredictedtarget) + (t fdpredictedtarget))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a (emwrt0) emwrt0) + +(defun nextemwrt_a (initi emwrt0 squash dewrt) + (cond (initi emwrt0) (squash nil) (t dewrt))) + +(defun initemmispredictedtaken_a (emmispredictedtaken0) + emmispredictedtaken0) + +(defun nextemmispredictedtaken_a + (initi emmispredictedtaken0 mispredicted_taken) + (cond (initi emmispredictedtaken0) (t mispredicted_taken))) + +(defun initemmispredictednottaken_a (emmispredictednottaken0) + emmispredictednottaken0) + +(defun nextemmispredictednottaken_a + (initi emmispredictednottaken0 mispredicted_nottaken) + (cond (initi emmispredictednottaken0) (t mispredicted_nottaken))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 emwrt emmemwrite pdmem emresult emarg2) + (cond + (initi dmem0) + ((and emwrt emmemwrite) (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a (mmwrt0) mmwrt0) + +(defun nextmmwrt_a (initi mmwrt0 emwrt) + (cond (initi mmwrt0) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a (mwwrt0) mwwrt0) + +(defun nextmwwrt_a (initi mwwrt0 mmwrt) + (cond (initi mwwrt0) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 flush bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 fdpredicteddirection0 fdpredictedtarget0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash mem1_mispredicted)) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 mem1_mispredicted_taken emppc + mem1_mispredicted_nottaken emtargetpc stall flush ppc + if_predict_branch_taken predicted_target) + (nextbpstate_a initi bpstate0 stall bpstate) + (nextffpredicteddirection_a initi ffpredicteddirection0 + stall ffpredicteddirection if_predict_branch_taken) + (nextffpredictedtarget_a initi ffpredictedtarget0 stall + ffpredictedtarget predicted_target) + (nextffwrt_a initi ffwrt0 squash stall ffwrt flush) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi fdwrt0 squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextfdpredicteddirection_a initi fdpredicteddirection0 + stall fdpredicteddirection ffpredicteddirection) + (nextfdpredictedtarget_a initi fdpredictedtarget0 stall + fdpredictedtarget ffpredictedtarget) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf mwwrt mwdest + mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf mwwrt mwdest + mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi dewrt0 squash stall fdwrt) + (nextdepredicteddirection_a initi depredicteddirection0 + stall depredicteddirection fdpredicteddirection) + (nextdepredictedtarget_a initi depredictedtarget0 stall + depredictedtarget fdpredictedtarget) + (nextemppc_a initi emppc0 deppc) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi emwrt0 squash dewrt) + (nextemmispredictedtaken_a initi emmispredictedtaken0 + mispredicted_taken) + (nextemmispredictednottaken_a initi emmispredictednottaken0 + mispredicted_nottaken) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 emwrt emmemwrite pdmem emresult + emarg2) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi mmwrt0 emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi mwwrt0 mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 bpstate0 ffpredicteddirection0 ffpredictedtarget0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (bpstate (g 'bpstate impl)) + (ffpredicteddirection (g 'ffpredicteddirection impl)) + (ffpredictedtarget (g 'ffpredictedtarget impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) + (fdpredicteddirection (g 'fdpredicteddirection impl)) + (fdpredictedtarget (g 'fdpredictedtarget impl)) + (deppc (g 'deppc impl)) (desrc1 (g 'desrc1 impl)) + (desrc2 (g 'desrc2 impl)) (dearg1 (g 'dearg1 impl)) + (dearg2 (g 'dearg2 impl)) (dedest (g 'dedest impl)) + (deop (g 'deop impl)) (deimm (g 'deimm impl)) + (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (depredicteddirection (g 'depredicteddirection impl)) + (depredictedtarget (g 'depredictedtarget impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) + (emmispredictedtaken (g 'emmispredictedtaken impl)) + (emmispredictednottaken (g 'emmispredictednottaken impl)) + (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (predicted_direction (predictdirection bpstate)) + (predicted_target (predicttarget bpstate)) + (if_predict_branch_taken + (and (getisbranch if_inst) predicted_direction)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (equal_targetpc (equal ex_targetpc depredictedtarget)) + (equal_targetpc_bar (not equal_targetpc)) + (ex_predicteddirection depredicteddirection) + (mispredicted_nottaken_case1 + (and ex_is_taken_branch (not ex_predicteddirection))) + (mispredicted_nottaken_case2 + (and ex_is_taken_branch equal_targetpc_bar)) + (mispredicted_nottaken + (or mispredicted_nottaken_case1 + mispredicted_nottaken_case2)) + (mispredicted_taken + (and (and ex_predicteddirection deisbranch) + (not ex_is_taken_branch))) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (mem1_mispredicted_taken (and emmispredictedtaken emwrt)) + (mem1_mispredicted_nottaken + (and emmispredictednottaken emwrt)) + (mem1_mispredicted + (or mem1_mispredicted_nottaken mem1_mispredicted_taken)) + (squash mem1_mispredicted)) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initbpstate_a bpstate0) + (initffpredicteddirection_a ffpredicteddirection0) + (initffpredictedtarget_a ffpredictedtarget0) + (initffwrt_a ffwrt0) (initffinst_a ffinst0) + (initffppc_a ffppc0) (initprf_a prf) (initfdppc_a fdppc0) + (initfdwrt_a fdwrt0) (initfdinst_a fdinst0) + (initfdpredicteddirection_a fdpredicteddirection0) + (initfdpredictedtarget_a fdpredictedtarget0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a dewrt0) + (initdepredicteddirection_a depredicteddirection0) + (initdepredictedtarget_a depredictedtarget0) + (initemppc_a emppc0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a emwrt0) + (initemmispredictedtaken_a emmispredictedtaken0) + (initemmispredictednottaken_a emmispredictednottaken0) + (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a mmwrt0) + (initmmregwrite_a mmregwrite0) (initmwppc_a mwppc0) + (initmwval_a mwval0) (initmwdest_a mwdest0) + (initmwwrt_a mwwrt0) (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem initi) + (cons (s 0 nil (s 1 initi nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl impl.ppc isa is_taken_branch targetpc + spc) + (cond + (initi pc0) + (project_impl impl.ppc) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa (s 5 inst (s 6 regwrite (s 7 val nil)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmem isa memwrite sdmem result + arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmem) + ((and isa memwrite) (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl impl.ppc isa impl.prf dmem0 + impl.pdmem) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem initi) + (nextspc_a initi pc0 project_impl impl.ppc isa + is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmem isa + memwrite sdmem result arg2_temp))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st flush isa project_impl initi pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 impl.ppc impl.prf impl.pdmem) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 flush bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl impl.ppc + isa impl.prf dmem0 impl.pdmem))) + +(defun initialize_a + (st flush isa project_impl initi pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 bpstate0 + ffpredicteddirection0 ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 depredicteddirection0 depredictedtarget0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emmispredictedtaken0 emmispredictednottaken0 + emregwrite0 emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) + (integerp bpstate0) (integerp a) (integerp zero) + (booleanp ffwrt0) (booleanp fdwrt0) + (booleanp dewrt0) (booleanp emwrt0) + (booleanp mmwrt0) (booleanp mwwrt0) + (integerp fdbpstate0) + (booleanp fdpredicteddirection0) + (integerp fdpredictedtarget0) + (booleanp emmispredictednottaken0) + (integerp debpstate0) + (booleanp depredicteddirection0) + (integerp depredictedtarget0) + (booleanp emmispredictedtaken0) + (integerp embpstate0) (integerp mmbpstate0) + (integerp mwbpstate0) + (integerp ffpredictedtarget0) + (integerp ffbpstate0) + (booleanp ffpredicteddirection0) + (integerp emppc0) (integerp mmppc0) + (integerp mwppc0) (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (integerp a1) (integerp a2) (integerp d0) + (integerp d1) (integerp x0) (integerp fdop0) + (booleanp w0) (booleanp w1) (integerp fdsrc10) + (integerp fdsrc20) (integerp emdest0) + (integerp emval0) (integerp desrc10) + (integerp desrc20) (integerp fdinst0) + (integerp deimm0) (booleanp deuseimm0) + (booleanp dememtoreg0) (booleanp emmemtoreg0) + (integerp emimm0) (booleanp emuseimm0) + (booleanp dememwrite0) (booleanp emmemwrite0) + (integerp emarg20) (integerp ffinst0) + (integerp mmval0) (integerp mmdest0) + (booleanp mmregwrite0) (integerp mmresult0) + (booleanp mmmemwrite0) (integerp mmarg20)) + (let* ((st0 (initialize_a nil nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0)) + (st1 (simulate_a st0 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st0)) + (g 'prf (g 'impl st0)) + (g 'pdmem (g 'impl st0)))) + (st2 (simulate_a st1 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st1)) + (g 'prf (g 'impl st1)) + (g 'pdmem (g 'impl st1)))) + (st3 (simulate_a st2 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st2)) + (g 'prf (g 'impl st2)) + (g 'pdmem (g 'impl st2)))) + (st4 (simulate_a st3 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st3)) + (g 'prf (g 'impl st3)) + (g 'pdmem (g 'impl st3)))) + (st5 (simulate_a st4 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st4)) + (g 'prf (g 'impl st4)) + (g 'pdmem (g 'impl st4)))) + (st6 (simulate_a st5 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st5)) + (g 'prf (g 'impl st5)) + (g 'pdmem (g 'impl st5)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st6)) + (g 'fdwrt (g 'impl st6))) + (g 'dewrt (g 'impl st6))) + (g 'emwrt (g 'impl st6))) + (g 'mmwrt (g 'impl st6))) + (g 'mwwrt (g 'impl st6))))) + (st7 (simulate_a st6 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st6)) + (g 'prf (g 'impl st6)) + (g 'pdmem (g 'impl st6)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st7)) + (g 'fdwrt (g 'impl st7))) + (g 'dewrt (g 'impl st7))) + (g 'emwrt (g 'impl st7))) + (g 'mmwrt (g 'impl st7))) + (g 'mwwrt (g 'impl st7))))) + (st8 (simulate_a st7 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st7)) + (g 'prf (g 'impl st7)) + (g 'pdmem (g 'impl st7)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (st9 (simulate_a st8 nil nil t nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st8)) + (g 'prf (g 'impl st8)) + (g 'pdmem (g 'impl st8)))) + (s_pc0 (g 'spc (g 'spec st9))) + (s_rf0 (g 'srf (g 'spec st9))) + (s_dmem0 (g 'sdmem (g 'spec st9))) + (st10 (simulate_a st9 nil t nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st9)) + (g 'prf (g 'impl st9)) + (g 'pdmem (g 'impl st9)))) + (s_pc1 (g 'spc (g 'spec st10))) + (s_rf1 (g 'srf (g 'spec st10))) + (s_dmem1 (g 'sdmem (g 'spec st10))) + (st11 (simulate_a st10 nil nil nil t pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st10)) + (g 'prf (g 'impl st10)) + (g 'pdmem (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st11)) + (g 'prf (g 'impl st11)) + (g 'pdmem (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st12)) + (g 'prf (g 'impl st12)) + (g 'pdmem (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st13)) + (g 'prf (g 'impl st13)) + (g 'pdmem (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st14)) + (g 'prf (g 'impl st14)) + (g 'pdmem (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st15)) + (g 'prf (g 'impl st15)) + (g 'pdmem (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st16)) + (g 'prf (g 'impl st16)) + (g 'pdmem (g 'impl st16)))) + (t1 (g 'mwwrt (g 'impl st17))) + (st18 (simulate_a st17 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st17)) + (g 'prf (g 'impl st17)) + (g 'pdmem (g 'impl st17)))) + (t2 (g 'mwwrt (g 'impl st18))) + (st19 (simulate_a st18 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st18)) + (g 'prf (g 'impl st18)) + (g 'pdmem (g 'impl st18)))) + (t3 (g 'mwwrt (g 'impl st19))) + (st20 (simulate_a st19 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st19)) + (g 'prf (g 'impl st19)) + (g 'pdmem (g 'impl st19)))) + (t4 (g 'mwwrt (g 'impl st20))) + (st21 (simulate_a st20 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st20)) + (g 'prf (g 'impl st20)) + (g 'pdmem (g 'impl st20)))) + (t5 (g 'mwwrt (g 'impl st21))) + (st22 (simulate_a st21 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st21)) + (g 'prf (g 'impl st21)) + (g 'pdmem (g 'impl st21)))) + (t6 (g 'mwwrt (g 'impl st22))) + (rank_w (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 + (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))) + (t + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))))))) + (st23 (simulate_a st22 nil nil nil t pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st22)) + (g 'prf (g 'impl st22)) + (g 'pdmem (g 'impl st22)))) + (st24 (simulate_a st23 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st23)) + (g 'prf (g 'impl st23)) + (g 'pdmem (g 'impl st23)))) + (st25 (simulate_a st24 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st24)) + (g 'prf (g 'impl st24)) + (g 'pdmem (g 'impl st24)))) + (st26 (simulate_a st25 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st25)) + (g 'prf (g 'impl st25)) + (g 'pdmem (g 'impl st25)))) + (st27 (simulate_a st26 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st26)) + (g 'prf (g 'impl st26)) + (g 'pdmem (g 'impl st26)))) + (st28 (simulate_a st27 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st27)) + (g 'prf (g 'impl st27)) + (g 'pdmem (g 'impl st27)))) + (st29 (simulate_a st28 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st28)) + (g 'prf (g 'impl st28)) + (g 'pdmem (g 'impl st28)))) + (st30 (simulate_a st29 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st29)) + (g 'prf (g 'impl st29)) + (g 'pdmem (g 'impl st29)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30))) + (g 'dewrt (g 'impl st30))) + (g 'emwrt (g 'impl st30))) + (g 'mmwrt (g 'impl st30))) + (g 'mwwrt (g 'impl st30))))) + (st31 (simulate_a st30 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st30)) + (g 'prf (g 'impl st30)) + (g 'pdmem (g 'impl st30)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31))) + (g 'dewrt (g 'impl st31))) + (g 'emwrt (g 'impl st31))) + (g 'mmwrt (g 'impl st31))) + (g 'mwwrt (g 'impl st31))))) + (st32 (simulate_a st31 t nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st31)) + (g 'prf (g 'impl st31)) + (g 'pdmem (g 'impl st31)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (i_pc (g 'ppc (g 'impl st32))) + (i_rf (g 'prf (g 'impl st32))) + (i_dmem (g 'pdmem (g 'impl st32))) + (st33 (simulate_a st32 nil nil nil t pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st32)) + (g 'prf (g 'impl st32)) + (g 'pdmem (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st33)) + (g 'prf (g 'impl st33)) + (g 'pdmem (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st34)) + (g 'prf (g 'impl st34)) + (g 'pdmem (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st35)) + (g 'prf (g 'impl st35)) + (g 'pdmem (g 'impl st35)))) + (st37 (simulate_a st36 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st36)) + (g 'prf (g 'impl st36)) + (g 'pdmem (g 'impl st36)))) + (st38 (simulate_a st37 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st37)) + (g 'prf (g 'impl st37)) + (g 'pdmem (g 'impl st37)))) + (st39 (simulate_a st38 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st38)) + (g 'prf (g 'impl st38)) + (g 'pdmem (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st39)) + (g 'prf (g 'impl st39)) + (g 'pdmem (g 'impl st39)))) + (t1 (g 'mwwrt (g 'impl st40))) + (st41 (simulate_a st40 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st40)) + (g 'prf (g 'impl st40)) + (g 'pdmem (g 'impl st40)))) + (t2 (g 'mwwrt (g 'impl st41))) + (st42 (simulate_a st41 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st41)) + (g 'prf (g 'impl st41)) + (g 'pdmem (g 'impl st41)))) + (t3 (g 'mwwrt (g 'impl st42))) + (st43 (simulate_a st42 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st42)) + (g 'prf (g 'impl st42)) + (g 'pdmem (g 'impl st42)))) + (t4 (g 'mwwrt (g 'impl st43))) + (st44 (simulate_a st43 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st43)) + (g 'prf (g 'impl st43)) + (g 'pdmem (g 'impl st43)))) + (t5 (g 'mwwrt (g 'impl st44))) + (st45 (simulate_a st44 nil nil nil nil pc0 + bpstate0 ffpredicteddirection0 + ffpredictedtarget0 ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 + fdpredicteddirection0 + fdpredictedtarget0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 + depredicteddirection0 + depredictedtarget0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emmispredictedtaken0 + emmispredictednottaken0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st44)) + (g 'prf (g 'impl st44)) + (g 'pdmem (g 'impl st44)))) + (t6 (g 'mwwrt (g 'impl st45))) + (rank_v (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 + (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))) + (t + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))))))) + (or (and (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem)) + (and (and (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (< rank_v rank_w))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-safety.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-safety.lisp new file mode 100644 index 0000000..bce6825 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-safety.lisp @@ -0,0 +1,1580 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((and (and (g 2 (car prf)) (equal a (g 3 (car prf)))) + (g 4 (car prf))) + (g 5 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) + (cond + ((g 1 (car simem)) (imem0 a)) + (t (read-simem_a a (cdr simem))))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc ffwrt ffinst ffppc prf fdppc fdwrt fdinst deppc + desrc1 desrc2 dearg1 dearg2 dedest deop deimm deuseimm + deregwrite dememwrite dememtoreg deisbranch dewrt emppc + emis_taken_branch emtargetpc emarg2 emresult emdest + emwrt emregwrite emmemwrite emmemtoreg pdmemhist_2 + pdmemhist_1 pdmem mmppc mmval mmdest mmwrt mmregwrite + mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'ffwrt ffwrt 'ffinst ffinst 'ffppc + ffppc 'prf prf 'fdppc fdppc 'fdwrt fdwrt 'fdinst fdinst 'deppc + deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 dearg1 'dearg2 + dearg2 'dedest dedest 'deop deop 'deimm deimm 'deuseimm + deuseimm 'deregwrite deregwrite 'dememwrite dememwrite + 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt dewrt + 'emppc emppc 'emis_taken_branch emis_taken_branch 'emtargetpc + emtargetpc 'emarg2 emarg2 'emresult emresult 'emdest emdest + 'emwrt emwrt 'emregwrite emregwrite 'emmemwrite emmemwrite + 'emmemtoreg emmemtoreg 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 + pdmemhist_1 'pdmem pdmem 'mmppc mmppc 'mmval mmval 'mmdest + mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite 'mwppc mwppc 'mwval + mwval 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 mem1_is_taken_branch emtargetpc stall flush ppc) + (cond + (initi pc0) + (mem1_is_taken_branch emtargetpc) + ((or stall flush) ppc) + (t (add-1 ppc)))) + +(defun initffwrt_a (ffwrt0) ffwrt0) + +(defun nextffwrt_a (initi ffwrt0 squash stall ffwrt flush) + (cond (initi ffwrt0) (squash nil) (stall ffwrt) (flush nil) (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 mwwrt + (s 3 mwdest (s 4 mwregwrite (s 5 mwval nil)))))) + prf)) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a (fdwrt0) fdwrt0) + +(defun nextfdwrt_a (initi fdwrt0 squash stall fdwrt ffwrt) + (cond (initi fdwrt0) (squash nil) (stall fdwrt) (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf mwwrt mwdest mwregwrite mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf mwwrt mwdest mwregwrite mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a (dewrt0) dewrt0) + +(defun nextdewrt_a (initi dewrt0 squash stall fdwrt) + (cond (initi dewrt0) (squash nil) (t (and (not stall) fdwrt)))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a (emwrt0) emwrt0) + +(defun nextemwrt_a (initi emwrt0 squash dewrt) + (cond (initi emwrt0) (squash nil) (t dewrt))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 emwrt emmemwrite pdmem emresult emarg2) + (cond + (initi dmem0) + ((and emwrt emmemwrite) (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a (mmwrt0) mmwrt0) + +(defun nextmmwrt_a (initi mmwrt0 emwrt) + (cond (initi mmwrt0) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a (mwwrt0) mwwrt0) + +(defun nextmwwrt_a (initi mwwrt0 mmwrt) + (cond (initi mwwrt0) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 flush ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (squash mem1_is_taken_branch)) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 mem1_is_taken_branch emtargetpc stall + flush ppc) + (nextffwrt_a initi ffwrt0 squash stall ffwrt flush) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi fdwrt0 squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf mwwrt mwdest + mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf mwwrt mwdest + mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi dewrt0 squash stall fdwrt) + (nextemppc_a initi emppc0 deppc) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi emwrt0 squash dewrt) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 emwrt emmemwrite pdmem emresult + emarg2) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi mmwrt0 emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi mwwrt0 mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 dewrt0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emregwrite0 emmemwrite0 emmemtoreg0 dmem0 + mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (squash mem1_is_taken_branch)) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initffwrt_a ffwrt0) (initffinst_a ffinst0) + (initffppc_a ffppc0) (initprf_a prf) (initfdppc_a fdppc0) + (initfdwrt_a fdwrt0) (initfdinst_a fdinst0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a dewrt0) + (initemppc_a emppc0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a emwrt0) (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a mmwrt0) + (initmmregwrite_a mmregwrite0) (initmwppc_a mwppc0) + (initmwval_a mwval0) (initmwdest_a mwdest0) + (initmwwrt_a mwwrt0) (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem initi ) (cons (s 0 nil (s 1 initi nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl impl.ppc isa is_taken_branch targetpc + spc) + (cond + (initi pc0) + (project_impl impl.ppc) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa (s 5 inst (s 6 regwrite (s 7 val nil)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmem isa memwrite sdmem result + arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmem) + ((and isa memwrite) (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl impl.ppc isa impl.prf dmem0 + impl.pdmem) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem initi) + (nextspc_a initi pc0 project_impl impl.ppc isa + is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmem isa + memwrite sdmem result arg2_temp))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st flush isa project_impl initi pc0 ffwrt0 ffinst0 ffppc0 + fdppc0 fdwrt0 fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0 impl.ppc impl.prf + impl.pdmem) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 flush ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emwrt0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl impl.ppc + isa impl.prf dmem0 impl.pdmem))) + +(defun initialize_a + (st flush isa project_impl initi pc0 ffwrt0 ffinst0 ffppc0 + fdppc0 fdwrt0 fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 ffwrt0 ffinst0 ffppc0 fdppc0 + fdwrt0 fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp a) + (integerp zero) (booleanp ffwrt0) + (booleanp fdwrt0) (booleanp dewrt0) + (booleanp emwrt0) (booleanp mmwrt0) + (booleanp mwwrt0) (integerp emppc0) + (integerp mmppc0) (integerp mwppc0) + (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (booleanp stall0) (integerp a1) (integerp a2) + (integerp d0) (integerp d1) (integerp x0) + (integerp fdop0) (booleanp w0) (booleanp w1) + (integerp fdsrc10) (integerp fdsrc20) + (integerp emdest0) (integerp emval0) + (integerp desrc10) (integerp desrc20) + (integerp fdinst0) (integerp deimm0) + (booleanp deuseimm0) (booleanp dememtoreg0) + (booleanp emmemtoreg0) (integerp emimm0) + (booleanp emuseimm0) (booleanp dememwrite0) + (booleanp emmemwrite0) (integerp emarg20) + (integerp ffinst0) (integerp mmval0) + (integerp mmdest0) (booleanp mmregwrite0) + (integerp mmresult0) (booleanp mmmemwrite0) + (integerp mmarg20)) + (let* ((st0 (initialize_a nil nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0)) + (st1 (simulate_a st0 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st0)) + (g 'prf (g 'impl st0)) + (g 'pdmem (g 'impl st0)))) + (st2 (simulate_a st1 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st1)) + (g 'prf (g 'impl st1)) + (g 'pdmem (g 'impl st1)))) + (st3 (simulate_a st2 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st2)) + (g 'prf (g 'impl st2)) + (g 'pdmem (g 'impl st2)))) + (st4 (simulate_a st3 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st3)) + (g 'prf (g 'impl st3)) + (g 'pdmem (g 'impl st3)))) + (st5 (simulate_a st4 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st4)) + (g 'prf (g 'impl st4)) + (g 'pdmem (g 'impl st4)))) + (st6 (simulate_a st5 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st5)) + (g 'prf (g 'impl st5)) + (g 'pdmem (g 'impl st5)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st6)) + (g 'fdwrt (g 'impl st6))) + (g 'dewrt (g 'impl st6))) + (g 'emwrt (g 'impl st6))) + (g 'mmwrt (g 'impl st6))) + (g 'mwwrt (g 'impl st6))))) + (st7 (simulate_a st6 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st6)) + (g 'prf (g 'impl st6)) + (g 'pdmem (g 'impl st6)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st7)) + (g 'fdwrt (g 'impl st7))) + (g 'dewrt (g 'impl st7))) + (g 'emwrt (g 'impl st7))) + (g 'mmwrt (g 'impl st7))) + (g 'mwwrt (g 'impl st7))))) + (st8 (simulate_a st7 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st7)) + (g 'prf (g 'impl st7)) + (g 'pdmem (g 'impl st7)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (st9 (simulate_a st8 nil nil t nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st8)) + (g 'prf (g 'impl st8)) + (g 'pdmem (g 'impl st8)))) + (s_pc0 (g 'spc (g 'spec st9))) + (s_rf0 (g 'srf (g 'spec st9))) + (s_dmem0 (g 'sdmem (g 'spec st9))) + (st10 (simulate_a st9 nil t nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st9)) + (g 'prf (g 'impl st9)) + (g 'pdmem (g 'impl st9)))) + (s_pc1 (g 'spc (g 'spec st10))) + (s_rf1 (g 'srf (g 'spec st10))) + (s_dmem1 (g 'sdmem (g 'spec st10))) + (st11 (simulate_a st10 nil nil nil t pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st10)) + (g 'prf (g 'impl st10)) + (g 'pdmem (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st11)) + (g 'prf (g 'impl st11)) + (g 'pdmem (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st12)) + (g 'prf (g 'impl st12)) + (g 'pdmem (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st13)) + (g 'prf (g 'impl st13)) + (g 'pdmem (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st14)) + (g 'prf (g 'impl st14)) + (g 'pdmem (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st15)) + (g 'prf (g 'impl st15)) + (g 'pdmem (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st16)) + (g 'prf (g 'impl st16)) + (g 'pdmem (g 'impl st16)))) + (t1 (g 'mwwrt (g 'impl st17))) + (st18 (simulate_a st17 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st17)) + (g 'prf (g 'impl st17)) + (g 'pdmem (g 'impl st17)))) + (t2 (g 'mwwrt (g 'impl st18))) + (st19 (simulate_a st18 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 + fdwrt0 fdinst0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st18)) + (g 'prf (g 'impl st18)) + (g 'pdmem (g 'impl st18)))) + (t3 (g 'mwwrt (g 'impl st19))) + (st20 (simulate_a st19 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st19)) + (g 'prf (g 'impl st19)) + (g 'pdmem (g 'impl st19)))) + (t4 (g 'mwwrt (g 'impl st20))) + (st21 (simulate_a st20 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st20)) + (g 'prf (g 'impl st20)) + (g 'pdmem (g 'impl st20)))) + (t5 (g 'mwwrt (g 'impl st21))) + (st22 (simulate_a st21 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 + fdwrt0 fdinst0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st21)) + (g 'prf (g 'impl st21)) + (g 'pdmem (g 'impl st21)))) + (t6 (g 'mwwrt (g 'impl st22))) + (rank_w (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))) + (t (add-1 + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter)))))))))) + (st23 (simulate_a st22 nil nil nil t pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st22)) + (g 'prf (g 'impl st22)) + (g 'pdmem (g 'impl st22)))) + (st24 (simulate_a st23 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st23)) + (g 'prf (g 'impl st23)) + (g 'pdmem (g 'impl st23)))) + (st25 (simulate_a st24 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st24)) + (g 'prf (g 'impl st24)) + (g 'pdmem (g 'impl st24)))) + (st26 (simulate_a st25 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st25)) + (g 'prf (g 'impl st25)) + (g 'pdmem (g 'impl st25)))) + (st27 (simulate_a st26 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st26)) + (g 'prf (g 'impl st26)) + (g 'pdmem (g 'impl st26)))) + (st28 (simulate_a st27 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st27)) + (g 'prf (g 'impl st27)) + (g 'pdmem (g 'impl st27)))) + (st29 (simulate_a st28 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st28)) + (g 'prf (g 'impl st28)) + (g 'pdmem (g 'impl st28)))) + (st30 (simulate_a st29 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st29)) + (g 'prf (g 'impl st29)) + (g 'pdmem (g 'impl st29)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30))) + (g 'dewrt (g 'impl st30))) + (g 'emwrt (g 'impl st30))) + (g 'mmwrt (g 'impl st30))) + (g 'mwwrt (g 'impl st30))))) + (st31 (simulate_a st30 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st30)) + (g 'prf (g 'impl st30)) + (g 'pdmem (g 'impl st30)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31))) + (g 'dewrt (g 'impl st31))) + (g 'emwrt (g 'impl st31))) + (g 'mmwrt (g 'impl st31))) + (g 'mwwrt (g 'impl st31))))) + (st32 (simulate_a st31 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st31)) + (g 'prf (g 'impl st31)) + (g 'pdmem (g 'impl st31)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (i_pc (g 'ppc (g 'impl st32))) + (i_rf (g 'prf (g 'impl st32))) + (i_dmem (g 'pdmem (g 'impl st32))) + (st33 (simulate_a st32 nil nil nil t pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st32)) + (g 'prf (g 'impl st32)) + (g 'pdmem (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st33)) + (g 'prf (g 'impl st33)) + (g 'pdmem (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st34)) + (g 'prf (g 'impl st34)) + (g 'pdmem (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st35)) + (g 'prf (g 'impl st35)) + (g 'pdmem (g 'impl st35)))) + (st37 (simulate_a st36 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st36)) + (g 'prf (g 'impl st36)) + (g 'pdmem (g 'impl st36)))) + (st38 (simulate_a st37 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st37)) + (g 'prf (g 'impl st37)) + (g 'pdmem (g 'impl st37)))) + (st39 (simulate_a st38 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st38)) + (g 'prf (g 'impl st38)) + (g 'pdmem (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st39)) + (g 'prf (g 'impl st39)) + (g 'pdmem (g 'impl st39)))) + (t1 (g 'mwwrt (g 'impl st40))) + (st41 (simulate_a st40 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st40)) + (g 'prf (g 'impl st40)) + (g 'pdmem (g 'impl st40)))) + (t2 (g 'mwwrt (g 'impl st41))) + (st42 (simulate_a st41 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 + fdwrt0 fdinst0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st41)) + (g 'prf (g 'impl st41)) + (g 'pdmem (g 'impl st41)))) + (t3 (g 'mwwrt (g 'impl st42))) + (st43 (simulate_a st42 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st42)) + (g 'prf (g 'impl st42)) + (g 'pdmem (g 'impl st42)))) + (t4 (g 'mwwrt (g 'impl st43))) + (st44 (simulate_a st43 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st43)) + (g 'prf (g 'impl st43)) + (g 'pdmem (g 'impl st43)))) + (t5 (g 'mwwrt (g 'impl st44))) + (st45 (simulate_a st44 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 + fdwrt0 fdinst0 deppc0 desrc10 + desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 + mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st44)) + (g 'prf (g 'impl st44)) + (g 'pdmem (g 'impl st44)))) + (t6 (g 'mwwrt (g 'impl st45))) + (rank_v (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))) + (t (add-1 + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 counter))))))))))) + (or (and (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem)) + (and (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem))))) + :rule-classes nil) diff --git a/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs.lisp b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs.lisp new file mode 100644 index 0000000..9871d5b --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs.lisp @@ -0,0 +1,1590 @@ +(in-package "ACL2") +(include-book "../Supporting-Books/seq") +(include-book "../Supporting-Books/meta") +(include-book "../Supporting-Books/det-macros") +(include-book "../Supporting-Books/records") + +:set-ignore-ok t +:set-irrelevant-formals-ok t + + + +(defun equalb (a b) (equal a b)) + +(defun nequal (a b) (not (equal a b))) (defun add-1 (a) (+ a 1)) + +(defun sub-1 (a) (- a 1)) + +(encapsulate ((nextdmem (x3 x2 x1) t)) + (local (defun nextdmem (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm nextdmem-type (integerp (nextdmem x3 x2 x1)))) + +(encapsulate ((dmem_read (x2 x1) t)) + (local (defun dmem_read (x2 x1) + (declare (ignore x2) (ignore x1)) + 1)) + (defthm dmem_read-type (integerp (dmem_read x2 x1)))) + +(encapsulate ((rf0 (x1) t)) + (local (defun rf0 (x1) (declare (ignore x1)) 1)) + (defthm rf0-type (integerp (rf0 x1)))) + +(encapsulate ((imem0 (x1) t)) + (local (defun imem0 (x1) (declare (ignore x1)) 1)) + (defthm imem0-type (integerp (imem0 x1)))) + +(encapsulate ((src1 (x1) t)) + (local (defun src1 (x1) (declare (ignore x1)) 1)) + (defthm src1-type (integerp (src1 x1)))) + +(encapsulate ((src2 (x1) t)) + (local (defun src2 (x1) (declare (ignore x1)) 1)) + (defthm src2-type (integerp (src2 x1)))) + +(encapsulate ((opcode (x1) t)) + (local (defun opcode (x1) (declare (ignore x1)) 1)) + (defthm op-type (integerp (opcode x1)))) + +(encapsulate ((dest (x1) t)) + (local (defun dest (x1) (declare (ignore x1)) 1)) + (defthm dest-type (integerp (dest x1)))) + +(encapsulate ((alu (x3 x2 x1) t)) + (local (defun alu (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm alu-type (integerp (alu x3 x2 x1)))) + +(encapsulate ((getregwrite (x1) t)) + (local (defun getregwrite (x1) (declare (ignore x1)) nil)) + (defthm getregwrite-type (booleanp (getregwrite x1)))) + +(encapsulate ((getmemtoreg (x1) t)) + (local (defun getmemtoreg (x1) (declare (ignore x1)) nil)) + (defthm getmemtoreg-type (booleanp (getmemtoreg x1)))) + +(encapsulate ((getuseimm (x1) t)) + (local (defun getuseimm (x1) (declare (ignore x1)) nil)) + (defthm getuseimm-type (booleanp (getuseimm x1)))) + +(encapsulate ((getimm (x1) t)) + (local (defun getimm (x1) (declare (ignore x1)) 1)) + (defthm getimm-type (integerp (getimm x1)))) + +(encapsulate ((getmemwrite (x1) t)) + (local (defun getmemwrite (x1) (declare (ignore x1)) nil)) + (defthm getmemwrite-type (booleanp (getmemwrite x1)))) + +(encapsulate ((getisbranch (x1) t)) + (local (defun getisbranch (x1) (declare (ignore x1)) nil)) + (defthm getisbranch-type (booleanp (getisbranch x1)))) + +(encapsulate ((takebranch (x3 x2 x1) t)) + (local (defun takebranch (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + nil)) + (defthm takebranch-type (booleanp (takebranch x3 x2 x1)))) + +(encapsulate ((selecttargetpc (x3 x2 x1) t)) + (local (defun selecttargetpc (x3 x2 x1) + (declare (ignore x3) (ignore x2) (ignore x1)) + 1)) + (defthm selecttargetpc-type (integerp (selecttargetpc x3 x2 x1)))) + +(defun read-pimem_a (a pimem) + (declare (xargs :measure (acl2-count pimem))) + (if (endp pimem) (imem0 a) + (if (g 0 (car pimem)) (imem0 a) (read-pimem_a a (cdr pimem))))) + +(defun read-prf_a (a prf) + (declare (xargs :measure (acl2-count prf))) + (if (endp prf) (rf0 a) + (if (g 0 (car prf)) (rf0 a) + (cond + ((g 1 (car prf)) (rf0 a)) + ((and (and (g 2 (car prf)) (equal a (g 3 (car prf)))) + (g 4 (car prf))) + (g 5 (car prf))) + (t (read-prf_a a (cdr prf))))))) + +(defun read-simem_a (a simem) + (declare (xargs :measure (acl2-count simem))) + (if (endp simem) (imem0 a) + (if (g 0 (car simem)) (imem0 a) + (cond + ((g 1 (car simem)) (imem0 a)) + (t (read-simem_a a (cdr simem))))))) + +(defun read-srf_a (a srf) + (declare (xargs :measure (acl2-count srf))) + (if (endp srf) (rf0 a) + (if (g 0 (car srf)) (rf0 a) + (cond + ((g 1 (car srf)) (rf0 a)) + ((g 2 (car srf)) (read-prf_a a (g 3 (car srf)))) + ((and (and (g 4 (car srf)) + (equal a (dest (g 5 (car srf))))) + (g 6 (car srf))) + (g 7 (car srf))) + (t (read-srf_a a (cdr srf))))))) + +(defun u-state_a (impl spec) (seq nil 'impl impl 'spec spec)) + +(defun impl-state_a + (pimem ppc ffwrt ffinst ffppc prf fdppc fdwrt fdinst deppc + desrc1 desrc2 dearg1 dearg2 dedest deop deimm deuseimm + deregwrite dememwrite dememtoreg deisbranch dewrt emppc + emis_taken_branch emtargetpc emarg2 emresult emdest + emwrt emregwrite emmemwrite emmemtoreg pdmemhist_2 + pdmemhist_1 pdmem mmppc mmval mmdest mmwrt mmregwrite + mwppc mwval mwdest mwwrt mwregwrite) + (seq nil 'pimem pimem 'ppc ppc 'ffwrt ffwrt 'ffinst ffinst 'ffppc + ffppc 'prf prf 'fdppc fdppc 'fdwrt fdwrt 'fdinst fdinst 'deppc + deppc 'desrc1 desrc1 'desrc2 desrc2 'dearg1 dearg1 'dearg2 + dearg2 'dedest dedest 'deop deop 'deimm deimm 'deuseimm + deuseimm 'deregwrite deregwrite 'dememwrite dememwrite + 'dememtoreg dememtoreg 'deisbranch deisbranch 'dewrt dewrt + 'emppc emppc 'emis_taken_branch emis_taken_branch 'emtargetpc + emtargetpc 'emarg2 emarg2 'emresult emresult 'emdest emdest + 'emwrt emwrt 'emregwrite emregwrite 'emmemwrite emmemwrite + 'emmemtoreg emmemtoreg 'pdmemhist_2 pdmemhist_2 'pdmemhist_1 + pdmemhist_1 'pdmem pdmem 'mmppc mmppc 'mmval mmval 'mmdest + mmdest 'mmwrt mmwrt 'mmregwrite mmregwrite 'mwppc mwppc 'mwval + mwval 'mwdest mwdest 'mwwrt mwwrt 'mwregwrite mwregwrite)) + +(defun initpimem_a (pimem) (cons (s 0 t (s 1 nil nil)) pimem)) + +(defun nextpimem_a (pimem) (cons (s 0 nil (s 1 nil nil)) pimem)) + +(defun initppc_a (pc0) pc0) + +(defun nextppc_a + (initi pc0 mem1_is_taken_branch emtargetpc stall flush ppc) + (cond + (initi pc0) + (mem1_is_taken_branch emtargetpc) + ((or stall flush) ppc) + (t (add-1 ppc)))) + +(defun initffwrt_a (ffwrt0) ffwrt0) + +(defun nextffwrt_a (initi ffwrt0 squash stall ffwrt flush) + (cond (initi ffwrt0) (squash nil) (stall ffwrt) (flush nil) (t t))) + +(defun initffinst_a (ffinst0) ffinst0) + +(defun nextffinst_a (initi ffinst0 stall ffinst if_inst) + (cond (initi ffinst0) (stall ffinst) (t if_inst))) + +(defun initffppc_a (ffppc0) ffppc0) + +(defun nextffppc_a (initi ffppc0 stall ffppc ppc) + (cond (initi ffppc0) (stall ffppc) (t ppc))) + +(defun initprf_a (prf) (cons (s 0 t (s 1 nil nil)) prf)) + +(defun nextprf_a (prf initi mwwrt mwdest mwregwrite mwval) + (cons (s 0 nil + (s 1 initi + (s 2 mwwrt + (s 3 mwdest (s 4 mwregwrite (s 5 mwval nil)))))) + prf)) + +(defun initfdppc_a (fdppc0) fdppc0) + +(defun nextfdppc_a (initi fdppc0 stall fdppc ffppc) + (cond (initi fdppc0) (stall fdppc) (t ffppc))) + +(defun initfdwrt_a (fdwrt0) fdwrt0) + +(defun nextfdwrt_a (initi fdwrt0 squash stall fdwrt ffwrt) + (cond (initi fdwrt0) (squash nil) (stall fdwrt) (t ffwrt))) + +(defun initfdinst_a (fdinst0) fdinst0) + +(defun nextfdinst_a (initi fdinst0 stall fdinst ffinst) + (cond (initi fdinst0) (stall fdinst) (t ffinst))) + +(defun initdeppc_a (deppc0) deppc0) + +(defun nextdeppc_a (initi deppc0 fdppc) + (cond (initi deppc0) (t fdppc))) + +(defun initdesrc1_a (desrc10) desrc10) + +(defun nextdesrc1_a (initi desrc10 if_id_src1) + (cond (initi desrc10) (t if_id_src1))) + +(defun initdesrc2_a (desrc20) desrc20) + +(defun nextdesrc2_a (initi desrc20 if_id_src2) + (cond (initi desrc20) (t if_id_src2))) + +(defun initdearg1_a (a1) a1) + +(defun nextdearg1_a + (initi a1 if_id_src1 prf mwwrt mwdest mwregwrite mwval) + (cond + (initi a1) + (t (read-prf_a if_id_src1 + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval))))) + +(defun initdearg2_a (a2) a2) + +(defun nextdearg2_a + (initi a2 if_id_src2 prf mwwrt mwdest mwregwrite mwval) + (cond + (initi a2) + (t (read-prf_a if_id_src2 + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval))))) + +(defun initdedest_a (dedest0) dedest0) + +(defun nextdedest_a (initi dedest0 fdinst) + (cond (initi dedest0) (t (dest fdinst)))) + +(defun initdeop_a (deop0) deop0) + +(defun nextdeop_a (initi deop0 fdinst) + (cond (initi deop0) (t (opcode fdinst)))) + +(defun initdeimm_a (deimm0) deimm0) + +(defun nextdeimm_a (initi deimm0 fdinst) + (cond (initi deimm0) (t (getimm fdinst)))) + +(defun initdeuseimm_a (deuseimm0) deuseimm0) + +(defun nextdeuseimm_a (initi deuseimm0 fdinst) + (cond (initi deuseimm0) (t (getuseimm fdinst)))) + +(defun initderegwrite_a (deregwrite0) deregwrite0) + +(defun nextderegwrite_a (initi deregwrite0 id_regwrite) + (cond (initi deregwrite0) (t id_regwrite))) + +(defun initdememwrite_a (dememwrite0) dememwrite0) + +(defun nextdememwrite_a (initi dememwrite0 id_memwrite) + (cond (initi dememwrite0) (t id_memwrite))) + +(defun initdememtoreg_a (dememtoreg0) dememtoreg0) + +(defun nextdememtoreg_a (initi dememtoreg0 fdinst) + (cond (initi dememtoreg0) (t (getmemtoreg fdinst)))) + +(defun initdeisbranch_a (deisbranch0) deisbranch0) + +(defun nextdeisbranch_a (initi deisbranch0 fdinst) + (cond (initi deisbranch0) (t (getisbranch fdinst)))) + +(defun initdewrt_a (dewrt0) dewrt0) + +(defun nextdewrt_a (initi dewrt0 squash stall fdwrt) + (cond (initi dewrt0) (squash nil) (t (and (not stall) fdwrt)))) + +(defun initemppc_a (emppc0) emppc0) + +(defun nextemppc_a (initi emppc0 deppc) + (cond (initi emppc0) (t deppc))) + +(defun initemis_taken_branch_a (emis_taken_branch0) + emis_taken_branch0) + +(defun nextemis_taken_branch_a + (initi emis_taken_branch0 ex_is_taken_branch) + (cond (initi emis_taken_branch0) (t ex_is_taken_branch))) + +(defun initemtargetpc_a (emtargetpc0) emtargetpc0) + +(defun nextemtargetpc_a (initi emtargetpc0 ex_targetpc) + (cond (initi emtargetpc0) (t ex_targetpc))) + +(defun initemarg2_a (emarg20) emarg20) + +(defun nextemarg2_a (initi emarg20 ex_fwd_src2) + (cond (initi emarg20) (t ex_fwd_src2))) + +(defun initemresult_a (emresult0) emresult0) + +(defun nextemresult_a (initi emresult0 ex_result) + (cond (initi emresult0) (t ex_result))) + +(defun initemdest_a (emdest0) emdest0) + +(defun nextemdest_a (initi emdest0 dedest) + (cond (initi emdest0) (t dedest))) + +(defun initemwrt_a (emwrt0) emwrt0) + +(defun nextemwrt_a (initi emwrt0 squash dewrt) + (cond (initi emwrt0) (squash nil) (t dewrt))) + +(defun initemregwrite_a (emregwrite0) emregwrite0) + +(defun nextemregwrite_a (initi emregwrite0 deregwrite) + (cond (initi emregwrite0) (t deregwrite))) + +(defun initemmemwrite_a (emmemwrite0) emmemwrite0) + +(defun nextemmemwrite_a (initi emmemwrite0 dememwrite) + (cond (initi emmemwrite0) (t dememwrite))) + +(defun initemmemtoreg_a (emmemtoreg0) emmemtoreg0) + +(defun nextemmemtoreg_a (initi emmemtoreg0 dememtoreg) + (cond (initi emmemtoreg0) (t dememtoreg))) + +(defun initpdmemhist_2_a (dmem0) dmem0) + +(defun nextpdmemhist_2_a (initi dmem0 pdmemhist_1) + (cond (initi dmem0) (t pdmemhist_1))) + +(defun initpdmemhist_1_a (dmem0) dmem0) + +(defun nextpdmemhist_1_a (initi dmem0 pdmem) + (cond (initi dmem0) (t pdmem))) + +(defun initpdmem_a (dmem0) dmem0) + +(defun nextpdmem_a + (initi dmem0 emwrt emmemwrite pdmem emresult emarg2) + (cond + (initi dmem0) + ((and emwrt emmemwrite) (nextdmem pdmem emresult emarg2)) + (t pdmem))) + +(defun initmmppc_a (mmppc0) mmppc0) + +(defun nextmmppc_a (initi mmppc0 emppc) + (cond (initi mmppc0) (t emppc))) + +(defun initmmval_a (mmval0) mmval0) + +(defun nextmmval_a (initi mmval0 emmemtoreg mem1_readdata emresult) + (cond (initi mmval0) (emmemtoreg mem1_readdata) (t emresult))) + +(defun initmmdest_a (mmdest0) mmdest0) + +(defun nextmmdest_a (initi mmdest0 emdest) + (cond (initi mmdest0) (t emdest))) + +(defun initmmwrt_a (mmwrt0) mmwrt0) + +(defun nextmmwrt_a (initi mmwrt0 emwrt) + (cond (initi mmwrt0) (t emwrt))) + +(defun initmmregwrite_a (mmregwrite0) mmregwrite0) + +(defun nextmmregwrite_a (initi mmregwrite0 emregwrite) + (cond (initi mmregwrite0) (t emregwrite))) + +(defun initmwppc_a (mwppc0) mwppc0) + +(defun nextmwppc_a (initi mwppc0 mmppc) + (cond (initi mwppc0) (t mmppc))) + +(defun initmwval_a (mwval0) mwval0) + +(defun nextmwval_a (initi mwval0 mmval) + (cond (initi mwval0) (t mmval))) + +(defun initmwdest_a (mwdest0) mwdest0) + +(defun nextmwdest_a (initi mwdest0 mmdest) + (cond (initi mwdest0) (t mmdest))) + +(defun initmwwrt_a (mwwrt0) mwwrt0) + +(defun nextmwwrt_a (initi mwwrt0 mmwrt) + (cond (initi mwwrt0) (t mmwrt))) + +(defun initmwregwrite_a (mwregwrite0) mwregwrite0) + +(defun nextmwregwrite_a (initi mwregwrite0 mmregwrite) + (cond (initi mwregwrite0) (t mmregwrite))) + +(defun impl-simulate_a + (impl initi pc0 flush ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 + deuseimm0 deregwrite0 dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 emtargetpc0 emarg20 + emresult0 emdest0 emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (squash mem1_is_taken_branch)) + (impl-state_a (nextpimem_a pimem) + (nextppc_a initi pc0 mem1_is_taken_branch emtargetpc stall + flush ppc) + (nextffwrt_a initi ffwrt0 squash stall ffwrt flush) + (nextffinst_a initi ffinst0 stall ffinst if_inst) + (nextffppc_a initi ffppc0 stall ffppc ppc) + (nextprf_a prf initi mwwrt mwdest mwregwrite mwval) + (nextfdppc_a initi fdppc0 stall fdppc ffppc) + (nextfdwrt_a initi fdwrt0 squash stall fdwrt ffwrt) + (nextfdinst_a initi fdinst0 stall fdinst ffinst) + (nextdeppc_a initi deppc0 fdppc) + (nextdesrc1_a initi desrc10 if_id_src1) + (nextdesrc2_a initi desrc20 if_id_src2) + (nextdearg1_a initi a1 if_id_src1 prf mwwrt mwdest + mwregwrite mwval) + (nextdearg2_a initi a2 if_id_src2 prf mwwrt mwdest + mwregwrite mwval) + (nextdedest_a initi dedest0 fdinst) + (nextdeop_a initi deop0 fdinst) + (nextdeimm_a initi deimm0 fdinst) + (nextdeuseimm_a initi deuseimm0 fdinst) + (nextderegwrite_a initi deregwrite0 id_regwrite) + (nextdememwrite_a initi dememwrite0 id_memwrite) + (nextdememtoreg_a initi dememtoreg0 fdinst) + (nextdeisbranch_a initi deisbranch0 fdinst) + (nextdewrt_a initi dewrt0 squash stall fdwrt) + (nextemppc_a initi emppc0 deppc) + (nextemis_taken_branch_a initi emis_taken_branch0 + ex_is_taken_branch) + (nextemtargetpc_a initi emtargetpc0 ex_targetpc) + (nextemarg2_a initi emarg20 ex_fwd_src2) + (nextemresult_a initi emresult0 ex_result) + (nextemdest_a initi emdest0 dedest) + (nextemwrt_a initi emwrt0 squash dewrt) + (nextemregwrite_a initi emregwrite0 deregwrite) + (nextemmemwrite_a initi emmemwrite0 dememwrite) + (nextemmemtoreg_a initi emmemtoreg0 dememtoreg) + (nextpdmemhist_2_a initi dmem0 pdmemhist_1) + (nextpdmemhist_1_a initi dmem0 pdmem) + (nextpdmem_a initi dmem0 emwrt emmemwrite pdmem emresult + emarg2) + (nextmmppc_a initi mmppc0 emppc) + (nextmmval_a initi mmval0 emmemtoreg mem1_readdata emresult) + (nextmmdest_a initi mmdest0 emdest) + (nextmmwrt_a initi mmwrt0 emwrt) + (nextmmregwrite_a initi mmregwrite0 emregwrite) + (nextmwppc_a initi mwppc0 mmppc) + (nextmwval_a initi mwval0 mmval) + (nextmwdest_a initi mwdest0 mmdest) + (nextmwwrt_a initi mwwrt0 mmwrt) + (nextmwregwrite_a initi mwregwrite0 mmregwrite))))) + +(defun impl-initialize_a + (impl pc0 ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 deppc0 + desrc10 desrc20 a1 a2 dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 deisbranch0 dewrt0 + emppc0 emis_taken_branch0 emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emregwrite0 emmemwrite0 emmemtoreg0 dmem0 + mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 mwppc0 mwval0 + mwdest0 mwwrt0 mwregwrite0) + (let* ((pimem (g 'pimem impl)) (ppc (g 'ppc impl)) + (ffwrt (g 'ffwrt impl)) (ffinst (g 'ffinst impl)) + (ffppc (g 'ffppc impl)) (prf (g 'prf impl)) + (fdppc (g 'fdppc impl)) (fdwrt (g 'fdwrt impl)) + (fdinst (g 'fdinst impl)) (deppc (g 'deppc impl)) + (desrc1 (g 'desrc1 impl)) (desrc2 (g 'desrc2 impl)) + (dearg1 (g 'dearg1 impl)) (dearg2 (g 'dearg2 impl)) + (dedest (g 'dedest impl)) (deop (g 'deop impl)) + (deimm (g 'deimm impl)) (deuseimm (g 'deuseimm impl)) + (deregwrite (g 'deregwrite impl)) + (dememwrite (g 'dememwrite impl)) + (dememtoreg (g 'dememtoreg impl)) + (deisbranch (g 'deisbranch impl)) (dewrt (g 'dewrt impl)) + (emppc (g 'emppc impl)) + (emis_taken_branch (g 'emis_taken_branch impl)) + (emtargetpc (g 'emtargetpc impl)) (emarg2 (g 'emarg2 impl)) + (emresult (g 'emresult impl)) (emdest (g 'emdest impl)) + (emwrt (g 'emwrt impl)) (emregwrite (g 'emregwrite impl)) + (emmemwrite (g 'emmemwrite impl)) + (emmemtoreg (g 'emmemtoreg impl)) + (pdmemhist_2 (g 'pdmemhist_2 impl)) + (pdmemhist_1 (g 'pdmemhist_1 impl)) (pdmem (g 'pdmem impl)) + (mmppc (g 'mmppc impl)) (mmval (g 'mmval impl)) + (mmdest (g 'mmdest impl)) (mmwrt (g 'mmwrt impl)) + (mmregwrite (g 'mmregwrite impl)) (mwppc (g 'mwppc impl)) + (mwval (g 'mwval impl)) (mwdest (g 'mwdest impl)) + (mwwrt (g 'mwwrt impl)) (mwregwrite (g 'mwregwrite impl))) + (let* ((if_inst (read-pimem_a ppc pimem)) + (if_id_src1 (src1 fdinst)) (if_id_src2 (src2 fdinst)) + (stall (and (and deregwrite dewrt) + (or (equal if_id_src1 dedest) + (equal if_id_src2 dedest)))) + (id_regwrite (getregwrite fdinst)) + (id_memwrite (getmemwrite fdinst)) + (ex_wb_equal_src1 + (and (and mwwrt (equal desrc1 mwdest)) mwregwrite)) + (ex_wb_equal_src2 + (and (and mwwrt (equal desrc2 mwdest)) mwregwrite)) + (ex_mem2_equal_src1 + (and (and mmwrt (equal desrc1 mmdest)) mmregwrite)) + (ex_mem2_equal_src2 + (and (and mmwrt (equal desrc2 mmdest)) mmregwrite)) + (ex_fwd_src1 + (cond + (ex_mem2_equal_src1 mmval) + (ex_wb_equal_src1 mwval) + (t dearg1))) + (ex_fwd_src2 + (cond + (ex_mem2_equal_src2 mmval) + (ex_wb_equal_src2 mwval) + (t dearg2))) + (ex_data2 (cond (deuseimm deimm) (t ex_fwd_src2))) + (ex_result (alu deop ex_fwd_src1 ex_data2)) + (ex_is_taken_branch_temp + (takebranch deop ex_fwd_src1 ex_fwd_src2)) + (ex_is_taken_branch + (and (and ex_is_taken_branch_temp dewrt) deisbranch)) + (ex_targetpc (selecttargetpc deop ex_fwd_src1 deppc)) + (mem1_readdata (dmem_read pdmem emresult)) + (mem1_is_taken_branch (and emwrt emis_taken_branch)) + (squash mem1_is_taken_branch)) + (impl-state_a (initpimem_a pimem) (initppc_a pc0) + (initffwrt_a ffwrt0) (initffinst_a ffinst0) + (initffppc_a ffppc0) (initprf_a prf) (initfdppc_a fdppc0) + (initfdwrt_a fdwrt0) (initfdinst_a fdinst0) + (initdeppc_a deppc0) (initdesrc1_a desrc10) + (initdesrc2_a desrc20) (initdearg1_a a1) (initdearg2_a a2) + (initdedest_a dedest0) (initdeop_a deop0) + (initdeimm_a deimm0) (initdeuseimm_a deuseimm0) + (initderegwrite_a deregwrite0) + (initdememwrite_a dememwrite0) + (initdememtoreg_a dememtoreg0) + (initdeisbranch_a deisbranch0) (initdewrt_a dewrt0) + (initemppc_a emppc0) + (initemis_taken_branch_a emis_taken_branch0) + (initemtargetpc_a emtargetpc0) (initemarg2_a emarg20) + (initemresult_a emresult0) (initemdest_a emdest0) + (initemwrt_a emwrt0) (initemregwrite_a emregwrite0) + (initemmemwrite_a emmemwrite0) + (initemmemtoreg_a emmemtoreg0) (initpdmemhist_2_a dmem0) + (initpdmemhist_1_a dmem0) (initpdmem_a dmem0) + (initmmppc_a mmppc0) (initmmval_a mmval0) + (initmmdest_a mmdest0) (initmmwrt_a mmwrt0) + (initmmregwrite_a mmregwrite0) (initmwppc_a mwppc0) + (initmwval_a mwval0) (initmwdest_a mwdest0) + (initmwwrt_a mwwrt0) (initmwregwrite_a mwregwrite0))))) + +(defun spec-state_a (simem spc srf sdmem) + (seq nil 'simem simem 'spc spc 'srf srf 'sdmem sdmem)) + +(defun initsimem_a (simem) (cons (s 0 t (s 1 nil nil)) simem)) + +(defun nextsimem_a (simem initi ) (cons (s 0 nil (s 1 initi nil)) simem)) + +(defun initspc_a (pc0) pc0) + +(defun nextspc_a + (initi pc0 project_impl impl.ppc isa is_taken_branch targetpc + spc) + (cond + (initi pc0) + (project_impl impl.ppc) + ((and isa is_taken_branch) targetpc) + (isa (add-1 spc)) + (t spc))) + +(defun initsrf_a (srf) (cons (s 0 t (s 1 nil nil)) srf)) + +(defun nextsrf_a + (srf initi project_impl impl.prf isa inst regwrite val) + (cons (s 0 nil + (s 1 initi + (s 2 project_impl + (s 3 impl.prf + (s 4 isa (s 5 inst (s 6 regwrite (s 7 val nil)))))))) + srf)) + +(defun initsdmem_a (dmem0) dmem0) + +(defun nextsdmem_a + (initi dmem0 project_impl impl.pdmem isa memwrite sdmem result + arg2_temp) + (cond + (initi dmem0) + (project_impl impl.pdmem) + ((and isa memwrite) (nextdmem sdmem result arg2_temp)) + (t sdmem))) + +(defun spec-simulate_a + (spec initi pc0 project_impl impl.ppc isa impl.prf dmem0 + impl.pdmem) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (nextsimem_a simem initi) + (nextspc_a initi pc0 project_impl impl.ppc isa + is_taken_branch targetpc spc) + (nextsrf_a srf initi project_impl impl.prf isa inst regwrite + val) + (nextsdmem_a initi dmem0 project_impl impl.pdmem isa + memwrite sdmem result arg2_temp))))) + +(defun spec-initialize_a (spec pc0 dmem0) + (let* ((simem (g 'simem spec)) (spc (g 'spc spec)) + (srf (g 'srf spec)) (sdmem (g 'sdmem spec))) + (let* ((inst (read-simem_a spc simem)) + (regwrite (getregwrite inst)) (memtoreg (getmemtoreg inst)) + (memwrite (getmemwrite inst)) (isbranch (getisbranch inst)) + (useimm (getuseimm inst)) (imm (getimm inst)) + (arg1 (read-srf_a (src1 inst) srf)) + (arg2_temp (read-srf_a (src2 inst) srf)) + (arg2 (cond (useimm imm) (t arg2_temp))) + (result (alu (opcode inst) arg1 arg2)) + (is_taken_branch_temp + (takebranch (opcode inst) arg1 arg2_temp)) + (is_taken_branch (and is_taken_branch_temp isbranch)) + (targetpc (selecttargetpc (opcode inst) arg1 spc)) + (readdata (dmem_read sdmem result)) + (val (cond (memtoreg readdata) (t result)))) + (spec-state_a (initsimem_a simem) (initspc_a pc0) + (initsrf_a srf) (initsdmem_a dmem0))))) + +(defun simulate_a + (st flush isa project_impl initi pc0 ffwrt0 ffinst0 ffppc0 + fdppc0 fdwrt0 fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0 impl.ppc impl.prf + impl.pdmem) + (u-state_a + (impl-simulate_a (g 'impl st) initi pc0 flush ffwrt0 ffinst0 + ffppc0 fdppc0 fdwrt0 fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 + dememtoreg0 deisbranch0 dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 emwrt0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (spec-simulate_a (g 'spec st) initi pc0 project_impl impl.ppc + isa impl.prf dmem0 impl.pdmem))) + +(defun initialize_a + (st flush isa project_impl initi pc0 ffwrt0 ffinst0 ffppc0 + fdppc0 fdwrt0 fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (u-state_a + (impl-initialize_a (g 'impl st) pc0 ffwrt0 ffinst0 ffppc0 fdppc0 + fdwrt0 fdinst0 deppc0 desrc10 desrc20 a1 a2 dedest0 deop0 + deimm0 deuseimm0 deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 mwregwrite0) + (spec-initialize_a (g 'spec st) pc0 dmem0))) + +(defthm web_core_a + (implies (and (integerp pc0) (integerp dmem0) (integerp a) + (integerp zero) (booleanp ffwrt0) + (booleanp fdwrt0) (booleanp dewrt0) + (booleanp emwrt0) (booleanp mmwrt0) + (booleanp mwwrt0) (integerp emppc0) + (integerp mmppc0) (integerp mwppc0) + (booleanp deisbranch0) + (booleanp emis_taken_branch0) + (integerp emtargetpc0) (integerp ffppc0) + (integerp fdppc0) (integerp deppc0) + (integerp mwval0) (integerp emresult0) + (booleanp deregwrite0) (booleanp emregwrite0) + (booleanp mwregwrite0) (integerp mwdest0) + (integerp deop0) (integerp fddest0) + (integerp dedest0) (integerp op0) (integerp s0) + (booleanp stall0) (integerp a1) (integerp a2) + (integerp d0) (integerp d1) (integerp x0) + (integerp fdop0) (booleanp w0) (booleanp w1) + (integerp fdsrc10) (integerp fdsrc20) + (integerp emdest0) (integerp emval0) + (integerp desrc10) (integerp desrc20) + (integerp fdinst0) (integerp deimm0) + (booleanp deuseimm0) (booleanp dememtoreg0) + (booleanp emmemtoreg0) (integerp emimm0) + (booleanp emuseimm0) (booleanp dememwrite0) + (booleanp emmemwrite0) (integerp emarg20) + (integerp ffinst0) (integerp mmval0) + (integerp mmdest0) (booleanp mmregwrite0) + (integerp mmresult0) (booleanp mmmemwrite0) + (integerp mmarg20)) + (let* ((st0 (initialize_a nil nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0)) + (st1 (simulate_a st0 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st0)) + (g 'prf (g 'impl st0)) + (g 'pdmem (g 'impl st0)))) + (st2 (simulate_a st1 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st1)) + (g 'prf (g 'impl st1)) + (g 'pdmem (g 'impl st1)))) + (st3 (simulate_a st2 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st2)) + (g 'prf (g 'impl st2)) + (g 'pdmem (g 'impl st2)))) + (st4 (simulate_a st3 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st3)) + (g 'prf (g 'impl st3)) + (g 'pdmem (g 'impl st3)))) + (st5 (simulate_a st4 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st4)) + (g 'prf (g 'impl st4)) + (g 'pdmem (g 'impl st4)))) + (st6 (simulate_a st5 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st5)) + (g 'prf (g 'impl st5)) + (g 'pdmem (g 'impl st5)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st6)) + (g 'fdwrt (g 'impl st6))) + (g 'dewrt (g 'impl st6))) + (g 'emwrt (g 'impl st6))) + (g 'mmwrt (g 'impl st6))) + (g 'mwwrt (g 'impl st6))))) + (st7 (simulate_a st6 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st6)) + (g 'prf (g 'impl st6)) + (g 'pdmem (g 'impl st6)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st7)) + (g 'fdwrt (g 'impl st7))) + (g 'dewrt (g 'impl st7))) + (g 'emwrt (g 'impl st7))) + (g 'mmwrt (g 'impl st7))) + (g 'mwwrt (g 'impl st7))))) + (st8 (simulate_a st7 t nil nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st7)) + (g 'prf (g 'impl st7)) + (g 'pdmem (g 'impl st7)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (st9 (simulate_a st8 nil nil t nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 emdest0 + emwrt0 emregwrite0 emmemwrite0 + emmemtoreg0 dmem0 mmppc0 mmval0 + mmdest0 mmwrt0 mmregwrite0 mwppc0 + mwval0 mwdest0 mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st8)) + (g 'prf (g 'impl st8)) + (g 'pdmem (g 'impl st8)))) + (s_pc0 (g 'spc (g 'spec st9))) + (s_rf0 (g 'srf (g 'spec st9))) + (s_dmem0 (g 'sdmem (g 'spec st9))) + (st10 (simulate_a st9 nil t nil nil pc0 ffwrt0 + ffinst0 ffppc0 fdppc0 fdwrt0 fdinst0 + deppc0 desrc10 desrc20 a1 a2 dedest0 + deop0 deimm0 deuseimm0 deregwrite0 + dememwrite0 dememtoreg0 deisbranch0 + dewrt0 emppc0 emis_taken_branch0 + emtargetpc0 emarg20 emresult0 + emdest0 emwrt0 emregwrite0 + emmemwrite0 emmemtoreg0 dmem0 mmppc0 + mmval0 mmdest0 mmwrt0 mmregwrite0 + mwppc0 mwval0 mwdest0 mwwrt0 + mwregwrite0 (g 'ppc (g 'impl st9)) + (g 'prf (g 'impl st9)) + (g 'pdmem (g 'impl st9)))) + (s_pc1 (g 'spc (g 'spec st10))) + (s_rf1 (g 'srf (g 'spec st10))) + (s_dmem1 (g 'sdmem (g 'spec st10))) + (st11 (simulate_a st10 nil nil nil t pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st10)) + (g 'prf (g 'impl st10)) + (g 'pdmem (g 'impl st10)))) + (st12 (simulate_a st11 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st11)) + (g 'prf (g 'impl st11)) + (g 'pdmem (g 'impl st11)))) + (st13 (simulate_a st12 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st12)) + (g 'prf (g 'impl st12)) + (g 'pdmem (g 'impl st12)))) + (st14 (simulate_a st13 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st13)) + (g 'prf (g 'impl st13)) + (g 'pdmem (g 'impl st13)))) + (st15 (simulate_a st14 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st14)) + (g 'prf (g 'impl st14)) + (g 'pdmem (g 'impl st14)))) + (st16 (simulate_a st15 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st15)) + (g 'prf (g 'impl st15)) + (g 'pdmem (g 'impl st15)))) + (st17 (simulate_a st16 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st16)) + (g 'prf (g 'impl st16)) + (g 'pdmem (g 'impl st16)))) + (t1 (g 'mwwrt (g 'impl st17))) + (st18 (simulate_a st17 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st17)) + (g 'prf (g 'impl st17)) + (g 'pdmem (g 'impl st17)))) + (t2 (g 'mwwrt (g 'impl st18))) + (st19 (simulate_a st18 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st18)) + (g 'prf (g 'impl st18)) + (g 'pdmem (g 'impl st18)))) + (t3 (g 'mwwrt (g 'impl st19))) + (st20 (simulate_a st19 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st19)) + (g 'prf (g 'impl st19)) + (g 'pdmem (g 'impl st19)))) + (t4 (g 'mwwrt (g 'impl st20))) + (st21 (simulate_a st20 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st20)) + (g 'prf (g 'impl st20)) + (g 'pdmem (g 'impl st20)))) + (t5 (g 'mwwrt (g 'impl st21))) + (st22 (simulate_a st21 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st21)) + (g 'prf (g 'impl st21)) + (g 'pdmem (g 'impl st21)))) + (t6 (g 'mwwrt (g 'impl st22))) + (rank_w (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 + (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))) + (t + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))))))) + (st23 (simulate_a st22 nil nil nil t pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st22)) + (g 'prf (g 'impl st22)) + (g 'pdmem (g 'impl st22)))) + (st24 (simulate_a st23 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st23)) + (g 'prf (g 'impl st23)) + (g 'pdmem (g 'impl st23)))) + (st25 (simulate_a st24 t nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st24)) + (g 'prf (g 'impl st24)) + (g 'pdmem (g 'impl st24)))) + (st26 (simulate_a st25 t nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st25)) + (g 'prf (g 'impl st25)) + (g 'pdmem (g 'impl st25)))) + (st27 (simulate_a st26 t nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st26)) + (g 'prf (g 'impl st26)) + (g 'pdmem (g 'impl st26)))) + (st28 (simulate_a st27 t nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st27)) + (g 'prf (g 'impl st27)) + (g 'pdmem (g 'impl st27)))) + (st29 (simulate_a st28 t nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st28)) + (g 'prf (g 'impl st28)) + (g 'pdmem (g 'impl st28)))) + (st30 (simulate_a st29 t nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st29)) + (g 'prf (g 'impl st29)) + (g 'pdmem (g 'impl st29)))) + (t1 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st30)) + (g 'fdwrt (g 'impl st30))) + (g 'dewrt (g 'impl st30))) + (g 'emwrt (g 'impl st30))) + (g 'mmwrt (g 'impl st30))) + (g 'mwwrt (g 'impl st30))))) + (st31 (simulate_a st30 t nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st30)) + (g 'prf (g 'impl st30)) + (g 'pdmem (g 'impl st30)))) + (t2 (not (or (or + (or + (or + (or (g 'ffwrt (g 'impl st31)) + (g 'fdwrt (g 'impl st31))) + (g 'dewrt (g 'impl st31))) + (g 'emwrt (g 'impl st31))) + (g 'mmwrt (g 'impl st31))) + (g 'mwwrt (g 'impl st31))))) + (st32 (simulate_a st31 t nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st31)) + (g 'prf (g 'impl st31)) + (g 'pdmem (g 'impl st31)))) + (counter (cond + (t1 zero) + (t2 (add-1 zero)) + (t (add-1 (add-1 zero))))) + (i_pc (g 'ppc (g 'impl st32))) + (i_rf (g 'prf (g 'impl st32))) + (i_dmem (g 'pdmem (g 'impl st32))) + (st33 (simulate_a st32 nil nil nil t pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st32)) + (g 'prf (g 'impl st32)) + (g 'pdmem (g 'impl st32)))) + (st34 (simulate_a st33 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st33)) + (g 'prf (g 'impl st33)) + (g 'pdmem (g 'impl st33)))) + (st35 (simulate_a st34 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st34)) + (g 'prf (g 'impl st34)) + (g 'pdmem (g 'impl st34)))) + (st36 (simulate_a st35 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st35)) + (g 'prf (g 'impl st35)) + (g 'pdmem (g 'impl st35)))) + (st37 (simulate_a st36 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st36)) + (g 'prf (g 'impl st36)) + (g 'pdmem (g 'impl st36)))) + (st38 (simulate_a st37 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st37)) + (g 'prf (g 'impl st37)) + (g 'pdmem (g 'impl st37)))) + (st39 (simulate_a st38 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st38)) + (g 'prf (g 'impl st38)) + (g 'pdmem (g 'impl st38)))) + (st40 (simulate_a st39 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st39)) + (g 'prf (g 'impl st39)) + (g 'pdmem (g 'impl st39)))) + (t1 (g 'mwwrt (g 'impl st40))) + (st41 (simulate_a st40 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st40)) + (g 'prf (g 'impl st40)) + (g 'pdmem (g 'impl st40)))) + (t2 (g 'mwwrt (g 'impl st41))) + (st42 (simulate_a st41 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st41)) + (g 'prf (g 'impl st41)) + (g 'pdmem (g 'impl st41)))) + (t3 (g 'mwwrt (g 'impl st42))) + (st43 (simulate_a st42 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st42)) + (g 'prf (g 'impl st42)) + (g 'pdmem (g 'impl st42)))) + (t4 (g 'mwwrt (g 'impl st43))) + (st44 (simulate_a st43 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st43)) + (g 'prf (g 'impl st43)) + (g 'pdmem (g 'impl st43)))) + (t5 (g 'mwwrt (g 'impl st44))) + (st45 (simulate_a st44 nil nil nil nil pc0 + ffwrt0 ffinst0 ffppc0 fdppc0 fdwrt0 + fdinst0 deppc0 desrc10 desrc20 a1 a2 + dedest0 deop0 deimm0 deuseimm0 + deregwrite0 dememwrite0 dememtoreg0 + deisbranch0 dewrt0 emppc0 + emis_taken_branch0 emtargetpc0 + emarg20 emresult0 emdest0 emwrt0 + emregwrite0 emmemwrite0 emmemtoreg0 + dmem0 mmppc0 mmval0 mmdest0 mmwrt0 + mmregwrite0 mwppc0 mwval0 mwdest0 + mwwrt0 mwregwrite0 + (g 'ppc (g 'impl st44)) + (g 'prf (g 'impl st44)) + (g 'pdmem (g 'impl st44)))) + (t6 (g 'mwwrt (g 'impl st45))) + (rank_v (cond + ((and (equal counter zero) t1) + (add-1 counter)) + ((and + (or (equal counter zero) + (equal counter (add-1 zero))) + t2) + (add-1 (add-1 counter))) + (t3 (add-1 (add-1 (add-1 counter)))) + (t4 + (add-1 + (add-1 (add-1 (add-1 counter))))) + (t5 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter)))))) + (t6 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))) + (t + (add-1 + (add-1 + (add-1 + (add-1 + (add-1 (add-1 (add-1 counter))))))))))) + (or (and (and (equal s_pc1 i_pc) + (equal (read-srf_a a1 s_rf1) + (read-prf_a a1 i_rf))) + (equal s_dmem1 i_dmem)) + (and (and (and (equal s_pc0 i_pc) + (equal (read-srf_a a1 s_rf0) + (read-prf_a a1 i_rf))) + (equal s_dmem0 i_dmem)) + (< rank_v rank_w))))) + :rule-classes nil) + diff --git a/books/workshops/2004/manolios-srinivasan/support/README b/books/workshops/2004/manolios-srinivasan/support/README new file mode 100644 index 0000000..4675d9a --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/README @@ -0,0 +1,101 @@ + +README for a benchmark suite of 18 hard ACL2 problems +------------------------------------------------------ + +The file contains information about the +supporting material for the paper submitted to the +"Fifth International Workshop on the ACL2 Theorem Prover +and Its Applications (ACL2-2004)". The paper submitted +is: + + +Title: A Suite of Hard ACL2 Theorems Arising in Refinement-Based +Processor Verification + +Authors: Panagiotis Manolios and Sudarshan Srinivasan, + + +The paper describes a class of hard ACL2 problems +arising from refinement based microprocessor +verification. + +The supporting material has the following two directories: + +1. "Benchmark-Problems" + +Contains a benchmark suite of 18 hard ACL2 problems. The table below +lists the benchmarks (from table 1 in the above paper) and the name of +the corresponding file. + +Benchmark ACL2 File +------------------------------------------- +5S-Part : "5s-part.lisp" +5S : "5S.lisp" +CXS-S : "cxs-safety.lisp" +CXS-SL : "cxs.lisp" +CXS-BP-S : "cxs-bp-safety.lisp" +CXS-BP-SL : "cxs-bp.lisp" +CXS-BP-EX-S : "cxs-bp-ex-safety.lisp" +CXS-BP-EX-SL : "cxs-bp-ex.lisp" +CXS-BP-EX-INP-S : "cxs-bp-ex-inp-safety.lisp" +CXS-BP-EX-INP-SL : "cxs-bp-ex-inp.lisp" +FXS-S : "fxs-safety.lisp" +FXS-SL : "fxs.lisp" +FXS-BP-S : "fxs-bp-safety.lisp" +FXS-BP-SL : "fxs-bp.lisp" +FXS-BP-EX-S : "fxs-bp-ex-safety.lisp" +FXS-BP-EX-SL : "fxs-bp-ex.lisp" +FXS-BP-EX-INP-S : "fxs-bp-ex-inp-safety.lisp" +FXS-BP-EX-INP-SL : "fxs-bp-ex-inp.lisp" + + +The simplest of these problems take 15.5 days to +complete. Other problems are an order of magnitude +harder and we have made an estimate of their running +times in the paper. For this reason, do not attempt +to certify these books. + +2. "Supporting-Books" + +Contains supporting ACL2 books for the problems +including the "records" book that has theorems about +set and get, a book for arithmetic reasoning "meta", +and two other books that have some function and macro +definitions. + + +Instructions: +------------- + +We have tested these files with ACL2 v2.8. To try out the +benchmark problems in the Benchmark-Problems directory you have +to: + +1. Certify the books in the Supporting-Books directory. + + a. Edit the file Supporting-Books/meta.lisp so that it + points to your local copy of the top-with-meta book (which + is in the subdirectory "books/arithmetic/" of your local + ACL2 installation). + + b. Starting in the ground zero theory, load the file + "certify.lisp" in the Supporting-Books directory. + +2. To try out a benchmark problem, load the corresponding file + into ACL2. Note that the simplest of these benchmarks takes + 15.5 days to complete and therefore it will be + difficult/impossible to certify them. Recall that in ACL2 you + load files using "ld", e.g., to load the file "a.lisp" type: + + (ld "a.lisp") + +Bug-Report +---------- +If you find any problems you can report to +darshan@ece.gatech.edu. + + +AUTHORS +------- +Panagiotis Manolios +Sudarshan Srinivasan diff --git a/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/certify.lsp b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/certify.lsp new file mode 100755 index 0000000..373425b --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/certify.lsp @@ -0,0 +1,16 @@ +(certify-book "meta") +:u + +(certify-book "total-order") +:u + +(certify-book "records") +:u + +(certify-book "seq") +:u + +(certify-book "det-macros") +:u + + diff --git a/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/det-macros.lisp b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/det-macros.lisp new file mode 100644 index 0000000..08a7e54 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/det-macros.lisp @@ -0,0 +1,294 @@ +(in-package "ACL2") +#| + +This is a set of macros for relating an abstract system and a concrete +system with a WEB. The systems are deterministic. + +Compare with macro.old.lisp, which was a first attempt and which +motivated the defun-weak-sk macro. + +I should use a macro to customize the names of theorems. + +|# + +(defun bor-macro (lst) + (declare (xargs :guard t)) + (if (consp lst) + (if (consp (cdr lst)) + (list 'if + (car lst) + t + (bor-macro (cdr lst))) + (car lst)) + nil)) + +(defmacro bor (&rest args) + (bor-macro args)) + +; The reason for the bor macro is that (or a b) gets expanded to (if a +; a b). This results in extra rewriting in many situations. bor is +; equivalent to or if all the arguments are booleans. + +; Generate-Full-System is given abs-step, the function that steps the +; abstract system for one step, abs-p, the predicate that recognizes +; abstract states, con-step, the function that steps the concrete +; system for one step, con-p, the predicate that recognizes concrete +; states, and con-rank, the rank of a concrete state. Note that I am +; assuming that the step of abstract and concrete states depends only +; on the state. There may be situations in which this is not the +; case. If so, these macros will have to be altered somewhat. Also, +; I am assuming that the rank of abstract states is 0. This may also +; not be the case in general. R, B, rank, and take-appropriate-step +; should be undefined. + +(defmacro generate-full-system (abs-step abs-p con-step con-p + con-to-abs good-con con-rank) + `(progn + + (defun WF-rel (x y) + (declare (xargs :normalize nil)) + (and (,abs-p x) + (,con-p y) + (,good-con y) + (equal x (,con-to-abs y)))) + + (defun B (x y) + (declare (xargs :normalize nil)) + (bor (WF-rel x y) + (WF-rel y x) + (equal x y) + (and (,con-p x) + (,con-p y) + (,good-con x) + (,good-con y) + (equal (,con-to-abs x) + (,con-to-abs y))))) + + (defun rank (x) + (declare (xargs :normalize nil)) + (if (,con-p x) + (,con-rank x) + 0)) + + (defun R (x y) + (declare (xargs :normalize nil)) + (cond ((,abs-p x) + (equal y (,abs-step x))) + (t (equal y (,con-step x))))) + + (encapsulate + () + (local (in-theory nil)) + + (defthm WF-rel-fc + (equal (Wf-rel x y) + (and (,abs-p x) + (,con-p y) + (,good-con y) + (equal x (,con-to-abs y)))) + :hints (("goal" :by Wf-rel)) + :rule-classes ((:forward-chaining :trigger-terms ((Wf-rel x y))))) + + (defthm B-fc + (equal (B x y) + (bor (WF-rel x y) + (WF-rel y x) + (equal x y) + (and (,con-p x) + (,con-p y) + (,good-con x) + (,good-con y) + (equal (,con-to-abs x) + (,con-to-abs y))))) + :hints (("goal" :by B)) + :rule-classes ((:forward-chaining :trigger-terms ((B x y))))) + + (defthm rank-fc + (equal (rank x) + (if (,con-p x) + (,con-rank x) + 0)) + :hints (("goal" :by rank)) + :rule-classes ((:forward-chaining :trigger-terms ((rank x))))) + + (defthm R-fc + (equal (R x y) + (cond ((,abs-p x) + (equal y (,abs-step x))) + (t (equal y (,con-step x))))) + :hints (("goal" :by R)) + :rule-classes ((:forward-chaining :trigger-terms ((R x y))))) + + + ;note that if I fix the free variable problem, the forward + ;chaining rules for defun-sk's won't be necessary. Also, for the + ;fix to constraints I discusses with J will make the + ;forward-chaining definition rules unnecessary, so everything in + ;the encapsulate is irrelevant + ) + ) + ) + +(defmacro prove-web (abs-step abs-p con-step con-p con-to-abs con-rank) + `(progn + (defthm B-is-a-WF-bisim-core + (let ((u (,abs-step s)) + (v (,con-step w))) + (implies (and (WF-rel s w) + (not (WF-rel u v))) + (and (WF-rel s v) + (e0-ord-< (,con-rank v) + (,con-rank w)))))) + + (in-theory (disable b-is-a-wf-bisim-core)) + + (defthm con-to-abs-type + (,abs-p (,con-to-abs x))) + + (defthm abs-step-type + (,abs-p (,abs-step x))) + + (defthm con-step-type + (,con-p (,con-step x))) + + (defthm con-not-abs + (implies (,con-p x) + (not (,abs-p x)))) + + (defthm abs-not-con + (implies (,abs-p x) + (not (,con-p x)))))) + +(defmacro wrap-it-up (abs-step abs-p con-step con-p good-con con-to-abs con-rank) + `(encapsulate + () + + (encapsulate + () + (local (in-theory nil)) + + (local (in-theory (enable abs-step-type con-step-type con-not-abs abs-not-con + con-to-abs-type + Wf-rel-fc B-fc + b-is-a-wf-bisim-core))) + + (defequiv b + :hints (("goal" + :by (:functional-instance + encap-B-is-an-equivalence + + (encap-abs-step ,abs-step) + (encap-abs-p ,abs-p) + (encap-con-step ,con-step) + (encap-con-p ,con-p) + (encap-con-to-abs ,con-to-abs) + (encap-good-con ,good-con) + (encap-con-rank ,con-rank) + + (encap-wf-rel wf-rel) + (encap-B B)))))) + + (defthm rank-well-founded + (e0-ordinalp (rank x))) + + (defun-weak-sk exists-w-succ-for-u-weak (w u) + (exists (v) + (and (R w v) + (B u v)))) + + (defun-weak-sk exists-w-succ-for-s-weak (w s) + (exists (v) + (and (R w v) + (B s v) + (e0-ord-< (rank v) (rank w))))) + + (encapsulate + () + (local (in-theory nil)) + + (defthm exists-w-succ-for-u-weak-fc + (implies (and (R w v) + (B u v)) + (exists-w-succ-for-u-weak w u)) + :hints (("goal" :by exists-w-succ-for-u-weak-suff)) + :rule-classes ((:forward-chaining + :trigger-terms ((r w v) (b u v) + (exists-w-succ-for-u-weak w u))))) + + (defthm exists-w-succ-for-s-weak-fc + (implies (and (R w v) + (B s v) + (e0-ord-< (rank v) (rank w))) + (exists-w-succ-for-s-weak w s)) + :hints (("goal" :by exists-w-succ-for-s-weak-suff)) + :rule-classes ((:forward-chaining + :trigger-terms ((r w v) (b s v) + (exists-w-succ-for-s-weak w s)))))) + + (local (in-theory nil)) + + (local (in-theory (enable abs-step-type con-step-type con-not-abs abs-not-con + con-to-abs-type + exists-w-succ-for-s-weak-fc exists-w-succ-for-u-weak-fc + R-fc Wf-rel-fc B-fc rank-fc + b-is-a-wf-bisim-core))) + + (defthm b-is-a-wf-bisim-weak + (implies (and (b s w) + (r s u)) + (or (exists-w-succ-for-u-weak w u) + (and (b u w) + (e0-ord-< (rank u) (rank s))) + (exists-w-succ-for-s-weak w s))) + :hints (("goal" + :by (:functional-instance + B-is-a-WF-bisim-sk + + (encap-abs-step ,abs-step) + (encap-abs-p ,abs-p) + (encap-con-step ,con-step) + (encap-con-p ,con-p) + (encap-con-to-abs ,con-to-abs) + (encap-good-con ,good-con) + (encap-con-rank ,con-rank) + + (encap-R R) + (encap-wf-rel wf-rel) + (encap-B B) + (encap-rank rank) + + (encap-exists-w-succ-for-u exists-w-succ-for-u-weak) + (encap-exists-w-succ-for-s exists-w-succ-for-s-weak)))) + :rule-classes nil) + + (defun-sk exists-w-succ-for-u (w u) + (exists (v) + (and (R w v) + (B u v)))) + + (defun-sk exists-w-succ-for-s (w s) + (exists (v) + (and (R w v) + (B s v) + (e0-ord-< (rank v) (rank w))))) + + (local (in-theory nil)) + (local (in-theory (enable exists-w-succ-for-s-suff exists-w-succ-for-u-suff))) + + (defthm b-is-a-wf-bisim + (implies (and (b s w) + (r s u)) + (or (exists-w-succ-for-u w u) + (and (b u w) + (e0-ord-< (rank u) (rank s))) + (exists-w-succ-for-s w s))) + :hints (("goal" + :by (:functional-instance + B-is-a-WF-bisim-weak + + (exists-w-succ-for-u-weak exists-w-succ-for-u) + (exists-w-succ-for-s-weak exists-w-succ-for-s)))) + :rule-classes nil) + ) + ) + diff --git a/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/meta.lisp b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/meta.lisp new file mode 100644 index 0000000..f9dd30f --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/meta.lisp @@ -0,0 +1,2 @@ +(in-package "ACL2") +(include-book "../../../../../arithmetic/top-with-meta") diff --git a/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/records.lisp b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/records.lisp new file mode 100644 index 0000000..0ad24b4 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/records.lisp @@ -0,0 +1,310 @@ +(in-package "ACL2") +(include-book "total-order") + +#| + + logic-records.lisp + ~~~~~~~~~~~~~~~~~~ + +We define properties of a generic record accessor function and updater +function. The basic functions are (g a r) and (s a v r) where a is an +address/key, v is a value, r is a record, and (g a r) returns the value set to +address a in record r, and (s a v r) returns a new record with address a set to +value v in record r. + +We normalize the record structures (which allows the 'equal-ity based rewrite +rules) as alists where the keys (cars) are ordered using Pete's total-order +added to ACL2. We define a set of -aux functions which assume well-formed +records -- defined by rcdp -- and then prove the desired properties using +hypothesis assuming well-formed objects. + +We then remove these well-formed object hypothesis by defining a invertible +mapping (acl2->rcd) from any ACL2 object to a well-formed records. We then +prove the desired properties using the proper translations of the -aux +functions to the acl2 objects, and subsequently remove the well-founded +hypothesis. + +|# + +(defun rcdp (x) + (or (null x) + (and (consp x) + (consp (car x)) + (rcdp (cdr x)) + (cdar x) + (or (null (cdr x)) + (<< (caar x) (caadr x)))))) + +(defun ifrp (x) ;; ill-formed rcdp + (or (not (rcdp x)) + (and (consp x) + (null (cdr x)) + (consp (car x)) + (null (caar x)) + (ifrp (cdar x))))) + +(defun acl2->rcd (x) + (if (ifrp x) (list (cons nil x)) x)) + +(defun rcd->acl2 (x) + (if (ifrp x) (cdar x) x)) + +(defun g-aux (a x) + (cond ((or (endp x) + (<< a (caar x))) + nil) + ((equal a (caar x)) + (cdar x)) + (t + (g-aux a (cdr x))))) + +(defun g (a x) + (g-aux a (acl2->rcd x))) + +(defun s-aux (a v r) + (cond ((or (endp r) + (<< a (caar r))) + (if v (cons (cons a v) r) r)) + ((equal a (caar r)) + (if v (cons (cons a v) (cdr r)) (cdr r))) + (t + (cons (car r) (s-aux a v (cdr r)))))) + +(defun s (a v x) + (rcd->acl2 (s-aux a v (acl2->rcd x)))) + +(defun bad-field-aux (r1 r2) + (cond ((endp r1) (caar r2)) + ((endp r2) (caar r1)) + ((equal (car r1) (car r2)) + (bad-field-aux (cdr r1) (cdr r2))) + ((<< (caar r1) (caar r2)) + (caar r1)) + (t (caar r2)))) + +(defun bad-field (r1 r2) + (bad-field-aux (acl2->rcd r1) + (acl2->rcd r2))) + + +;;;; basic property of records ;;;; + +(local +(defthm rcdp-implies-true-listp + (implies (rcdp x) + (true-listp x)) + :rule-classes (:forward-chaining + :rewrite))) + + +;;;; initial properties of s-aux and g-aux ;;;; + +(local +(defthm s-aux-is-bounded + (implies (and (rcdp r) + (s-aux a v r) + (<< e a) + (<< e (caar r))) + (<< e (caar (s-aux a v r)))))) + +(local +(defthm s-aux-preserves-rcdp + (implies (rcdp r) + (rcdp (s-aux a v r))))) + +(local +(defthm g-aux-same-s-aux + (implies (rcdp r) + (equal (g-aux a (s-aux a v r)) + v)))) + +(local +(defthm g-aux-diff-s-aux + (implies (and (rcdp r) + (not (equal a b))) + (equal (g-aux a (s-aux b v r)) + (g-aux a r))))) + +(local +(defthm s-aux-same-g-aux + (implies (rcdp r) + (equal (s-aux a (g-aux a r) r) + r)))) + +(local +(defthm s-aux-same-s-aux + (implies (rcdp r) + (equal (s-aux a y (s-aux a x r)) + (s-aux a y r))))) + +(local +(defthm s-aux-diff-s-aux + (implies (and (rcdp r) + (not (equal a b))) + (equal (s-aux b y (s-aux a x r)) + (s-aux a x (s-aux b y r)))) + :rule-classes ((:rewrite :loop-stopper ((b a s)))))) + +(local +(defthm s-aux-non-nil-cannot-be-nil + (implies (and v (rcdp r)) + (s-aux a v r)))) + +(local +(defthm g-aux-is-nil-for-<< + (implies (and (rcdp r) + (<< a (caar r))) + (equal (g-aux a r) nil)))) + +(local +(defthm rcdp-equality-sufficiency-aux + (let ((field (bad-field-aux r1 r2))) + (implies (and (rcdp r1) (rcdp r2) + (equal (g-aux field r1) + (g-aux field r2))) + (equal (equal r1 r2) t))) + :hints (("Goal" :induct (bad-field-aux r1 r2))))) + + +;;;; properties of acl2->rcd and rcd->acl2 ;;;; + +(local +(defthm acl2->rcd-rcd->acl2-of-rcdp + (implies (rcdp x) + (equal (acl2->rcd (rcd->acl2 x)) + x)))) + +(local +(defthm acl2->rcd-returns-rcdp + (rcdp (acl2->rcd x)))) + +(local +(defthm acl2->rcd-preserves-equality + (iff (equal (acl2->rcd x) (acl2->rcd y)) + (equal x y)))) + +(local +(defthm rcd->acl2-acl2->rcd-inverse + (equal (rcd->acl2 (acl2->rcd x)) x))) + +(local +(defthm rcd->acl2-of-record-non-nil + (implies (and r (rcdp r)) + (rcd->acl2 r)))) + +(in-theory (disable acl2->rcd rcd->acl2)) + + +;;;; final properties of record g(et) and s(et) ;;;; + +(defthm g-over-if + (equal (g k (if a r1 r2)) + (if a + (g k r1) + (g k r2)))) + +(defthm s-over-if + (equal (s k (if a v1 v2) r) + (if a + (s k v1 r) + (s k v2 r)))) + +(in-theory (disable g-over-if s-over-if)) + +;; I just added the above two rules for the "sake of completeness", +;; but my experimentation seems to indicate that they suck. + +#| + +PETE: I put g-same-s- and g-diff-s- here because ACL2 does not +propagate equalities appropriately and cannot prove the following + + +(thm (implies + (equal (s 0 0 (s 1 2 x)) + (g 1 s)) + (equal (g 1 (g 1 s)) + 2))) + +without these rules. Note that by substitution in the above, we get +the following obvious theorem + +(thm (equal (g 1 (s 0 0 (s 1 2 x))) + 2)) + +|# + +(defthm g-same-s- + (implies (equal r1 (s a v r)) + (equal (g a r1) + v))) + +(defthm g-diff-s- + (implies (and (equal r1 (s b v r)) + (not (equal a b))) + (equal (g a r1) + (g a r)))) + +;;;; NOTE: I often use the following instead of the above rules +;;;; to force ACL2 to do a case-split. In some cases, I will +;;;; disable this rule ACL2 is sluggish or if the number of cases +;;;; is unreasonable + +(defthm g-of-s-redux + (equal (g a (s b v r)) + (if (equal a b) v (g a r)))) + +(in-theory (disable g-of-s-redux)) + +(defthm g-same-s + (equal (g a (s a v r)) + v)) + +(defthm g-diff-s + (implies (not (equal a b)) + (equal (g a (s b v r)) + (g a r)))) + +(defthm s-same-g + (equal (s a (g a r) r) + r)) + +(defthm s-same-s + (equal (s a y (s a x r)) + (s a y r))) + +(defthm s-diff-s + (implies (not (equal a b)) + (equal (s b y (s a x r)) + (s a x (s b y r)))) + :rule-classes ((:rewrite :loop-stopper ((b a s))))) + +(defthm g-of-nil-is-nil + (not (g a nil))) + +(defthm s-non-nil-cannot-be-nil + (implies v (s a v r)) + :hints (("Goal" + :in-theory (disable rcd->acl2-of-record-non-nil) + :use (:instance rcd->acl2-of-record-non-nil + (r (s-aux a v (acl2->rcd r))))))) + +(defthm non-nil-if-g-non-nil + (implies (g a r) r) + :rule-classes :forward-chaining) + +(defthm rcdp-equality-sufficiency + (let ((field (bad-field r1 r2))) + (equal (equal (g field r1) + (g field r2)) + (equal r1 r2))) + :hints (("Goal" + :in-theory (disable acl2->rcd-preserves-equality) + :use (:instance acl2->rcd-preserves-equality + (x r1) (y r2))))) + +;; We will almost surely never care about the definition of bad-field, other +;; than the rule above. We also disable s and g, assuming the rules proven in +;; this book are sufficient to manipulate record terms which are encountered + +(in-theory (disable s g bad-field)) diff --git a/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/seq.lisp b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/seq.lisp new file mode 100644 index 0000000..601a440 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/seq.lisp @@ -0,0 +1,18 @@ +(in-package "ACL2") + +(defun seq-macro (st pairs) + (if (endp pairs) + st + (list 's + (car pairs) + (cadr pairs) + (if (endp (cddr pairs)) + st + (seq-macro st (cddr pairs)))))) + +(defmacro seq (st &rest pairs) + (seq-macro st pairs)) + +(defmacro <- (x a) `(g ,a ,x)) + +(defmacro -> (x a v) `(s ,a ,v ,x)) diff --git a/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/total-order.lisp b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/total-order.lisp new file mode 100644 index 0000000..fab9018 --- /dev/null +++ b/books/workshops/2004/manolios-srinivasan/support/Supporting-Books/total-order.lisp @@ -0,0 +1,31 @@ +; This total order book is culled from events contributed by Pete Manolios and +; also benefits from contributions by Rob Sumners. + +(in-package "ACL2") + +(defun << (x y) + (and (lexorder x y) + (not (equal x y)))) + +(defthm <<-irreflexive + (not (<< x x))) + +(defthm <<-transitive + (implies (and (<< x y) + (<< y z)) + (<< x z))) + +(defthm <<-asymmetric + (implies (<< x y) + (not (<< y x)))) + +(defthm <<-trichotomy + (implies (and (not (<< y x)) + (not (equal x y))) + (<< x y))) + +(defthm <<-implies-lexorder + (implies (<< x y) + (lexorder x y))) + +(in-theory (disable <<)) |