summaryrefslogtreecommitdiff
path: root/books/workshops/2004/manolios-srinivasan/support
diff options
context:
space:
mode:
Diffstat (limited to 'books/workshops/2004/manolios-srinivasan/support')
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/5s-part.lisp571
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/5s.lisp1587
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cert_pl_exclude8
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-inp-safety.lisp4828
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-inp.lisp4862
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex-safety.lisp4412
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-ex.lisp4457
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp-safety.lisp3390
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-bp.lisp3435
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs-safety.lisp2518
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/cxs.lisp2599
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-inp-safety.lisp2912
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-inp.lisp2966
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex-safety.lisp2716
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-ex.lisp2771
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp-safety.lisp2110
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-bp.lisp2116
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs-safety.lisp1580
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Benchmark-Problems/fxs.lisp1590
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/README101
-rwxr-xr-xbooks/workshops/2004/manolios-srinivasan/support/Supporting-Books/certify.lsp16
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Supporting-Books/det-macros.lisp294
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Supporting-Books/meta.lisp2
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Supporting-Books/records.lisp310
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Supporting-Books/seq.lisp18
-rw-r--r--books/workshops/2004/manolios-srinivasan/support/Supporting-Books/total-order.lisp31
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 <<))