1(* cheriScript.sml - generated by L3 - Mon Oct 16 11:55:39 2017 *) 2open HolKernel boolLib bossLib Import 3 4val () = Import.start "cheri" 5 6val _ = Record 7 ("EntryLo", 8 [("C",FTy 3),("D",bTy),("G",bTy),("L",bTy),("PFN",FTy 28),("S",bTy), 9 ("V",bTy),("entrylo'rst",FTy 28)]) 10; 11val _ = Record 12 ("TLBEntry", 13 [("ASID",F8),("C0",FTy 3),("C1",FTy 3),("D0",bTy),("D1",bTy),("G",bTy), 14 ("L0",bTy),("L1",bTy),("Mask",FTy 12),("PFN0",FTy 28),("PFN1",FTy 28), 15 ("R",FTy 2),("S0",bTy),("S1",bTy),("V0",bTy),("V1",bTy), 16 ("VPN2",FTy 27)]) 17; 18val _ = Construct [("AccessType",[("LOAD",[]),("STORE",[])])] 19; 20val _ = Record ("Index",[("Index",FTy 9),("P",bTy),("index'rst",FTy 22)]) 21; 22val _ = Record ("Random",[("Random",F8),("random'rst",FTy 24)]) 23; 24val _ = Record ("Wired",[("Wired",F8),("wired'rst",FTy 24)]) 25; 26val _ = Record ("PageMask",[("Mask",FTy 12),("pagemask'rst",FTy 20)]) 27; 28val _ = Record 29 ("EntryHi", 30 [("ASID",F8),("R",FTy 2),("VPN2",FTy 27),("entryhi'rst",FTy 27)]) 31; 32val _ = Record 33 ("StatusRegister", 34 [("BEV",bTy),("CU0",bTy),("CU1",bTy),("CU2",bTy),("CU3",bTy), 35 ("ERL",bTy),("EXL",bTy),("FR",bTy),("IE",bTy),("IM",F8),("KSU",FTy 2), 36 ("KX",bTy),("RE",bTy),("SX",bTy),("UX",bTy), 37 ("statusregister'rst",FTy 9)]) 38; 39val _ = Record 40 ("ConfigRegister", 41 [("AR",FTy 3),("AT",FTy 2),("BE",bTy),("K0",FTy 3),("M",bTy), 42 ("MT",FTy 3),("configregister'rst",FTy 19)]) 43; 44val _ = Record 45 ("ConfigRegister1", 46 [("C2",bTy),("CA",bTy),("DA",FTy 3),("DL",FTy 3),("DS",FTy 3), 47 ("EP",bTy),("FP",bTy),("IA",FTy 3),("IL",FTy 3),("IS",FTy 3), 48 ("M",bTy),("MD",bTy),("MMUSize",FTy 6),("PCR",bTy),("WR",bTy)]) 49; 50val _ = Record 51 ("ConfigRegister2", 52 [("M",bTy),("SA",F4),("SL",F4),("SS",F4),("SU",F4),("TA",F4),("TL",F4), 53 ("TS",F4),("TU",FTy 3)]) 54; 55val _ = Record 56 ("ConfigRegister3", 57 [("DSPP",bTy),("LPA",bTy),("M",bTy),("MT",bTy),("SM",bTy),("SP",bTy), 58 ("TL",bTy),("ULRI",bTy),("VEIC",bTy),("VInt",bTy), 59 ("configregister3'rst",FTy 22)]) 60; 61val _ = Record 62 ("ConfigRegister6", 63 [("LTLB",bTy),("TLBSize",F16),("configregister6'rst",FTy 15)]) 64; 65val _ = Record 66 ("CauseRegister", 67 [("BD",bTy),("CE",FTy 2),("ExcCode",FTy 5),("IP",F8),("TI",bTy), 68 ("causeregister'rst",FTy 15)]) 69; 70val _ = Record 71 ("Context",[("BadVPN2",FTy 19),("PTEBase",FTy 41),("context'rst",F4)]) 72; 73val _ = Record 74 ("XContext", 75 [("BadVPN2",FTy 27),("PTEBase",FTy 31),("R",FTy 2),("xcontext'rst",F4)]) 76; 77val _ = Record 78 ("HWREna", 79 [("CC",bTy),("CCRes",bTy),("CPUNum",bTy),("DS",bTy),("KS",bTy), 80 ("RS",bTy),("UL",bTy),("hwrena'rst",FTy 25)]) 81; 82val _ = Record 83 ("CP0", 84 [("BadVAddr",F64),("Cause",CTy"CauseRegister"),("Compare",F32), 85 ("Config",CTy"ConfigRegister"),("Config1",CTy"ConfigRegister1"), 86 ("Config2",CTy"ConfigRegister2"),("Config3",CTy"ConfigRegister3"), 87 ("Config6",CTy"ConfigRegister6"),("Context",CTy"Context"), 88 ("Count",F32),("Debug",F32),("EInstr",F32),("EPC",F64), 89 ("EntryHi",CTy"EntryHi"),("EntryLo0",CTy"EntryLo"), 90 ("EntryLo1",CTy"EntryLo"),("ErrCtl",F32),("ErrorEPC",F64), 91 ("HWREna",CTy"HWREna"),("Index",CTy"Index"),("LLAddr",F64), 92 ("PRId",F32),("PageMask",CTy"PageMask"),("Random",CTy"Random"), 93 ("Status",CTy"StatusRegister"),("UsrLocal",F64),("Wired",CTy"Wired"), 94 ("XContext",CTy"XContext")]) 95; 96val _ = Record 97 ("CoreStats",[("branch_not_taken",nTy),("branch_taken",nTy)]) 98; 99val _ = Record 100 ("procState", 101 [("c_BranchDelay",OTy F64),("c_BranchTo",OTy F64),("c_CP0",CTy"CP0"), 102 ("c_CoreStats",CTy"CoreStats"),("c_LLbit",OTy bTy),("c_PC",F64), 103 ("c_exceptionSignalled",bTy),("c_hi",OTy F64),("c_lo",OTy F64)]) 104; 105val _ = Record ("UPerms",[("Reserved",FTy 28),("soft",F4)]) 106; 107val _ = Record 108 ("Perms", 109 [("Access_System_Registers",bTy),("Global",bTy),("Permit_CCall",bTy), 110 ("Permit_Execute",bTy),("Permit_Load",bTy), 111 ("Permit_Load_Capability",bTy),("Permit_Seal",bTy), 112 ("Permit_Store",bTy),("Permit_Store_Capability",bTy), 113 ("Permit_Store_Local_Capability",bTy),("Reserved",FTy 22)]) 114; 115val _ = Record 116 ("Capability", 117 [("base",F64),("cursor",F64),("length",F64),("otype",FTy 24), 118 ("perms",FTy 15),("reserved",F8),("sealed",bTy),("tag",bTy), 119 ("uperms",F16)]) 120; 121val _ = Record ("CapCause",[("ExcCode",F8),("RegNum",F8)]) 122; 123val _ = Construct 124 [("ExceptionType", 125 [("Int",[]),("Mod",[]),("TLBL",[]),("TLBS",[]),("AdEL",[]), 126 ("AdES",[]),("Sys",[]),("Bp",[]),("ResI",[]),("CpU",[]),("Ov",[]), 127 ("Tr",[]),("CTLBL",[]),("CTLBS",[]),("C2E",[]),("MCheck",[]), 128 ("XTLBRefillL",[]),("XTLBRefillS",[])])] 129; 130val _ = Construct 131 [("CapExceptionType", 132 [("capExcNone",[]),("capExcLength",[]),("capExcTag",[]), 133 ("capExcSeal",[]),("capExcType",[]),("capExcCall",[]), 134 ("capExcRet",[]),("capExcUnderflowTSS",[]),("capExcUser",[]), 135 ("capExcTLBNoStore",[]),("capExcInexact",[]),("capExcGlobal",[]), 136 ("capExcPermExe",[]),("capExcPermLoad",[]),("capExcPermStore",[]), 137 ("capExcPermLoadCap",[]),("capExcPermStoreCap",[]), 138 ("capExcPermStoreLocalCap",[]),("capExcPermSeal",[]), 139 ("capExcAccessSysReg",[]),("capExcPermCCall",[])])] 140; 141val _ = Construct 142 [("DataType",[("Cap",[CTy"Capability"]),("Raw",[FTy 256])])] 143; 144val _ = Record 145 ("FCSR", 146 [("ABS2008",bTy),("CauseE",bTy),("CauseI",bTy),("CauseO",bTy), 147 ("CauseU",bTy),("CauseV",bTy),("CauseZ",bTy),("EnableI",bTy), 148 ("EnableO",bTy),("EnableU",bTy),("EnableV",bTy),("EnableZ",bTy), 149 ("FCC",F8),("FS",bTy),("FlagI",bTy),("FlagO",bTy),("FlagU",bTy), 150 ("FlagV",bTy),("FlagZ",bTy),("NAN2008",bTy),("RM",FTy 2), 151 ("fcsr'rst",FTy 3)]) 152; 153val _ = Record 154 ("FIR", 155 [("ASE",bTy),("D",bTy),("F64",bTy),("L",bTy),("PS",bTy),("PrID",F8), 156 ("Rev",F8),("S",bTy),("W",bTy),("fir'rst",FTy 9)]) 157; 158val _ = Construct 159 [("Branch", 160 [("BEQ",[PTy(FTy 5,PTy(FTy 5,F16))]), 161 ("BEQL",[PTy(FTy 5,PTy(FTy 5,F16))]),("BGEZ",[PTy(FTy 5,F16)]), 162 ("BGEZAL",[PTy(FTy 5,F16)]),("BGEZALL",[PTy(FTy 5,F16)]), 163 ("BGEZL",[PTy(FTy 5,F16)]),("BGTZ",[PTy(FTy 5,F16)]), 164 ("BGTZL",[PTy(FTy 5,F16)]),("BLEZ",[PTy(FTy 5,F16)]), 165 ("BLEZL",[PTy(FTy 5,F16)]),("BLTZ",[PTy(FTy 5,F16)]), 166 ("BLTZAL",[PTy(FTy 5,F16)]),("BLTZALL",[PTy(FTy 5,F16)]), 167 ("BLTZL",[PTy(FTy 5,F16)]),("BNE",[PTy(FTy 5,PTy(FTy 5,F16))]), 168 ("BNEL",[PTy(FTy 5,PTy(FTy 5,F16))]),("J",[FTy 26]),("JAL",[FTy 26]), 169 ("JALR",[PTy(FTy 5,FTy 5)]),("JR",[FTy 5])])] 170; 171val _ = Construct 172 [("CP", 173 [("DMFC0",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 174 ("DMTC0",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 175 ("MFC0",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 176 ("MTC0",[PTy(FTy 5,PTy(FTy 5,FTy 3))])])] 177; 178val _ = Construct 179 [("Store", 180 [("SB",[PTy(FTy 5,PTy(FTy 5,F16))]), 181 ("SC",[PTy(FTy 5,PTy(FTy 5,F16))]), 182 ("SCD",[PTy(FTy 5,PTy(FTy 5,F16))]), 183 ("SD",[PTy(FTy 5,PTy(FTy 5,F16))]), 184 ("SDL",[PTy(FTy 5,PTy(FTy 5,F16))]), 185 ("SDR",[PTy(FTy 5,PTy(FTy 5,F16))]), 186 ("SH",[PTy(FTy 5,PTy(FTy 5,F16))]), 187 ("SW",[PTy(FTy 5,PTy(FTy 5,F16))]), 188 ("SWL",[PTy(FTy 5,PTy(FTy 5,F16))]), 189 ("SWR",[PTy(FTy 5,PTy(FTy 5,F16))])])] 190; 191val _ = Construct 192 [("Load", 193 [("LB",[PTy(FTy 5,PTy(FTy 5,F16))]), 194 ("LBU",[PTy(FTy 5,PTy(FTy 5,F16))]), 195 ("LD",[PTy(FTy 5,PTy(FTy 5,F16))]), 196 ("LDL",[PTy(FTy 5,PTy(FTy 5,F16))]), 197 ("LDR",[PTy(FTy 5,PTy(FTy 5,F16))]), 198 ("LH",[PTy(FTy 5,PTy(FTy 5,F16))]), 199 ("LHU",[PTy(FTy 5,PTy(FTy 5,F16))]), 200 ("LL",[PTy(FTy 5,PTy(FTy 5,F16))]), 201 ("LLD",[PTy(FTy 5,PTy(FTy 5,F16))]), 202 ("LW",[PTy(FTy 5,PTy(FTy 5,F16))]), 203 ("LWL",[PTy(FTy 5,PTy(FTy 5,F16))]), 204 ("LWR",[PTy(FTy 5,PTy(FTy 5,F16))]), 205 ("LWU",[PTy(FTy 5,PTy(FTy 5,F16))])])] 206; 207val _ = Construct 208 [("Trap", 209 [("TEQ",[PTy(FTy 5,FTy 5)]),("TEQI",[PTy(FTy 5,F16)]), 210 ("TGE",[PTy(FTy 5,FTy 5)]),("TGEI",[PTy(FTy 5,F16)]), 211 ("TGEIU",[PTy(FTy 5,F16)]),("TGEU",[PTy(FTy 5,FTy 5)]), 212 ("TLT",[PTy(FTy 5,FTy 5)]),("TLTI",[PTy(FTy 5,F16)]), 213 ("TLTIU",[PTy(FTy 5,F16)]),("TLTU",[PTy(FTy 5,FTy 5)]), 214 ("TNE",[PTy(FTy 5,FTy 5)]),("TNEI",[PTy(FTy 5,F16)])])] 215; 216val _ = Construct 217 [("Shift", 218 [("DSLL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 219 ("DSLL32",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 220 ("DSLLV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 221 ("DSRA",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 222 ("DSRA32",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 223 ("DSRAV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 224 ("DSRL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 225 ("DSRL32",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 226 ("DSRLV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 227 ("SLL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 228 ("SLLV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 229 ("SRA",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 230 ("SRAV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 231 ("SRL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 232 ("SRLV",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] 233; 234val _ = Construct 235 [("MultDiv", 236 [("DDIV",[PTy(FTy 5,FTy 5)]),("DDIVU",[PTy(FTy 5,FTy 5)]), 237 ("DIV",[PTy(FTy 5,FTy 5)]),("DIVU",[PTy(FTy 5,FTy 5)]), 238 ("DMULT",[PTy(FTy 5,FTy 5)]),("DMULTU",[PTy(FTy 5,FTy 5)]), 239 ("MADD",[PTy(FTy 5,FTy 5)]),("MADDU",[PTy(FTy 5,FTy 5)]), 240 ("MFHI",[FTy 5]),("MFLO",[FTy 5]),("MSUB",[PTy(FTy 5,FTy 5)]), 241 ("MSUBU",[PTy(FTy 5,FTy 5)]),("MTHI",[FTy 5]),("MTLO",[FTy 5]), 242 ("MUL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("MULT",[PTy(FTy 5,FTy 5)]), 243 ("MULTU",[PTy(FTy 5,FTy 5)])])] 244; 245val _ = Construct 246 [("ArithR", 247 [("ADD",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 248 ("ADDU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 249 ("AND",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 250 ("DADD",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 251 ("DADDU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 252 ("DSUB",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 253 ("DSUBU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 254 ("MOVN",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 255 ("MOVZ",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 256 ("NOR",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 257 ("OR",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 258 ("SLT",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 259 ("SLTU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 260 ("SUB",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 261 ("SUBU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 262 ("XOR",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] 263; 264val _ = Construct 265 [("ArithI", 266 [("ADDI",[PTy(FTy 5,PTy(FTy 5,F16))]), 267 ("ADDIU",[PTy(FTy 5,PTy(FTy 5,F16))]), 268 ("ANDI",[PTy(FTy 5,PTy(FTy 5,F16))]), 269 ("DADDI",[PTy(FTy 5,PTy(FTy 5,F16))]), 270 ("DADDIU",[PTy(FTy 5,PTy(FTy 5,F16))]),("LUI",[PTy(FTy 5,F16)]), 271 ("ORI",[PTy(FTy 5,PTy(FTy 5,F16))]), 272 ("SLTI",[PTy(FTy 5,PTy(FTy 5,F16))]), 273 ("SLTIU",[PTy(FTy 5,PTy(FTy 5,F16))]), 274 ("XORI",[PTy(FTy 5,PTy(FTy 5,F16))])])] 275; 276val _ = Construct 277 [("CGet", 278 [("CGetBase",[PTy(FTy 5,FTy 5)]),("CGetCause",[FTy 5]), 279 ("CGetLen",[PTy(FTy 5,FTy 5)]),("CGetOffset",[PTy(FTy 5,FTy 5)]), 280 ("CGetPCC",[FTy 5]),("CGetPCCSetOffset",[PTy(FTy 5,FTy 5)]), 281 ("CGetPerm",[PTy(FTy 5,FTy 5)]),("CGetSealed",[PTy(FTy 5,FTy 5)]), 282 ("CGetTag",[PTy(FTy 5,FTy 5)]),("CGetType",[PTy(FTy 5,FTy 5)]), 283 ("CToPtr",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] 284; 285val _ = Construct 286 [("CSet", 287 [("CAndPerm",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 288 ("CClearRegs",[PTy(FTy 5,F16)]),("CClearTag",[PTy(FTy 5,FTy 5)]), 289 ("CFromPtr",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 290 ("CIncOffset",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 291 ("CIncOffsetImmediate",[PTy(FTy 5,PTy(FTy 5,FTy 11))]), 292 ("CSetBounds",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 293 ("CSetBoundsExact",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 294 ("CSetBoundsImmediate",[PTy(FTy 5,PTy(FTy 5,FTy 11))]), 295 ("CSetCause",[FTy 5]),("CSetOffset",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] 296; 297val _ = Construct 298 [("CCheck", 299 [("CCheckPerm",[PTy(FTy 5,FTy 5)]),("CCheckType",[PTy(FTy 5,FTy 5)])])] 300; 301val _ = Construct 302 [("CHERICOP2", 303 [("CBTS",[PTy(FTy 5,F16)]),("CBTU",[PTy(FTy 5,F16)]), 304 ("CCall0",[PTy(FTy 5,FTy 5)]),("CCall1",[PTy(FTy 5,FTy 5)]), 305 ("CCheck",[CTy"CCheck"]),("CGet",[CTy"CGet"]), 306 ("CJALR",[PTy(FTy 5,FTy 5)]),("CJR",[FTy 5]), 307 ("CLLC",[PTy(FTy 5,FTy 5)]),("CLLx",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 308 ("CMOVN",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 309 ("CMOVZ",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 310 ("CPtrCmp",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))]),("CReturn",[]), 311 ("CSCC",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 312 ("CSCx",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 2)))]), 313 ("CSeal",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("CSet",[CTy"CSet"]), 314 ("CSub",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 315 ("CUnseal",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("DumpCapReg",[]), 316 ("UnknownCapInstruction",[])])] 317; 318val _ = Construct [("COP2",[("CHERICOP2",[CTy"CHERICOP2"])])] 319; 320val _ = Construct 321 [("CHERISWC2", 322 [("CStore",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(F8,FTy 2))))])])] 323; 324val _ = Construct [("SWC2",[("CHERISWC2",[CTy"CHERISWC2"])])] 325; 326val _ = Construct 327 [("CHERILWC2", 328 [("CLoad",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(F8,PTy(F1,FTy 2)))))])])] 329; 330val _ = Construct [("LWC2",[("CHERILWC2",[CTy"CHERILWC2"])])] 331; 332val _ = Construct 333 [("CHERILDC2",[("CLC",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11)))])])] 334; 335val _ = Construct [("LDC2",[("CHERILDC2",[CTy"CHERILDC2"])])] 336; 337val _ = Construct 338 [("CHERISDC2",[("CSC",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11)))])])] 339; 340val _ = Construct [("SDC2",[("CHERISDC2",[CTy"CHERISDC2"])])] 341; 342val _ = Construct 343 [("COP1", 344 [("ABS_D",[PTy(FTy 5,FTy 5)]),("ABS_S",[PTy(FTy 5,FTy 5)]), 345 ("ADD_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 346 ("ADD_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("BC1F",[PTy(F16,FTy 3)]), 347 ("BC1FL",[PTy(F16,FTy 3)]),("BC1T",[PTy(F16,FTy 3)]), 348 ("BC1TL",[PTy(F16,FTy 3)]),("CEIL_L_D",[PTy(FTy 5,FTy 5)]), 349 ("CEIL_L_S",[PTy(FTy 5,FTy 5)]),("CEIL_W_D",[PTy(FTy 5,FTy 5)]), 350 ("CEIL_W_S",[PTy(FTy 5,FTy 5)]),("CFC1",[PTy(FTy 5,FTy 5)]), 351 ("CTC1",[PTy(FTy 5,FTy 5)]),("CVT_D_L",[PTy(FTy 5,FTy 5)]), 352 ("CVT_D_S",[PTy(FTy 5,FTy 5)]),("CVT_D_W",[PTy(FTy 5,FTy 5)]), 353 ("CVT_L_D",[PTy(FTy 5,FTy 5)]),("CVT_L_S",[PTy(FTy 5,FTy 5)]), 354 ("CVT_S_D",[PTy(FTy 5,FTy 5)]),("CVT_S_L",[PTy(FTy 5,FTy 5)]), 355 ("CVT_S_W",[PTy(FTy 5,FTy 5)]),("CVT_W_D",[PTy(FTy 5,FTy 5)]), 356 ("CVT_W_S",[PTy(FTy 5,FTy 5)]), 357 ("C_cond_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3)))]), 358 ("C_cond_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3)))]), 359 ("DIV_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 360 ("DIV_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("DMFC1",[PTy(FTy 5,FTy 5)]), 361 ("DMTC1",[PTy(FTy 5,FTy 5)]),("FLOOR_L_D",[PTy(FTy 5,FTy 5)]), 362 ("FLOOR_L_S",[PTy(FTy 5,FTy 5)]),("FLOOR_W_D",[PTy(FTy 5,FTy 5)]), 363 ("FLOOR_W_S",[PTy(FTy 5,FTy 5)]), 364 ("LDC1",[PTy(FTy 5,PTy(F16,FTy 5))]), 365 ("LDXC1",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 366 ("LWC1",[PTy(FTy 5,PTy(F16,FTy 5))]), 367 ("LWXC1",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 368 ("MADD_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5)))]), 369 ("MADD_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5)))]), 370 ("MFC1",[PTy(FTy 5,FTy 5)]),("MOVF",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 371 ("MOVF_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 372 ("MOVF_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 373 ("MOVN_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 374 ("MOVN_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 375 ("MOVT",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 376 ("MOVT_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 377 ("MOVT_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 378 ("MOVZ_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 379 ("MOVZ_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 380 ("MOV_D",[PTy(FTy 5,FTy 5)]),("MOV_S",[PTy(FTy 5,FTy 5)]), 381 ("MSUB_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5)))]), 382 ("MSUB_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5)))]), 383 ("MTC1",[PTy(FTy 5,FTy 5)]),("MUL_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 384 ("MUL_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("NEG_D",[PTy(FTy 5,FTy 5)]), 385 ("NEG_S",[PTy(FTy 5,FTy 5)]),("ROUND_L_D",[PTy(FTy 5,FTy 5)]), 386 ("ROUND_L_S",[PTy(FTy 5,FTy 5)]),("ROUND_W_D",[PTy(FTy 5,FTy 5)]), 387 ("ROUND_W_S",[PTy(FTy 5,FTy 5)]), 388 ("SDC1",[PTy(FTy 5,PTy(F16,FTy 5))]), 389 ("SDXC1",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 390 ("SQRT_D",[PTy(FTy 5,FTy 5)]),("SQRT_S",[PTy(FTy 5,FTy 5)]), 391 ("SUB_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 392 ("SUB_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 393 ("SWC1",[PTy(FTy 5,PTy(F16,FTy 5))]), 394 ("SWXC1",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 395 ("TRUNC_L_D",[PTy(FTy 5,FTy 5)]),("TRUNC_L_S",[PTy(FTy 5,FTy 5)]), 396 ("TRUNC_W_D",[PTy(FTy 5,FTy 5)]),("TRUNC_W_S",[PTy(FTy 5,FTy 5)]), 397 ("UnknownFPInstruction",[])])] 398; 399val _ = Construct 400 [("instruction", 401 [("ArithI",[CTy"ArithI"]),("ArithR",[CTy"ArithR"]),("BREAK",[]), 402 ("Branch",[CTy"Branch"]),("CACHE",[PTy(FTy 5,PTy(FTy 5,F16))]), 403 ("COP1",[CTy"COP1"]),("COP2",[CTy"COP2"]),("CP",[CTy"CP"]), 404 ("ERET",[]),("LDC2",[CTy"LDC2"]),("LWC2",[CTy"LWC2"]), 405 ("Load",[CTy"Load"]),("MultDiv",[CTy"MultDiv"]), 406 ("RDHWR",[PTy(FTy 5,FTy 5)]),("ReservedInstruction",[]), 407 ("SDC2",[CTy"SDC2"]),("SWC2",[CTy"SWC2"]),("SYNC",[FTy 5]), 408 ("SYSCALL",[]),("Shift",[CTy"Shift"]),("Store",[CTy"Store"]), 409 ("TLBP",[]),("TLBR",[]),("TLBWI",[]),("TLBWR",[]), 410 ("Trap",[CTy"Trap"]),("Unpredictable",[]),("WAIT",[])])] 411; 412val _ = Construct 413 [("exception",[("NoException",[]),("UNPREDICTABLE",[sTy])])] 414; 415val _ = Record 416 ("cheri_state", 417 [("BranchDelayPCC",OTy(PTy(F64,CTy"Capability"))), 418 ("BranchToPCC",OTy(PTy(F64,CTy"Capability"))),("CCallBranch",bTy), 419 ("CCallBranchDelay",bTy),("UNPREDICTABLE_HI",ATy(uTy,uTy)), 420 ("UNPREDICTABLE_LO",ATy(uTy,uTy)),("UNPREDICTABLE_TLB",ATy(uTy,uTy)), 421 ("all_BranchDelayPCC",ATy(F8,OTy(PTy(F64,CTy"Capability")))), 422 ("all_BranchToPCC",ATy(F8,OTy(PTy(F64,CTy"Capability")))), 423 ("all_CCallBranch",ATy(F8,bTy)),("all_CCallBranchDelay",ATy(F8,bTy)), 424 ("all_TLB_assoc",ATy(F8,ATy(F4,OTy(CTy"TLBEntry")))), 425 ("all_TLB_direct",ATy(F8,ATy(F8,OTy(CTy"TLBEntry")))), 426 ("all_capcause",ATy(F8,CTy"CapCause")), 427 ("all_capr",ATy(F8,ATy(FTy 5,CTy"Capability"))), 428 ("all_gpr",ATy(F8,ATy(FTy 5,F64))), 429 ("all_pcc",ATy(F8,CTy"Capability")), 430 ("all_state",ATy(F8,CTy"procState")), 431 ("c_TLB_assoc",ATy(F4,OTy(CTy"TLBEntry"))), 432 ("c_TLB_direct",ATy(F8,OTy(CTy"TLBEntry"))), 433 ("c_capr",ATy(FTy 5,CTy"Capability")),("c_gpr",ATy(FTy 5,F64)), 434 ("c_pcc",CTy"Capability"),("c_state",CTy"procState"), 435 ("capcause",CTy"CapCause"),("csv_stats_header_done",bTy), 436 ("currentInst",OTy F32),("done",bTy),("exception",CTy"exception"), 437 ("fcsr",CTy"FCSR"),("fgr",ATy(FTy 5,F64)),("fir",CTy"FIR"), 438 ("instCnt",nTy),("log",ATy(nTy,sTy)), 439 ("mem",ATy(FTy 35,CTy"DataType")),("print",ATy(sTy,uTy)), 440 ("procID",F8),("totalCore",nTy),("trace_level",nTy), 441 ("unknown_counters",ATy(sTy,nTy)),("watchOOBCap",bTy), 442 ("watchPaddr",OTy(FTy 40)),("watcher",sTy)]) 443; 444val qTy = CTy "cheri_state"; 445fun qVar v = Term.mk_var (v, ParseDatatype.pretypeToType qTy); 446val raise'exception_def = Def 447 ("raise'exception",Var("e",CTy"exception"), 448 Close 449 (qVar"state", 450 TP[LX(VTy"a"), 451 ITE(EQ(Dest("exception",CTy"exception",qVar"state"), 452 Const("NoException",CTy"exception")), 453 Rupd("exception",TP[qVar"state",Var("e",CTy"exception")]), 454 qVar"state")])) 455; 456val rec'EntryLo_def = Def 457 ("rec'EntryLo",Var("x",F64), 458 Rec(CTy"EntryLo", 459 [EX(Var("x",F64),LN 5,LN 3,FTy 3),Bop(Bit,Var("x",F64),LN 2), 460 Bop(Bit,Var("x",F64),LN 0),Bop(Bit,Var("x",F64),LN 62), 461 EX(Var("x",F64),LN 33,LN 6,FTy 28),Bop(Bit,Var("x",F64),LN 63), 462 Bop(Bit,Var("x",F64),LN 1),EX(Var("x",F64),LN 61,LN 34,FTy 28)])) 463; 464val reg'EntryLo_def = Def 465 ("reg'EntryLo",Var("x",CTy"EntryLo"), 466 CS(Var("x",CTy"EntryLo"), 467 [(Rec(CTy"EntryLo", 468 [Var("C",FTy 3),bVar"D",bVar"G",bVar"L",Var("PFN",FTy 28), 469 bVar"S",bVar"V",Var("entrylo'rst",FTy 28)]), 470 CC[Mop(Cast F1,bVar"S"),Mop(Cast F1,bVar"L"), 471 Var("entrylo'rst",FTy 28),Var("PFN",FTy 28),Var("C",FTy 3), 472 Mop(Cast F1,bVar"D"),Mop(Cast F1,bVar"V"),Mop(Cast F1,bVar"G")])])) 473; 474val write'rec'EntryLo_def = Def 475 ("write'rec'EntryLo",TP[AVar F64,Var("x",CTy"EntryLo")], 476 Call("reg'EntryLo",F64,Var("x",CTy"EntryLo"))) 477; 478val write'reg'EntryLo_def = Def 479 ("write'reg'EntryLo",TP[AVar(CTy"EntryLo"),Var("x",F64)], 480 Call("rec'EntryLo",CTy"EntryLo",Var("x",F64))) 481; 482val rec'Index_def = Def 483 ("rec'Index",Var("x",F32), 484 Rec(CTy"Index", 485 [EX(Var("x",F32),LN 8,LN 0,FTy 9),Bop(Bit,Var("x",F32),LN 31), 486 EX(Var("x",F32),LN 30,LN 9,FTy 22)])) 487; 488val reg'Index_def = Def 489 ("reg'Index",Var("x",CTy"Index"), 490 CS(Var("x",CTy"Index"), 491 [(Rec(CTy"Index", 492 [Var("Index",FTy 9),bVar"P",Var("index'rst",FTy 22)]), 493 CC[Mop(Cast F1,bVar"P"),Var("index'rst",FTy 22),Var("Index",FTy 9)])])) 494; 495val write'rec'Index_def = Def 496 ("write'rec'Index",TP[AVar F32,Var("x",CTy"Index")], 497 Call("reg'Index",F32,Var("x",CTy"Index"))) 498; 499val write'reg'Index_def = Def 500 ("write'reg'Index",TP[AVar(CTy"Index"),Var("x",F32)], 501 Call("rec'Index",CTy"Index",Var("x",F32))) 502; 503val rec'Random_def = Def 504 ("rec'Random",Var("x",F32), 505 Rec(CTy"Random", 506 [EX(Var("x",F32),LN 7,LN 0,F8),EX(Var("x",F32),LN 31,LN 8,FTy 24)])) 507; 508val reg'Random_def = Def 509 ("reg'Random",Var("x",CTy"Random"), 510 CS(Var("x",CTy"Random"), 511 [(Rec(CTy"Random",[Var("Random",F8),Var("random'rst",FTy 24)]), 512 CC[Var("random'rst",FTy 24),Var("Random",F8)])])) 513; 514val write'rec'Random_def = Def 515 ("write'rec'Random",TP[AVar F32,Var("x",CTy"Random")], 516 Call("reg'Random",F32,Var("x",CTy"Random"))) 517; 518val write'reg'Random_def = Def 519 ("write'reg'Random",TP[AVar(CTy"Random"),Var("x",F32)], 520 Call("rec'Random",CTy"Random",Var("x",F32))) 521; 522val rec'Wired_def = Def 523 ("rec'Wired",Var("x",F32), 524 Rec(CTy"Wired", 525 [EX(Var("x",F32),LN 7,LN 0,F8),EX(Var("x",F32),LN 31,LN 8,FTy 24)])) 526; 527val reg'Wired_def = Def 528 ("reg'Wired",Var("x",CTy"Wired"), 529 CS(Var("x",CTy"Wired"), 530 [(Rec(CTy"Wired",[Var("Wired",F8),Var("wired'rst",FTy 24)]), 531 CC[Var("wired'rst",FTy 24),Var("Wired",F8)])])) 532; 533val write'rec'Wired_def = Def 534 ("write'rec'Wired",TP[AVar F32,Var("x",CTy"Wired")], 535 Call("reg'Wired",F32,Var("x",CTy"Wired"))) 536; 537val write'reg'Wired_def = Def 538 ("write'reg'Wired",TP[AVar(CTy"Wired"),Var("x",F32)], 539 Call("rec'Wired",CTy"Wired",Var("x",F32))) 540; 541val rec'PageMask_def = Def 542 ("rec'PageMask",Var("x",F32), 543 Rec(CTy"PageMask", 544 [EX(Var("x",F32),LN 24,LN 13,FTy 12), 545 CC[EX(Var("x",F32),LN 12,LN 0,FTy 13), 546 EX(Var("x",F32),LN 31,LN 25,FTy 7)]])) 547; 548val reg'PageMask_def = Def 549 ("reg'PageMask",Var("x",CTy"PageMask"), 550 CS(Var("x",CTy"PageMask"), 551 [(Rec(CTy"PageMask",[Var("Mask",FTy 12),Var("pagemask'rst",FTy 20)]), 552 CC[EX(Var("pagemask'rst",FTy 20),LN 6,LN 0,FTy 7), 553 Var("Mask",FTy 12), 554 EX(Var("pagemask'rst",FTy 20),LN 19,LN 7,FTy 13)])])) 555; 556val write'rec'PageMask_def = Def 557 ("write'rec'PageMask",TP[AVar F32,Var("x",CTy"PageMask")], 558 Call("reg'PageMask",F32,Var("x",CTy"PageMask"))) 559; 560val write'reg'PageMask_def = Def 561 ("write'reg'PageMask",TP[AVar(CTy"PageMask"),Var("x",F32)], 562 Call("rec'PageMask",CTy"PageMask",Var("x",F32))) 563; 564val rec'EntryHi_def = Def 565 ("rec'EntryHi",Var("x",F64), 566 Rec(CTy"EntryHi", 567 [EX(Var("x",F64),LN 7,LN 0,F8),EX(Var("x",F64),LN 63,LN 62,FTy 2), 568 EX(Var("x",F64),LN 39,LN 13,FTy 27), 569 CC[EX(Var("x",F64),LN 12,LN 8,FTy 5), 570 EX(Var("x",F64),LN 61,LN 40,FTy 22)]])) 571; 572val reg'EntryHi_def = Def 573 ("reg'EntryHi",Var("x",CTy"EntryHi"), 574 CS(Var("x",CTy"EntryHi"), 575 [(Rec(CTy"EntryHi", 576 [Var("ASID",F8),Var("R",FTy 2),Var("VPN2",FTy 27), 577 Var("entryhi'rst",FTy 27)]), 578 CC[Var("R",FTy 2),EX(Var("entryhi'rst",FTy 27),LN 21,LN 0,FTy 22), 579 Var("VPN2",FTy 27), 580 EX(Var("entryhi'rst",FTy 27),LN 26,LN 22,FTy 5),Var("ASID",F8)])])) 581; 582val write'rec'EntryHi_def = Def 583 ("write'rec'EntryHi",TP[AVar F64,Var("x",CTy"EntryHi")], 584 Call("reg'EntryHi",F64,Var("x",CTy"EntryHi"))) 585; 586val write'reg'EntryHi_def = Def 587 ("write'reg'EntryHi",TP[AVar(CTy"EntryHi"),Var("x",F64)], 588 Call("rec'EntryHi",CTy"EntryHi",Var("x",F64))) 589; 590val rec'StatusRegister_def = Def 591 ("rec'StatusRegister",Var("x",F32), 592 Rec(CTy"StatusRegister", 593 [Bop(Bit,Var("x",F32),LN 22),Bop(Bit,Var("x",F32),LN 28), 594 Bop(Bit,Var("x",F32),LN 29),Bop(Bit,Var("x",F32),LN 30), 595 Bop(Bit,Var("x",F32),LN 31),Bop(Bit,Var("x",F32),LN 2), 596 Bop(Bit,Var("x",F32),LN 1),Bop(Bit,Var("x",F32),LN 26), 597 Bop(Bit,Var("x",F32),LN 0),EX(Var("x",F32),LN 15,LN 8,F8), 598 EX(Var("x",F32),LN 4,LN 3,FTy 2),Bop(Bit,Var("x",F32),LN 7), 599 Bop(Bit,Var("x",F32),LN 25),Bop(Bit,Var("x",F32),LN 6), 600 Bop(Bit,Var("x",F32),LN 5), 601 CC[EX(Var("x",F32),LN 21,LN 16,FTy 6), 602 EX(Var("x",F32),LN 24,LN 23,FTy 2), 603 EX(Var("x",F32),LN 27,LN 27,F1)]])) 604; 605val reg'StatusRegister_def = Def 606 ("reg'StatusRegister",Var("x",CTy"StatusRegister"), 607 CS(Var("x",CTy"StatusRegister"), 608 [(Rec(CTy"StatusRegister", 609 [bVar"BEV",bVar"CU0",bVar"CU1",bVar"CU2",bVar"CU3",bVar"ERL", 610 bVar"EXL",bVar"FR",bVar"IE",Var("IM",F8),Var("KSU",FTy 2), 611 bVar"KX",bVar"RE",bVar"SX",bVar"UX", 612 Var("statusregister'rst",FTy 9)]), 613 CC[Mop(Cast F1,bVar"CU3"),Mop(Cast F1,bVar"CU2"), 614 Mop(Cast F1,bVar"CU1"),Mop(Cast F1,bVar"CU0"), 615 EX(Var("statusregister'rst",FTy 9),LN 0,LN 0,F1), 616 Mop(Cast F1,bVar"FR"),Mop(Cast F1,bVar"RE"), 617 EX(Var("statusregister'rst",FTy 9),LN 2,LN 1,FTy 2), 618 Mop(Cast F1,bVar"BEV"), 619 EX(Var("statusregister'rst",FTy 9),LN 8,LN 3,FTy 6), 620 Var("IM",F8),Mop(Cast F1,bVar"KX"),Mop(Cast F1,bVar"SX"), 621 Mop(Cast F1,bVar"UX"),Var("KSU",FTy 2),Mop(Cast F1,bVar"ERL"), 622 Mop(Cast F1,bVar"EXL"),Mop(Cast F1,bVar"IE")])])) 623; 624val write'rec'StatusRegister_def = Def 625 ("write'rec'StatusRegister",TP[AVar F32,Var("x",CTy"StatusRegister")], 626 Call("reg'StatusRegister",F32,Var("x",CTy"StatusRegister"))) 627; 628val write'reg'StatusRegister_def = Def 629 ("write'reg'StatusRegister",TP[AVar(CTy"StatusRegister"),Var("x",F32)], 630 Call("rec'StatusRegister",CTy"StatusRegister",Var("x",F32))) 631; 632val rec'ConfigRegister_def = Def 633 ("rec'ConfigRegister",Var("x",F32), 634 Rec(CTy"ConfigRegister", 635 [EX(Var("x",F32),LN 12,LN 10,FTy 3), 636 EX(Var("x",F32),LN 14,LN 13,FTy 2),Bop(Bit,Var("x",F32),LN 15), 637 EX(Var("x",F32),LN 2,LN 0,FTy 3),Bop(Bit,Var("x",F32),LN 31), 638 EX(Var("x",F32),LN 9,LN 7,FTy 3), 639 CC[EX(Var("x",F32),LN 6,LN 3,F4), 640 EX(Var("x",F32),LN 30,LN 16,FTy 15)]])) 641; 642val reg'ConfigRegister_def = Def 643 ("reg'ConfigRegister",Var("x",CTy"ConfigRegister"), 644 CS(Var("x",CTy"ConfigRegister"), 645 [(Rec(CTy"ConfigRegister", 646 [Var("AR",FTy 3),Var("AT",FTy 2),bVar"BE",Var("K0",FTy 3), 647 bVar"M",Var("MT",FTy 3),Var("configregister'rst",FTy 19)]), 648 CC[Mop(Cast F1,bVar"M"), 649 EX(Var("configregister'rst",FTy 19),LN 14,LN 0,FTy 15), 650 Mop(Cast F1,bVar"BE"),Var("AT",FTy 2),Var("AR",FTy 3), 651 Var("MT",FTy 3), 652 EX(Var("configregister'rst",FTy 19),LN 18,LN 15,F4), 653 Var("K0",FTy 3)])])) 654; 655val write'rec'ConfigRegister_def = Def 656 ("write'rec'ConfigRegister",TP[AVar F32,Var("x",CTy"ConfigRegister")], 657 Call("reg'ConfigRegister",F32,Var("x",CTy"ConfigRegister"))) 658; 659val write'reg'ConfigRegister_def = Def 660 ("write'reg'ConfigRegister",TP[AVar(CTy"ConfigRegister"),Var("x",F32)], 661 Call("rec'ConfigRegister",CTy"ConfigRegister",Var("x",F32))) 662; 663val rec'ConfigRegister1_def = Def 664 ("rec'ConfigRegister1",Var("x",F32), 665 Rec(CTy"ConfigRegister1", 666 [Bop(Bit,Var("x",F32),LN 6),Bop(Bit,Var("x",F32),LN 2), 667 EX(Var("x",F32),LN 9,LN 7,FTy 3), 668 EX(Var("x",F32),LN 12,LN 10,FTy 3), 669 EX(Var("x",F32),LN 15,LN 13,FTy 3),Bop(Bit,Var("x",F32),LN 1), 670 Bop(Bit,Var("x",F32),LN 0),EX(Var("x",F32),LN 18,LN 16,FTy 3), 671 EX(Var("x",F32),LN 21,LN 19,FTy 3), 672 EX(Var("x",F32),LN 24,LN 22,FTy 3),Bop(Bit,Var("x",F32),LN 31), 673 Bop(Bit,Var("x",F32),LN 5),EX(Var("x",F32),LN 30,LN 25,FTy 6), 674 Bop(Bit,Var("x",F32),LN 4),Bop(Bit,Var("x",F32),LN 3)])) 675; 676val reg'ConfigRegister1_def = Def 677 ("reg'ConfigRegister1",Var("x",CTy"ConfigRegister1"), 678 CS(Var("x",CTy"ConfigRegister1"), 679 [(Rec(CTy"ConfigRegister1", 680 [bVar"C2",bVar"CA",Var("DA",FTy 3),Var("DL",FTy 3), 681 Var("DS",FTy 3),bVar"EP",bVar"FP",Var("IA",FTy 3), 682 Var("IL",FTy 3),Var("IS",FTy 3),bVar"M",bVar"MD", 683 Var("MMUSize",FTy 6),bVar"PCR",bVar"WR"]), 684 CC[Mop(Cast F1,bVar"M"),Var("MMUSize",FTy 6),Var("IS",FTy 3), 685 Var("IL",FTy 3),Var("IA",FTy 3),Var("DS",FTy 3), 686 Var("DL",FTy 3),Var("DA",FTy 3),Mop(Cast F1,bVar"C2"), 687 Mop(Cast F1,bVar"MD"),Mop(Cast F1,bVar"PCR"), 688 Mop(Cast F1,bVar"WR"),Mop(Cast F1,bVar"CA"), 689 Mop(Cast F1,bVar"EP"),Mop(Cast F1,bVar"FP")])])) 690; 691val write'rec'ConfigRegister1_def = Def 692 ("write'rec'ConfigRegister1",TP[AVar F32,Var("x",CTy"ConfigRegister1")], 693 Call("reg'ConfigRegister1",F32,Var("x",CTy"ConfigRegister1"))) 694; 695val write'reg'ConfigRegister1_def = Def 696 ("write'reg'ConfigRegister1", 697 TP[AVar(CTy"ConfigRegister1"),Var("x",F32)], 698 Call("rec'ConfigRegister1",CTy"ConfigRegister1",Var("x",F32))) 699; 700val rec'ConfigRegister2_def = Def 701 ("rec'ConfigRegister2",Var("x",F32), 702 Rec(CTy"ConfigRegister2", 703 [Bop(Bit,Var("x",F32),LN 31),EX(Var("x",F32),LN 3,LN 0,F4), 704 EX(Var("x",F32),LN 7,LN 4,F4),EX(Var("x",F32),LN 11,LN 8,F4), 705 EX(Var("x",F32),LN 15,LN 12,F4),EX(Var("x",F32),LN 19,LN 16,F4), 706 EX(Var("x",F32),LN 23,LN 20,F4),EX(Var("x",F32),LN 27,LN 24,F4), 707 EX(Var("x",F32),LN 30,LN 28,FTy 3)])) 708; 709val reg'ConfigRegister2_def = Def 710 ("reg'ConfigRegister2",Var("x",CTy"ConfigRegister2"), 711 CS(Var("x",CTy"ConfigRegister2"), 712 [(Rec(CTy"ConfigRegister2", 713 [bVar"M",Var("SA",F4),Var("SL",F4),Var("SS",F4),Var("SU",F4), 714 Var("TA",F4),Var("TL",F4),Var("TS",F4),Var("TU",FTy 3)]), 715 CC[Mop(Cast F1,bVar"M"),Var("TU",FTy 3),Var("TS",F4),Var("TL",F4), 716 Var("TA",F4),Var("SU",F4),Var("SS",F4),Var("SL",F4), 717 Var("SA",F4)])])) 718; 719val write'rec'ConfigRegister2_def = Def 720 ("write'rec'ConfigRegister2",TP[AVar F32,Var("x",CTy"ConfigRegister2")], 721 Call("reg'ConfigRegister2",F32,Var("x",CTy"ConfigRegister2"))) 722; 723val write'reg'ConfigRegister2_def = Def 724 ("write'reg'ConfigRegister2", 725 TP[AVar(CTy"ConfigRegister2"),Var("x",F32)], 726 Call("rec'ConfigRegister2",CTy"ConfigRegister2",Var("x",F32))) 727; 728val rec'ConfigRegister3_def = Def 729 ("rec'ConfigRegister3",Var("x",F32), 730 Rec(CTy"ConfigRegister3", 731 [Bop(Bit,Var("x",F32),LN 10),Bop(Bit,Var("x",F32),LN 7), 732 Bop(Bit,Var("x",F32),LN 31),Bop(Bit,Var("x",F32),LN 2), 733 Bop(Bit,Var("x",F32),LN 1),Bop(Bit,Var("x",F32),LN 4), 734 Bop(Bit,Var("x",F32),LN 0),Bop(Bit,Var("x",F32),LN 13), 735 Bop(Bit,Var("x",F32),LN 6),Bop(Bit,Var("x",F32),LN 5), 736 CC[EX(Var("x",F32),LN 3,LN 3,F1),EX(Var("x",F32),LN 9,LN 8,FTy 2), 737 EX(Var("x",F32),LN 12,LN 11,FTy 2), 738 EX(Var("x",F32),LN 30,LN 14,FTy 17)]])) 739; 740val reg'ConfigRegister3_def = Def 741 ("reg'ConfigRegister3",Var("x",CTy"ConfigRegister3"), 742 CS(Var("x",CTy"ConfigRegister3"), 743 [(Rec(CTy"ConfigRegister3", 744 [bVar"DSPP",bVar"LPA",bVar"M",bVar"MT",bVar"SM",bVar"SP", 745 bVar"TL",bVar"ULRI",bVar"VEIC",bVar"VInt", 746 Var("configregister3'rst",FTy 22)]), 747 CC[Mop(Cast F1,bVar"M"), 748 EX(Var("configregister3'rst",FTy 22),LN 16,LN 0,FTy 17), 749 Mop(Cast F1,bVar"ULRI"), 750 EX(Var("configregister3'rst",FTy 22),LN 18,LN 17,FTy 2), 751 Mop(Cast F1,bVar"DSPP"), 752 EX(Var("configregister3'rst",FTy 22),LN 20,LN 19,FTy 2), 753 Mop(Cast F1,bVar"LPA"),Mop(Cast F1,bVar"VEIC"), 754 Mop(Cast F1,bVar"VInt"),Mop(Cast F1,bVar"SP"), 755 EX(Var("configregister3'rst",FTy 22),LN 21,LN 21,F1), 756 Mop(Cast F1,bVar"MT"),Mop(Cast F1,bVar"SM"), 757 Mop(Cast F1,bVar"TL")])])) 758; 759val write'rec'ConfigRegister3_def = Def 760 ("write'rec'ConfigRegister3",TP[AVar F32,Var("x",CTy"ConfigRegister3")], 761 Call("reg'ConfigRegister3",F32,Var("x",CTy"ConfigRegister3"))) 762; 763val write'reg'ConfigRegister3_def = Def 764 ("write'reg'ConfigRegister3", 765 TP[AVar(CTy"ConfigRegister3"),Var("x",F32)], 766 Call("rec'ConfigRegister3",CTy"ConfigRegister3",Var("x",F32))) 767; 768val rec'ConfigRegister6_def = Def 769 ("rec'ConfigRegister6",Var("x",F32), 770 Rec(CTy"ConfigRegister6", 771 [Bop(Bit,Var("x",F32),LN 2),EX(Var("x",F32),LN 31,LN 16,F16), 772 CC[EX(Var("x",F32),LN 1,LN 0,FTy 2), 773 EX(Var("x",F32),LN 15,LN 3,FTy 13)]])) 774; 775val reg'ConfigRegister6_def = Def 776 ("reg'ConfigRegister6",Var("x",CTy"ConfigRegister6"), 777 CS(Var("x",CTy"ConfigRegister6"), 778 [(Rec(CTy"ConfigRegister6", 779 [bVar"LTLB",Var("TLBSize",F16), 780 Var("configregister6'rst",FTy 15)]), 781 CC[Var("TLBSize",F16), 782 EX(Var("configregister6'rst",FTy 15),LN 12,LN 0,FTy 13), 783 Mop(Cast F1,bVar"LTLB"), 784 EX(Var("configregister6'rst",FTy 15),LN 14,LN 13,FTy 2)])])) 785; 786val write'rec'ConfigRegister6_def = Def 787 ("write'rec'ConfigRegister6",TP[AVar F32,Var("x",CTy"ConfigRegister6")], 788 Call("reg'ConfigRegister6",F32,Var("x",CTy"ConfigRegister6"))) 789; 790val write'reg'ConfigRegister6_def = Def 791 ("write'reg'ConfigRegister6", 792 TP[AVar(CTy"ConfigRegister6"),Var("x",F32)], 793 Call("rec'ConfigRegister6",CTy"ConfigRegister6",Var("x",F32))) 794; 795val rec'CauseRegister_def = Def 796 ("rec'CauseRegister",Var("x",F32), 797 Rec(CTy"CauseRegister", 798 [Bop(Bit,Var("x",F32),LN 31),EX(Var("x",F32),LN 29,LN 28,FTy 2), 799 EX(Var("x",F32),LN 6,LN 2,FTy 5),EX(Var("x",F32),LN 15,LN 8,F8), 800 Bop(Bit,Var("x",F32),LN 30), 801 CC[EX(Var("x",F32),LN 1,LN 0,FTy 2),EX(Var("x",F32),LN 7,LN 7,F1), 802 EX(Var("x",F32),LN 27,LN 16,FTy 12)]])) 803; 804val reg'CauseRegister_def = Def 805 ("reg'CauseRegister",Var("x",CTy"CauseRegister"), 806 CS(Var("x",CTy"CauseRegister"), 807 [(Rec(CTy"CauseRegister", 808 [bVar"BD",Var("CE",FTy 2),Var("ExcCode",FTy 5),Var("IP",F8), 809 bVar"TI",Var("causeregister'rst",FTy 15)]), 810 CC[Mop(Cast F1,bVar"BD"),Mop(Cast F1,bVar"TI"),Var("CE",FTy 2), 811 EX(Var("causeregister'rst",FTy 15),LN 11,LN 0,FTy 12), 812 Var("IP",F8), 813 EX(Var("causeregister'rst",FTy 15),LN 12,LN 12,F1), 814 Var("ExcCode",FTy 5), 815 EX(Var("causeregister'rst",FTy 15),LN 14,LN 13,FTy 2)])])) 816; 817val write'rec'CauseRegister_def = Def 818 ("write'rec'CauseRegister",TP[AVar F32,Var("x",CTy"CauseRegister")], 819 Call("reg'CauseRegister",F32,Var("x",CTy"CauseRegister"))) 820; 821val write'reg'CauseRegister_def = Def 822 ("write'reg'CauseRegister",TP[AVar(CTy"CauseRegister"),Var("x",F32)], 823 Call("rec'CauseRegister",CTy"CauseRegister",Var("x",F32))) 824; 825val rec'Context_def = Def 826 ("rec'Context",Var("x",F64), 827 Rec(CTy"Context", 828 [EX(Var("x",F64),LN 22,LN 4,FTy 19), 829 EX(Var("x",F64),LN 63,LN 23,FTy 41),EX(Var("x",F64),LN 3,LN 0,F4)])) 830; 831val reg'Context_def = Def 832 ("reg'Context",Var("x",CTy"Context"), 833 CS(Var("x",CTy"Context"), 834 [(Rec(CTy"Context", 835 [Var("BadVPN2",FTy 19),Var("PTEBase",FTy 41), 836 Var("context'rst",F4)]), 837 CC[Var("PTEBase",FTy 41),Var("BadVPN2",FTy 19), 838 Var("context'rst",F4)])])) 839; 840val write'rec'Context_def = Def 841 ("write'rec'Context",TP[AVar F64,Var("x",CTy"Context")], 842 Call("reg'Context",F64,Var("x",CTy"Context"))) 843; 844val write'reg'Context_def = Def 845 ("write'reg'Context",TP[AVar(CTy"Context"),Var("x",F64)], 846 Call("rec'Context",CTy"Context",Var("x",F64))) 847; 848val rec'XContext_def = Def 849 ("rec'XContext",Var("x",F64), 850 Rec(CTy"XContext", 851 [EX(Var("x",F64),LN 30,LN 4,FTy 27), 852 EX(Var("x",F64),LN 63,LN 33,FTy 31), 853 EX(Var("x",F64),LN 32,LN 31,FTy 2),EX(Var("x",F64),LN 3,LN 0,F4)])) 854; 855val reg'XContext_def = Def 856 ("reg'XContext",Var("x",CTy"XContext"), 857 CS(Var("x",CTy"XContext"), 858 [(Rec(CTy"XContext", 859 [Var("BadVPN2",FTy 27),Var("PTEBase",FTy 31),Var("R",FTy 2), 860 Var("xcontext'rst",F4)]), 861 CC[Var("PTEBase",FTy 31),Var("R",FTy 2),Var("BadVPN2",FTy 27), 862 Var("xcontext'rst",F4)])])) 863; 864val write'rec'XContext_def = Def 865 ("write'rec'XContext",TP[AVar F64,Var("x",CTy"XContext")], 866 Call("reg'XContext",F64,Var("x",CTy"XContext"))) 867; 868val write'reg'XContext_def = Def 869 ("write'reg'XContext",TP[AVar(CTy"XContext"),Var("x",F64)], 870 Call("rec'XContext",CTy"XContext",Var("x",F64))) 871; 872val rec'HWREna_def = Def 873 ("rec'HWREna",Var("x",F32), 874 Rec(CTy"HWREna", 875 [Bop(Bit,Var("x",F32),LN 2),Bop(Bit,Var("x",F32),LN 3), 876 Bop(Bit,Var("x",F32),LN 0),Bop(Bit,Var("x",F32),LN 28), 877 Bop(Bit,Var("x",F32),LN 26),Bop(Bit,Var("x",F32),LN 27), 878 Bop(Bit,Var("x",F32),LN 29), 879 CC[EX(Var("x",F32),LN 1,LN 1,F1), 880 EX(Var("x",F32),LN 25,LN 4,FTy 22), 881 EX(Var("x",F32),LN 31,LN 30,FTy 2)]])) 882; 883val reg'HWREna_def = Def 884 ("reg'HWREna",Var("x",CTy"HWREna"), 885 CS(Var("x",CTy"HWREna"), 886 [(Rec(CTy"HWREna", 887 [bVar"CC",bVar"CCRes",bVar"CPUNum",bVar"DS",bVar"KS",bVar"RS", 888 bVar"UL",Var("hwrena'rst",FTy 25)]), 889 CC[EX(Var("hwrena'rst",FTy 25),LN 1,LN 0,FTy 2), 890 Mop(Cast F1,bVar"UL"),Mop(Cast F1,bVar"DS"), 891 Mop(Cast F1,bVar"RS"),Mop(Cast F1,bVar"KS"), 892 EX(Var("hwrena'rst",FTy 25),LN 23,LN 2,FTy 22), 893 Mop(Cast F1,bVar"CCRes"),Mop(Cast F1,bVar"CC"), 894 EX(Var("hwrena'rst",FTy 25),LN 24,LN 24,F1), 895 Mop(Cast F1,bVar"CPUNum")])])) 896; 897val write'rec'HWREna_def = Def 898 ("write'rec'HWREna",TP[AVar F32,Var("x",CTy"HWREna")], 899 Call("reg'HWREna",F32,Var("x",CTy"HWREna"))) 900; 901val write'reg'HWREna_def = Def 902 ("write'reg'HWREna",TP[AVar(CTy"HWREna"),Var("x",F32)], 903 Call("rec'HWREna",CTy"HWREna",Var("x",F32))) 904; 905val BYTE_def = Def0 ("BYTE",LW(0,3)) 906; 907val HALFWORD_def = Def0 ("HALFWORD",LW(1,3)) 908; 909val WORD_def = Def0 ("WORD",LW(3,3)) 910; 911val DOUBLEWORD_def = Def0 ("DOUBLEWORD",LW(7,3)) 912; 913val println_def = Def ("println",sVar"s",Close(qVar"state",LU)) 914; 915val cpr_def = Def 916 ("cpr",Var("r",FTy 5), 917 CC[LS"c0_", 918 CS(Var("r",FTy 5), 919 [(LW(0,5),LS"index"),(LW(1,5),LS"random"),(LW(2,5),LS"entrylo0"), 920 (LW(3,5),LS"entrylo1"),(LW(4,5),LS"context"), 921 (LW(5,5),LS"pagemask"),(LW(6,5),LS"wired"),(LW(7,5),LS"hwrena"), 922 (LW(8,5),LS"badvaddr"),(LW(9,5),LS"count"), 923 (LW(10,5),LS"entryhi"),(LW(11,5),LS"compare"), 924 (LW(12,5),LS"status"),(LW(13,5),LS"cause"),(LW(14,5),LS"epc"), 925 (LW(15,5),LS"prid"),(LW(16,5),LS"config"),(LW(17,5),LS"lladdr"), 926 (LW(18,5),LS"watchlo"),(LW(19,5),LS"watchhi"), 927 (LW(20,5),LS"xcontext"),(LW(21,5),LS"21"),(LW(22,5),LS"22"), 928 (LW(23,5),LS"debug"),(LW(24,5),LS"depc"),(LW(25,5),LS"perfcnt"), 929 (LW(26,5),LS"errctl"),(LW(27,5),LS"cacheerr"), 930 (LW(28,5),LS"taglo"),(LW(29,5),LS"taghi"), 931 (LW(30,5),LS"errorepc"),(LW(31,5),LS"kscratch")])]) 932; 933val hex_def = Def 934 ("hex",Var("x",BTy"N"), 935 Let(TP[iVar"q",iVar"r"], 936 Mop(QuotRem,TP[Mop(Cast iTy,Mop(Size,LY(0,"N"))),LI 4]), 937 CC[LS"0x", 938 Mop(PadLeft, 939 TP[LSC #"0", 940 Mop(Cast nTy, 941 Bop(Add,iVar"q",ITE(EQ(iVar"r",LI 0),LI 0,LI 1))), 942 Mop(ToLower,Mop(Cast sTy,Var("x",BTy"N")))])])) 943; 944val log_sig_exception_def = Def 945 ("log_sig_exception",Var("ExceptionCode",FTy 5), 946 CC[LS"MIPS exception ",Call("hex",sTy,Var("ExceptionCode",FTy 5))]) 947; 948val log_w_gpr_def = Def 949 ("log_w_gpr",TP[Var("r",FTy 5),Var("data",F64)], 950 CC[LS"Reg ",Mop(Cast sTy,Mop(Cast nTy,Var("r",FTy 5))),LS" <- ", 951 Call("hex",sTy,Var("data",F64))]) 952; 953val log_w_hi_def = Def 954 ("log_w_hi",Var("data",F64), 955 CC[LS"HI <- ",Call("hex",sTy,Var("data",F64))]) 956; 957val log_w_lo_def = Def 958 ("log_w_lo",Var("data",F64), 959 CC[LS"LO <- ",Call("hex",sTy,Var("data",F64))]) 960; 961val log_w_c0_def = Def 962 ("log_w_c0",TP[Var("r",FTy 5),Var("data",F64)], 963 CC[Call("cpr",sTy,Var("r",FTy 5)),LS" <- ", 964 Call("hex",sTy,Var("data",F64))]) 965; 966val log_w_mem_def = Def 967 ("log_w_mem",TP[Var("addr",FTy 37),Var("mask",F64),Var("data",F64)], 968 CC[LS"MEM[",Call("hex",sTy,CC[Var("addr",FTy 37),LW(0,3)]), 969 LS"] <- (data: ",Call("hex",sTy,Var("data",F64)),LS", mask: ", 970 Call("hex",sTy,Var("mask",F64)),LS")"]) 971; 972val log_r_mem_def = Def 973 ("log_r_mem",TP[Var("addr",FTy 37),Var("data",F64)], 974 CC[LS"data <- MEM[",Call("hex",sTy,CC[Var("addr",FTy 37),LW(0,3)]), 975 LS"]: ",Call("hex",sTy,Var("data",F64))]) 976; 977val clear_watcher_def = Def0 ("clear_watcher",LU) 978; 979val clear_logs_def = Def0 ("clear_logs",LU) 980; 981val gpr_def = Def 982 ("gpr",Var("n",FTy 5), 983 Close 984 (qVar"state", 985 Apply(Dest("c_gpr",ATy(FTy 5,F64),qVar"state"),Var("n",FTy 5)))) 986; 987val write'gpr_def = Def 988 ("write'gpr",TP[Var("value",F64),Var("n",FTy 5)], 989 Close 990 (qVar"state", 991 Rupd 992 ("c_gpr", 993 TP[qVar"state", 994 Fupd 995 (Dest("c_gpr",ATy(FTy 5,F64),qVar"state"),Var("n",FTy 5), 996 Var("value",F64))]))) 997; 998val GPR_def = Def 999 ("GPR",Var("n",FTy 5), 1000 Close 1001 (qVar"state", 1002 ITE(EQ(Var("n",FTy 5),LW(0,5)),LW(0,64), 1003 Apply(Call("gpr",ATy(qTy,F64),Var("n",FTy 5)),qVar"state")))) 1004; 1005val write'GPR_def = Def 1006 ("write'GPR",TP[Var("value",F64),Var("n",FTy 5)], 1007 Close 1008 (qVar"state", 1009 ITE(Mop(Not,EQ(Var("n",FTy 5),LW(0,5))), 1010 Apply 1011 (Call 1012 ("write'gpr",ATy(qTy,qTy), 1013 TP[Var("value",F64),Var("n",FTy 5)]),qVar"state"), 1014 qVar"state"))) 1015; 1016val PC_def = Def 1017 ("PC",qVar"state", 1018 Dest("c_PC",F64,Dest("c_state",CTy"procState",qVar"state"))) 1019; 1020val write'PC_def = Def 1021 ("write'PC",Var("value",F64), 1022 Close 1023 (qVar"state", 1024 Rupd 1025 ("c_state", 1026 TP[qVar"state", 1027 Rupd 1028 ("c_PC", 1029 TP[Dest("c_state",CTy"procState",qVar"state"), 1030 Var("value",F64)])]))) 1031; 1032val hi_def = Def 1033 ("hi",qVar"state", 1034 Dest("c_hi",OTy F64,Dest("c_state",CTy"procState",qVar"state"))) 1035; 1036val write'hi_def = Def 1037 ("write'hi",Var("value",OTy F64), 1038 Close 1039 (qVar"state", 1040 Rupd 1041 ("c_state", 1042 TP[qVar"state", 1043 Rupd 1044 ("c_hi", 1045 TP[Dest("c_state",CTy"procState",qVar"state"), 1046 Var("value",OTy F64)])]))) 1047; 1048val lo_def = Def 1049 ("lo",qVar"state", 1050 Dest("c_lo",OTy F64,Dest("c_state",CTy"procState",qVar"state"))) 1051; 1052val write'lo_def = Def 1053 ("write'lo",Var("value",OTy F64), 1054 Close 1055 (qVar"state", 1056 Rupd 1057 ("c_state", 1058 TP[qVar"state", 1059 Rupd 1060 ("c_lo", 1061 TP[Dest("c_state",CTy"procState",qVar"state"), 1062 Var("value",OTy F64)])]))) 1063; 1064val CP0_def = Def 1065 ("CP0",qVar"state", 1066 Dest("c_CP0",CTy"CP0",Dest("c_state",CTy"procState",qVar"state"))) 1067; 1068val write'CP0_def = Def 1069 ("write'CP0",Var("value",CTy"CP0"), 1070 Close 1071 (qVar"state", 1072 Rupd 1073 ("c_state", 1074 TP[qVar"state", 1075 Rupd 1076 ("c_CP0", 1077 TP[Dest("c_state",CTy"procState",qVar"state"), 1078 Var("value",CTy"CP0")])]))) 1079; 1080val BranchDelay_def = Def 1081 ("BranchDelay",qVar"state", 1082 Dest 1083 ("c_BranchDelay",OTy F64,Dest("c_state",CTy"procState",qVar"state"))) 1084; 1085val write'BranchDelay_def = Def 1086 ("write'BranchDelay",Var("value",OTy F64), 1087 Close 1088 (qVar"state", 1089 Rupd 1090 ("c_state", 1091 TP[qVar"state", 1092 Rupd 1093 ("c_BranchDelay", 1094 TP[Dest("c_state",CTy"procState",qVar"state"), 1095 Var("value",OTy F64)])]))) 1096; 1097val BranchTo_def = Def 1098 ("BranchTo",qVar"state", 1099 Dest("c_BranchTo",OTy F64,Dest("c_state",CTy"procState",qVar"state"))) 1100; 1101val write'BranchTo_def = Def 1102 ("write'BranchTo",Var("value",OTy F64), 1103 Close 1104 (qVar"state", 1105 Rupd 1106 ("c_state", 1107 TP[qVar"state", 1108 Rupd 1109 ("c_BranchTo", 1110 TP[Dest("c_state",CTy"procState",qVar"state"), 1111 Var("value",OTy F64)])]))) 1112; 1113val LLbit_def = Def 1114 ("LLbit",qVar"state", 1115 Dest("c_LLbit",OTy bTy,Dest("c_state",CTy"procState",qVar"state"))) 1116; 1117val write'LLbit_def = Def 1118 ("write'LLbit",Var("value",OTy bTy), 1119 Close 1120 (qVar"state", 1121 Rupd 1122 ("c_state", 1123 TP[qVar"state", 1124 Rupd 1125 ("c_LLbit", 1126 TP[Dest("c_state",CTy"procState",qVar"state"), 1127 Var("value",OTy bTy)])]))) 1128; 1129val exceptionSignalled_def = Def 1130 ("exceptionSignalled",qVar"state", 1131 Dest 1132 ("c_exceptionSignalled",bTy, 1133 Dest("c_state",CTy"procState",qVar"state"))) 1134; 1135val write'exceptionSignalled_def = Def 1136 ("write'exceptionSignalled",bVar"value", 1137 Close 1138 (qVar"state", 1139 Rupd 1140 ("c_state", 1141 TP[qVar"state", 1142 Rupd 1143 ("c_exceptionSignalled", 1144 TP[Dest("c_state",CTy"procState",qVar"state"),bVar"value"])]))) 1145; 1146val UserMode_def = Def 1147 ("UserMode",qVar"state", 1148 Bop(And, 1149 EQ(Dest 1150 ("KSU",FTy 2, 1151 Dest 1152 ("Status",CTy"StatusRegister", 1153 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 1154 LW(2,2)), 1155 Mop(Not, 1156 Bop(Or, 1157 Dest 1158 ("EXL",bTy, 1159 Dest 1160 ("Status",CTy"StatusRegister", 1161 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 1162 Dest 1163 ("ERL",bTy, 1164 Dest 1165 ("Status",CTy"StatusRegister", 1166 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))))))) 1167; 1168val SupervisorMode_def = Def 1169 ("SupervisorMode",qVar"state", 1170 Bop(And, 1171 EQ(Dest 1172 ("KSU",FTy 2, 1173 Dest 1174 ("Status",CTy"StatusRegister", 1175 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 1176 LW(1,2)), 1177 Mop(Not, 1178 Bop(Or, 1179 Dest 1180 ("EXL",bTy, 1181 Dest 1182 ("Status",CTy"StatusRegister", 1183 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 1184 Dest 1185 ("ERL",bTy, 1186 Dest 1187 ("Status",CTy"StatusRegister", 1188 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))))))) 1189; 1190val KernelMode_def = Def 1191 ("KernelMode",qVar"state", 1192 Bop(Or, 1193 EQ(Dest 1194 ("KSU",FTy 2, 1195 Dest 1196 ("Status",CTy"StatusRegister", 1197 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 1198 LW(0,2)), 1199 Bop(Or, 1200 Dest 1201 ("EXL",bTy, 1202 Dest 1203 ("Status",CTy"StatusRegister", 1204 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 1205 Dest 1206 ("ERL",bTy, 1207 Dest 1208 ("Status",CTy"StatusRegister", 1209 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))))) 1210; 1211val BigEndianMem_def = Def 1212 ("BigEndianMem",qVar"state", 1213 Dest 1214 ("BE",bTy, 1215 Dest 1216 ("Config",CTy"ConfigRegister", 1217 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))) 1218; 1219val ReverseEndian_def = Def 1220 ("ReverseEndian",qVar"state", 1221 Mop(Cast F1, 1222 Bop(And, 1223 Dest 1224 ("RE",bTy, 1225 Dest 1226 ("Status",CTy"StatusRegister", 1227 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 1228 Apply(Const("UserMode",ATy(qTy,bTy)),qVar"state")))) 1229; 1230val BigEndianCPU_def = Def 1231 ("BigEndianCPU",qVar"state", 1232 Bop(BXor, 1233 Mop(Cast F1,Apply(Const("BigEndianMem",ATy(qTy,bTy)),qVar"state")), 1234 Apply(Const("ReverseEndian",ATy(qTy,F1)),qVar"state"))) 1235; 1236val NotWordValue_def = Def 1237 ("NotWordValue",Var("value",F64), 1238 Let(Var("top",FTy 33),EX(Var("value",F64),LN 63,LN 31,FTy 33), 1239 Bop(And,Mop(Not,EQ(Var("top",FTy 33),LW(0,33))), 1240 Mop(Not,EQ(Var("top",FTy 33),LW(8589934591,33)))))) 1241; 1242val CheckBranch_def = Def 1243 ("CheckBranch",qVar"state", 1244 ITE(Mop(IsSome,Apply(Const("BranchDelay",ATy(qTy,OTy F64)),qVar"state")), 1245 Mop(Snd, 1246 Apply 1247 (Call 1248 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 1249 Call 1250 ("UNPREDICTABLE",CTy"exception", 1251 LS"Not permitted in delay slot")),qVar"state")), 1252 qVar"state")) 1253; 1254val dumpRegs_def = Def ("dumpRegs",AVar uTy,LU) 1255; 1256val coreStats_def = Def 1257 ("coreStats",qVar"state", 1258 Dest 1259 ("c_CoreStats",CTy"CoreStats", 1260 Dest("c_state",CTy"procState",qVar"state"))) 1261; 1262val write'coreStats_def = Def 1263 ("write'coreStats",Var("value",CTy"CoreStats"), 1264 Close 1265 (qVar"state", 1266 Rupd 1267 ("c_state", 1268 TP[qVar"state", 1269 Rupd 1270 ("c_CoreStats", 1271 TP[Dest("c_state",CTy"procState",qVar"state"), 1272 Var("value",CTy"CoreStats")])]))) 1273; 1274val initCoreStats_def = Def 1275 ("initCoreStats",qVar"state", 1276 Let(TP[Var("v",CTy"CoreStats"),qVar"s"], 1277 Let(qVar"s0", 1278 Apply 1279 (Call 1280 ("write'coreStats",ATy(qTy,qTy), 1281 Rupd 1282 ("branch_taken", 1283 TP[Apply 1284 (Const("coreStats",ATy(qTy,CTy"CoreStats")), 1285 qVar"state"),LN 0])),qVar"state"), 1286 TP[Apply(Const("coreStats",ATy(qTy,CTy"CoreStats")),qVar"s0"), 1287 qVar"s0"]), 1288 Apply 1289 (Call 1290 ("write'coreStats",ATy(qTy,qTy), 1291 Rupd("branch_not_taken",TP[Var("v",CTy"CoreStats"),LN 0])), 1292 qVar"s"))) 1293; 1294val printCoreStats_def = Def 1295 ("printCoreStats",qVar"state", 1296 CC[Mop(PadRight,TP[LSC #" ",LN 16,LS"branch_taken"]),LS" = ", 1297 Mop(PadLeft, 1298 TP[LSC #" ",LN 9, 1299 Mop(Cast sTy, 1300 Dest 1301 ("branch_taken",nTy, 1302 Apply 1303 (Const("coreStats",ATy(qTy,CTy"CoreStats")), 1304 qVar"state")))]),LS"\n", 1305 Mop(PadRight,TP[LSC #" ",LN 16,LS"branch_not_taken"]),LS" = ", 1306 Mop(PadLeft, 1307 TP[LSC #" ",LN 9, 1308 Mop(Cast sTy, 1309 Dest 1310 ("branch_not_taken",nTy, 1311 Apply 1312 (Const("coreStats",ATy(qTy,CTy"CoreStats")), 1313 qVar"state")))])]) 1314; 1315val csvHeaderCoreStats_def = Def0 1316 ("csvHeaderCoreStats",LS"branch_taken,branch_not_taken") 1317; 1318val csvCoreStats_def = Def 1319 ("csvCoreStats",qVar"state", 1320 CC[Mop(Cast sTy, 1321 Dest 1322 ("branch_taken",nTy, 1323 Apply(Const("coreStats",ATy(qTy,CTy"CoreStats")),qVar"state"))), 1324 LS",", 1325 Mop(Cast sTy, 1326 Dest 1327 ("branch_not_taken",nTy, 1328 Apply(Const("coreStats",ATy(qTy,CTy"CoreStats")),qVar"state")))]) 1329; 1330val next_unknown_def = Def 1331 ("next_unknown",sVar"s", 1332 Close 1333 (qVar"state", 1334 Let(nVar"v", 1335 Apply(Dest("unknown_counters",ATy(sTy,nTy),qVar"state"),sVar"s"), 1336 TP[TP[nVar"v",sVar"s"], 1337 Rupd 1338 ("unknown_counters", 1339 TP[qVar"state", 1340 Fupd 1341 (Dest("unknown_counters",ATy(sTy,nTy),qVar"state"), 1342 sVar"s",Bop(Add,nVar"v",LN 1))])]))) 1343; 1344val CAPBYTEWIDTH_def = Def0 ("CAPBYTEWIDTH",LN 32) 1345; 1346val UPERMS_def = Def0 ("UPERMS",LN 16) 1347; 1348val OTYPEWIDTH_def = Def0 ("OTYPEWIDTH",LN 24) 1349; 1350val rec'UPerms_def = Def 1351 ("rec'UPerms",Var("x",F32), 1352 Rec(CTy"UPerms", 1353 [EX(Var("x",F32),LN 31,LN 4,FTy 28),EX(Var("x",F32),LN 3,LN 0,F4)])) 1354; 1355val reg'UPerms_def = Def 1356 ("reg'UPerms",Var("x",CTy"UPerms"), 1357 CS(Var("x",CTy"UPerms"), 1358 [(Rec(CTy"UPerms",[Var("Reserved",FTy 28),Var("soft",F4)]), 1359 CC[Var("Reserved",FTy 28),Var("soft",F4)])])) 1360; 1361val write'rec'UPerms_def = Def 1362 ("write'rec'UPerms",TP[AVar F32,Var("x",CTy"UPerms")], 1363 Call("reg'UPerms",F32,Var("x",CTy"UPerms"))) 1364; 1365val write'reg'UPerms_def = Def 1366 ("write'reg'UPerms",TP[AVar(CTy"UPerms"),Var("x",F32)], 1367 Call("rec'UPerms",CTy"UPerms",Var("x",F32))) 1368; 1369val rec'Perms_def = Def 1370 ("rec'Perms",Var("x",F32), 1371 Rec(CTy"Perms", 1372 [Bop(Bit,Var("x",F32),LN 10),Bop(Bit,Var("x",F32),LN 0), 1373 Bop(Bit,Var("x",F32),LN 8),Bop(Bit,Var("x",F32),LN 1), 1374 Bop(Bit,Var("x",F32),LN 2),Bop(Bit,Var("x",F32),LN 4), 1375 Bop(Bit,Var("x",F32),LN 7),Bop(Bit,Var("x",F32),LN 3), 1376 Bop(Bit,Var("x",F32),LN 5),Bop(Bit,Var("x",F32),LN 6), 1377 CC[EX(Var("x",F32),LN 31,LN 11,FTy 21), 1378 EX(Var("x",F32),LN 9,LN 9,F1)]])) 1379; 1380val reg'Perms_def = Def 1381 ("reg'Perms",Var("x",CTy"Perms"), 1382 CS(Var("x",CTy"Perms"), 1383 [(Rec(CTy"Perms", 1384 [bVar"Access_System_Registers",bVar"Global", 1385 bVar"Permit_CCall",bVar"Permit_Execute",bVar"Permit_Load", 1386 bVar"Permit_Load_Capability",bVar"Permit_Seal", 1387 bVar"Permit_Store",bVar"Permit_Store_Capability", 1388 bVar"Permit_Store_Local_Capability",Var("Reserved",FTy 22)]), 1389 CC[EX(Var("Reserved",FTy 22),LN 21,LN 1,FTy 21), 1390 Mop(Cast F1,bVar"Access_System_Registers"), 1391 EX(Var("Reserved",FTy 22),LN 0,LN 0,F1), 1392 Mop(Cast F1,bVar"Permit_CCall"),Mop(Cast F1,bVar"Permit_Seal"), 1393 Mop(Cast F1,bVar"Permit_Store_Local_Capability"), 1394 Mop(Cast F1,bVar"Permit_Store_Capability"), 1395 Mop(Cast F1,bVar"Permit_Load_Capability"), 1396 Mop(Cast F1,bVar"Permit_Store"),Mop(Cast F1,bVar"Permit_Load"), 1397 Mop(Cast F1,bVar"Permit_Execute"),Mop(Cast F1,bVar"Global")])])) 1398; 1399val write'rec'Perms_def = Def 1400 ("write'rec'Perms",TP[AVar F32,Var("x",CTy"Perms")], 1401 Call("reg'Perms",F32,Var("x",CTy"Perms"))) 1402; 1403val write'reg'Perms_def = Def 1404 ("write'reg'Perms",TP[AVar(CTy"Perms"),Var("x",F32)], 1405 Call("rec'Perms",CTy"Perms",Var("x",F32))) 1406; 1407val rec'Capability_def = Def 1408 ("rec'Capability",Var("x",FTy 257), 1409 Rec(CTy"Capability", 1410 [EX(Var("x",FTy 257),LN 191,LN 128,F64), 1411 EX(Var("x",FTy 257),LN 127,LN 64,F64), 1412 EX(Var("x",FTy 257),LN 255,LN 192,F64), 1413 EX(Var("x",FTy 257),LN 55,LN 32,FTy 24), 1414 EX(Var("x",FTy 257),LN 15,LN 1,FTy 15), 1415 EX(Var("x",FTy 257),LN 63,LN 56,F8), 1416 Bop(Bit,Var("x",FTy 257),LN 0),Bop(Bit,Var("x",FTy 257),LN 256), 1417 EX(Var("x",FTy 257),LN 31,LN 16,F16)])) 1418; 1419val reg'Capability_def = Def 1420 ("reg'Capability",Var("x",CTy"Capability"), 1421 CS(Var("x",CTy"Capability"), 1422 [(Rec(CTy"Capability", 1423 [Var("base",F64),Var("cursor",F64),Var("length",F64), 1424 Var("otype",FTy 24),Var("perms",FTy 15),Var("reserved",F8), 1425 bVar"sealed",bVar"tag",Var("uperms",F16)]), 1426 CC[Mop(Cast F1,bVar"tag"),Var("length",F64),Var("base",F64), 1427 Var("cursor",F64),Var("reserved",F8),Var("otype",FTy 24), 1428 Var("uperms",F16),Var("perms",FTy 15),Mop(Cast F1,bVar"sealed")])])) 1429; 1430val write'rec'Capability_def = Def 1431 ("write'rec'Capability",TP[AVar(FTy 257),Var("x",CTy"Capability")], 1432 Call("reg'Capability",FTy 257,Var("x",CTy"Capability"))) 1433; 1434val write'reg'Capability_def = Def 1435 ("write'reg'Capability",TP[AVar(CTy"Capability"),Var("x",FTy 257)], 1436 Call("rec'Capability",CTy"Capability",Var("x",FTy 257))) 1437; 1438val defaultCap_def = Def0 1439 ("defaultCap", 1440 Rupd 1441 ("reserved", 1442 TP[Rupd 1443 ("perms", 1444 TP[Rupd 1445 ("uperms", 1446 TP[Rupd 1447 ("otype", 1448 TP[Rupd 1449 ("length", 1450 TP[Rupd 1451 ("base", 1452 TP[Rupd 1453 ("cursor", 1454 TP[Rupd 1455 ("sealed", 1456 TP[Rupd 1457 ("tag", 1458 TP[LX(CTy"Capability"), 1459 LT]),LF]), 1460 LW(0,64)]),LW(0,64)]), 1461 Mop(BNot,LW(0,64))]),LW(0,24)]), 1462 Mop(BNot,LW(0,16))]),Mop(BNot,LW(0,15))]),LW(0,8)])) 1463; 1464val nullCap_def = Def0 1465 ("nullCap", 1466 Rupd 1467 ("reserved", 1468 TP[Rupd 1469 ("perms", 1470 TP[Rupd 1471 ("uperms", 1472 TP[Rupd 1473 ("otype", 1474 TP[Rupd 1475 ("length", 1476 TP[Rupd 1477 ("base", 1478 TP[Rupd 1479 ("cursor", 1480 TP[Rupd 1481 ("sealed", 1482 TP[Rupd 1483 ("tag", 1484 TP[LX(CTy"Capability"), 1485 LF]),LF]), 1486 LW(0,64)]),LW(0,64)]), 1487 LW(0,64)]),LW(0,24)]),LW(0,16)]),LW(0,15)]), 1488 LW(0,8)])) 1489; 1490val canRepOffset_def = Def 1491 ("canRepOffset",TP[Var("cap",CTy"Capability"),Var("newOffset",F64)],LT) 1492; 1493val canRepSeal_def = Def 1494 ("canRepSeal",TP[Var("cap",CTy"Capability"),bVar"newSeal"],LT) 1495; 1496val canRepBounds_def = Def 1497 ("canRepBounds",TP[Var("cap",CTy"Capability"),Var("newLength",F64)],LT) 1498; 1499val getTag_def = Def 1500 ("getTag",Var("cap",CTy"Capability"), 1501 Dest("tag",bTy,Var("cap",CTy"Capability"))) 1502; 1503val getType_def = Def 1504 ("getType",Var("cap",CTy"Capability"), 1505 Dest("otype",FTy 24,Var("cap",CTy"Capability"))) 1506; 1507val getPerms_def = Def 1508 ("getPerms",Var("cap",CTy"Capability"), 1509 Call 1510 ("rec'Perms",CTy"Perms", 1511 Mop(Cast F32,Dest("perms",FTy 15,Var("cap",CTy"Capability"))))) 1512; 1513val getUPerms_def = Def 1514 ("getUPerms",Var("cap",CTy"Capability"), 1515 Call 1516 ("rec'UPerms",CTy"UPerms", 1517 Mop(Cast F32,Dest("uperms",F16,Var("cap",CTy"Capability"))))) 1518; 1519val getSealed_def = Def 1520 ("getSealed",Var("cap",CTy"Capability"), 1521 Dest("sealed",bTy,Var("cap",CTy"Capability"))) 1522; 1523val getOffset_def = Def 1524 ("getOffset",Var("cap",CTy"Capability"), 1525 Bop(Sub,Dest("cursor",F64,Var("cap",CTy"Capability")), 1526 Dest("base",F64,Var("cap",CTy"Capability")))) 1527; 1528val getBase_def = Def 1529 ("getBase",Var("cap",CTy"Capability"), 1530 Dest("base",F64,Var("cap",CTy"Capability"))) 1531; 1532val getLength_def = Def 1533 ("getLength",Var("cap",CTy"Capability"), 1534 Dest("length",F64,Var("cap",CTy"Capability"))) 1535; 1536val getBaseAndLength_def = Def 1537 ("getBaseAndLength",Var("cap",CTy"Capability"), 1538 TP[Dest("base",F64,Var("cap",CTy"Capability")), 1539 Dest("length",F64,Var("cap",CTy"Capability"))]) 1540; 1541val setTag_def = Def 1542 ("setTag",TP[Var("cap",CTy"Capability"),bVar"tag"], 1543 Rupd("tag",TP[Var("cap",CTy"Capability"),bVar"tag"])) 1544; 1545val setType_def = Def 1546 ("setType",TP[Var("cap",CTy"Capability"),Var("otype",FTy 24)], 1547 Rupd("otype",TP[Var("cap",CTy"Capability"),Var("otype",FTy 24)])) 1548; 1549val setPerms_def = Def 1550 ("setPerms",TP[Var("cap",CTy"Capability"),Var("perms",CTy"Perms")], 1551 Rupd 1552 ("perms", 1553 TP[Var("cap",CTy"Capability"), 1554 EX(Call("reg'Perms",F32,Var("perms",CTy"Perms")),LN 14,LN 0, 1555 FTy 15)])) 1556; 1557val setUPerms_def = Def 1558 ("setUPerms",TP[Var("cap",CTy"Capability"),Var("uperms",CTy"UPerms")], 1559 Rupd 1560 ("uperms", 1561 TP[Var("cap",CTy"Capability"), 1562 EX(Call("reg'UPerms",F32,Var("uperms",CTy"UPerms")),LN 15,LN 0, 1563 F16)])) 1564; 1565val setSealed_def = Def 1566 ("setSealed",TP[Var("cap",CTy"Capability"),bVar"sealed"], 1567 Rupd("sealed",TP[Var("cap",CTy"Capability"),bVar"sealed"])) 1568; 1569val setOffset_def = Def 1570 ("setOffset",TP[Var("cap",CTy"Capability"),Var("offset",F64)], 1571 Rupd 1572 ("cursor", 1573 TP[Var("cap",CTy"Capability"), 1574 Bop(Add,Var("offset",F64), 1575 Dest("base",F64,Var("cap",CTy"Capability")))])) 1576; 1577val setBounds_def = Def 1578 ("setBounds",TP[Var("cap",CTy"Capability"),Var("length",F64)], 1579 Rupd 1580 ("length", 1581 TP[Rupd 1582 ("base", 1583 TP[Var("cap",CTy"Capability"), 1584 Dest("cursor",F64,Var("cap",CTy"Capability"))]), 1585 Var("length",F64)])) 1586; 1587val log_cap_write_def = Def 1588 ("log_cap_write",Var("cap",CTy"Capability"), 1589 CC[LS"t:", 1590 ITE(Call("getTag",bTy,Var("cap",CTy"Capability")),LS"1",LS"0"), 1591 LS" s:", 1592 ITE(Call("getSealed",bTy,Var("cap",CTy"Capability")),LS"1",LS"0"), 1593 LS" perms:", 1594 Call 1595 ("hex",sTy, 1596 CC[Dest("uperms",F16,Var("cap",CTy"Capability")), 1597 Dest("perms",FTy 15,Var("cap",CTy"Capability"))]),LS" type:", 1598 Call("hex",sTy,Call("getType",FTy 24,Var("cap",CTy"Capability"))), 1599 LS" offset:", 1600 Call("hex",sTy,Call("getOffset",F64,Var("cap",CTy"Capability"))), 1601 LS" base:", 1602 Call("hex",sTy,Call("getBase",F64,Var("cap",CTy"Capability"))), 1603 LS" length:", 1604 Call("hex",sTy,Call("getLength",F64,Var("cap",CTy"Capability")))]) 1605; 1606val log_cpp_write_def = Def 1607 ("log_cpp_write",Var("cap",CTy"Capability"), 1608 CC[LS"PCC <- ",Call("log_cap_write",sTy,Var("cap",CTy"Capability"))]) 1609; 1610val log_creg_write_def = Def 1611 ("log_creg_write",TP[Var("r",FTy 5),Var("cap",CTy"Capability")], 1612 CC[LS"CapReg ",Mop(Cast sTy,Mop(Cast nTy,Var("r",FTy 5))),LS" <- ", 1613 Call("log_cap_write",sTy,Var("cap",CTy"Capability"))]) 1614; 1615val log_store_cap_def = Def 1616 ("log_store_cap",TP[Var("pAddr",FTy 40),Var("cap",CTy"Capability")], 1617 CC[LS"MEM[",Call("hex",sTy,Var("pAddr",FTy 40)),LS"] <- ", 1618 Call("log_cap_write",sTy,Var("cap",CTy"Capability"))]) 1619; 1620val log_load_cap_def = Def 1621 ("log_load_cap",TP[Var("pAddr",FTy 40),Var("cap",CTy"Capability")], 1622 CC[Call("log_cap_write",sTy,Var("cap",CTy"Capability")),LS" <- MEM[", 1623 Call("hex",sTy,Var("pAddr",FTy 40)),LS"]"]) 1624; 1625val isCapAligned_def = Def 1626 ("isCapAligned",Var("addr",F64), 1627 EQ(EX(Var("addr",F64),LN 4,LN 0,FTy 5),LW(0,5))) 1628; 1629val capToBits_def = Def 1630 ("capToBits",Var("cap",CTy"Capability"), 1631 EX(Call("reg'Capability",FTy 257,Var("cap",CTy"Capability")),LN 255, 1632 LN 0,FTy 256)) 1633; 1634val bitsToCap_def = Def 1635 ("bitsToCap",Var("raw",FTy 256), 1636 Call("rec'Capability",CTy"Capability",CC[LW(0,1),Var("raw",FTy 256)])) 1637; 1638val readDwordFromRaw_def = Def 1639 ("readDwordFromRaw",TP[Var("dwordAddr",FTy 37),Var("raw",FTy 256)], 1640 CS(EX(Var("dwordAddr",FTy 37),LN 1,LN 0,FTy 2), 1641 [(LW(0,2),EX(Var("raw",FTy 256),LN 63,LN 0,F64)), 1642 (LW(1,2),EX(Var("raw",FTy 256),LN 127,LN 64,F64)), 1643 (LW(2,2),EX(Var("raw",FTy 256),LN 191,LN 128,F64)), 1644 (LW(3,2),EX(Var("raw",FTy 256),LN 255,LN 192,F64))])) 1645; 1646val updateDwordInRaw_def = Def 1647 ("updateDwordInRaw", 1648 TP[Var("dwordAddr",FTy 37),Var("data",F64),Var("mask",F64), 1649 Var("old_blob",FTy 256)], 1650 CS(EX(Var("dwordAddr",FTy 37),LN 1,LN 0,FTy 2), 1651 [(LW(0,2), 1652 CC[EX(Var("old_blob",FTy 256),LN 255,LN 64,FTy 192), 1653 Bop(BOr, 1654 Bop(BAnd,EX(Var("old_blob",FTy 256),LN 63,LN 0,F64), 1655 Mop(BNot,Var("mask",F64))), 1656 Bop(BAnd,Var("data",F64),Var("mask",F64)))]), 1657 (LW(1,2), 1658 CC[EX(Var("old_blob",FTy 256),LN 255,LN 128,FTy 128), 1659 Bop(BOr, 1660 Bop(BAnd,EX(Var("old_blob",FTy 256),LN 127,LN 64,F64), 1661 Mop(BNot,Var("mask",F64))), 1662 Bop(BAnd,Var("data",F64),Var("mask",F64))), 1663 EX(Var("old_blob",FTy 256),LN 63,LN 0,F64)]), 1664 (LW(2,2), 1665 CC[EX(Var("old_blob",FTy 256),LN 255,LN 192,F64), 1666 Bop(BOr, 1667 Bop(BAnd,EX(Var("old_blob",FTy 256),LN 191,LN 128,F64), 1668 Mop(BNot,Var("mask",F64))), 1669 Bop(BAnd,Var("data",F64),Var("mask",F64))), 1670 EX(Var("old_blob",FTy 256),LN 127,LN 0,FTy 128)]), 1671 (LW(3,2), 1672 CC[Bop(BOr, 1673 Bop(BAnd,EX(Var("old_blob",FTy 256),LN 255,LN 192,F64), 1674 Mop(BNot,Var("mask",F64))), 1675 Bop(BAnd,Var("data",F64),Var("mask",F64))), 1676 EX(Var("old_blob",FTy 256),LN 191,LN 0,FTy 192)])])) 1677; 1678val rec'CapCause_def = Def 1679 ("rec'CapCause",Var("x",F16), 1680 Rec(CTy"CapCause", 1681 [EX(Var("x",F16),LN 15,LN 8,F8),EX(Var("x",F16),LN 7,LN 0,F8)])) 1682; 1683val reg'CapCause_def = Def 1684 ("reg'CapCause",Var("x",CTy"CapCause"), 1685 CS(Var("x",CTy"CapCause"), 1686 [(Rec(CTy"CapCause",[Var("ExcCode",F8),Var("RegNum",F8)]), 1687 CC[Var("ExcCode",F8),Var("RegNum",F8)])])) 1688; 1689val write'rec'CapCause_def = Def 1690 ("write'rec'CapCause",TP[AVar F16,Var("x",CTy"CapCause")], 1691 Call("reg'CapCause",F16,Var("x",CTy"CapCause"))) 1692; 1693val write'reg'CapCause_def = Def 1694 ("write'reg'CapCause",TP[AVar(CTy"CapCause"),Var("x",F16)], 1695 Call("rec'CapCause",CTy"CapCause",Var("x",F16))) 1696; 1697val switchCoreCAP_def = Def 1698 ("switchCoreCAP",Var("i",F8), 1699 Close 1700 (qVar"state", 1701 Let(qVar"s", 1702 Rupd 1703 ("all_BranchDelayPCC", 1704 TP[qVar"state", 1705 Fupd 1706 (Dest 1707 ("all_BranchDelayPCC", 1708 ATy(F8,OTy(PTy(F64,CTy"Capability"))),qVar"state"), 1709 Dest("procID",F8,qVar"state"), 1710 Dest 1711 ("BranchDelayPCC",OTy(PTy(F64,CTy"Capability")), 1712 qVar"state"))]), 1713 Let(qVar"s", 1714 Rupd 1715 ("all_BranchToPCC", 1716 TP[qVar"s", 1717 Fupd 1718 (Dest 1719 ("all_BranchToPCC", 1720 ATy(F8,OTy(PTy(F64,CTy"Capability"))),qVar"s"), 1721 Dest("procID",F8,qVar"s"), 1722 Dest 1723 ("BranchToPCC",OTy(PTy(F64,CTy"Capability")), 1724 qVar"s"))]), 1725 Let(qVar"s", 1726 Rupd 1727 ("all_CCallBranchDelay", 1728 TP[qVar"s", 1729 Fupd 1730 (Dest 1731 ("all_CCallBranchDelay",ATy(F8,bTy),qVar"s"), 1732 Dest("procID",F8,qVar"s"), 1733 Dest("CCallBranchDelay",bTy,qVar"s"))]), 1734 Let(qVar"s", 1735 Rupd 1736 ("all_CCallBranch", 1737 TP[qVar"s", 1738 Fupd 1739 (Dest("all_CCallBranch",ATy(F8,bTy),qVar"s"), 1740 Dest("procID",F8,qVar"s"), 1741 Dest("CCallBranch",bTy,qVar"s"))]), 1742 Let(qVar"s", 1743 Rupd 1744 ("all_capcause", 1745 TP[qVar"s", 1746 Fupd 1747 (Dest 1748 ("all_capcause", 1749 ATy(F8,CTy"CapCause"),qVar"s"), 1750 Dest("procID",F8,qVar"s"), 1751 Dest("capcause",CTy"CapCause",qVar"s"))]), 1752 Let(qVar"s", 1753 Rupd 1754 ("all_pcc", 1755 TP[qVar"s", 1756 Fupd 1757 (Dest 1758 ("all_pcc", 1759 ATy(F8,CTy"Capability"),qVar"s"), 1760 Dest("procID",F8,qVar"s"), 1761 Dest 1762 ("c_pcc",CTy"Capability",qVar"s"))]), 1763 Let(qVar"s", 1764 Rupd 1765 ("all_capr", 1766 TP[qVar"s", 1767 Fupd 1768 (Dest 1769 ("all_capr", 1770 ATy(F8, 1771 ATy(FTy 5, 1772 CTy"Capability")), 1773 qVar"s"), 1774 Dest("procID",F8,qVar"s"), 1775 Dest 1776 ("c_capr", 1777 ATy(FTy 5,CTy"Capability"), 1778 qVar"s"))]), 1779 Let(qVar"s", 1780 Rupd 1781 ("BranchDelayPCC", 1782 TP[qVar"s", 1783 Apply 1784 (Dest 1785 ("all_BranchDelayPCC", 1786 ATy(F8, 1787 OTy(PTy(F64, 1788 CTy"Capability"))), 1789 qVar"s"),Var("i",F8))]), 1790 Let(qVar"s", 1791 Rupd 1792 ("BranchToPCC", 1793 TP[qVar"s", 1794 Apply 1795 (Dest 1796 ("all_BranchToPCC", 1797 ATy(F8, 1798 OTy(PTy(F64, 1799 CTy"Capability"))), 1800 qVar"s"),Var("i",F8))]), 1801 Let(qVar"s", 1802 Rupd 1803 ("CCallBranchDelay", 1804 TP[qVar"s", 1805 Apply 1806 (Dest 1807 ("all_CCallBranchDelay", 1808 ATy(F8,bTy), 1809 qVar"s"), 1810 Var("i",F8))]), 1811 Let(qVar"s", 1812 Rupd 1813 ("CCallBranch", 1814 TP[qVar"s", 1815 Apply 1816 (Dest 1817 ("all_CCallBranch", 1818 ATy(F8,bTy), 1819 qVar"s"), 1820 Var("i",F8))]), 1821 Let(qVar"s", 1822 Rupd 1823 ("capcause", 1824 TP[qVar"s", 1825 Apply 1826 (Dest 1827 ("all_capcause", 1828 ATy(F8, 1829 CTy"CapCause"), 1830 qVar"s"), 1831 Var("i",F8))]), 1832 Let(qVar"s", 1833 Rupd 1834 ("c_pcc", 1835 TP[qVar"s", 1836 Apply 1837 (Dest 1838 ("all_pcc", 1839 ATy(F8, 1840 CTy"Capability"), 1841 qVar"s"), 1842 Var("i", 1843 F8))]), 1844 Rupd 1845 ("c_capr", 1846 TP[qVar"s", 1847 Apply 1848 (Dest 1849 ("all_capr", 1850 ATy(F8, 1851 ATy(FTy 5, 1852 CTy"Capability")), 1853 qVar"s"), 1854 Var("i", 1855 F8))])))))))))))))))) 1856; 1857val dumpCRegs_def = Def ("dumpCRegs",AVar uTy,LU) 1858; 1859val PCC_def = Def 1860 ("PCC",qVar"state",Dest("c_pcc",CTy"Capability",qVar"state")) 1861; 1862val write'PCC_def = Def 1863 ("write'PCC",Var("value",CTy"Capability"), 1864 Close 1865 (qVar"state", 1866 Rupd("c_pcc",TP[qVar"state",Var("value",CTy"Capability")]))) 1867; 1868val CAPR_def = Def 1869 ("CAPR",Var("n",FTy 5), 1870 Close 1871 (qVar"state", 1872 Apply 1873 (Dest("c_capr",ATy(FTy 5,CTy"Capability"),qVar"state"), 1874 Var("n",FTy 5)))) 1875; 1876val write'CAPR_def = Def 1877 ("write'CAPR",TP[Var("value",CTy"Capability"),Var("n",FTy 5)], 1878 Close 1879 (qVar"state", 1880 Rupd 1881 ("c_capr", 1882 TP[qVar"state", 1883 Fupd 1884 (Dest("c_capr",ATy(FTy 5,CTy"Capability"),qVar"state"), 1885 Var("n",FTy 5),Var("value",CTy"Capability"))]))) 1886; 1887val RCC_def = Def 1888 ("RCC",qVar"state", 1889 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(24,5)),qVar"state")) 1890; 1891val write'RCC_def = Def 1892 ("write'RCC",Var("value",CTy"Capability"), 1893 Close 1894 (qVar"state", 1895 Apply 1896 (Call 1897 ("write'CAPR",ATy(qTy,qTy), 1898 TP[Var("value",CTy"Capability"),LW(24,5)]),qVar"state"))) 1899; 1900val IDC_def = Def 1901 ("IDC",qVar"state", 1902 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(26,5)),qVar"state")) 1903; 1904val write'IDC_def = Def 1905 ("write'IDC",Var("value",CTy"Capability"), 1906 Close 1907 (qVar"state", 1908 Apply 1909 (Call 1910 ("write'CAPR",ATy(qTy,qTy), 1911 TP[Var("value",CTy"Capability"),LW(26,5)]),qVar"state"))) 1912; 1913val KR1C_def = Def 1914 ("KR1C",qVar"state", 1915 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(27,5)),qVar"state")) 1916; 1917val write'KR1C_def = Def 1918 ("write'KR1C",Var("value",CTy"Capability"), 1919 Close 1920 (qVar"state", 1921 Apply 1922 (Call 1923 ("write'CAPR",ATy(qTy,qTy), 1924 TP[Var("value",CTy"Capability"),LW(27,5)]),qVar"state"))) 1925; 1926val KR2C_def = Def 1927 ("KR2C",qVar"state", 1928 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(28,5)),qVar"state")) 1929; 1930val write'KR2C_def = Def 1931 ("write'KR2C",Var("value",CTy"Capability"), 1932 Close 1933 (qVar"state", 1934 Apply 1935 (Call 1936 ("write'CAPR",ATy(qTy,qTy), 1937 TP[Var("value",CTy"Capability"),LW(28,5)]),qVar"state"))) 1938; 1939val KCC_def = Def 1940 ("KCC",qVar"state", 1941 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(29,5)),qVar"state")) 1942; 1943val write'KCC_def = Def 1944 ("write'KCC",Var("value",CTy"Capability"), 1945 Close 1946 (qVar"state", 1947 Apply 1948 (Call 1949 ("write'CAPR",ATy(qTy,qTy), 1950 TP[Var("value",CTy"Capability"),LW(29,5)]),qVar"state"))) 1951; 1952val KDC_def = Def 1953 ("KDC",qVar"state", 1954 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(30,5)),qVar"state")) 1955; 1956val write'KDC_def = Def 1957 ("write'KDC",Var("value",CTy"Capability"), 1958 Close 1959 (qVar"state", 1960 Apply 1961 (Call 1962 ("write'CAPR",ATy(qTy,qTy), 1963 TP[Var("value",CTy"Capability"),LW(30,5)]),qVar"state"))) 1964; 1965val EPCC_def = Def 1966 ("EPCC",qVar"state", 1967 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(31,5)),qVar"state")) 1968; 1969val write'EPCC_def = Def 1970 ("write'EPCC",Var("value",CTy"Capability"), 1971 Close 1972 (qVar"state", 1973 Apply 1974 (Call 1975 ("write'CAPR",ATy(qTy,qTy), 1976 TP[Var("value",CTy"Capability"),LW(31,5)]),qVar"state"))) 1977; 1978val allow_system_reg_access_def = Def 1979 ("allow_system_reg_access",TP[Var("p",CTy"Perms"),Var("r",FTy 5)], 1980 Close 1981 (qVar"state", 1982 ITE(Bop(And,Bop(Uge,Var("r",FTy 5),LW(27,5)), 1983 Mop(Not, 1984 Dest("Access_System_Registers",bTy,Var("p",CTy"Perms")))), 1985 LF, 1986 Mop(Not, 1987 Bop(And,EQ(Var("r",FTy 5),LW(26,5)), 1988 Dest("CCallBranchDelay",bTy,qVar"state")))))) 1989; 1990val ExceptionCode_def = Def 1991 ("ExceptionCode",Var("e",CTy"ExceptionType"), 1992 CS(Var("e",CTy"ExceptionType"), 1993 [(LC("Int",CTy"ExceptionType"),LW(0,5)), 1994 (LC("Mod",CTy"ExceptionType"),LW(1,5)), 1995 (LC("TLBL",CTy"ExceptionType"),LW(2,5)), 1996 (LC("TLBS",CTy"ExceptionType"),LW(3,5)), 1997 (LC("AdEL",CTy"ExceptionType"),LW(4,5)), 1998 (LC("AdES",CTy"ExceptionType"),LW(5,5)), 1999 (LC("Sys",CTy"ExceptionType"),LW(8,5)), 2000 (LC("Bp",CTy"ExceptionType"),LW(9,5)), 2001 (LC("ResI",CTy"ExceptionType"),LW(10,5)), 2002 (LC("CpU",CTy"ExceptionType"),LW(11,5)), 2003 (LC("Ov",CTy"ExceptionType"),LW(12,5)), 2004 (LC("Tr",CTy"ExceptionType"),LW(13,5)), 2005 (LC("CTLBL",CTy"ExceptionType"),LW(16,5)), 2006 (LC("CTLBS",CTy"ExceptionType"),LW(17,5)), 2007 (LC("C2E",CTy"ExceptionType"),LW(18,5)), 2008 (LC("MCheck",CTy"ExceptionType"),LW(24,5)), 2009 (LC("XTLBRefillL",CTy"ExceptionType"),LW(2,5)), 2010 (LC("XTLBRefillS",CTy"ExceptionType"),LW(3,5))])) 2011; 2012val capExcCode_def = Def 2013 ("capExcCode",Var("e",CTy"CapExceptionType"), 2014 CS(Var("e",CTy"CapExceptionType"), 2015 [(LC("capExcNone",CTy"CapExceptionType"),LW(0,8)), 2016 (LC("capExcLength",CTy"CapExceptionType"),LW(1,8)), 2017 (LC("capExcTag",CTy"CapExceptionType"),LW(2,8)), 2018 (LC("capExcSeal",CTy"CapExceptionType"),LW(3,8)), 2019 (LC("capExcType",CTy"CapExceptionType"),LW(4,8)), 2020 (LC("capExcCall",CTy"CapExceptionType"),LW(5,8)), 2021 (LC("capExcRet",CTy"CapExceptionType"),LW(6,8)), 2022 (LC("capExcUnderflowTSS",CTy"CapExceptionType"),LW(7,8)), 2023 (LC("capExcUser",CTy"CapExceptionType"),LW(8,8)), 2024 (LC("capExcTLBNoStore",CTy"CapExceptionType"),LW(9,8)), 2025 (LC("capExcInexact",CTy"CapExceptionType"),LW(10,8)), 2026 (LC("capExcGlobal",CTy"CapExceptionType"),LW(16,8)), 2027 (LC("capExcPermExe",CTy"CapExceptionType"),LW(17,8)), 2028 (LC("capExcPermLoad",CTy"CapExceptionType"),LW(18,8)), 2029 (LC("capExcPermStore",CTy"CapExceptionType"),LW(19,8)), 2030 (LC("capExcPermLoadCap",CTy"CapExceptionType"),LW(20,8)), 2031 (LC("capExcPermStoreCap",CTy"CapExceptionType"),LW(21,8)), 2032 (LC("capExcPermStoreLocalCap",CTy"CapExceptionType"),LW(22,8)), 2033 (LC("capExcPermSeal",CTy"CapExceptionType"),LW(23,8)), 2034 (LC("capExcAccessSysReg",CTy"CapExceptionType"),LW(24,8)), 2035 (LC("capExcPermCCall",CTy"CapExceptionType"),LW(25,8))])) 2036; 2037val SignalException_def = Def 2038 ("SignalException",Var("ExceptionType",CTy"ExceptionType"), 2039 Close 2040 (qVar"state", 2041 Let(qVar"s", 2042 ITE(Mop(Not, 2043 Dest 2044 ("EXL",bTy, 2045 Dest 2046 ("Status",CTy"StatusRegister", 2047 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 2048 ITE(Bop(Or, 2049 Mop(IsSome, 2050 Apply 2051 (Const("BranchDelay",ATy(qTy,OTy F64)), 2052 qVar"state")), 2053 Mop(IsSome, 2054 Dest 2055 ("BranchDelayPCC", 2056 OTy(PTy(F64,CTy"Capability")),qVar"state"))), 2057 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2058 Let(qVar"s0", 2059 Apply 2060 (Call 2061 ("write'CP0",ATy(qTy,qTy), 2062 Rupd 2063 ("EPC", 2064 TP[Apply 2065 (Const("CP0",ATy(qTy,CTy"CP0")), 2066 qVar"state"), 2067 Bop(Sub, 2068 Apply 2069 (Const("PC",ATy(qTy,F64)), 2070 qVar"state"),LW(4,64))])), 2071 qVar"state"), 2072 TP[Apply 2073 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 2074 qVar"s0"]), 2075 Apply 2076 (Call 2077 ("write'CP0",ATy(qTy,qTy), 2078 Rupd 2079 ("Cause", 2080 TP[Var("v",CTy"CP0"), 2081 Rupd 2082 ("BD", 2083 TP[Dest 2084 ("Cause",CTy"CauseRegister", 2085 Var("v",CTy"CP0")),LT])])), 2086 qVar"s")), 2087 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2088 Let(qVar"s0", 2089 Apply 2090 (Call 2091 ("write'CP0",ATy(qTy,qTy), 2092 Rupd 2093 ("EPC", 2094 TP[Apply 2095 (Const("CP0",ATy(qTy,CTy"CP0")), 2096 qVar"state"), 2097 Apply 2098 (Const("PC",ATy(qTy,F64)), 2099 qVar"state")])),qVar"state"), 2100 TP[Apply 2101 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 2102 qVar"s0"]), 2103 Apply 2104 (Call 2105 ("write'CP0",ATy(qTy,qTy), 2106 Rupd 2107 ("Cause", 2108 TP[Var("v",CTy"CP0"), 2109 Rupd 2110 ("BD", 2111 TP[Dest 2112 ("Cause",CTy"CauseRegister", 2113 Var("v",CTy"CP0")),LF])])), 2114 qVar"s"))),qVar"state"), 2115 Let(TP[Var("v0",CTy"CP0"),qVar"s0"], 2116 Let(qVar"s0", 2117 ITE(Mop(IsSome,Dest("currentInst",OTy F32,qVar"s")), 2118 Apply 2119 (Call 2120 ("write'CP0",ATy(qTy,qTy), 2121 Rupd 2122 ("EInstr", 2123 TP[Apply 2124 (Const("CP0",ATy(qTy,CTy"CP0")), 2125 qVar"s"), 2126 Mop(ValOf, 2127 Dest("currentInst",OTy F32,qVar"s"))])), 2128 qVar"s"),qVar"s"), 2129 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 2130 qVar"s0"]), 2131 Let(TP[Var("v0",CTy"CP0"),qVar"s0"], 2132 Let(qVar"s", 2133 Apply 2134 (Call 2135 ("write'CP0",ATy(qTy,qTy), 2136 Rupd 2137 ("Cause", 2138 TP[Var("v0",CTy"CP0"), 2139 Rupd 2140 ("ExcCode", 2141 TP[Dest 2142 ("Cause",CTy"CauseRegister", 2143 Var("v0",CTy"CP0")), 2144 Call 2145 ("ExceptionCode",FTy 5, 2146 Var("ExceptionType", 2147 CTy"ExceptionType"))])])), 2148 qVar"s0"), 2149 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s"), 2150 qVar"s"]), 2151 Let(Var("v0",F64), 2152 ITE(Dest 2153 ("BEV",bTy, 2154 Dest 2155 ("Status",CTy"StatusRegister", 2156 Var("v0",CTy"CP0"))), 2157 LW(18446744072631616000,64), 2158 LW(18446744071562067968,64)), 2159 Let(TP[Var("v1",CTy"Capability"),qVar"s0"], 2160 Let(qVar"s", 2161 Apply 2162 (Call 2163 ("write'exceptionSignalled", 2164 ATy(qTy,qTy),LT), 2165 Rupd 2166 ("BranchToPCC", 2167 TP[Rupd 2168 ("BranchDelayPCC", 2169 TP[Apply 2170 (Call 2171 ("write'BranchTo", 2172 ATy(qTy,qTy),LO F64), 2173 Apply 2174 (Call 2175 ("write'BranchDelay", 2176 ATy(qTy,qTy),LO F64), 2177 qVar"s0")), 2178 LO(PTy(F64,CTy"Capability"))]), 2179 LO(PTy(F64,CTy"Capability"))])), 2180 TP[Apply 2181 (Const("PCC",ATy(qTy,CTy"Capability")), 2182 qVar"s"),qVar"s"]), 2183 Let(qVar"s2", 2184 ITE(Mop(Not, 2185 Dest 2186 ("EXL",bTy, 2187 Dest 2188 ("Status",CTy"StatusRegister", 2189 Apply 2190 (Const 2191 ("CP0",ATy(qTy,CTy"CP0")), 2192 qVar"s0")))), 2193 Apply 2194 (Call 2195 ("write'EPCC",ATy(qTy,qTy), 2196 ITE(Mop(Not, 2197 Call 2198 ("canRepOffset",bTy, 2199 TP[Apply 2200 (Const 2201 ("PCC", 2202 ATy(qTy, 2203 CTy"Capability")), 2204 qVar"s0"), 2205 Apply 2206 (Const 2207 ("PC", 2208 ATy(qTy,F64)), 2209 qVar"s0")])), 2210 Call 2211 ("setOffset", 2212 CTy"Capability", 2213 TP[Const 2214 ("nullCap", 2215 CTy"Capability"), 2216 Bop(Add, 2217 Call 2218 ("getBase",F64, 2219 Apply 2220 (Const 2221 ("PCC", 2222 ATy(qTy, 2223 CTy"Capability")), 2224 qVar"s0")), 2225 Apply 2226 (Const 2227 ("PC", 2228 ATy(qTy,F64)), 2229 qVar"s0"))]), 2230 Call 2231 ("setOffset", 2232 CTy"Capability", 2233 TP[Var("v1",CTy"Capability"), 2234 Apply 2235 (Const 2236 ("PC",ATy(qTy,F64)), 2237 qVar"s0")]))), 2238 qVar"s0"),qVar"s0"), 2239 Let(qVar"s2", 2240 Apply 2241 (Call 2242 ("write'PCC",ATy(qTy,qTy), 2243 Apply 2244 (Const 2245 ("KCC", 2246 ATy(qTy,CTy"Capability")), 2247 qVar"s2")),qVar"s2"), 2248 Let(qVar"s1", 2249 Apply 2250 (Call 2251 ("write'PC",ATy(qTy,qTy), 2252 Bop(Sub, 2253 CC[EX(Var("v0",F64),LN 63, 2254 LN 30,FTy 34), 2255 Bop(Add, 2256 EX(Var("v0",F64), 2257 LN 29,LN 0, 2258 FTy 30), 2259 ITB([(Bop(And, 2260 Bop(Or, 2261 EQ(Var("ExceptionType", 2262 CTy"ExceptionType"), 2263 LC("XTLBRefillL", 2264 CTy"ExceptionType")), 2265 EQ(Var("ExceptionType", 2266 CTy"ExceptionType"), 2267 LC("XTLBRefillS", 2268 CTy"ExceptionType"))), 2269 Mop(Not, 2270 Dest 2271 ("EXL", 2272 bTy, 2273 Dest 2274 ("Status", 2275 CTy"StatusRegister", 2276 Apply 2277 (Const 2278 ("CP0", 2279 ATy(qTy, 2280 CTy"CP0")), 2281 qVar"s"))))), 2282 LW(128,30)), 2283 (Bop(And, 2284 EQ(Var("ExceptionType", 2285 CTy"ExceptionType"), 2286 LC("C2E", 2287 CTy"ExceptionType")), 2288 Bop(Or, 2289 EQ(Dest 2290 ("ExcCode", 2291 F8, 2292 Dest 2293 ("capcause", 2294 CTy"CapCause", 2295 qVar"s")), 2296 LW(5, 2297 8)), 2298 EQ(Dest 2299 ("ExcCode", 2300 F8, 2301 Dest 2302 ("capcause", 2303 CTy"CapCause", 2304 qVar"s")), 2305 LW(6, 2306 8)))), 2307 LW(640,30))], 2308 LW(384,30)))], 2309 Call 2310 ("getBase",F64, 2311 Apply 2312 (Const 2313 ("PCC", 2314 ATy(qTy, 2315 CTy"Capability")), 2316 qVar"s2")))), 2317 qVar"s2"), 2318 Let(Var("v",CTy"CP0"), 2319 Apply 2320 (Const 2321 ("CP0",ATy(qTy,CTy"CP0")), 2322 qVar"s1"), 2323 Apply 2324 (Call 2325 ("write'CP0",ATy(qTy,qTy), 2326 Rupd 2327 ("Status", 2328 TP[Var("v",CTy"CP0"), 2329 Rupd 2330 ("EXL", 2331 TP[Dest 2332 ("Status", 2333 CTy"StatusRegister", 2334 Var("v", 2335 CTy"CP0")), 2336 LT])])), 2337 qVar"s1")))))))))))) 2338; 2339val SignalCP1UnusableException_def = Def 2340 ("SignalCP1UnusableException",qVar"state", 2341 Let(Var("v",CTy"CP0"), 2342 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 2343 Apply 2344 (Call 2345 ("SignalException",ATy(qTy,qTy),LC("CpU",CTy"ExceptionType")), 2346 Apply 2347 (Call 2348 ("write'CP0",ATy(qTy,qTy), 2349 Rupd 2350 ("Cause", 2351 TP[Var("v",CTy"CP0"), 2352 Rupd 2353 ("CE", 2354 TP[Dest 2355 ("Cause",CTy"CauseRegister", 2356 Var("v",CTy"CP0")),LW(1,2)])])),qVar"state")))) 2357; 2358val SignalCP2UnusableException_def = Def 2359 ("SignalCP2UnusableException",qVar"state", 2360 Let(Var("v",CTy"CP0"), 2361 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 2362 Apply 2363 (Call 2364 ("SignalException",ATy(qTy,qTy),LC("CpU",CTy"ExceptionType")), 2365 Apply 2366 (Call 2367 ("write'CP0",ATy(qTy,qTy), 2368 Rupd 2369 ("Cause", 2370 TP[Var("v",CTy"CP0"), 2371 Rupd 2372 ("CE", 2373 TP[Dest 2374 ("Cause",CTy"CauseRegister", 2375 Var("v",CTy"CP0")),LW(2,2)])])),qVar"state")))) 2376; 2377val SignalCapException_internal_def = Def 2378 ("SignalCapException_internal", 2379 TP[Var("capException",CTy"CapExceptionType"),Var("regNum",F8)], 2380 Close 2381 (qVar"state", 2382 Let(qVar"s", 2383 Rupd 2384 ("capcause", 2385 TP[qVar"state", 2386 Rupd 2387 ("ExcCode", 2388 TP[Dest("capcause",CTy"CapCause",qVar"state"), 2389 Call 2390 ("capExcCode",F8, 2391 Var("capException",CTy"CapExceptionType"))])]), 2392 Apply 2393 (Call 2394 ("SignalException",ATy(qTy,qTy), 2395 LC("C2E",CTy"ExceptionType")), 2396 Rupd 2397 ("capcause", 2398 TP[qVar"s", 2399 Rupd 2400 ("RegNum", 2401 TP[Dest("capcause",CTy"CapCause",qVar"s"), 2402 Var("regNum",F8)])]))))) 2403; 2404val SignalCapException_def = Def 2405 ("SignalCapException", 2406 TP[Var("capException",CTy"CapExceptionType"),Var("regNum",FTy 5)], 2407 Close 2408 (qVar"state", 2409 Apply 2410 (Call 2411 ("SignalCapException_internal",ATy(qTy,qTy), 2412 TP[Var("capException",CTy"CapExceptionType"), 2413 Mop(Cast F8,Var("regNum",FTy 5))]),qVar"state"))) 2414; 2415val SignalCapException_noReg_def = Def 2416 ("SignalCapException_noReg",Var("capException",CTy"CapExceptionType"), 2417 Close 2418 (qVar"state", 2419 Apply 2420 (Call 2421 ("SignalCapException_internal",ATy(qTy,qTy), 2422 TP[Var("capException",CTy"CapExceptionType"),LW(255,8)]), 2423 qVar"state"))) 2424; 2425val dfn'ERET_def = Def 2426 ("dfn'ERET",qVar"state", 2427 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2428 Let(qVar"s",Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 2429 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s"),qVar"s"]), 2430 ITE(Bop(Or, 2431 Dest 2432 ("CU0",bTy, 2433 Dest("Status",CTy"StatusRegister",Var("v",CTy"CP0"))), 2434 Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"s")), 2435 Let(TP[Var("v",CTy"Capability"),qVar"s"], 2436 Let(qVar"s0", 2437 Apply 2438 (Call("write'LLbit",ATy(qTy,qTy),Mop(Some,LF)), 2439 ITE(Dest 2440 ("ERL",bTy, 2441 Dest 2442 ("Status",CTy"StatusRegister", 2443 Apply 2444 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"s"))), 2445 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2446 Let(qVar"s0", 2447 Apply 2448 (Call 2449 ("write'PC",ATy(qTy,qTy), 2450 Bop(Sub, 2451 Dest 2452 ("ErrorEPC",F64, 2453 Apply 2454 (Const 2455 ("CP0", 2456 ATy(qTy,CTy"CP0")), 2457 qVar"s")),LW(4,64))), 2458 qVar"s"), 2459 TP[Apply 2460 (Const("CP0",ATy(qTy,CTy"CP0")), 2461 qVar"s0"),qVar"s0"]), 2462 Apply 2463 (Call 2464 ("write'CP0",ATy(qTy,qTy), 2465 Rupd 2466 ("Status", 2467 TP[Var("v",CTy"CP0"), 2468 Rupd 2469 ("ERL", 2470 TP[Dest 2471 ("Status", 2472 CTy"StatusRegister", 2473 Var("v",CTy"CP0")),LF])])), 2474 qVar"s")), 2475 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2476 Let(qVar"s0", 2477 Apply 2478 (Call 2479 ("write'PC",ATy(qTy,qTy), 2480 Bop(Sub, 2481 Dest 2482 ("EPC",F64, 2483 Apply 2484 (Const 2485 ("CP0", 2486 ATy(qTy,CTy"CP0")), 2487 qVar"s")),LW(4,64))), 2488 qVar"s"), 2489 TP[Apply 2490 (Const("CP0",ATy(qTy,CTy"CP0")), 2491 qVar"s0"),qVar"s0"]), 2492 Apply 2493 (Call 2494 ("write'CP0",ATy(qTy,qTy), 2495 Rupd 2496 ("Status", 2497 TP[Var("v",CTy"CP0"), 2498 Rupd 2499 ("EXL", 2500 TP[Dest 2501 ("Status", 2502 CTy"StatusRegister", 2503 Var("v",CTy"CP0")),LF])])), 2504 qVar"s")))), 2505 TP[Apply 2506 (Const("EPCC",ATy(qTy,CTy"Capability")),qVar"s0"), 2507 qVar"s0"]), 2508 Apply 2509 (Call("write'PCC",ATy(qTy,qTy),Var("v",CTy"Capability")), 2510 qVar"s")), 2511 Apply 2512 (Call 2513 ("SignalException",ATy(qTy,qTy), 2514 LC("CpU",CTy"ExceptionType")),qVar"s")))) 2515; 2516val TLBAssocEntries_def = Def0 ("TLBAssocEntries",LN 16) 2517; 2518val TLBDirectEntries_def = Def0 ("TLBDirectEntries",LN 256) 2519; 2520val TLBEntries_def = Def0 2521 ("TLBEntries", 2522 Bop(Add,Const("TLBAssocEntries",nTy),Const("TLBDirectEntries",nTy))) 2523; 2524val TLB_direct_def = Def 2525 ("TLB_direct",Var("i",F8), 2526 Close 2527 (qVar"state", 2528 Apply 2529 (Dest("c_TLB_direct",ATy(F8,OTy(CTy"TLBEntry")),qVar"state"), 2530 Var("i",F8)))) 2531; 2532val write'TLB_direct_def = Def 2533 ("write'TLB_direct",TP[Var("value",OTy(CTy"TLBEntry")),Var("i",F8)], 2534 Close 2535 (qVar"state", 2536 Rupd 2537 ("c_TLB_direct", 2538 TP[qVar"state", 2539 Fupd 2540 (Dest("c_TLB_direct",ATy(F8,OTy(CTy"TLBEntry")),qVar"state"), 2541 Var("i",F8),Var("value",OTy(CTy"TLBEntry")))]))) 2542; 2543val TLB_assoc_def = Def 2544 ("TLB_assoc",Var("i",F4), 2545 Close 2546 (qVar"state", 2547 Apply 2548 (Dest("c_TLB_assoc",ATy(F4,OTy(CTy"TLBEntry")),qVar"state"), 2549 Var("i",F4)))) 2550; 2551val write'TLB_assoc_def = Def 2552 ("write'TLB_assoc",TP[Var("value",OTy(CTy"TLBEntry")),Var("i",F4)], 2553 Close 2554 (qVar"state", 2555 Rupd 2556 ("c_TLB_assoc", 2557 TP[qVar"state", 2558 Fupd 2559 (Dest("c_TLB_assoc",ATy(F4,OTy(CTy"TLBEntry")),qVar"state"), 2560 Var("i",F4),Var("value",OTy(CTy"TLBEntry")))]))) 2561; 2562val switchCoreTLB_def = Def 2563 ("switchCoreTLB",Var("i",F8), 2564 Close 2565 (qVar"state", 2566 Let(qVar"s", 2567 Rupd 2568 ("all_TLB_direct", 2569 TP[qVar"state", 2570 Fupd 2571 (Dest 2572 ("all_TLB_direct",ATy(F8,ATy(F8,OTy(CTy"TLBEntry"))), 2573 qVar"state"),Dest("procID",F8,qVar"state"), 2574 Dest 2575 ("c_TLB_direct",ATy(F8,OTy(CTy"TLBEntry")), 2576 qVar"state"))]), 2577 Let(qVar"s", 2578 Rupd 2579 ("all_TLB_assoc", 2580 TP[qVar"s", 2581 Fupd 2582 (Dest 2583 ("all_TLB_assoc", 2584 ATy(F8,ATy(F4,OTy(CTy"TLBEntry"))),qVar"s"), 2585 Dest("procID",F8,qVar"s"), 2586 Dest 2587 ("c_TLB_assoc",ATy(F4,OTy(CTy"TLBEntry")),qVar"s"))]), 2588 Let(qVar"s", 2589 Rupd 2590 ("c_TLB_direct", 2591 TP[qVar"s", 2592 Apply 2593 (Dest 2594 ("all_TLB_direct", 2595 ATy(F8,ATy(F8,OTy(CTy"TLBEntry"))),qVar"s"), 2596 Var("i",F8))]), 2597 Rupd 2598 ("c_TLB_assoc", 2599 TP[qVar"s", 2600 Apply 2601 (Dest 2602 ("all_TLB_assoc", 2603 ATy(F8,ATy(F4,OTy(CTy"TLBEntry"))),qVar"s"), 2604 Var("i",F8))])))))) 2605; 2606val LookupTLB_def = Def 2607 ("LookupTLB",TP[Var("r",FTy 2),Var("vpn2",FTy 27)], 2608 Close 2609 (qVar"state", 2610 Let(Var("s0",LTy(PTy(FTy 9,CTy"TLBEntry"))), 2611 LNL(PTy(FTy 9,CTy"TLBEntry")), 2612 Mop(Fst, 2613 Mop(Snd, 2614 Apply 2615 (For(TP[LN 0, 2616 Bop(Sub,Const("TLBAssocEntries",nTy),LN 1), 2617 Close 2618 (nVar"i", 2619 Close 2620 (Var("state", 2621 PTy(LTy(PTy(FTy 9,CTy"TLBEntry")), 2622 qTy)), 2623 CS(Apply 2624 (Call 2625 ("TLB_assoc", 2626 ATy(qTy,OTy(CTy"TLBEntry")), 2627 Mop(Cast F4,nVar"i")), 2628 Mop(Snd, 2629 Var("state", 2630 PTy(LTy(PTy(FTy 9, 2631 CTy"TLBEntry")), 2632 qTy)))), 2633 [(Mop(Some,Var("e",CTy"TLBEntry")), 2634 TP[LU, 2635 ITE(Bop(And, 2636 Bop(And, 2637 EQ(Dest 2638 ("R",FTy 2, 2639 Var("e", 2640 CTy"TLBEntry")), 2641 Var("r",FTy 2)), 2642 Bop(Or, 2643 Dest 2644 ("G",bTy, 2645 Var("e", 2646 CTy"TLBEntry")), 2647 EQ(Dest 2648 ("ASID",F8, 2649 Var("e", 2650 CTy"TLBEntry")), 2651 Dest 2652 ("ASID",F8, 2653 Dest 2654 ("EntryHi", 2655 CTy"EntryHi", 2656 Apply 2657 (Const 2658 ("CP0", 2659 ATy(qTy, 2660 CTy"CP0")), 2661 Mop(Snd, 2662 Var("state", 2663 PTy(LTy(PTy(FTy 9, 2664 CTy"TLBEntry")), 2665 qTy))))))))), 2666 Let(Var("nmask",FTy 27), 2667 Mop(BNot, 2668 Mop(Cast(FTy 27), 2669 Dest 2670 ("Mask", 2671 FTy 12, 2672 Var("e", 2673 CTy"TLBEntry")))), 2674 EQ(Bop(BAnd, 2675 Dest 2676 ("VPN2", 2677 FTy 27, 2678 Var("e", 2679 CTy"TLBEntry")), 2680 Var("nmask", 2681 FTy 27)), 2682 Bop(BAnd, 2683 Var("vpn2", 2684 FTy 27), 2685 Var("nmask", 2686 FTy 27))))), 2687 TP[LLC([TP[Mop(Cast(FTy 9), 2688 nVar"i"), 2689 Var("e", 2690 CTy"TLBEntry")]], 2691 Mop(Fst, 2692 Var("state", 2693 PTy(LTy(PTy(FTy 9, 2694 CTy"TLBEntry")), 2695 qTy)))), 2696 Mop(Snd, 2697 Var("state", 2698 PTy(LTy(PTy(FTy 9, 2699 CTy"TLBEntry")), 2700 qTy)))], 2701 Var("state", 2702 PTy(LTy(PTy(FTy 9, 2703 CTy"TLBEntry")), 2704 qTy)))]), 2705 (AVar(OTy(CTy"TLBEntry")), 2706 TP[LU, 2707 Var("state", 2708 PTy(LTy(PTy(FTy 9, 2709 CTy"TLBEntry")), 2710 qTy))])])))]), 2711 ITE(Dest 2712 ("LTLB",bTy, 2713 Dest 2714 ("Config6",CTy"ConfigRegister6", 2715 Apply 2716 (Const("CP0",ATy(qTy,CTy"CP0")), 2717 qVar"state"))), 2718 Let(Var("b",F8), 2719 EX(Var("vpn2",FTy 27),LN 7,LN 0,F8), 2720 CS(Apply 2721 (Call 2722 ("TLB_direct", 2723 ATy(qTy,OTy(CTy"TLBEntry")), 2724 Var("b",F8)),qVar"state"), 2725 [(Mop(Some,Var("e",CTy"TLBEntry")), 2726 TP[ITE(Bop(And, 2727 Bop(And, 2728 EQ(Dest 2729 ("R",FTy 2, 2730 Var("e", 2731 CTy"TLBEntry")), 2732 Var("r",FTy 2)), 2733 Bop(Or, 2734 Dest 2735 ("G",bTy, 2736 Var("e", 2737 CTy"TLBEntry")), 2738 EQ(Dest 2739 ("ASID",F8, 2740 Var("e", 2741 CTy"TLBEntry")), 2742 Dest 2743 ("ASID",F8, 2744 Dest 2745 ("EntryHi", 2746 CTy"EntryHi", 2747 Apply 2748 (Const 2749 ("CP0", 2750 ATy(qTy, 2751 CTy"CP0")), 2752 qVar"state")))))), 2753 Let(Var("nmask",FTy 27), 2754 Mop(BNot, 2755 Mop(Cast(FTy 27), 2756 Dest 2757 ("Mask",FTy 12, 2758 Var("e", 2759 CTy"TLBEntry")))), 2760 EQ(Bop(BAnd, 2761 Dest 2762 ("VPN2",FTy 27, 2763 Var("e", 2764 CTy"TLBEntry")), 2765 Var("nmask",FTy 27)), 2766 Bop(BAnd, 2767 Var("vpn2",FTy 27), 2768 Var("nmask",FTy 27))))), 2769 LL[TP[ITE(Bop(Le, 2770 Const 2771 ("TLBAssocEntries", 2772 nTy), 2773 Mop(Cast nTy, 2774 Var("b",F8))), 2775 Mop(Cast(FTy 9), 2776 Var("b",F8)), 2777 Bop(Add, 2778 Mop(Cast(FTy 9), 2779 Const 2780 ("TLBDirectEntries", 2781 nTy)), 2782 Mop(Cast(FTy 9), 2783 Var("b",F8)))), 2784 Var("e",CTy"TLBEntry")]], 2785 Var("s0", 2786 LTy(PTy(FTy 9,CTy"TLBEntry")))), 2787 qVar"state"]), 2788 (AVar(OTy(CTy"TLBEntry")), 2789 TP[Var("s0", 2790 LTy(PTy(FTy 9,CTy"TLBEntry"))), 2791 qVar"state"])])), 2792 TP[Var("s0",LTy(PTy(FTy 9,CTy"TLBEntry"))), 2793 qVar"state"]))))))) 2794; 2795val SignalTLBException_internal_def = Def 2796 ("SignalTLBException_internal",TP[Var("asid",F8),Var("vAddr",F64)], 2797 Close 2798 (qVar"state", 2799 Let(Var("r",FTy 2),EX(Var("vAddr",F64),LN 63,LN 62,FTy 2), 2800 Let(Var("vpn2",FTy 27),EX(Var("vAddr",F64),LN 39,LN 13,FTy 27), 2801 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2802 Let(qVar"s0", 2803 Apply 2804 (Call 2805 ("write'CP0",ATy(qTy,qTy), 2806 Rupd 2807 ("BadVAddr", 2808 TP[Apply 2809 (Const("CP0",ATy(qTy,CTy"CP0")), 2810 qVar"state"),Var("vAddr",F64)])), 2811 qVar"state"), 2812 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 2813 qVar"s0"]), 2814 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2815 Let(qVar"s0", 2816 Apply 2817 (Call 2818 ("write'CP0",ATy(qTy,qTy), 2819 Rupd 2820 ("EntryHi", 2821 TP[Var("v",CTy"CP0"), 2822 Rupd 2823 ("R", 2824 TP[Dest 2825 ("EntryHi",CTy"EntryHi", 2826 Var("v",CTy"CP0")), 2827 Var("r",FTy 2)])])),qVar"s"), 2828 TP[Apply 2829 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 2830 qVar"s0"]), 2831 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2832 Let(qVar"s0", 2833 Apply 2834 (Call 2835 ("write'CP0",ATy(qTy,qTy), 2836 Rupd 2837 ("EntryHi", 2838 TP[Var("v",CTy"CP0"), 2839 Rupd 2840 ("VPN2", 2841 TP[Dest 2842 ("EntryHi",CTy"EntryHi", 2843 Var("v",CTy"CP0")), 2844 Var("vpn2",FTy 27)])])), 2845 qVar"s"), 2846 TP[Apply 2847 (Const("CP0",ATy(qTy,CTy"CP0")), 2848 qVar"s0"),qVar"s0"]), 2849 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2850 Let(qVar"s0", 2851 Apply 2852 (Call 2853 ("write'CP0",ATy(qTy,qTy), 2854 Rupd 2855 ("EntryHi", 2856 TP[Var("v",CTy"CP0"), 2857 Rupd 2858 ("ASID", 2859 TP[Dest 2860 ("EntryHi", 2861 CTy"EntryHi", 2862 Var("v",CTy"CP0")), 2863 Var("asid",F8)])])), 2864 qVar"s"), 2865 TP[Apply 2866 (Const("CP0",ATy(qTy,CTy"CP0")), 2867 qVar"s0"),qVar"s0"]), 2868 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2869 Let(qVar"s0", 2870 Apply 2871 (Call 2872 ("write'CP0",ATy(qTy,qTy), 2873 Rupd 2874 ("XContext", 2875 TP[Var("v",CTy"CP0"), 2876 Rupd 2877 ("R", 2878 TP[Dest 2879 ("XContext", 2880 CTy"XContext", 2881 Var("v", 2882 CTy"CP0")), 2883 Var("r",FTy 2)])])), 2884 qVar"s"), 2885 TP[Apply 2886 (Const("CP0",ATy(qTy,CTy"CP0")), 2887 qVar"s0"),qVar"s0"]), 2888 Let(TP[Var("v",CTy"CP0"),qVar"s"], 2889 Let(qVar"s0", 2890 Apply 2891 (Call 2892 ("write'CP0",ATy(qTy,qTy), 2893 Rupd 2894 ("XContext", 2895 TP[Var("v",CTy"CP0"), 2896 Rupd 2897 ("BadVPN2", 2898 TP[Dest 2899 ("XContext", 2900 CTy"XContext", 2901 Var("v", 2902 CTy"CP0")), 2903 Var("vpn2", 2904 FTy 27)])])), 2905 qVar"s"), 2906 TP[Apply 2907 (Const 2908 ("CP0",ATy(qTy,CTy"CP0")), 2909 qVar"s0"),qVar"s0"]), 2910 Apply 2911 (Call 2912 ("write'CP0",ATy(qTy,qTy), 2913 Rupd 2914 ("Context", 2915 TP[Var("v",CTy"CP0"), 2916 Rupd 2917 ("BadVPN2", 2918 TP[Dest 2919 ("Context", 2920 CTy"Context", 2921 Var("v", 2922 CTy"CP0")), 2923 EX(Var("vAddr",F64), 2924 LN 31,LN 13, 2925 FTy 19)])])), 2926 qVar"s"))))))))))) 2927; 2928val SignalTLBException_def = Def 2929 ("SignalTLBException", 2930 TP[Var("e",CTy"ExceptionType"),Var("asid",F8),Var("vAddr",F64)], 2931 Close 2932 (qVar"state", 2933 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 2934 Apply 2935 (Call 2936 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 2937 LS"tlb-translation"), 2938 Apply 2939 (Call 2940 ("SignalException",ATy(qTy,qTy), 2941 Var("e",CTy"ExceptionType")), 2942 Apply 2943 (Call 2944 ("SignalTLBException_internal",ATy(qTy,qTy), 2945 TP[Var("asid",F8),Var("vAddr",F64)]),qVar"state"))), 2946 TP[Apply 2947 (LX(ATy(PTy(nTy,sTy),PTy(FTy 40,FTy 3))), 2948 Var("v",PTy(nTy,sTy))),qVar"s"]))) 2949; 2950val CheckSegment_def = Def 2951 ("CheckSegment",Var("vAddr",F64), 2952 Close 2953 (qVar"state", 2954 ITB([(Apply(Const("UserMode",ATy(qTy,bTy)),qVar"state"), 2955 TP[LO(PTy(FTy 40,FTy 3)), 2956 Bop(Ult,Var("vAddr",F64),LW(1099511627776,64))]), 2957 (Apply(Const("SupervisorMode",ATy(qTy,bTy)),qVar"state"), 2958 TP[LO(PTy(FTy 40,FTy 3)), 2959 Bop(Or,Bop(Ult,Var("vAddr",F64),LW(1099511627776,64)), 2960 Bop(Or, 2961 Bop(And, 2962 Bop(Ule,LW(4611686018427387904,64), 2963 Var("vAddr",F64)), 2964 Bop(Ult,Var("vAddr",F64), 2965 LW(4611687117939015680,64))), 2966 Bop(And, 2967 Bop(Ule,LW(18446744072635809792,64), 2968 Var("vAddr",F64)), 2969 Bop(Ult,Var("vAddr",F64), 2970 LW(18446744073172680704,64)))))]), 2971 (Bop(Ult,Var("vAddr",F64),LW(13835058055282163712,64)), 2972 ITB([(Bop(Ult,Var("vAddr",F64),LW(4611686018427387904,64)), 2973 TP[LO(PTy(FTy 40,FTy 3)), 2974 Bop(Ult,Var("vAddr",F64),LW(1099511627776,64))]), 2975 (Bop(Ule,LW(9223372036854775808,64),Var("vAddr",F64)), 2976 TP[Mop(Some, 2977 TP[EX(Var("vAddr",F64),LN 39,LN 0,FTy 40), 2978 EX(Var("vAddr",F64),LN 61,LN 59,FTy 3)]), 2979 EQ(EX(Var("vAddr",F64),LN 58,LN 40,FTy 19),LW(0,19))])], 2980 TP[LO(PTy(FTy 40,FTy 3)), 2981 Bop(Ult,Var("vAddr",F64),LW(4611687117939015680,64))])), 2982 (Bop(Ult,Var("vAddr",F64),LW(18446744072098938880,64)), 2983 ITE(Bop(Ule,LW(18446744071562067968,64),Var("vAddr",F64)), 2984 TP[Mop(Some, 2985 TP[Bop(Sub,EX(Var("vAddr",F64),LN 39,LN 0,FTy 40), 2986 LW(1097364144128,40)), 2987 Dest 2988 ("K0",FTy 3, 2989 Dest 2990 ("Config",CTy"ConfigRegister", 2991 Apply 2992 (Const("CP0",ATy(qTy,CTy"CP0")), 2993 qVar"state")))]),LT], 2994 TP[LO(PTy(FTy 40,FTy 3)), 2995 Bop(Ult,Var("vAddr",F64),LW(13835059152646307840,64))])), 2996 (Bop(Ult,Var("vAddr",F64),LW(18446744072635809792,64)), 2997 TP[Mop(Some, 2998 TP[Bop(Sub,EX(Var("vAddr",F64),LN 39,LN 0,FTy 40), 2999 LW(1097901015040,40)),LW(2,3)]),LT])], 3000 TP[LO(PTy(FTy 40,FTy 3)), 3001 Bop(Ule,LW(18446744072635809792,64),Var("vAddr",F64))]))) 3002; 3003val checkMask_def = Def 3004 ("checkMask",Var("mask",FTy 12), 3005 CS(Var("mask",FTy 12), 3006 [(LW(0,12),Mop(Some,LN 12)),(LW(3,12),Mop(Some,LN 14)), 3007 (LW(15,12),Mop(Some,LN 16)),(LW(63,12),Mop(Some,LN 18)), 3008 (LW(255,12),Mop(Some,LN 20)),(LW(1023,12),Mop(Some,LN 22)), 3009 (LW(4095,12),Mop(Some,LN 24)),(AVar(FTy 12),LO nTy)])) 3010; 3011val check_cca_def = Def 3012 ("check_cca",Var("cca",FTy 3), 3013 Close 3014 (qVar"state", 3015 ITE(Bop(In,Var("cca",FTy 3),SL[LW(0,3),LW(1,3),LW(7,3)]), 3016 Mop(Snd, 3017 Apply 3018 (Call 3019 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 3020 Call 3021 ("UNPREDICTABLE",CTy"exception", 3022 CC[LS"CCA ",Mop(Cast sTy,Var("cca",FTy 3)), 3023 LS" Reserved"])),qVar"state")),qVar"state"))) 3024; 3025val AddressTranslation_def = Def 3026 ("AddressTranslation", 3027 TP[Var("vAddr",F64),Var("AccessType",CTy"AccessType")], 3028 Close 3029 (qVar"state", 3030 Let(TP[Var("unmapped",OTy(PTy(FTy 40,FTy 3))),bVar"valid"], 3031 Apply 3032 (Call 3033 ("CheckSegment",ATy(qTy,PTy(OTy(PTy(FTy 40,FTy 3)),bTy)), 3034 Var("vAddr",F64)),qVar"state"), 3035 ITE(bVar"valid", 3036 CS(Var("unmapped",OTy(PTy(FTy 40,FTy 3))), 3037 [(Mop(Some,TP[Var("addr",FTy 40),Var("cca",FTy 3)]), 3038 TP[TP[Var("addr",FTy 40),Var("cca",FTy 3),LF,LF], 3039 Apply 3040 (Call("check_cca",ATy(qTy,qTy),Var("cca",FTy 3)), 3041 qVar"state")]), 3042 (AVar(OTy(PTy(FTy 40,FTy 3))), 3043 TP[TP[Mop(Cast(FTy 40),Var("vAddr",F64)),LW(0,3),LF,LF], 3044 qVar"state"])]), 3045 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 3046 Apply 3047 (Call 3048 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 3049 LS"tlb-translation"), 3050 Apply 3051 (Call 3052 ("SignalException",ATy(qTy,qTy), 3053 ITE(EQ(Var("AccessType",CTy"AccessType"), 3054 LC("LOAD",CTy"AccessType")), 3055 LC("AdEL",CTy"ExceptionType"), 3056 LC("AdES",CTy"ExceptionType"))), 3057 Apply 3058 (Call 3059 ("write'CP0",ATy(qTy,qTy), 3060 Rupd 3061 ("BadVAddr", 3062 TP[Apply 3063 (Const("CP0",ATy(qTy,CTy"CP0")), 3064 qVar"state"),Var("vAddr",F64)])), 3065 qVar"state"))), 3066 TP[Apply 3067 (LX(ATy(PTy(nTy,sTy), 3068 PTy(FTy 40,PTy(FTy 3,PTy(bTy,bTy))))), 3069 Var("v",PTy(nTy,sTy))),qVar"s"]))))) 3070; 3071val tlbTryTranslation_def = Def 3072 ("tlbTryTranslation",Var("vAddr",F64),LO(FTy 40)) 3073; 3074val CP0TLBEntry_def = Def 3075 ("CP0TLBEntry",AVar uTy, 3076 Close 3077 (qVar"state", 3078 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 3079 Apply 3080 (Call 3081 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 3082 LS"tlb-entry"),qVar"state"), 3083 TP[Apply 3084 (LX(ATy(PTy(nTy,sTy),CTy"TLBEntry")),Var("v",PTy(nTy,sTy))), 3085 qVar"s"]))) 3086; 3087val SignalTLBCapException_def = Def 3088 ("SignalTLBCapException", 3089 TP[Var("capException",CTy"CapExceptionType"),Var("asid",F8), 3090 Var("vAddr",F64)], 3091 Close 3092 (qVar"state", 3093 Mop(Snd, 3094 Apply 3095 (Call 3096 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 3097 LS"tlb-cap-exception"), 3098 Apply 3099 (Call 3100 ("SignalCapException_noReg",ATy(qTy,qTy), 3101 Var("capException",CTy"CapExceptionType")), 3102 Apply 3103 (Call 3104 ("SignalTLBException_internal",ATy(qTy,qTy), 3105 TP[Var("asid",F8),Var("vAddr",F64)]),qVar"state")))))) 3106; 3107val dfn'TLBP_def = Def 3108 ("dfn'TLBP",qVar"state", 3109 ITE(Bop(And, 3110 Mop(Not, 3111 Dest 3112 ("CU0",bTy, 3113 Dest 3114 ("Status",CTy"StatusRegister", 3115 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 3116 Mop(Not,Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state"))), 3117 Apply 3118 (Call 3119 ("SignalException",ATy(qTy,qTy),LC("CpU",CTy"ExceptionType")), 3120 qVar"state"), 3121 CS(Apply 3122 (Call 3123 ("LookupTLB",ATy(qTy,LTy(PTy(FTy 9,CTy"TLBEntry"))), 3124 TP[Dest 3125 ("R",FTy 2, 3126 Dest 3127 ("EntryHi",CTy"EntryHi", 3128 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 3129 Dest 3130 ("VPN2",FTy 27, 3131 Dest 3132 ("EntryHi",CTy"EntryHi", 3133 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))]), 3134 qVar"state"), 3135 [(LNL(PTy(FTy 9,CTy"TLBEntry")), 3136 Let(Var("v",CTy"CP0"), 3137 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 3138 Let(TP[Var("v",CTy"CP0"),qVar"s"], 3139 Let(qVar"s0", 3140 Apply 3141 (Call 3142 ("write'CP0",ATy(qTy,qTy), 3143 Rupd 3144 ("Index", 3145 TP[Var("v",CTy"CP0"), 3146 Rupd 3147 ("P", 3148 TP[Dest 3149 ("Index",CTy"Index", 3150 Var("v",CTy"CP0")),LT])])), 3151 qVar"state"), 3152 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 3153 qVar"s0"]), 3154 Let(TP[Var("v0",PTy(nTy,sTy)),qVar"s"], 3155 Apply 3156 (Call 3157 ("next_unknown", 3158 ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"tlb-index"), 3159 qVar"s"), 3160 Apply 3161 (Call 3162 ("write'CP0",ATy(qTy,qTy), 3163 Rupd 3164 ("Index", 3165 TP[Var("v",CTy"CP0"), 3166 Rupd 3167 ("Index", 3168 TP[Dest 3169 ("Index",CTy"Index", 3170 Var("v",CTy"CP0")), 3171 Apply 3172 (LX(ATy(PTy(nTy,sTy),FTy 9)), 3173 Var("v0",PTy(nTy,sTy)))])])), 3174 qVar"s"))))), 3175 (LL[TP[Var("i",FTy 9),AVar(CTy"TLBEntry")]], 3176 Let(Var("v",CTy"CP0"), 3177 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 3178 Let(TP[Var("v",CTy"CP0"),qVar"s"], 3179 Let(qVar"s0", 3180 Apply 3181 (Call 3182 ("write'CP0",ATy(qTy,qTy), 3183 Rupd 3184 ("Index", 3185 TP[Var("v",CTy"CP0"), 3186 Rupd 3187 ("P", 3188 TP[Dest 3189 ("Index",CTy"Index", 3190 Var("v",CTy"CP0")),LF])])), 3191 qVar"state"), 3192 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 3193 qVar"s0"]), 3194 Apply 3195 (Call 3196 ("write'CP0",ATy(qTy,qTy), 3197 Rupd 3198 ("Index", 3199 TP[Var("v",CTy"CP0"), 3200 Rupd 3201 ("Index", 3202 TP[Dest 3203 ("Index",CTy"Index", 3204 Var("v",CTy"CP0")),Var("i",FTy 9)])])), 3205 qVar"s")))), 3206 (AVar(LTy(PTy(FTy 9,CTy"TLBEntry"))), 3207 Mop(Snd, 3208 Apply 3209 (Call 3210 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 3211 Call 3212 ("UNPREDICTABLE",CTy"exception", 3213 LS"TLB: multiple matches")),qVar"state")))]))) 3214; 3215val dfn'TLBR_def = Def 3216 ("dfn'TLBR",qVar"state", 3217 ITE(Bop(And, 3218 Mop(Not, 3219 Dest 3220 ("CU0",bTy, 3221 Dest 3222 ("Status",CTy"StatusRegister", 3223 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 3224 Mop(Not,Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state"))), 3225 Apply 3226 (Call 3227 ("SignalException",ATy(qTy,qTy),LC("CpU",CTy"ExceptionType")), 3228 qVar"state"), 3229 Let(Var("v",FTy 9), 3230 Dest 3231 ("Index",FTy 9, 3232 Dest 3233 ("Index",CTy"Index", 3234 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 3235 CS(ITE(Bop(Ge,Mop(Cast nTy,Var("v",FTy 9)), 3236 Const("TLBAssocEntries",nTy)), 3237 Apply 3238 (Call 3239 ("TLB_direct",ATy(qTy,OTy(CTy"TLBEntry")), 3240 EX(Var("v",FTy 9),LN 7,LN 0,F8)),qVar"state"), 3241 Apply 3242 (Call 3243 ("TLB_assoc",ATy(qTy,OTy(CTy"TLBEntry")), 3244 Mop(Cast F4,Var("v",FTy 9))),qVar"state")), 3245 [(Mop(Some,Var("e",CTy"TLBEntry")), 3246 Let(Var("v",CTy"CP0"), 3247 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 3248 Let(TP[Var("v",CTy"CP0"),qVar"s"], 3249 Let(qVar"s0", 3250 Apply 3251 (Call 3252 ("write'CP0",ATy(qTy,qTy), 3253 Rupd 3254 ("PageMask", 3255 TP[Var("v",CTy"CP0"), 3256 Rupd 3257 ("Mask", 3258 TP[Dest 3259 ("PageMask",CTy"PageMask", 3260 Var("v",CTy"CP0")), 3261 Dest 3262 ("Mask",FTy 12, 3263 Var("e",CTy"TLBEntry"))])])), 3264 qVar"state"), 3265 TP[Apply 3266 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 3267 qVar"s0"]), 3268 Let(TP[Var("v",CTy"CP0"),qVar"s"], 3269 Let(qVar"s0", 3270 Apply 3271 (Call 3272 ("write'CP0",ATy(qTy,qTy), 3273 Rupd 3274 ("EntryHi", 3275 TP[Var("v",CTy"CP0"), 3276 Rupd 3277 ("R", 3278 TP[Dest 3279 ("EntryHi", 3280 CTy"EntryHi", 3281 Var("v",CTy"CP0")), 3282 Dest 3283 ("R",FTy 2, 3284 Var("e",CTy"TLBEntry"))])])), 3285 qVar"s"), 3286 TP[Apply 3287 (Const("CP0",ATy(qTy,CTy"CP0")), 3288 qVar"s0"),qVar"s0"]), 3289 Let(TP[Var("v",CTy"CP0"),qVar"s"], 3290 Let(qVar"s0", 3291 Apply 3292 (Call 3293 ("write'CP0",ATy(qTy,qTy), 3294 Rupd 3295 ("EntryHi", 3296 TP[Var("v",CTy"CP0"), 3297 Rupd 3298 ("VPN2", 3299 TP[Dest 3300 ("EntryHi", 3301 CTy"EntryHi", 3302 Var("v",CTy"CP0")), 3303 Dest 3304 ("VPN2",FTy 27, 3305 Var("e", 3306 CTy"TLBEntry"))])])), 3307 qVar"s"), 3308 TP[Apply 3309 (Const("CP0",ATy(qTy,CTy"CP0")), 3310 qVar"s0"),qVar"s0"]), 3311 Let(TP[Var("v",CTy"CP0"),qVar"s"], 3312 Let(qVar"s0", 3313 Apply 3314 (Call 3315 ("write'CP0",ATy(qTy,qTy), 3316 Rupd 3317 ("EntryHi", 3318 TP[Var("v",CTy"CP0"), 3319 Rupd 3320 ("ASID", 3321 TP[Dest 3322 ("EntryHi", 3323 CTy"EntryHi", 3324 Var("v", 3325 CTy"CP0")), 3326 Dest 3327 ("ASID",F8, 3328 Var("e", 3329 CTy"TLBEntry"))])])), 3330 qVar"s"), 3331 TP[Apply 3332 (Const 3333 ("CP0",ATy(qTy,CTy"CP0")), 3334 qVar"s0"),qVar"s0"]), 3335 Let(TP[Var("v",CTy"CP0"),qVar"s"], 3336 Let(qVar"s0", 3337 Apply 3338 (Call 3339 ("write'CP0", 3340 ATy(qTy,qTy), 3341 Rupd 3342 ("EntryLo1", 3343 TP[Var("v",CTy"CP0"), 3344 Rupd 3345 ("PFN", 3346 TP[Dest 3347 ("EntryLo1", 3348 CTy"EntryLo", 3349 Var("v", 3350 CTy"CP0")), 3351 Dest 3352 ("PFN1", 3353 FTy 28, 3354 Var("e", 3355 CTy"TLBEntry"))])])), 3356 qVar"s"), 3357 TP[Apply 3358 (Const 3359 ("CP0", 3360 ATy(qTy,CTy"CP0")), 3361 qVar"s0"),qVar"s0"]), 3362 Let(TP[Var("v",CTy"CP0"),qVar"s"], 3363 Let(qVar"s0", 3364 Apply 3365 (Call 3366 ("write'CP0", 3367 ATy(qTy,qTy), 3368 Rupd 3369 ("EntryLo1", 3370 TP[Var("v", 3371 CTy"CP0"), 3372 Rupd 3373 ("C", 3374 TP[Dest 3375 ("EntryLo1", 3376 CTy"EntryLo", 3377 Var("v", 3378 CTy"CP0")), 3379 Dest 3380 ("C1", 3381 FTy 3, 3382 Var("e", 3383 CTy"TLBEntry"))])])), 3384 qVar"s"), 3385 TP[Apply 3386 (Const 3387 ("CP0", 3388 ATy(qTy,CTy"CP0")), 3389 qVar"s0"),qVar"s0"]), 3390 Let(TP[Var("v",CTy"CP0"), 3391 qVar"s"], 3392 Let(qVar"s0", 3393 Apply 3394 (Call 3395 ("write'CP0", 3396 ATy(qTy,qTy), 3397 Rupd 3398 ("EntryLo1", 3399 TP[Var("v", 3400 CTy"CP0"), 3401 Rupd 3402 ("D", 3403 TP[Dest 3404 ("EntryLo1", 3405 CTy"EntryLo", 3406 Var("v", 3407 CTy"CP0")), 3408 Dest 3409 ("D1", 3410 bTy, 3411 Var("e", 3412 CTy"TLBEntry"))])])), 3413 qVar"s"), 3414 TP[Apply 3415 (Const 3416 ("CP0", 3417 ATy(qTy, 3418 CTy"CP0")), 3419 qVar"s0"), 3420 qVar"s0"]), 3421 Let(TP[Var("v",CTy"CP0"), 3422 qVar"s"], 3423 Let(qVar"s0", 3424 Apply 3425 (Call 3426 ("write'CP0", 3427 ATy(qTy,qTy), 3428 Rupd 3429 ("EntryLo1", 3430 TP[Var("v", 3431 CTy"CP0"), 3432 Rupd 3433 ("V", 3434 TP[Dest 3435 ("EntryLo1", 3436 CTy"EntryLo", 3437 Var("v", 3438 CTy"CP0")), 3439 Dest 3440 ("V1", 3441 bTy, 3442 Var("e", 3443 CTy"TLBEntry"))])])), 3444 qVar"s"), 3445 TP[Apply 3446 (Const 3447 ("CP0", 3448 ATy(qTy, 3449 CTy"CP0")), 3450 qVar"s0"), 3451 qVar"s0"]), 3452 Let(TP[Var("v", 3453 CTy"CP0"), 3454 qVar"s"], 3455 Let(qVar"s0", 3456 Apply 3457 (Call 3458 ("write'CP0", 3459 ATy(qTy, 3460 qTy), 3461 Rupd 3462 ("EntryLo1", 3463 TP[Var("v", 3464 CTy"CP0"), 3465 Rupd 3466 ("G", 3467 TP[Dest 3468 ("EntryLo1", 3469 CTy"EntryLo", 3470 Var("v", 3471 CTy"CP0")), 3472 Dest 3473 ("G", 3474 bTy, 3475 Var("e", 3476 CTy"TLBEntry"))])])), 3477 qVar"s"), 3478 TP[Apply 3479 (Const 3480 ("CP0", 3481 ATy(qTy, 3482 CTy"CP0")), 3483 qVar"s0"), 3484 qVar"s0"]), 3485 Let(TP[Var("v", 3486 CTy"CP0"), 3487 qVar"s"], 3488 Let(qVar"s0", 3489 Apply 3490 (Call 3491 ("write'CP0", 3492 ATy(qTy, 3493 qTy), 3494 Rupd 3495 ("EntryLo0", 3496 TP[Var("v", 3497 CTy"CP0"), 3498 Rupd 3499 ("PFN", 3500 TP[Dest 3501 ("EntryLo0", 3502 CTy"EntryLo", 3503 Var("v", 3504 CTy"CP0")), 3505 Dest 3506 ("PFN0", 3507 FTy 28, 3508 Var("e", 3509 CTy"TLBEntry"))])])), 3510 qVar"s"), 3511 TP[Apply 3512 (Const 3513 ("CP0", 3514 ATy(qTy, 3515 CTy"CP0")), 3516 qVar"s0"), 3517 qVar"s0"]), 3518 Let(TP[Var("v", 3519 CTy"CP0"), 3520 qVar"s"], 3521 Let(qVar"s0", 3522 Apply 3523 (Call 3524 ("write'CP0", 3525 ATy(qTy, 3526 qTy), 3527 Rupd 3528 ("EntryLo0", 3529 TP[Var("v", 3530 CTy"CP0"), 3531 Rupd 3532 ("C", 3533 TP[Dest 3534 ("EntryLo0", 3535 CTy"EntryLo", 3536 Var("v", 3537 CTy"CP0")), 3538 Dest 3539 ("C0", 3540 FTy 3, 3541 Var("e", 3542 CTy"TLBEntry"))])])), 3543 qVar"s"), 3544 TP[Apply 3545 (Const 3546 ("CP0", 3547 ATy(qTy, 3548 CTy"CP0")), 3549 qVar"s0"), 3550 qVar"s0"]), 3551 Let(TP[Var("v", 3552 CTy"CP0"), 3553 qVar"s"], 3554 Let(qVar"s0", 3555 Apply 3556 (Call 3557 ("write'CP0", 3558 ATy(qTy, 3559 qTy), 3560 Rupd 3561 ("EntryLo0", 3562 TP[Var("v", 3563 CTy"CP0"), 3564 Rupd 3565 ("D", 3566 TP[Dest 3567 ("EntryLo0", 3568 CTy"EntryLo", 3569 Var("v", 3570 CTy"CP0")), 3571 Dest 3572 ("D0", 3573 bTy, 3574 Var("e", 3575 CTy"TLBEntry"))])])), 3576 qVar"s"), 3577 TP[Apply 3578 (Const 3579 ("CP0", 3580 ATy(qTy, 3581 CTy"CP0")), 3582 qVar"s0"), 3583 qVar"s0"]), 3584 Let(TP[Var("v", 3585 CTy"CP0"), 3586 qVar"s"], 3587 Let(qVar"s0", 3588 Apply 3589 (Call 3590 ("write'CP0", 3591 ATy(qTy, 3592 qTy), 3593 Rupd 3594 ("EntryLo0", 3595 TP[Var("v", 3596 CTy"CP0"), 3597 Rupd 3598 ("V", 3599 TP[Dest 3600 ("EntryLo0", 3601 CTy"EntryLo", 3602 Var("v", 3603 CTy"CP0")), 3604 Dest 3605 ("V0", 3606 bTy, 3607 Var("e", 3608 CTy"TLBEntry"))])])), 3609 qVar"s"), 3610 TP[Apply 3611 (Const 3612 ("CP0", 3613 ATy(qTy, 3614 CTy"CP0")), 3615 qVar"s0"), 3616 qVar"s0"]), 3617 Apply 3618 (Call 3619 ("write'CP0", 3620 ATy(qTy, 3621 qTy), 3622 Rupd 3623 ("EntryLo0", 3624 TP[Var("v", 3625 CTy"CP0"), 3626 Rupd 3627 ("G", 3628 TP[Dest 3629 ("EntryLo0", 3630 CTy"EntryLo", 3631 Var("v", 3632 CTy"CP0")), 3633 Dest 3634 ("G", 3635 bTy, 3636 Var("e", 3637 CTy"TLBEntry"))])])), 3638 qVar"s")))))))))))))))), 3639 (AVar(OTy(CTy"TLBEntry")), 3640 Mop(Snd, 3641 Apply 3642 (Call 3643 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 3644 Call 3645 ("UNPREDICTABLE",CTy"exception", 3646 LS"TLB: reading from invalid entry")), 3647 qVar"state")))])))) 3648; 3649val dfn'TLBWI_def = Def 3650 ("dfn'TLBWI",qVar"state", 3651 ITB([(Bop(And, 3652 Mop(Not, 3653 Dest 3654 ("CU0",bTy, 3655 Dest 3656 ("Status",CTy"StatusRegister", 3657 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 3658 Mop(Not,Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state"))), 3659 Apply 3660 (Call 3661 ("SignalException",ATy(qTy,qTy),LC("CpU",CTy"ExceptionType")), 3662 qVar"state")), 3663 (Mop(Not, 3664 Mop(IsSome, 3665 Call 3666 ("checkMask",OTy nTy, 3667 Dest 3668 ("Mask",FTy 12, 3669 Dest 3670 ("PageMask",CTy"PageMask", 3671 Apply 3672 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))))), 3673 Apply 3674 (Call 3675 ("SignalException",ATy(qTy,qTy), 3676 LC("MCheck",CTy"ExceptionType")),qVar"state")), 3677 (Bop(Lt, 3678 Mop(Cast nTy, 3679 Dest 3680 ("Index",FTy 9, 3681 Dest 3682 ("Index",CTy"Index", 3683 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 3684 Const("TLBAssocEntries",nTy)), 3685 Let(TP[Var("v0",CTy"TLBEntry"),qVar"s0"], 3686 Apply 3687 (Call("CP0TLBEntry",ATy(qTy,PTy(CTy"TLBEntry",qTy)),LU), 3688 qVar"state"), 3689 Apply 3690 (Call 3691 ("write'TLB_assoc",ATy(qTy,qTy), 3692 TP[Mop(Some,Var("v0",CTy"TLBEntry")), 3693 Mop(Cast F4, 3694 Dest 3695 ("Index",FTy 9, 3696 Dest 3697 ("Index",CTy"Index", 3698 Apply 3699 (Const("CP0",ATy(qTy,CTy"CP0")), 3700 qVar"state"))))]),qVar"s0"))), 3701 (Bop(Lt, 3702 Mop(Cast nTy, 3703 Dest 3704 ("Index",FTy 9, 3705 Dest 3706 ("Index",CTy"Index", 3707 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 3708 Const("TLBEntries",nTy)), 3709 Let(TP[Var("v0",CTy"TLBEntry"),qVar"s0"], 3710 Apply 3711 (Call("CP0TLBEntry",ATy(qTy,PTy(CTy"TLBEntry",qTy)),LU), 3712 qVar"state"), 3713 Apply 3714 (Call 3715 ("write'TLB_direct",ATy(qTy,qTy), 3716 TP[Mop(Some,Var("v0",CTy"TLBEntry")), 3717 EX(Dest 3718 ("VPN2",FTy 27, 3719 Dest 3720 ("EntryHi",CTy"EntryHi", 3721 Apply 3722 (Const("CP0",ATy(qTy,CTy"CP0")), 3723 qVar"state"))),LN 7,LN 0,F8)]),qVar"s0")))], 3724 Apply 3725 (Call 3726 ("SignalException",ATy(qTy,qTy), 3727 LC("MCheck",CTy"ExceptionType")),qVar"state"))) 3728; 3729val dfn'TLBWR_def = Def 3730 ("dfn'TLBWR",qVar"state", 3731 ITB([(Bop(And, 3732 Mop(Not, 3733 Dest 3734 ("CU0",bTy, 3735 Dest 3736 ("Status",CTy"StatusRegister", 3737 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 3738 Mop(Not,Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state"))), 3739 Apply 3740 (Call 3741 ("SignalException",ATy(qTy,qTy),LC("CpU",CTy"ExceptionType")), 3742 qVar"state")), 3743 (Mop(Not, 3744 Mop(IsSome, 3745 Call 3746 ("checkMask",OTy nTy, 3747 Dest 3748 ("Mask",FTy 12, 3749 Dest 3750 ("PageMask",CTy"PageMask", 3751 Apply 3752 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))))), 3753 Apply 3754 (Call 3755 ("SignalException",ATy(qTy,qTy), 3756 LC("MCheck",CTy"ExceptionType")),qVar"state")), 3757 (Dest 3758 ("LTLB",bTy, 3759 Dest 3760 ("Config6",CTy"ConfigRegister6", 3761 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 3762 Let(Var("v",F8), 3763 EX(Dest 3764 ("VPN2",FTy 27, 3765 Dest 3766 ("EntryHi",CTy"EntryHi", 3767 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 3768 LN 7,LN 0,F8), 3769 Let(TP[Var("v0",CTy"TLBEntry"),qVar"s"], 3770 Apply 3771 (Call("CP0TLBEntry",ATy(qTy,PTy(CTy"TLBEntry",qTy)),LU), 3772 CS(Apply 3773 (Call 3774 ("TLB_direct",ATy(qTy,OTy(CTy"TLBEntry")), 3775 Var("v",F8)),qVar"state"), 3776 [(Mop(Some,Var("old",CTy"TLBEntry")), 3777 Apply 3778 (Call 3779 ("write'TLB_assoc",ATy(qTy,qTy), 3780 TP[Mop(Some,Var("old",CTy"TLBEntry")), 3781 Mop(Cast F4, 3782 Dest 3783 ("Random",F8, 3784 Dest 3785 ("Random",CTy"Random", 3786 Apply 3787 (Const 3788 ("CP0",ATy(qTy,CTy"CP0")), 3789 qVar"state"))))]), 3790 qVar"state")), 3791 (AVar(OTy(CTy"TLBEntry")),qVar"state")])), 3792 Apply 3793 (Call 3794 ("write'TLB_direct",ATy(qTy,qTy), 3795 TP[Mop(Some,Var("v0",CTy"TLBEntry")),Var("v",F8)]), 3796 qVar"s"))))], 3797 Let(TP[Var("v0",CTy"TLBEntry"),qVar"s0"], 3798 Apply 3799 (Call("CP0TLBEntry",ATy(qTy,PTy(CTy"TLBEntry",qTy)),LU), 3800 qVar"state"), 3801 Apply 3802 (Call 3803 ("write'TLB_assoc",ATy(qTy,qTy), 3804 TP[Mop(Some,Var("v0",CTy"TLBEntry")), 3805 Mop(Cast F4, 3806 Dest 3807 ("Random",F8, 3808 Dest 3809 ("Random",CTy"Random", 3810 Apply 3811 (Const("CP0",ATy(qTy,CTy"CP0")), 3812 qVar"state"))))]),qVar"s0")))) 3813; 3814val reg_name_def = Def 3815 ("reg_name",Var("n",FTy 5), 3816 CC[LS"$", 3817 CS(Var("n",FTy 5), 3818 [(LW(0,5),LS"zero"),(LW(1,5),LS"at"),(LW(2,5),LS"v0"), 3819 (LW(3,5),LS"v1"),(LW(4,5),LS"a0"),(LW(5,5),LS"a1"), 3820 (LW(6,5),LS"a2"),(LW(7,5),LS"a3"),(LW(8,5),LS"t0"), 3821 (LW(9,5),LS"t1"),(LW(10,5),LS"t2"),(LW(11,5),LS"t3"), 3822 (LW(12,5),LS"t4"),(LW(13,5),LS"t5"),(LW(14,5),LS"t6"), 3823 (LW(15,5),LS"t7"),(LW(16,5),LS"s0"),(LW(17,5),LS"s1"), 3824 (LW(18,5),LS"s2"),(LW(19,5),LS"s3"),(LW(20,5),LS"s4"), 3825 (LW(21,5),LS"s5"),(LW(22,5),LS"s6"),(LW(23,5),LS"s7"), 3826 (LW(24,5),LS"t8"),(LW(25,5),LS"t9"),(LW(26,5),LS"k0"), 3827 (LW(27,5),LS"k1"),(LW(28,5),LS"gp"),(LW(29,5),LS"sp"), 3828 (LW(30,5),LS"fp"),(LW(31,5),LS"ra")])]) 3829; 3830val ihex_def = Def 3831 ("ihex",Var("n",BTy"N"), 3832 CC[ITE(Bop(Ult,Var("n",BTy"N"),LY(10,"N")),LS"",LS"0x"), 3833 Mop(ToLower,Mop(Cast sTy,Var("n",BTy"N")))]) 3834; 3835val op1i_def = Def 3836 ("op1i",TP[sVar"s",Var("n",BTy"N")], 3837 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[sVar"s",LS" "]]), 3838 Call("ihex",sTy,Var("n",BTy"N"))]) 3839; 3840val op1ai_def = Def 3841 ("op1ai",TP[sVar"s",Var("n",BTy"N")], 3842 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[sVar"s",LS" "]]), 3843 Call("ihex",sTy,Bop(Lsl,Mop(Cast F32,Var("n",BTy"N")),LN 2))]) 3844; 3845val op1lai_def = Def 3846 ("op1lai",TP[sVar"s",Var("n",BTy"N")], 3847 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[sVar"s",LS" "]]), 3848 Call 3849 ("ihex",sTy, 3850 Bop(Lsl,Mop(Cast F32,Bop(Add,Var("n",BTy"N"),LY(1,"N"))),LN 2))]) 3851; 3852val op1r_def = Def 3853 ("op1r",TP[sVar"s",Var("n",FTy 5)], 3854 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[sVar"s",LS" "]]), 3855 Call("reg_name",sTy,Var("n",FTy 5))]) 3856; 3857val op1ri_def = Def 3858 ("op1ri",TP[sVar"s",Var("r1",FTy 5),Var("n",BTy"N")], 3859 CC[Call("op1r",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ", 3860 Call("ihex",sTy,Var("n",BTy"N"))]) 3861; 3862val op1rai_def = Def 3863 ("op1rai",TP[sVar"s",Var("r1",FTy 5),Var("n",BTy"N")], 3864 CC[Call("op1r",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ", 3865 Call("ihex",sTy,Bop(Lsl,Mop(Cast F32,Var("n",BTy"N")),LN 2))]) 3866; 3867val op1rlai_def = Def 3868 ("op1rlai",TP[sVar"s",Var("r1",FTy 5),Var("n",BTy"N")], 3869 CC[Call("op1r",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ", 3870 Call 3871 ("ihex",sTy, 3872 Bop(Lsl,Mop(Cast F32,Bop(Add,Var("n",BTy"N"),LY(1,"N"))),LN 2))]) 3873; 3874val op2r_def = Def 3875 ("op2r",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)], 3876 CC[Call("op1r",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ", 3877 Call("reg_name",sTy,Var("r2",FTy 5))]) 3878; 3879val op2ri_def = Def 3880 ("op2ri",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("n",BTy"N")], 3881 CC[Call("op2r",sTy,TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)]),LS", ", 3882 Call("ihex",sTy,Var("n",BTy"N"))]) 3883; 3884val op2rai_def = Def 3885 ("op2rai",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("n",BTy"N")], 3886 CC[Call("op2r",sTy,TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)]),LS", ", 3887 Call("ihex",sTy,Bop(Lsl,Mop(Cast F32,Var("n",BTy"N")),LN 2))]) 3888; 3889val op2rlai_def = Def 3890 ("op2rlai",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("n",BTy"N")], 3891 CC[Call("op2r",sTy,TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)]),LS", ", 3892 Call 3893 ("ihex",sTy, 3894 Bop(Lsl,Mop(Cast F32,Bop(Add,Var("n",BTy"N"),LY(1,"N"))),LN 2))]) 3895; 3896val op3r_def = Def 3897 ("op3r",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("r3",FTy 5)], 3898 CC[Call("op2r",sTy,TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)]),LS", ", 3899 Call("reg_name",sTy,Var("r3",FTy 5))]) 3900; 3901val op2roi_def = Def 3902 ("op2roi",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("n",BTy"N")], 3903 CC[Call("op1r",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ", 3904 Call("cpr",sTy,Var("r2",FTy 5)), 3905 ITE(EQ(Var("n",BTy"N"),LY(0,"N")),LS"", 3906 Call("ihex",sTy,Var("n",BTy"N")))]) 3907; 3908val opmem_def = Def 3909 ("opmem",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("n",BTy"N")], 3910 CC[Call("op1ri",sTy,TP[sVar"s",Var("r1",FTy 5),Var("n",BTy"N")]),LS"(", 3911 Call("reg_name",sTy,Var("r2",FTy 5)),LS")"]) 3912; 3913val op1fpr_def = Def 3914 ("op1fpr",TP[sVar"s",Var("n",FTy 5)], 3915 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[sVar"s",LS" "]]),LS"$f", 3916 Mop(Cast sTy,Mop(Cast nTy,Var("n",FTy 5)))]) 3917; 3918val op1fpri_def = Def 3919 ("op1fpri",TP[sVar"s",Var("r1",FTy 5),Var("n",BTy"N")], 3920 CC[Call("op1fpr",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ", 3921 Call("ihex",sTy,Var("n",BTy"N"))]) 3922; 3923val op2fpr_def = Def 3924 ("op2fpr",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)], 3925 CC[Call("op1fpr",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ",LS"$f", 3926 Mop(Cast sTy,Mop(Cast nTy,Var("r2",FTy 5)))]) 3927; 3928val op2rfpr_def = Def 3929 ("op2rfpr",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)], 3930 CC[Call("op1r",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ",LS"$f", 3931 Mop(Cast sTy,Mop(Cast nTy,Var("r2",FTy 5)))]) 3932; 3933val op2rcfpr_def = Def 3934 ("op2rcfpr",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)], 3935 CC[Call("op1r",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", $", 3936 Mop(Cast sTy,Mop(Cast nTy,Var("r2",FTy 5)))]) 3937; 3938val op2ccfpr_def = Def 3939 ("op2ccfpr",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("n",FTy 3)], 3940 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[sVar"s",LS" "]]), 3941 ITE(EQ(Var("n",FTy 3),LW(0,3)),LS"", 3942 CC[LS"$fcc",Mop(Cast sTy,Mop(Cast nTy,Var("n",FTy 3))),LS", "]), 3943 CC[LS"$f",Mop(Cast sTy,Mop(Cast nTy,Var("r1",FTy 5)))],LS", ", 3944 LS"$f",Mop(Cast sTy,Mop(Cast nTy,Var("r2",FTy 5)))]) 3945; 3946val op3fpr_def = Def 3947 ("op3fpr",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("r3",FTy 5)], 3948 CC[Call("op2fpr",sTy,TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5)]), 3949 LS", ",LS"$f",Mop(Cast sTy,Mop(Cast nTy,Var("r3",FTy 5)))]) 3950; 3951val op4fpr_def = Def 3952 ("op4fpr", 3953 TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("r3",FTy 5), 3954 Var("r4",FTy 5)], 3955 CC[Call 3956 ("op3fpr",sTy, 3957 TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("r3",FTy 5)]), 3958 LS", ",LS"$f",Mop(Cast sTy,Mop(Cast nTy,Var("r4",FTy 5)))]) 3959; 3960val opfpmem_def = Def 3961 ("opfpmem",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("n",BTy"N")], 3962 CC[Call("op1fpri",sTy,TP[sVar"s",Var("r1",FTy 5),Var("n",BTy"N")]), 3963 LS"(",Call("reg_name",sTy,Var("r2",FTy 5)),LS")"]) 3964; 3965val opfpmem2_def = Def 3966 ("opfpmem2",TP[sVar"s",Var("r1",FTy 5),Var("r2",FTy 5),Var("r3",FTy 5)], 3967 CC[Call("op1fpr",sTy,TP[sVar"s",Var("r1",FTy 5)]),LS", ", 3968 Call("reg_name",sTy,Var("r3",FTy 5)),LS"(", 3969 Call("reg_name",sTy,Var("r2",FTy 5)),LS")"]) 3970; 3971val form1_def = Def 3972 ("form1", 3973 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), 3974 Var("function",FTy 6)], 3975 CC[LW(0,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 3976 Var("imm5",FTy 5),Var("function",FTy 6)]) 3977; 3978val form2_def = Def 3979 ("form2",TP[Var("rs",FTy 5),Var("function",FTy 5),Var("imm",F16)], 3980 CC[LW(1,6),Var("rs",FTy 5),Var("function",FTy 5),Var("imm",F16)]) 3981; 3982val form3_def = Def 3983 ("form3", 3984 TP[Var("function",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 3985 Var("sel",FTy 3)], 3986 CC[LW(16,6),Var("function",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 3987 LW(0,8),Var("sel",FTy 3)]) 3988; 3989val form4_def = Def 3990 ("form4", 3991 TP[Var("function",FTy 6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)], 3992 CC[Var("function",FTy 6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)]) 3993; 3994val form5_def = Def 3995 ("form5", 3996 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 3997 Var("function",FTy 6)], 3998 CC[LW(28,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), 3999 Var("function",FTy 6)]) 4000; 4001val form6_def = Def 4002 ("form6",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("function",FTy 6)], 4003 CC[LW(31,6),LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), 4004 Var("function",FTy 6)]) 4005; 4006val L1ISIZE_def = Def0 ("L1ISIZE",LN 32768) 4007; 4008val L1IWAYS_def = Def0 ("L1IWAYS",LN 2) 4009; 4010val L1DSIZE_def = Def0 ("L1DSIZE",LN 32768) 4011; 4012val L1DWAYS_def = Def0 ("L1DWAYS",LN 4) 4013; 4014val L1LINESIZE_def = Def0 ("L1LINESIZE",LN 128) 4015; 4016val L2SIZE_def = Def0 ("L2SIZE",LN 262144) 4017; 4018val L2WAYS_def = Def0 ("L2WAYS",LN 4) 4019; 4020val L2LINESIZE_def = Def0 ("L2LINESIZE",LN 128) 4021; 4022val isAligned_def = Def 4023 ("isAligned",TP[Var("vAddr",F64),Var("MemType",FTy 3)], 4024 EQ(Bop(BAnd,Mop(Cast(FTy 3),Var("vAddr",F64)),Var("MemType",FTy 3)), 4025 LW(0,3))) 4026; 4027val AdjustEndian_def = Def 4028 ("AdjustEndian",TP[Var("MemType",FTy 3),Var("pAddr",FTy 40)], 4029 Close 4030 (qVar"state", 4031 CS(Var("MemType",FTy 3), 4032 [(LW(0,3), 4033 TP[Bop(BXor,Var("pAddr",FTy 40), 4034 Mop(Cast(FTy 40), 4035 REP(Apply 4036 (Const("ReverseEndian",ATy(qTy,F1)), 4037 qVar"state"),LN 3,FTy 3))),qVar"state"]), 4038 (LW(1,3), 4039 TP[Bop(BXor,Var("pAddr",FTy 40), 4040 Mop(Cast(FTy 40), 4041 CC[REP(Apply 4042 (Const("ReverseEndian",ATy(qTy,F1)), 4043 qVar"state"),LN 2,FTy 2),LW(0,1)])), 4044 qVar"state"]), 4045 (LW(3,3), 4046 TP[Bop(BXor,Var("pAddr",FTy 40), 4047 Mop(Cast(FTy 40), 4048 CC[Apply 4049 (Const("ReverseEndian",ATy(qTy,F1)),qVar"state"), 4050 LW(0,2)])),qVar"state"]), 4051 (LW(7,3),TP[Var("pAddr",FTy 40),qVar"state"]), 4052 (AVar(FTy 3), 4053 Apply 4054 (Call 4055 ("raise'exception",ATy(qTy,PTy(FTy 40,qTy)), 4056 Call 4057 ("UNPREDICTABLE",CTy"exception",LS"bad access length")), 4058 qVar"state"))]))) 4059; 4060val InitMEM_def = Def 4061 ("InitMEM",qVar"state", 4062 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4063 Apply 4064 (Call("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"mem-data"), 4065 qVar"state"), 4066 Rupd 4067 ("mem", 4068 TP[qVar"s", 4069 Mop(K1(FTy 35), 4070 Call 4071 ("Raw",CTy"DataType", 4072 Apply 4073 (LX(ATy(PTy(nTy,sTy),FTy 256)),Var("v",PTy(nTy,sTy)))))]))) 4074; 4075val ReadData_def = Def 4076 ("ReadData",Var("dwordAddr",FTy 37), 4077 Close 4078 (qVar"state", 4079 CS(Apply 4080 (Dest("mem",ATy(FTy 35,CTy"DataType"),qVar"state"), 4081 EX(Var("dwordAddr",FTy 37),LN 36, 4082 Bop(Sub,Mop(Log,Const("CAPBYTEWIDTH",nTy)),LN 3),FTy 35)), 4083 [(Call("Cap",CTy"DataType",Var("cap",CTy"Capability")), 4084 Call 4085 ("readDwordFromRaw",F64, 4086 TP[Var("dwordAddr",FTy 37), 4087 Call("capToBits",FTy 256,Var("cap",CTy"Capability"))])), 4088 (Call("Raw",CTy"DataType",Var("raw",FTy 256)), 4089 Call 4090 ("readDwordFromRaw",F64, 4091 TP[Var("dwordAddr",FTy 37),Var("raw",FTy 256)]))]))) 4092; 4093val WriteData_def = Def 4094 ("WriteData", 4095 TP[Var("dwordAddr",FTy 37),Var("data",F64),Var("mask",F64)], 4096 Close 4097 (qVar"state", 4098 Rupd 4099 ("mem", 4100 TP[qVar"state", 4101 Fupd 4102 (Dest("mem",ATy(FTy 35,CTy"DataType"),qVar"state"), 4103 EX(Var("dwordAddr",FTy 37),LN 36, 4104 Bop(Sub,Mop(Log,Const("CAPBYTEWIDTH",nTy)),LN 3),FTy 35), 4105 Call 4106 ("Raw",CTy"DataType", 4107 Call 4108 ("updateDwordInRaw",FTy 256, 4109 TP[Var("dwordAddr",FTy 37),Var("data",F64), 4110 Var("mask",F64), 4111 CS(Apply 4112 (Dest 4113 ("mem",ATy(FTy 35,CTy"DataType"), 4114 qVar"state"), 4115 EX(Var("dwordAddr",FTy 37),LN 36, 4116 Bop(Sub, 4117 Mop(Log,Const("CAPBYTEWIDTH",nTy)), 4118 LN 3),FTy 35)), 4119 [(Call 4120 ("Cap",CTy"DataType", 4121 Var("cap",CTy"Capability")), 4122 Call 4123 ("capToBits",FTy 256, 4124 Var("cap",CTy"Capability"))), 4125 (Call("Raw",CTy"DataType",Var("raw",FTy 256)), 4126 Var("raw",FTy 256))])])))]))) 4127; 4128val ReadInst_def = Def 4129 ("ReadInst",Var("a",FTy 40), 4130 Close 4131 (qVar"state", 4132 Let(Var("v",F64), 4133 CS(Apply 4134 (Dest("mem",ATy(FTy 35,CTy"DataType"),qVar"state"), 4135 EX(Var("a",FTy 40),LN 39, 4136 Mop(Log,Const("CAPBYTEWIDTH",nTy)),FTy 35)), 4137 [(Call("Cap",CTy"DataType",Var("cap",CTy"Capability")), 4138 Call 4139 ("readDwordFromRaw",F64, 4140 TP[EX(Var("a",FTy 40),LN 39,LN 3,FTy 37), 4141 Call("capToBits",FTy 256,Var("cap",CTy"Capability"))])), 4142 (Call("Raw",CTy"DataType",Var("raw",FTy 256)), 4143 Call 4144 ("readDwordFromRaw",F64, 4145 TP[EX(Var("a",FTy 40),LN 39,LN 3,FTy 37), 4146 Var("raw",FTy 256)]))]), 4147 ITE(Bop(Bit,Var("a",FTy 40),LN 2), 4148 EX(Var("v",F64),LN 31,LN 0,F32), 4149 EX(Var("v",F64),LN 63,LN 32,F32))))) 4150; 4151val ReadCap_def = Def 4152 ("ReadCap",Var("capAddr",FTy 35), 4153 Close 4154 (qVar"state", 4155 CS(Apply 4156 (Dest("mem",ATy(FTy 35,CTy"DataType"),qVar"state"), 4157 Var("capAddr",FTy 35)), 4158 [(Call("Cap",CTy"DataType",Var("cap",CTy"Capability")), 4159 Var("cap",CTy"Capability")), 4160 (Call("Raw",CTy"DataType",Var("raw",FTy 256)), 4161 Call("bitsToCap",CTy"Capability",Var("raw",FTy 256)))]))) 4162; 4163val WriteCap_def = Def 4164 ("WriteCap",TP[Var("capAddr",FTy 35),Var("cap",CTy"Capability")], 4165 Close 4166 (qVar"state", 4167 Rupd 4168 ("mem", 4169 TP[qVar"state", 4170 Fupd 4171 (Dest("mem",ATy(FTy 35,CTy"DataType"),qVar"state"), 4172 Var("capAddr",FTy 35), 4173 Call("Cap",CTy"DataType",Var("cap",CTy"Capability")))]))) 4174; 4175val WriteDWORD_def = Def 4176 ("WriteDWORD",TP[Var("dwordAddr",FTy 37),Var("data",F64)], 4177 Close 4178 (qVar"state", 4179 Rupd 4180 ("mem", 4181 TP[qVar"state", 4182 Fupd 4183 (Dest("mem",ATy(FTy 35,CTy"DataType"),qVar"state"), 4184 EX(Var("dwordAddr",FTy 37),LN 36, 4185 Bop(Sub,Mop(Log,Const("CAPBYTEWIDTH",nTy)),LN 3),FTy 35), 4186 Call 4187 ("Raw",CTy"DataType", 4188 Call 4189 ("updateDwordInRaw",FTy 256, 4190 TP[Var("dwordAddr",FTy 37),Var("data",F64), 4191 Mop(BNot,LW(0,64)), 4192 CS(Apply 4193 (Dest 4194 ("mem",ATy(FTy 35,CTy"DataType"), 4195 qVar"state"), 4196 EX(Var("dwordAddr",FTy 37),LN 36, 4197 Bop(Sub, 4198 Mop(Log,Const("CAPBYTEWIDTH",nTy)), 4199 LN 3),FTy 35)), 4200 [(Call 4201 ("Cap",CTy"DataType", 4202 Var("cap",CTy"Capability")), 4203 Mop(Cast(FTy 256), 4204 Call 4205 ("reg'Capability",FTy 257, 4206 Var("cap",CTy"Capability")))), 4207 (Call("Raw",CTy"DataType",Var("raw",FTy 256)), 4208 Var("raw",FTy 256))])])))]))) 4209; 4210val Write256_def = Def 4211 ("Write256",TP[Var("addr",FTy 35),Var("data",FTy 256)], 4212 Close 4213 (qVar"state", 4214 Rupd 4215 ("mem", 4216 TP[qVar"state", 4217 Fupd 4218 (Dest("mem",ATy(FTy 35,CTy"DataType"),qVar"state"), 4219 Var("addr",FTy 35), 4220 Call("Raw",CTy"DataType",Var("data",FTy 256)))]))) 4221; 4222val getVirtualAddress_def = Def 4223 ("getVirtualAddress",Var("addr",F64), 4224 Close 4225 (qVar"state", 4226 Bop(Add, 4227 Bop(Add,Var("addr",F64), 4228 Call 4229 ("getBase",F64, 4230 Apply 4231 (Call("CAPR",ATy(qTy,CTy"Capability"),LW(0,5)), 4232 qVar"state"))), 4233 Call 4234 ("getOffset",F64, 4235 Apply 4236 (Call("CAPR",ATy(qTy,CTy"Capability"),LW(0,5)),qVar"state"))))) 4237; 4238val LoadMemoryCap_def = Def 4239 ("LoadMemoryCap", 4240 TP[Var("MemType",FTy 3),bVar"needAlign",Var("vAddr",F64),bVar"link"], 4241 Close 4242 (qVar"state", 4243 ITE(Bop(And,bVar"needAlign", 4244 Mop(Not, 4245 Call 4246 ("isAligned",bTy, 4247 TP[Var("vAddr",F64),Var("MemType",FTy 3)]))), 4248 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4249 Apply 4250 (Call 4251 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 4252 LS"mem-data"), 4253 Apply 4254 (Call 4255 ("SignalException",ATy(qTy,qTy), 4256 LC("AdEL",CTy"ExceptionType")), 4257 Apply 4258 (Call 4259 ("write'CP0",ATy(qTy,qTy), 4260 Rupd 4261 ("BadVAddr", 4262 TP[Apply 4263 (Const("CP0",ATy(qTy,CTy"CP0")), 4264 qVar"state"),Var("vAddr",F64)])), 4265 qVar"state"))), 4266 TP[Apply(LX(ATy(PTy(nTy,sTy),F64)),Var("v",PTy(nTy,sTy))), 4267 qVar"s"]), 4268 Let(TP[Var("v",FTy 40),qVar"s"], 4269 Apply 4270 (Call 4271 ("AdjustEndian",ATy(qTy,PTy(FTy 40,qTy)), 4272 TP[Var("MemType",FTy 3), 4273 Mop(Cast(FTy 40),Var("vAddr",F64))]),qVar"state"), 4274 Let(qVar"s0", 4275 ITE(bVar"link", 4276 Let(TP[Var("v0",CTy"CP0"),qVar"s"], 4277 Let(qVar"s0", 4278 Apply 4279 (Call 4280 ("write'LLbit",ATy(qTy,qTy), 4281 Mop(Some,LT)),qVar"s"), 4282 TP[Apply 4283 (Const("CP0",ATy(qTy,CTy"CP0")), 4284 qVar"s0"),qVar"s0"]), 4285 Apply 4286 (Call 4287 ("write'CP0",ATy(qTy,qTy), 4288 Rupd 4289 ("LLAddr", 4290 TP[Var("v0",CTy"CP0"), 4291 Mop(Cast F64,Var("v",FTy 40))])), 4292 qVar"s")), 4293 Apply 4294 (Call("write'LLbit",ATy(qTy,qTy),LO bTy),qVar"s")), 4295 TP[Apply 4296 (Call 4297 ("ReadData",ATy(qTy,F64), 4298 EX(Var("v",FTy 40),LN 39,LN 3,FTy 37)),qVar"s0"), 4299 qVar"s0"]))))) 4300; 4301val LoadMemory_def = Def 4302 ("LoadMemory", 4303 TP[Var("MemType",FTy 3),Var("AccessLength",FTy 3),bVar"needAlign", 4304 Var("vAddr",F64),bVar"link"], 4305 Close 4306 (qVar"state", 4307 Let(Var("v",CTy"Capability"), 4308 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(0,5)),qVar"state"), 4309 Let(TP[Var("base",F64),Var("len",F64)], 4310 Call 4311 ("getBaseAndLength",PTy(F64,F64), 4312 Apply 4313 (Call("CAPR",ATy(qTy,CTy"Capability"),LW(0,5)), 4314 qVar"state")), 4315 ITB([(Mop(Not,Call("getTag",bTy,Var("v",CTy"Capability"))), 4316 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4317 Apply 4318 (Call 4319 ("next_unknown", 4320 ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"mem-data"), 4321 Apply 4322 (Call 4323 ("SignalCapException",ATy(qTy,qTy), 4324 TP[LC("capExcTag",CTy"CapExceptionType"), 4325 LW(0,5)]),qVar"state")), 4326 TP[Apply 4327 (LX(ATy(PTy(nTy,sTy),F64)), 4328 Var("v",PTy(nTy,sTy))),qVar"s"])), 4329 (Call("getSealed",bTy,Var("v",CTy"Capability")), 4330 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4331 Apply 4332 (Call 4333 ("next_unknown", 4334 ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"mem-data"), 4335 Apply 4336 (Call 4337 ("SignalCapException",ATy(qTy,qTy), 4338 TP[LC("capExcSeal",CTy"CapExceptionType"), 4339 LW(0,5)]),qVar"state")), 4340 TP[Apply 4341 (LX(ATy(PTy(nTy,sTy),F64)), 4342 Var("v",PTy(nTy,sTy))),qVar"s"])), 4343 (Mop(Not, 4344 Dest 4345 ("Permit_Load",bTy, 4346 Call 4347 ("getPerms",CTy"Perms", 4348 Var("v",CTy"Capability")))), 4349 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4350 Apply 4351 (Call 4352 ("next_unknown", 4353 ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"mem-data"), 4354 Apply 4355 (Call 4356 ("SignalCapException",ATy(qTy,qTy), 4357 TP[LC("capExcPermLoad", 4358 CTy"CapExceptionType"),LW(0,5)]), 4359 qVar"state")), 4360 TP[Apply 4361 (LX(ATy(PTy(nTy,sTy),F64)), 4362 Var("v",PTy(nTy,sTy))),qVar"s"])), 4363 (Bop(Ult,Var("vAddr",F64), 4364 Call("getBase",F64,Var("v",CTy"Capability"))), 4365 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4366 Apply 4367 (Call 4368 ("next_unknown", 4369 ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"mem-data"), 4370 Apply 4371 (Call 4372 ("SignalCapException",ATy(qTy,qTy), 4373 TP[LC("capExcLength", 4374 CTy"CapExceptionType"),LW(0,5)]), 4375 qVar"state")), 4376 TP[Apply 4377 (LX(ATy(PTy(nTy,sTy),F64)), 4378 Var("v",PTy(nTy,sTy))),qVar"s"])), 4379 (Bop(Ugt, 4380 Bop(Add, 4381 Bop(Add,CC[LW(0,1),Var("vAddr",F64)], 4382 Mop(Cast(FTy 65),Var("AccessLength",FTy 3))), 4383 LW(1,65)), 4384 Bop(Add,CC[LW(0,1),Var("base",F64)], 4385 CC[LW(0,1),Var("len",F64)])), 4386 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4387 Apply 4388 (Call 4389 ("next_unknown", 4390 ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"mem-data"), 4391 Apply 4392 (Call 4393 ("SignalCapException",ATy(qTy,qTy), 4394 TP[LC("capExcLength", 4395 CTy"CapExceptionType"),LW(0,5)]), 4396 qVar"state")), 4397 TP[Apply 4398 (LX(ATy(PTy(nTy,sTy),F64)), 4399 Var("v",PTy(nTy,sTy))),qVar"s"]))], 4400 Apply 4401 (Call 4402 ("LoadMemoryCap",ATy(qTy,PTy(F64,qTy)), 4403 TP[Var("MemType",FTy 3),bVar"needAlign", 4404 Var("vAddr",F64),bVar"link"]),qVar"state")))))) 4405; 4406val LoadCap_def = Def 4407 ("LoadCap",TP[Var("vAddr",F64),bVar"link"], 4408 Close 4409 (qVar"state", 4410 Let(qVar"s", 4411 ITE(bVar"link", 4412 Let(TP[Var("v",CTy"CP0"),qVar"s"], 4413 Let(qVar"s", 4414 Apply 4415 (Call("write'LLbit",ATy(qTy,qTy),Mop(Some,LT)), 4416 qVar"state"), 4417 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s"), 4418 qVar"s"]), 4419 Apply 4420 (Call 4421 ("write'CP0",ATy(qTy,qTy), 4422 Rupd 4423 ("LLAddr",TP[Var("v",CTy"CP0"),Var("vAddr",F64)])), 4424 qVar"s")), 4425 Apply(Call("write'LLbit",ATy(qTy,qTy),LO bTy),qVar"state")), 4426 TP[Apply 4427 (Call 4428 ("ReadCap",ATy(qTy,CTy"Capability"), 4429 EX(Var("vAddr",F64),LN 39, 4430 Mop(Log,Const("CAPBYTEWIDTH",nTy)),FTy 35)),qVar"s"), 4431 qVar"s"]))) 4432; 4433val StoreMemoryCap_def = Def 4434 ("StoreMemoryCap", 4435 TP[Var("MemType",FTy 3),Var("AccessLength",FTy 3),Var("MemElem",F64), 4436 bVar"needAlign",Var("vAddr",F64),bVar"cond"], 4437 Close 4438 (qVar"state", 4439 ITE(Bop(And,bVar"needAlign", 4440 Mop(Not, 4441 Call 4442 ("isAligned",bTy, 4443 TP[Var("vAddr",F64),Var("MemType",FTy 3)]))), 4444 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4445 Apply 4446 (Call 4447 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 4448 LS"sc-success"), 4449 Apply 4450 (Call 4451 ("SignalException",ATy(qTy,qTy), 4452 LC("AdES",CTy"ExceptionType")), 4453 Apply 4454 (Call 4455 ("write'CP0",ATy(qTy,qTy), 4456 Rupd 4457 ("BadVAddr", 4458 TP[Apply 4459 (Const("CP0",ATy(qTy,CTy"CP0")), 4460 qVar"state"),Var("vAddr",F64)])), 4461 qVar"state"))), 4462 TP[Apply(LX(ATy(PTy(nTy,sTy),bTy)),Var("v",PTy(nTy,sTy))), 4463 qVar"s"]), 4464 Let(TP[Var("v",FTy 40),qVar"s"], 4465 Apply 4466 (Call 4467 ("AdjustEndian",ATy(qTy,PTy(FTy 40,qTy)), 4468 TP[Var("MemType",FTy 3), 4469 Mop(Cast(FTy 40),Var("vAddr",F64))]),qVar"state"), 4470 Let(TP[bVar"v0",qVar"s"], 4471 ITE(bVar"cond", 4472 CS(Apply(Const("LLbit",ATy(qTy,OTy bTy)),qVar"s"), 4473 [(LO bTy, 4474 Apply 4475 (Call 4476 ("raise'exception",ATy(qTy,PTy(bTy,qTy)), 4477 Call 4478 ("UNPREDICTABLE",CTy"exception", 4479 LS"conditional store: LLbit not set")), 4480 qVar"s")),(Mop(Some,LF),TP[LF,qVar"s"]), 4481 (Mop(Some,LT), 4482 ITE(EQ(Dest 4483 ("LLAddr",F64, 4484 Apply 4485 (Const("CP0",ATy(qTy,CTy"CP0")), 4486 qVar"s")), 4487 Mop(Cast F64,Var("v",FTy 40))), 4488 TP[LT,qVar"s"], 4489 Apply 4490 (Call 4491 ("raise'exception", 4492 ATy(qTy,PTy(bTy,qTy)), 4493 Call 4494 ("UNPREDICTABLE",CTy"exception", 4495 LS 4496 "conditional store: address does not match previous LL address")), 4497 qVar"s")))]),TP[LF,qVar"s"]), 4498 Let(qVar"s", 4499 Apply 4500 (Call("write'LLbit",ATy(qTy,qTy),LO bTy),qVar"s"), 4501 Let(qVar"s", 4502 Mop(Snd, 4503 Apply 4504 (For(TP[LN 0, 4505 Bop(Sub, 4506 Dest("totalCore",nTy,qVar"s"), 4507 LN 1), 4508 Close 4509 (nVar"core", 4510 Close 4511 (qVar"state", 4512 Let(Var("i",F8), 4513 Mop(Cast F8,nVar"core"), 4514 Let(Var("v1", 4515 CTy"procState"), 4516 Apply 4517 (Dest 4518 ("all_state", 4519 ATy(F8, 4520 CTy"procState"), 4521 qVar"state"), 4522 Var("i",F8)), 4523 TP[LU, 4524 ITE(Bop(And, 4525 Mop(Not, 4526 EQ(Var("i", 4527 F8), 4528 Dest 4529 ("procID", 4530 F8, 4531 qVar"state"))), 4532 Bop(And, 4533 Bop(Or, 4534 Mop(Not, 4535 bVar"cond"), 4536 bVar"v0"), 4537 Bop(And, 4538 EQ(Dest 4539 ("c_LLbit", 4540 OTy bTy, 4541 Var("v1", 4542 CTy"procState")), 4543 Mop(Some, 4544 LT)), 4545 EQ(EX(Dest 4546 ("LLAddr", 4547 F64, 4548 Dest 4549 ("c_CP0", 4550 CTy"CP0", 4551 Var("v1", 4552 CTy"procState"))), 4553 LN 4554 39, 4555 LN 4556 3, 4557 FTy 37), 4558 EX(Var("v", 4559 FTy 40), 4560 LN 4561 39, 4562 LN 4563 3, 4564 FTy 37))))), 4565 Rupd 4566 ("all_state", 4567 TP[qVar"state", 4568 Fupd 4569 (Dest 4570 ("all_state", 4571 ATy(F8, 4572 CTy"procState"), 4573 qVar"state"), 4574 Var("i", 4575 F8), 4576 Rupd 4577 ("c_LLbit", 4578 TP[Apply 4579 (Dest 4580 ("all_state", 4581 ATy(F8, 4582 CTy"procState"), 4583 qVar"state"), 4584 Var("i", 4585 F8)), 4586 Mop(Some, 4587 LF)]))]), 4588 qVar"state")]))))]), 4589 qVar"s")), 4590 TP[bVar"v0", 4591 ITE(Bop(Or,Mop(Not,bVar"cond"),bVar"v0"), 4592 Let(nVar"x", 4593 Bop(Mul,LN 8, 4594 Bop(Add, 4595 Mop(Cast nTy, 4596 Var("AccessLength",FTy 3)), 4597 LN 1)), 4598 Apply 4599 (Call 4600 ("WriteData",ATy(qTy,qTy), 4601 TP[EX(Var("v",FTy 40),LN 39, 4602 LN 3,FTy 37), 4603 Var("MemElem",F64), 4604 Bop(Lsl, 4605 Bop(Sub, 4606 Bop(Lsl,LW(1,64), 4607 nVar"x"), 4608 LW(1,64)), 4609 Bop(Sub,LN 64, 4610 Bop(Add,nVar"x", 4611 Bop(Mul,LN 8, 4612 Mop(Cast nTy, 4613 EX(Var("vAddr", 4614 F64), 4615 LN 2, 4616 LN 0, 4617 FTy 3))))))]), 4618 qVar"s")),qVar"s")]))))))) 4619; 4620val StoreMemory_def = Def 4621 ("StoreMemory", 4622 TP[Var("MemType",FTy 3),Var("AccessLength",FTy 3),bVar"needAlign", 4623 Var("MemElem",F64),Var("vAddr",F64),bVar"cond"], 4624 Close 4625 (qVar"state", 4626 Let(Var("v",CTy"Capability"), 4627 Apply(Call("CAPR",ATy(qTy,CTy"Capability"),LW(0,5)),qVar"state"), 4628 Let(TP[Var("base",F64),Var("len",F64)], 4629 Call 4630 ("getBaseAndLength",PTy(F64,F64),Var("v",CTy"Capability")), 4631 ITB([(Mop(Not,Call("getTag",bTy,Var("v",CTy"Capability"))), 4632 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4633 Apply 4634 (Call 4635 ("next_unknown", 4636 ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 4637 LS"sc-success"), 4638 Apply 4639 (Call 4640 ("SignalCapException",ATy(qTy,qTy), 4641 TP[LC("capExcTag",CTy"CapExceptionType"), 4642 LW(0,5)]),qVar"state")), 4643 TP[Apply 4644 (LX(ATy(PTy(nTy,sTy),bTy)), 4645 Var("v",PTy(nTy,sTy))),qVar"s"])), 4646 (Call("getSealed",bTy,Var("v",CTy"Capability")), 4647 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4648 Apply 4649 (Call 4650 ("next_unknown", 4651 ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 4652 LS"sc-success"), 4653 Apply 4654 (Call 4655 ("SignalCapException",ATy(qTy,qTy), 4656 TP[LC("capExcSeal",CTy"CapExceptionType"), 4657 LW(0,5)]),qVar"state")), 4658 TP[Apply 4659 (LX(ATy(PTy(nTy,sTy),bTy)), 4660 Var("v",PTy(nTy,sTy))),qVar"s"])), 4661 (Mop(Not, 4662 Dest 4663 ("Permit_Store",bTy, 4664 Call 4665 ("getPerms",CTy"Perms", 4666 Var("v",CTy"Capability")))), 4667 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4668 Apply 4669 (Call 4670 ("next_unknown", 4671 ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 4672 LS"sc-success"), 4673 Apply 4674 (Call 4675 ("SignalCapException",ATy(qTy,qTy), 4676 TP[LC("capExcPermStore", 4677 CTy"CapExceptionType"),LW(0,5)]), 4678 qVar"state")), 4679 TP[Apply 4680 (LX(ATy(PTy(nTy,sTy),bTy)), 4681 Var("v",PTy(nTy,sTy))),qVar"s"])), 4682 (Bop(Ult,Var("vAddr",F64), 4683 Call("getBase",F64,Var("v",CTy"Capability"))), 4684 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4685 Apply 4686 (Call 4687 ("next_unknown", 4688 ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 4689 LS"sc-success"), 4690 Apply 4691 (Call 4692 ("SignalCapException",ATy(qTy,qTy), 4693 TP[LC("capExcLength", 4694 CTy"CapExceptionType"),LW(0,5)]), 4695 qVar"state")), 4696 TP[Apply 4697 (LX(ATy(PTy(nTy,sTy),bTy)), 4698 Var("v",PTy(nTy,sTy))),qVar"s"])), 4699 (Bop(Ugt, 4700 Bop(Add, 4701 Bop(Add,CC[LW(0,1),Var("vAddr",F64)], 4702 Mop(Cast(FTy 65),Var("AccessLength",FTy 3))), 4703 LW(1,65)), 4704 Bop(Add,CC[LW(0,1),Var("base",F64)], 4705 CC[LW(0,1),Var("len",F64)])), 4706 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 4707 Apply 4708 (Call 4709 ("next_unknown", 4710 ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 4711 LS"sc-success"), 4712 Apply 4713 (Call 4714 ("SignalCapException",ATy(qTy,qTy), 4715 TP[LC("capExcLength", 4716 CTy"CapExceptionType"),LW(0,5)]), 4717 qVar"state")), 4718 TP[Apply 4719 (LX(ATy(PTy(nTy,sTy),bTy)), 4720 Var("v",PTy(nTy,sTy))),qVar"s"]))], 4721 Apply 4722 (Call 4723 ("StoreMemoryCap",ATy(qTy,PTy(bTy,qTy)), 4724 TP[Var("MemType",FTy 3),Var("AccessLength",FTy 3), 4725 Var("MemElem",F64),bVar"needAlign", 4726 Var("vAddr",F64),bVar"cond"]),qVar"state")))))) 4727; 4728val StoreCap_def = Def 4729 ("StoreCap",TP[Var("vAddr",F64),Var("cap",CTy"Capability"),bVar"cond"], 4730 Close 4731 (qVar"state", 4732 Let(TP[bVar"r",Var("s1",PTy(bTy,qTy))], 4733 Let(Var("s",PTy(bTy,qTy)), 4734 ITE(bVar"cond", 4735 CS(Apply(Const("LLbit",ATy(qTy,OTy bTy)),qVar"state"), 4736 [(LO bTy, 4737 TP[LF, 4738 Mop(Snd, 4739 Apply 4740 (Call 4741 ("raise'exception", 4742 ATy(qTy,PTy(uTy,qTy)), 4743 Call 4744 ("UNPREDICTABLE",CTy"exception", 4745 LS 4746 "conditional store of capability: LLbit not set")), 4747 qVar"state"))]), 4748 (Mop(Some,LF),TP[LF,qVar"state"]), 4749 (Mop(Some,LT), 4750 ITE(EQ(Dest 4751 ("LLAddr",F64, 4752 Apply 4753 (Const("CP0",ATy(qTy,CTy"CP0")), 4754 qVar"state")),Var("vAddr",F64)), 4755 TP[LT,qVar"state"], 4756 TP[LF, 4757 Mop(Snd, 4758 Apply 4759 (Call 4760 ("raise'exception", 4761 ATy(qTy,PTy(uTy,qTy)), 4762 Call 4763 ("UNPREDICTABLE",CTy"exception", 4764 LS 4765 "conditional store of capability: address does not match previous LL address")), 4766 qVar"state"))]))]),TP[LF,qVar"state"]), 4767 Let(qVar"s1", 4768 Apply 4769 (Call("write'LLbit",ATy(qTy,qTy),LO bTy), 4770 Mop(Snd,Var("s",PTy(bTy,qTy)))), 4771 Let(Var("s",PTy(bTy,qTy)), 4772 Let(Var("s",PTy(bTy,qTy)), 4773 Mop(Snd, 4774 Apply 4775 (For(TP[LN 0, 4776 Bop(Sub, 4777 Dest("totalCore",nTy,qVar"s1"), 4778 LN 1), 4779 Close 4780 (nVar"core", 4781 Close 4782 (Var("state",PTy(bTy,qTy)), 4783 Let(Var("i",F8), 4784 Mop(Cast F8,nVar"core"), 4785 Let(Var("v", 4786 CTy"procState"), 4787 Apply 4788 (Dest 4789 ("all_state", 4790 ATy(F8, 4791 CTy"procState"), 4792 Mop(Snd, 4793 Var("state", 4794 PTy(bTy, 4795 qTy)))), 4796 Var("i",F8)), 4797 TP[LU, 4798 ITE(Bop(And, 4799 Mop(Not, 4800 EQ(Var("i", 4801 F8), 4802 Dest 4803 ("procID", 4804 F8, 4805 Mop(Snd, 4806 Var("state", 4807 PTy(bTy, 4808 qTy)))))), 4809 Bop(And, 4810 Bop(Or, 4811 Mop(Not, 4812 bVar"cond"), 4813 Mop(Fst, 4814 Var("state", 4815 PTy(bTy, 4816 qTy)))), 4817 Bop(And, 4818 EQ(Dest 4819 ("c_LLbit", 4820 OTy bTy, 4821 Var("v", 4822 CTy"procState")), 4823 Mop(Some, 4824 LT)), 4825 EQ(EX(Dest 4826 ("LLAddr", 4827 F64, 4828 Dest 4829 ("c_CP0", 4830 CTy"CP0", 4831 Var("v", 4832 CTy"procState"))), 4833 LN 4834 39, 4835 Mop(Log, 4836 Const 4837 ("CAPBYTEWIDTH", 4838 nTy)), 4839 FTy 35), 4840 EX(Var("vAddr", 4841 F64), 4842 LN 4843 39, 4844 Mop(Log, 4845 Const 4846 ("CAPBYTEWIDTH", 4847 nTy)), 4848 FTy 35))))), 4849 TP[Mop(Fst, 4850 Var("state", 4851 PTy(bTy, 4852 qTy))), 4853 Rupd 4854 ("all_state", 4855 TP[Mop(Snd, 4856 Var("state", 4857 PTy(bTy, 4858 qTy))), 4859 Fupd 4860 (Dest 4861 ("all_state", 4862 ATy(F8, 4863 CTy"procState"), 4864 Mop(Snd, 4865 Var("state", 4866 PTy(bTy, 4867 qTy)))), 4868 Var("i", 4869 F8), 4870 Rupd 4871 ("c_LLbit", 4872 TP[Apply 4873 (Dest 4874 ("all_state", 4875 ATy(F8, 4876 CTy"procState"), 4877 Mop(Snd, 4878 Var("state", 4879 PTy(bTy, 4880 qTy)))), 4881 Var("i", 4882 F8)), 4883 Mop(Some, 4884 LF)]))])], 4885 Var("state", 4886 PTy(bTy, 4887 qTy)))]))))]), 4888 TP[Mop(Fst,Var("s",PTy(bTy,qTy))), 4889 qVar"s1"])), 4890 ITE(Bop(Or,Mop(Not,bVar"cond"), 4891 Mop(Fst,Var("s",PTy(bTy,qTy)))), 4892 TP[Mop(Fst,Var("s",PTy(bTy,qTy))), 4893 Apply 4894 (Call 4895 ("WriteCap",ATy(qTy,qTy), 4896 TP[EX(Var("vAddr",F64),LN 39, 4897 Mop(Log, 4898 Const("CAPBYTEWIDTH",nTy)), 4899 FTy 35), 4900 Var("cap",CTy"Capability")]), 4901 Mop(Snd,Var("s",PTy(bTy,qTy))))], 4902 Var("s",PTy(bTy,qTy)))), 4903 TP[Mop(Fst,Var("s",PTy(bTy,qTy))), 4904 Var("s",PTy(bTy,qTy))]))), 4905 TP[bVar"r",Mop(Snd,Var("s1",PTy(bTy,qTy)))]))) 4906; 4907val Fetch_def = Def 4908 ("Fetch",qVar"state", 4909 Let(Var("v",CTy"CP0"), 4910 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 4911 Let(TP[Var("v",CTy"CP0"),qVar"s"], 4912 Let(qVar"s0", 4913 Apply 4914 (Call 4915 ("write'CP0",ATy(qTy,qTy), 4916 Rupd 4917 ("Random", 4918 TP[Var("v",CTy"CP0"), 4919 Rupd 4920 ("Random", 4921 TP[Dest 4922 ("Random",CTy"Random",Var("v",CTy"CP0")), 4923 ITE(EQ(Dest 4924 ("Random",F8, 4925 Dest 4926 ("Random",CTy"Random", 4927 Apply 4928 (Const 4929 ("CP0", 4930 ATy(qTy,CTy"CP0")), 4931 qVar"state"))), 4932 Dest 4933 ("Wired",F8, 4934 Dest 4935 ("Wired",CTy"Wired", 4936 Apply 4937 (Const 4938 ("CP0", 4939 ATy(qTy,CTy"CP0")), 4940 qVar"state")))), 4941 Mop(Cast F8, 4942 Bop(Sub, 4943 Const("TLBAssocEntries",nTy), 4944 LN 1)), 4945 Bop(Sub, 4946 Dest 4947 ("Random",F8, 4948 Dest 4949 ("Random",CTy"Random", 4950 Apply 4951 (Const 4952 ("CP0", 4953 ATy(qTy,CTy"CP0")), 4954 qVar"state"))),LW(1,8)))])])), 4955 qVar"state"), 4956 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"),qVar"s0"]), 4957 Let(TP[Var("v",CTy"CP0"),qVar"s"], 4958 Let(qVar"s0", 4959 ITE(EQ(Dest("Compare",F32,Var("v",CTy"CP0")), 4960 Dest 4961 ("Count",F32, 4962 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s"))), 4963 Let(Var("v",CTy"CP0"), 4964 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s"), 4965 Let(TP[Var("v",CTy"CP0"),qVar"s"], 4966 Let(qVar"s0", 4967 Let(Var("x0",CTy"CauseRegister"), 4968 Dest 4969 ("Cause",CTy"CauseRegister", 4970 Var("v",CTy"CP0")), 4971 Apply 4972 (Call 4973 ("write'CP0",ATy(qTy,qTy), 4974 Rupd 4975 ("Cause", 4976 TP[Var("v",CTy"CP0"), 4977 Rupd 4978 ("IP", 4979 TP[Var("x0", 4980 CTy"CauseRegister"), 4981 BFI(LN 7,LN 7, 4982 Mop(Cast F1, 4983 LT), 4984 Dest 4985 ("IP",F8, 4986 Var("x0", 4987 CTy"CauseRegister")))])])), 4988 qVar"s")), 4989 TP[Apply 4990 (Const("CP0",ATy(qTy,CTy"CP0")), 4991 qVar"s0"),qVar"s0"]), 4992 Apply 4993 (Call 4994 ("write'CP0",ATy(qTy,qTy), 4995 Rupd 4996 ("Cause", 4997 TP[Var("v",CTy"CP0"), 4998 Rupd 4999 ("TI", 5000 TP[Dest 5001 ("Cause", 5002 CTy"CauseRegister", 5003 Var("v",CTy"CP0")),LT])])), 5004 qVar"s"))),qVar"s"), 5005 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 5006 qVar"s0"]), 5007 Let(TP[bVar"v",qVar"s"], 5008 Let(qVar"s0", 5009 ITE(Bop(And, 5010 Dest 5011 ("IE",bTy, 5012 Dest 5013 ("Status",CTy"StatusRegister", 5014 Var("v",CTy"CP0"))), 5015 Mop(Not, 5016 Bop(Or, 5017 Dest 5018 ("EXL",bTy, 5019 Dest 5020 ("Status",CTy"StatusRegister", 5021 Apply 5022 (Const 5023 ("CP0",ATy(qTy,CTy"CP0")), 5024 qVar"s"))), 5025 Dest 5026 ("ERL",bTy, 5027 Dest 5028 ("Status",CTy"StatusRegister", 5029 Apply 5030 (Const 5031 ("CP0",ATy(qTy,CTy"CP0")), 5032 qVar"s")))))), 5033 ITE(Mop(Not, 5034 EQ(Bop(BAnd, 5035 EX(Dest 5036 ("IM",F8, 5037 Dest 5038 ("Status", 5039 CTy"StatusRegister", 5040 Apply 5041 (Const 5042 ("CP0", 5043 ATy(qTy,CTy"CP0")), 5044 qVar"s"))),LN 7, 5045 LN 2,FTy 6), 5046 EX(Dest 5047 ("IP",F8, 5048 Dest 5049 ("Cause", 5050 CTy"CauseRegister", 5051 Apply 5052 (Const 5053 ("CP0", 5054 ATy(qTy,CTy"CP0")), 5055 qVar"s"))),LN 7, 5056 LN 2,FTy 6)),LW(0,6))), 5057 Apply 5058 (Call 5059 ("SignalException",ATy(qTy,qTy), 5060 LC("Int",CTy"ExceptionType")),qVar"s"), 5061 qVar"s"),qVar"s"), 5062 TP[Apply 5063 (Const("exceptionSignalled",ATy(qTy,bTy)), 5064 qVar"s0"),qVar"s0"]), 5065 ITB([(bVar"v",TP[LO F32,qVar"s"]), 5066 (EQ(EX(Apply(Const("PC",ATy(qTy,F64)),qVar"s"), 5067 LN 1,LN 0,FTy 2),LW(0,2)), 5068 Let(Var("v",F64), 5069 Bop(Add, 5070 Apply(Const("PC",ATy(qTy,F64)),qVar"s"), 5071 Call 5072 ("getBase",F64, 5073 Apply 5074 (Const 5075 ("PCC",ATy(qTy,CTy"Capability")), 5076 qVar"s"))), 5077 ITB([(Mop(Not, 5078 Call 5079 ("getTag",bTy, 5080 Apply 5081 (Const 5082 ("PCC", 5083 ATy(qTy,CTy"Capability")), 5084 qVar"s"))), 5085 TP[LO F32, 5086 Apply 5087 (Call 5088 ("SignalCapException_noReg", 5089 ATy(qTy,qTy), 5090 LC("capExcTag", 5091 CTy"CapExceptionType")), 5092 qVar"s")]), 5093 (Call 5094 ("getSealed",bTy, 5095 Apply 5096 (Const 5097 ("PCC",ATy(qTy,CTy"Capability")), 5098 qVar"s")), 5099 TP[LO F32, 5100 Apply 5101 (Call 5102 ("SignalCapException_noReg", 5103 ATy(qTy,qTy), 5104 LC("capExcSeal", 5105 CTy"CapExceptionType")), 5106 qVar"s")]), 5107 (Bop(Ult,Var("v",F64), 5108 Call 5109 ("getBase",F64, 5110 Apply 5111 (Const 5112 ("PCC", 5113 ATy(qTy,CTy"Capability")), 5114 qVar"s"))), 5115 TP[LO F32, 5116 Apply 5117 (Call 5118 ("SignalCapException_noReg", 5119 ATy(qTy,qTy), 5120 LC("capExcLength", 5121 CTy"CapExceptionType")), 5122 qVar"s")]), 5123 (Bop(Ugt, 5124 Bop(Add,CC[LW(0,1),Var("v",F64)], 5125 LW(4,65)), 5126 Bop(Add, 5127 Mop(Cast(FTy 65), 5128 Call 5129 ("getBase",F64, 5130 Apply 5131 (Const 5132 ("PCC", 5133 ATy(qTy, 5134 CTy"Capability")), 5135 qVar"s"))), 5136 Mop(Cast(FTy 65), 5137 Call 5138 ("getLength",F64, 5139 Apply 5140 (Const 5141 ("PCC", 5142 ATy(qTy, 5143 CTy"Capability")), 5144 qVar"s"))))), 5145 TP[LO F32, 5146 Apply 5147 (Call 5148 ("SignalCapException_noReg", 5149 ATy(qTy,qTy), 5150 LC("capExcLength", 5151 CTy"CapExceptionType")), 5152 qVar"s")]), 5153 (Mop(Not, 5154 Dest 5155 ("Permit_Execute",bTy, 5156 Call 5157 ("getPerms",CTy"Perms", 5158 Apply 5159 (Const 5160 ("PCC", 5161 ATy(qTy,CTy"Capability")), 5162 qVar"s")))), 5163 TP[LO F32, 5164 Apply 5165 (Call 5166 ("SignalCapException_noReg", 5167 ATy(qTy,qTy), 5168 LC("capExcPermExe", 5169 CTy"CapExceptionType")), 5170 qVar"s")])], 5171 TP[ITE(Apply 5172 (Const 5173 ("exceptionSignalled", 5174 ATy(qTy,bTy)),qVar"s"), 5175 LO F32, 5176 Mop(Some, 5177 Apply 5178 (Call 5179 ("ReadInst",ATy(qTy,F32), 5180 Mop(Cast(FTy 40), 5181 Var("v",F64))), 5182 qVar"s"))),qVar"s"])))], 5183 TP[LO F32, 5184 Apply 5185 (Call 5186 ("SignalException",ATy(qTy,qTy), 5187 LC("AdEL",CTy"ExceptionType")), 5188 Apply 5189 (Call 5190 ("write'CP0",ATy(qTy,qTy), 5191 Rupd 5192 ("BadVAddr", 5193 TP[Apply 5194 (Const("CP0",ATy(qTy,CTy"CP0")), 5195 qVar"s"), 5196 Bop(Add, 5197 Call 5198 ("getBase",F64, 5199 Apply 5200 (Const 5201 ("PCC", 5202 ATy(qTy, 5203 CTy"Capability")), 5204 qVar"s")), 5205 Apply 5206 (Const("PC",ATy(qTy,F64)), 5207 qVar"s"))])),qVar"s"))])))))) 5208; 5209val PSIZE_def = Def0 ("PSIZE",LN 40) 5210; 5211val switchCore_def = Def 5212 ("switchCore",nVar"n", 5213 Close 5214 (qVar"state", 5215 Let(nVar"v",Mop(Cast nTy,Dest("procID",F8,qVar"state")), 5216 TP[nVar"v", 5217 ITE(Mop(Not,EQ(nVar"n",nVar"v")), 5218 Let(Var("i",F8),Mop(Cast F8,nVar"n"), 5219 Let(qVar"s", 5220 Apply 5221 (Call("switchCoreCAP",ATy(qTy,qTy),Var("i",F8)), 5222 Apply 5223 (Call 5224 ("switchCoreTLB",ATy(qTy,qTy),Var("i",F8)), 5225 qVar"state")), 5226 Let(qVar"s", 5227 Rupd 5228 ("all_gpr", 5229 TP[qVar"s", 5230 Fupd 5231 (Dest 5232 ("all_gpr",ATy(F8,ATy(FTy 5,F64)), 5233 qVar"s"), 5234 Dest("procID",F8,qVar"s"), 5235 Dest("c_gpr",ATy(FTy 5,F64),qVar"s"))]), 5236 Let(qVar"s", 5237 Rupd 5238 ("all_state", 5239 TP[qVar"s", 5240 Fupd 5241 (Dest 5242 ("all_state", 5243 ATy(F8,CTy"procState"), 5244 qVar"s"), 5245 Dest("procID",F8,qVar"s"), 5246 Dest 5247 ("c_state",CTy"procState", 5248 qVar"s"))]), 5249 Let(qVar"s", 5250 Rupd 5251 ("c_gpr", 5252 TP[qVar"s", 5253 Apply 5254 (Dest 5255 ("all_gpr", 5256 ATy(F8,ATy(FTy 5,F64)), 5257 qVar"s"),Var("i",F8))]), 5258 Rupd 5259 ("procID", 5260 TP[Rupd 5261 ("c_state", 5262 TP[qVar"s", 5263 Apply 5264 (Dest 5265 ("all_state", 5266 ATy(F8, 5267 CTy"procState"), 5268 qVar"s"), 5269 Var("i",F8))]), 5270 Var("i",F8)])))))),qVar"state")]))) 5271; 5272val resetStats_def = Def 5273 ("resetStats",qVar"state", 5274 Apply(Const("initCoreStats",ATy(qTy,qTy)),qVar"state")) 5275; 5276val dumpStats_def = Def 5277 ("dumpStats",TP[nVar"inst",sVar"ips",Var("fmt",OTy sTy)],LS"") 5278; 5279val clearDynamicStats_def = Def ("clearDynamicStats",AVar uTy,LU) 5280; 5281val HI_def = Def 5282 ("HI",qVar"state", 5283 CS(Apply(Const("hi",ATy(qTy,OTy F64)),qVar"state"), 5284 [(Mop(Some,Var("v",F64)),TP[Var("v",F64),qVar"state"]), 5285 (LO F64, 5286 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 5287 Apply 5288 (Call 5289 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"hi-reg"), 5290 qVar"state"), 5291 TP[Apply(LX(ATy(PTy(nTy,sTy),F64)),Var("v",PTy(nTy,sTy))), 5292 qVar"s"]))])) 5293; 5294val write'HI_def = Def 5295 ("write'HI",Var("value",F64), 5296 Close 5297 (qVar"state", 5298 Apply 5299 (Call("write'hi",ATy(qTy,qTy),Mop(Some,Var("value",F64))), 5300 qVar"state"))) 5301; 5302val LO_def = Def 5303 ("LO",qVar"state", 5304 CS(Apply(Const("lo",ATy(qTy,OTy F64)),qVar"state"), 5305 [(Mop(Some,Var("v",F64)),TP[Var("v",F64),qVar"state"]), 5306 (LO F64, 5307 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 5308 Apply 5309 (Call 5310 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)),LS"lo-reg"), 5311 qVar"state"), 5312 TP[Apply(LX(ATy(PTy(nTy,sTy),F64)),Var("v",PTy(nTy,sTy))), 5313 qVar"s"]))])) 5314; 5315val write'LO_def = Def 5316 ("write'LO",Var("value",F64), 5317 Close 5318 (qVar"state", 5319 Apply 5320 (Call("write'lo",ATy(qTy,qTy),Mop(Some,Var("value",F64))), 5321 qVar"state"))) 5322; 5323val CPR_def = Def 5324 ("CPR",TP[nVar"n",Var("reg",FTy 5),Var("sel",FTy 3)], 5325 Close 5326 (qVar"state", 5327 CS(TP[nVar"n",Var("reg",FTy 5),Var("sel",FTy 3)], 5328 [(TP[LN 0,LW(0,5),LW(0,3)], 5329 TP[Mop(Cast F64, 5330 Call 5331 ("reg'Index",F32, 5332 Dest 5333 ("Index",CTy"Index", 5334 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5335 qVar"state"]), 5336 (TP[LN 0,LW(1,5),LW(0,3)], 5337 TP[Mop(Cast F64, 5338 Call 5339 ("reg'Random",F32, 5340 Dest 5341 ("Random",CTy"Random", 5342 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5343 qVar"state"]), 5344 (TP[LN 0,LW(2,5),LW(0,3)], 5345 TP[Call 5346 ("reg'EntryLo",F64, 5347 Dest 5348 ("EntryLo0",CTy"EntryLo", 5349 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5350 qVar"state"]), 5351 (TP[LN 0,LW(3,5),LW(0,3)], 5352 TP[Call 5353 ("reg'EntryLo",F64, 5354 Dest 5355 ("EntryLo1",CTy"EntryLo", 5356 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5357 qVar"state"]), 5358 (TP[LN 0,LW(4,5),LW(0,3)], 5359 TP[Call 5360 ("reg'Context",F64, 5361 Dest 5362 ("Context",CTy"Context", 5363 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5364 qVar"state"]), 5365 (TP[LN 0,LW(4,5),LW(2,3)], 5366 TP[Dest 5367 ("UsrLocal",F64, 5368 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")), 5369 qVar"state"]), 5370 (TP[LN 0,LW(5,5),LW(0,3)], 5371 TP[Mop(Cast F64, 5372 Call 5373 ("reg'PageMask",F32, 5374 Dest 5375 ("PageMask",CTy"PageMask", 5376 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5377 qVar"state"]), 5378 (TP[LN 0,LW(6,5),LW(0,3)], 5379 TP[Mop(Cast F64, 5380 Call 5381 ("reg'Wired",F32, 5382 Dest 5383 ("Wired",CTy"Wired", 5384 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5385 qVar"state"]), 5386 (TP[LN 0,LW(7,5),LW(0,3)], 5387 TP[Mop(Cast F64, 5388 Call 5389 ("reg'HWREna",F32, 5390 Dest 5391 ("HWREna",CTy"HWREna", 5392 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5393 qVar"state"]), 5394 (TP[LN 0,LW(8,5),LW(0,3)], 5395 TP[Dest 5396 ("BadVAddr",F64, 5397 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")), 5398 qVar"state"]), 5399 (TP[LN 0,LW(8,5),LW(1,3)], 5400 TP[Mop(Cast F64, 5401 Dest 5402 ("EInstr",F32, 5403 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5404 qVar"state"]), 5405 (TP[LN 0,LW(9,5),LW(0,3)], 5406 TP[Mop(Cast F64, 5407 Dest 5408 ("Count",F32, 5409 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5410 qVar"state"]), 5411 (TP[LN 0,LW(10,5),LW(0,3)], 5412 TP[Call 5413 ("reg'EntryHi",F64, 5414 Dest 5415 ("EntryHi",CTy"EntryHi", 5416 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5417 qVar"state"]), 5418 (TP[LN 0,LW(11,5),LW(0,3)], 5419 TP[Mop(Cast F64, 5420 Dest 5421 ("Compare",F32, 5422 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5423 qVar"state"]), 5424 (TP[LN 0,LW(12,5),LW(0,3)], 5425 TP[Mop(Cast F64, 5426 Call 5427 ("reg'StatusRegister",F32, 5428 Dest 5429 ("Status",CTy"StatusRegister", 5430 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5431 qVar"state"]), 5432 (TP[LN 0,LW(13,5),LW(0,3)], 5433 TP[Mop(Cast F64, 5434 Call 5435 ("reg'CauseRegister",F32, 5436 Dest 5437 ("Cause",CTy"CauseRegister", 5438 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5439 qVar"state"]), 5440 (TP[LN 0,LW(14,5),LW(0,3)], 5441 TP[Dest 5442 ("EPC",F64, 5443 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")), 5444 qVar"state"]), 5445 (TP[LN 0,LW(15,5),LW(0,3)], 5446 TP[Mop(Cast F64, 5447 Dest 5448 ("PRId",F32, 5449 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5450 qVar"state"]), 5451 (TP[LN 0,LW(15,5),LW(1,3)], 5452 TP[Mop(Cast F64, 5453 CC[Mop(Cast F16, 5454 Bop(Sub,Dest("totalCore",nTy,qVar"state"),LN 1)), 5455 Mop(Cast F16,Dest("procID",F8,qVar"state"))]), 5456 qVar"state"]), 5457 (TP[LN 0,LW(15,5),LW(6,3)], 5458 TP[Mop(Cast F64, 5459 CC[Mop(Cast F16, 5460 Bop(Sub,Dest("totalCore",nTy,qVar"state"),LN 1)), 5461 Mop(Cast F16,Dest("procID",F8,qVar"state"))]), 5462 qVar"state"]), 5463 (TP[LN 0,LW(16,5),LW(0,3)], 5464 TP[Mop(Cast F64, 5465 Call 5466 ("reg'ConfigRegister",F32, 5467 Dest 5468 ("Config",CTy"ConfigRegister", 5469 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5470 qVar"state"]), 5471 (TP[LN 0,LW(16,5),LW(1,3)], 5472 TP[Mop(Cast F64, 5473 Call 5474 ("reg'ConfigRegister1",F32, 5475 Dest 5476 ("Config1",CTy"ConfigRegister1", 5477 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5478 qVar"state"]), 5479 (TP[LN 0,LW(16,5),LW(2,3)], 5480 TP[Mop(Cast F64, 5481 Call 5482 ("reg'ConfigRegister2",F32, 5483 Dest 5484 ("Config2",CTy"ConfigRegister2", 5485 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5486 qVar"state"]), 5487 (TP[LN 0,LW(16,5),LW(3,3)], 5488 TP[Mop(Cast F64, 5489 Call 5490 ("reg'ConfigRegister3",F32, 5491 Dest 5492 ("Config3",CTy"ConfigRegister3", 5493 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5494 qVar"state"]), 5495 (TP[LN 0,LW(16,5),LW(4,3)],TP[LW(1,64),qVar"state"]), 5496 (TP[LN 0,LW(16,5),LW(5,3)],TP[LW(1,64),qVar"state"]), 5497 (TP[LN 0,LW(16,5),LW(6,3)], 5498 TP[Mop(Cast F64, 5499 Call 5500 ("reg'ConfigRegister6",F32, 5501 Dest 5502 ("Config6",CTy"ConfigRegister6", 5503 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 5504 qVar"state"]), 5505 (TP[LN 0,LW(17,5),LW(0,3)], 5506 TP[Dest 5507 ("LLAddr",F64, 5508 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")), 5509 qVar"state"]), 5510 (TP[LN 0,LW(20,5),LW(0,3)], 5511 TP[Call 5512 ("reg'XContext",F64, 5513 Dest 5514 ("XContext",CTy"XContext", 5515 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5516 qVar"state"]), 5517 (TP[LN 0,LW(23,5),LW(0,3)], 5518 TP[Mop(Cast F64, 5519 Dest 5520 ("Debug",F32, 5521 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5522 qVar"state"]), 5523 (TP[LN 0,LW(26,5),LW(0,3)], 5524 TP[Mop(Cast F64, 5525 Dest 5526 ("ErrCtl",F32, 5527 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 5528 qVar"state"]), 5529 (TP[LN 0,LW(30,5),LW(0,3)], 5530 TP[Dest 5531 ("ErrorEPC",F64, 5532 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")), 5533 qVar"state"]), 5534 (AVar(PTy(nTy,PTy(FTy 5,FTy 3))), 5535 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 5536 Apply 5537 (Call 5538 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 5539 LS"cop-reg"),qVar"state"), 5540 TP[Apply(LX(ATy(PTy(nTy,sTy),F64)),Var("v",PTy(nTy,sTy))), 5541 qVar"s"]))]))) 5542; 5543val write'CPR_def = Def 5544 ("write'CPR", 5545 TP[Var("value",F64),nVar"n",Var("reg",FTy 5),Var("sel",FTy 3)], 5546 Close 5547 (qVar"state", 5548 CS(TP[nVar"n",Var("reg",FTy 5),Var("sel",FTy 3)], 5549 [(TP[LN 0,LW(0,5),LW(0,3)], 5550 Let(Var("v",CTy"CP0"), 5551 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5552 Apply 5553 (Call 5554 ("write'CP0",ATy(qTy,qTy), 5555 Rupd 5556 ("Index", 5557 TP[Var("v",CTy"CP0"), 5558 Rupd 5559 ("Index", 5560 TP[Dest 5561 ("Index",CTy"Index",Var("v",CTy"CP0")), 5562 EX(Var("value",F64),LN 8,LN 0,FTy 9)])])), 5563 qVar"state"))), 5564 (TP[LN 0,LW(2,5),LW(0,3)], 5565 Let(Var("v",CTy"CP0"), 5566 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5567 Apply 5568 (Call 5569 ("write'CP0",ATy(qTy,qTy), 5570 Rupd 5571 ("EntryLo0", 5572 TP[Var("v",CTy"CP0"), 5573 Call 5574 ("write'reg'EntryLo",CTy"EntryLo", 5575 TP[Dest 5576 ("EntryLo0",CTy"EntryLo", 5577 Var("v",CTy"CP0")),Var("value",F64)])])), 5578 qVar"state"))), 5579 (TP[LN 0,LW(3,5),LW(0,3)], 5580 Let(Var("v",CTy"CP0"), 5581 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5582 Apply 5583 (Call 5584 ("write'CP0",ATy(qTy,qTy), 5585 Rupd 5586 ("EntryLo1", 5587 TP[Var("v",CTy"CP0"), 5588 Call 5589 ("write'reg'EntryLo",CTy"EntryLo", 5590 TP[Dest 5591 ("EntryLo1",CTy"EntryLo", 5592 Var("v",CTy"CP0")),Var("value",F64)])])), 5593 qVar"state"))), 5594 (TP[LN 0,LW(4,5),LW(0,3)], 5595 Let(Var("v",CTy"CP0"), 5596 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5597 Apply 5598 (Call 5599 ("write'CP0",ATy(qTy,qTy), 5600 Rupd 5601 ("Context", 5602 TP[Var("v",CTy"CP0"), 5603 Rupd 5604 ("PTEBase", 5605 TP[Dest 5606 ("Context",CTy"Context", 5607 Var("v",CTy"CP0")), 5608 EX(Var("value",F64),LN 63,LN 23,FTy 41)])])), 5609 qVar"state"))), 5610 (TP[LN 0,LW(4,5),LW(2,3)], 5611 Apply 5612 (Call 5613 ("write'CP0",ATy(qTy,qTy), 5614 Rupd 5615 ("UsrLocal", 5616 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5617 Var("value",F64)])),qVar"state")), 5618 (TP[LN 0,LW(5,5),LW(0,3)], 5619 Let(Var("v",CTy"CP0"), 5620 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5621 Apply 5622 (Call 5623 ("write'CP0",ATy(qTy,qTy), 5624 Rupd 5625 ("PageMask", 5626 TP[Var("v",CTy"CP0"), 5627 Rupd 5628 ("Mask", 5629 TP[Dest 5630 ("PageMask",CTy"PageMask", 5631 Var("v",CTy"CP0")), 5632 EX(Var("value",F64),LN 24,LN 13,FTy 12)])])), 5633 qVar"state"))), 5634 (TP[LN 0,LW(6,5),LW(0,3)], 5635 Let(Var("v",CTy"CP0"), 5636 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5637 Let(TP[Var("v",CTy"CP0"),qVar"s"], 5638 Let(qVar"s0", 5639 Apply 5640 (Call 5641 ("write'CP0",ATy(qTy,qTy), 5642 Rupd 5643 ("Wired", 5644 TP[Var("v",CTy"CP0"), 5645 Rupd 5646 ("Wired", 5647 TP[Dest 5648 ("Wired",CTy"Wired", 5649 Var("v",CTy"CP0")), 5650 EX(Var("value",F64),LN 7,LN 0,F8)])])), 5651 qVar"state"), 5652 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 5653 qVar"s0"]), 5654 Apply 5655 (Call 5656 ("write'CP0",ATy(qTy,qTy), 5657 Rupd 5658 ("Random", 5659 TP[Var("v",CTy"CP0"), 5660 Rupd 5661 ("Random", 5662 TP[Dest 5663 ("Random",CTy"Random", 5664 Var("v",CTy"CP0")), 5665 Mop(Cast F8, 5666 Bop(Sub, 5667 Const("TLBAssocEntries",nTy), 5668 LN 1))])])),qVar"s")))), 5669 (TP[LN 0,LW(7,5),LW(0,3)], 5670 Let(Var("v",CTy"CP0"), 5671 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5672 Let(TP[Var("v",CTy"CP0"),qVar"s"], 5673 Let(qVar"s0", 5674 Apply 5675 (Call 5676 ("write'CP0",ATy(qTy,qTy), 5677 Rupd 5678 ("HWREna", 5679 TP[Var("v",CTy"CP0"), 5680 Rupd 5681 ("CPUNum", 5682 TP[Dest 5683 ("HWREna",CTy"HWREna", 5684 Var("v",CTy"CP0")), 5685 Bop(Bit,Var("value",F64),LN 0)])])), 5686 qVar"state"), 5687 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 5688 qVar"s0"]), 5689 Let(TP[Var("v",CTy"CP0"),qVar"s"], 5690 Let(qVar"s0", 5691 Apply 5692 (Call 5693 ("write'CP0",ATy(qTy,qTy), 5694 Rupd 5695 ("HWREna", 5696 TP[Var("v",CTy"CP0"), 5697 Rupd 5698 ("CC", 5699 TP[Dest 5700 ("HWREna",CTy"HWREna", 5701 Var("v",CTy"CP0")), 5702 Bop(Bit,Var("value",F64),LN 2)])])), 5703 qVar"s"), 5704 TP[Apply 5705 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 5706 qVar"s0"]), 5707 Let(TP[Var("v",CTy"CP0"),qVar"s"], 5708 Let(qVar"s0", 5709 Apply 5710 (Call 5711 ("write'CP0",ATy(qTy,qTy), 5712 Rupd 5713 ("HWREna", 5714 TP[Var("v",CTy"CP0"), 5715 Rupd 5716 ("CCRes", 5717 TP[Dest 5718 ("HWREna",CTy"HWREna", 5719 Var("v",CTy"CP0")), 5720 Bop(Bit,Var("value",F64), 5721 LN 3)])])),qVar"s"), 5722 TP[Apply 5723 (Const("CP0",ATy(qTy,CTy"CP0")), 5724 qVar"s0"),qVar"s0"]), 5725 Let(TP[Var("v",CTy"CP0"),qVar"s"], 5726 Let(qVar"s0", 5727 Apply 5728 (Call 5729 ("write'CP0",ATy(qTy,qTy), 5730 Rupd 5731 ("HWREna", 5732 TP[Var("v",CTy"CP0"), 5733 Rupd 5734 ("RS", 5735 TP[Dest 5736 ("HWREna", 5737 CTy"HWREna", 5738 Var("v",CTy"CP0")), 5739 Bop(Bit, 5740 Var("value",F64), 5741 LN 27)])])), 5742 qVar"s"), 5743 TP[Apply 5744 (Const("CP0",ATy(qTy,CTy"CP0")), 5745 qVar"s0"),qVar"s0"]), 5746 Let(TP[Var("v",CTy"CP0"),qVar"s"], 5747 Let(qVar"s0", 5748 Apply 5749 (Call 5750 ("write'CP0",ATy(qTy,qTy), 5751 Rupd 5752 ("HWREna", 5753 TP[Var("v",CTy"CP0"), 5754 Rupd 5755 ("DS", 5756 TP[Dest 5757 ("HWREna", 5758 CTy"HWREna", 5759 Var("v", 5760 CTy"CP0")), 5761 Bop(Bit, 5762 Var("value", 5763 F64), 5764 LN 28)])])), 5765 qVar"s"), 5766 TP[Apply 5767 (Const 5768 ("CP0",ATy(qTy,CTy"CP0")), 5769 qVar"s0"),qVar"s0"]), 5770 Apply 5771 (Call 5772 ("write'CP0",ATy(qTy,qTy), 5773 Rupd 5774 ("HWREna", 5775 TP[Var("v",CTy"CP0"), 5776 Rupd 5777 ("UL", 5778 TP[Dest 5779 ("HWREna", 5780 CTy"HWREna", 5781 Var("v",CTy"CP0")), 5782 Bop(Bit, 5783 Var("value",F64), 5784 LN 29)])])), 5785 qVar"s")))))))), 5786 (TP[LN 0,LW(9,5),LW(0,3)], 5787 Apply 5788 (Call 5789 ("write'CP0",ATy(qTy,qTy), 5790 Rupd 5791 ("Count", 5792 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5793 EX(Var("value",F64),LN 31,LN 0,F32)])),qVar"state")), 5794 (TP[LN 0,LW(10,5),LW(0,3)], 5795 Let(Var("v",CTy"CP0"), 5796 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5797 Apply 5798 (Call 5799 ("write'CP0",ATy(qTy,qTy), 5800 Rupd 5801 ("EntryHi", 5802 TP[Var("v",CTy"CP0"), 5803 Call 5804 ("write'reg'EntryHi",CTy"EntryHi", 5805 TP[Dest 5806 ("EntryHi",CTy"EntryHi", 5807 Var("v",CTy"CP0")),Var("value",F64)])])), 5808 qVar"state"))), 5809 (TP[LN 0,LW(11,5),LW(0,3)], 5810 Let(TP[Var("v",CTy"CP0"),qVar"s"], 5811 Let(qVar"s0", 5812 Apply 5813 (Call 5814 ("write'CP0",ATy(qTy,qTy), 5815 Rupd 5816 ("Compare", 5817 TP[Apply 5818 (Const("CP0",ATy(qTy,CTy"CP0")), 5819 qVar"state"), 5820 EX(Var("value",F64),LN 31,LN 0,F32)])), 5821 qVar"state"), 5822 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 5823 qVar"s0"]), 5824 Let(TP[Var("v",CTy"CP0"),qVar"s"], 5825 Let(qVar"s0", 5826 Let(Var("x0",CTy"CauseRegister"), 5827 Dest 5828 ("Cause",CTy"CauseRegister",Var("v",CTy"CP0")), 5829 Apply 5830 (Call 5831 ("write'CP0",ATy(qTy,qTy), 5832 Rupd 5833 ("Cause", 5834 TP[Var("v",CTy"CP0"), 5835 Rupd 5836 ("IP", 5837 TP[Var("x0",CTy"CauseRegister"), 5838 BFI(LN 7,LN 7, 5839 Mop(Cast F1,LF), 5840 Dest 5841 ("IP",F8, 5842 Var("x0", 5843 CTy"CauseRegister")))])])), 5844 qVar"s")), 5845 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 5846 qVar"s0"]), 5847 Apply 5848 (Call 5849 ("write'CP0",ATy(qTy,qTy), 5850 Rupd 5851 ("Cause", 5852 TP[Var("v",CTy"CP0"), 5853 Rupd 5854 ("TI", 5855 TP[Dest 5856 ("Cause",CTy"CauseRegister", 5857 Var("v",CTy"CP0")),LF])])),qVar"s")))), 5858 (TP[LN 0,LW(12,5),LW(0,3)], 5859 Let(Var("v",CTy"CP0"), 5860 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5861 Apply 5862 (Call 5863 ("write'CP0",ATy(qTy,qTy), 5864 Rupd 5865 ("Status", 5866 TP[Var("v",CTy"CP0"), 5867 Call 5868 ("write'reg'StatusRegister", 5869 CTy"StatusRegister", 5870 TP[Dest 5871 ("Status",CTy"StatusRegister", 5872 Var("v",CTy"CP0")), 5873 EX(Var("value",F64),LN 31,LN 0,F32)])])), 5874 qVar"state"))), 5875 (TP[LN 0,LW(13,5),LW(0,3)], 5876 Let(Var("v",CTy"CP0"), 5877 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5878 Let(Var("x0",CTy"CauseRegister"), 5879 Dest("Cause",CTy"CauseRegister",Var("v",CTy"CP0")), 5880 Apply 5881 (Call 5882 ("write'CP0",ATy(qTy,qTy), 5883 Rupd 5884 ("Cause", 5885 TP[Var("v",CTy"CP0"), 5886 Rupd 5887 ("IP", 5888 TP[Var("x0",CTy"CauseRegister"), 5889 BFI(LN 1,LN 0, 5890 EX(Var("value",F64),LN 9,LN 8, 5891 FTy 2), 5892 Dest 5893 ("IP",F8, 5894 Var("x0",CTy"CauseRegister")))])])), 5895 qVar"state")))), 5896 (TP[LN 0,LW(14,5),LW(0,3)], 5897 Apply 5898 (Call 5899 ("write'CP0",ATy(qTy,qTy), 5900 Rupd 5901 ("EPC", 5902 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5903 Var("value",F64)])),qVar"state")), 5904 (TP[LN 0,LW(16,5),LW(0,3)], 5905 Let(Var("v",CTy"CP0"), 5906 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5907 Apply 5908 (Call 5909 ("write'CP0",ATy(qTy,qTy), 5910 Rupd 5911 ("Config", 5912 TP[Var("v",CTy"CP0"), 5913 Rupd 5914 ("K0", 5915 TP[Dest 5916 ("Config",CTy"ConfigRegister", 5917 Var("v",CTy"CP0")), 5918 EX(Var("value",F64),LN 2,LN 0,FTy 3)])])), 5919 qVar"state"))), 5920 (TP[LN 0,LW(16,5),LW(2,3)], 5921 Let(Var("v",CTy"CP0"), 5922 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5923 Apply 5924 (Call 5925 ("write'CP0",ATy(qTy,qTy), 5926 Rupd 5927 ("Config2", 5928 TP[Var("v",CTy"CP0"), 5929 Rupd 5930 ("SU", 5931 TP[Dest 5932 ("Config2",CTy"ConfigRegister2", 5933 Var("v",CTy"CP0")), 5934 EX(Var("value",F64),LN 15,LN 12,F4)])])), 5935 qVar"state"))), 5936 (TP[LN 0,LW(16,5),LW(6,3)], 5937 Let(Var("v",CTy"CP0"), 5938 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5939 Apply 5940 (Call 5941 ("write'CP0",ATy(qTy,qTy), 5942 Rupd 5943 ("Config6", 5944 TP[Var("v",CTy"CP0"), 5945 Rupd 5946 ("LTLB", 5947 TP[Dest 5948 ("Config6",CTy"ConfigRegister6", 5949 Var("v",CTy"CP0")), 5950 Bop(Bit,Var("value",F64),LN 2)])])), 5951 qVar"state"))), 5952 (TP[LN 0,LW(20,5),LW(0,3)], 5953 Let(Var("v",CTy"CP0"), 5954 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5955 Apply 5956 (Call 5957 ("write'CP0",ATy(qTy,qTy), 5958 Rupd 5959 ("XContext", 5960 TP[Var("v",CTy"CP0"), 5961 Rupd 5962 ("PTEBase", 5963 TP[Dest 5964 ("XContext",CTy"XContext", 5965 Var("v",CTy"CP0")), 5966 EX(Var("value",F64),LN 63,LN 33,FTy 31)])])), 5967 qVar"state"))), 5968 (TP[LN 0,LW(23,5),LW(0,3)], 5969 Rupd 5970 ("done", 5971 TP[Apply 5972 (Call 5973 ("write'CP0",ATy(qTy,qTy), 5974 Rupd 5975 ("Debug", 5976 TP[Apply 5977 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5978 EX(Var("value",F64),LN 31,LN 0,F32)])), 5979 qVar"state"),LT])), 5980 (TP[LN 0,LW(26,5),LW(0,3)], 5981 Apply 5982 (Call 5983 ("write'CP0",ATy(qTy,qTy), 5984 Rupd 5985 ("ErrCtl", 5986 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5987 EX(Var("value",F64),LN 31,LN 0,F32)])),qVar"state")), 5988 (TP[LN 0,LW(30,5),LW(0,3)], 5989 Apply 5990 (Call 5991 ("write'CP0",ATy(qTy,qTy), 5992 Rupd 5993 ("ErrorEPC", 5994 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"), 5995 Var("value",F64)])),qVar"state")), 5996 (AVar(PTy(nTy,PTy(FTy 5,FTy 3))),qVar"state")]))) 5997; 5998val log_w_fgr_def = Def 5999 ("log_w_fgr",TP[Var("r",FTy 5),Var("data",F64)], 6000 CC[LS"FP Reg ",Mop(Cast sTy,Mop(Cast nTy,Var("r",FTy 5))),LS" <- ", 6001 Call("hex",sTy,Var("data",F64))]) 6002; 6003val rec'FCSR_def = Def 6004 ("rec'FCSR",Var("x",F32), 6005 Rec(CTy"FCSR", 6006 [Bop(Bit,Var("x",F32),LN 19),Bop(Bit,Var("x",F32),LN 17), 6007 Bop(Bit,Var("x",F32),LN 12),Bop(Bit,Var("x",F32),LN 14), 6008 Bop(Bit,Var("x",F32),LN 13),Bop(Bit,Var("x",F32),LN 16), 6009 Bop(Bit,Var("x",F32),LN 15),Bop(Bit,Var("x",F32),LN 7), 6010 Bop(Bit,Var("x",F32),LN 9),Bop(Bit,Var("x",F32),LN 8), 6011 Bop(Bit,Var("x",F32),LN 11),Bop(Bit,Var("x",F32),LN 10), 6012 CC[EX(Var("x",F32),LN 31,LN 25,FTy 7), 6013 EX(Var("x",F32),LN 23,LN 23,F1)],Bop(Bit,Var("x",F32),LN 24), 6014 Bop(Bit,Var("x",F32),LN 2),Bop(Bit,Var("x",F32),LN 4), 6015 Bop(Bit,Var("x",F32),LN 3),Bop(Bit,Var("x",F32),LN 6), 6016 Bop(Bit,Var("x",F32),LN 5),Bop(Bit,Var("x",F32),LN 18), 6017 EX(Var("x",F32),LN 1,LN 0,FTy 2), 6018 EX(Var("x",F32),LN 22,LN 20,FTy 3)])) 6019; 6020val reg'FCSR_def = Def 6021 ("reg'FCSR",Var("x",CTy"FCSR"), 6022 CS(Var("x",CTy"FCSR"), 6023 [(Rec(CTy"FCSR", 6024 [bVar"ABS2008",bVar"CauseE",bVar"CauseI",bVar"CauseO", 6025 bVar"CauseU",bVar"CauseV",bVar"CauseZ",bVar"EnableI", 6026 bVar"EnableO",bVar"EnableU",bVar"EnableV",bVar"EnableZ", 6027 Var("FCC",F8),bVar"FS",bVar"FlagI",bVar"FlagO",bVar"FlagU", 6028 bVar"FlagV",bVar"FlagZ",bVar"NAN2008",Var("RM",FTy 2), 6029 Var("fcsr'rst",FTy 3)]), 6030 CC[EX(Var("FCC",F8),LN 7,LN 1,FTy 7),Mop(Cast F1,bVar"FS"), 6031 EX(Var("FCC",F8),LN 0,LN 0,F1),Var("fcsr'rst",FTy 3), 6032 Mop(Cast F1,bVar"ABS2008"),Mop(Cast F1,bVar"NAN2008"), 6033 Mop(Cast F1,bVar"CauseE"),Mop(Cast F1,bVar"CauseV"), 6034 Mop(Cast F1,bVar"CauseZ"),Mop(Cast F1,bVar"CauseO"), 6035 Mop(Cast F1,bVar"CauseU"),Mop(Cast F1,bVar"CauseI"), 6036 Mop(Cast F1,bVar"EnableV"),Mop(Cast F1,bVar"EnableZ"), 6037 Mop(Cast F1,bVar"EnableO"),Mop(Cast F1,bVar"EnableU"), 6038 Mop(Cast F1,bVar"EnableI"),Mop(Cast F1,bVar"FlagV"), 6039 Mop(Cast F1,bVar"FlagZ"),Mop(Cast F1,bVar"FlagO"), 6040 Mop(Cast F1,bVar"FlagU"),Mop(Cast F1,bVar"FlagI"), 6041 Var("RM",FTy 2)])])) 6042; 6043val write'rec'FCSR_def = Def 6044 ("write'rec'FCSR",TP[AVar F32,Var("x",CTy"FCSR")], 6045 Call("reg'FCSR",F32,Var("x",CTy"FCSR"))) 6046; 6047val write'reg'FCSR_def = Def 6048 ("write'reg'FCSR",TP[AVar(CTy"FCSR"),Var("x",F32)], 6049 Call("rec'FCSR",CTy"FCSR",Var("x",F32))) 6050; 6051val rec'FIR_def = Def 6052 ("rec'FIR",Var("x",F32), 6053 Rec(CTy"FIR", 6054 [Bop(Bit,Var("x",F32),LN 19),Bop(Bit,Var("x",F32),LN 17), 6055 Bop(Bit,Var("x",F32),LN 22),Bop(Bit,Var("x",F32),LN 21), 6056 Bop(Bit,Var("x",F32),LN 18),EX(Var("x",F32),LN 15,LN 8,F8), 6057 EX(Var("x",F32),LN 7,LN 0,F8),Bop(Bit,Var("x",F32),LN 16), 6058 Bop(Bit,Var("x",F32),LN 20),EX(Var("x",F32),LN 31,LN 23,FTy 9)])) 6059; 6060val reg'FIR_def = Def 6061 ("reg'FIR",Var("x",CTy"FIR"), 6062 CS(Var("x",CTy"FIR"), 6063 [(Rec(CTy"FIR", 6064 [bVar"ASE",bVar"D",bVar"F64",bVar"L",bVar"PS",Var("PrID",F8), 6065 Var("Rev",F8),bVar"S",bVar"W",Var("fir'rst",FTy 9)]), 6066 CC[Var("fir'rst",FTy 9),Mop(Cast F1,bVar"F64"), 6067 Mop(Cast F1,bVar"L"),Mop(Cast F1,bVar"W"), 6068 Mop(Cast F1,bVar"ASE"),Mop(Cast F1,bVar"PS"), 6069 Mop(Cast F1,bVar"D"),Mop(Cast F1,bVar"S"),Var("PrID",F8), 6070 Var("Rev",F8)])])) 6071; 6072val write'rec'FIR_def = Def 6073 ("write'rec'FIR",TP[AVar F32,Var("x",CTy"FIR")], 6074 Call("reg'FIR",F32,Var("x",CTy"FIR"))) 6075; 6076val write'reg'FIR_def = Def 6077 ("write'reg'FIR",TP[AVar(CTy"FIR"),Var("x",F32)], 6078 Call("rec'FIR",CTy"FIR",Var("x",F32))) 6079; 6080val FGR_def = Def 6081 ("FGR",Var("n",FTy 5), 6082 Close 6083 (qVar"state", 6084 Apply(Dest("fgr",ATy(FTy 5,F64),qVar"state"),Var("n",FTy 5)))) 6085; 6086val write'FGR_def = Def 6087 ("write'FGR",TP[Var("value",F64),Var("n",FTy 5)], 6088 Close 6089 (qVar"state", 6090 Rupd 6091 ("fgr", 6092 TP[qVar"state", 6093 Fupd 6094 (Dest("fgr",ATy(FTy 5,F64),qVar"state"),Var("n",FTy 5), 6095 Var("value",F64))]))) 6096; 6097val IntToWordMIPS_def = Def 6098 ("IntToWordMIPS",iVar"v", 6099 ITB([(Bop(Gt,iVar"v",LI 2147483647),LW(2147483647,32)), 6100 (Bop(Lt,iVar"v",Mop(Neg,LI 2147483648)),LW(2147483647,32))], 6101 Mop(Cast F32,iVar"v"))) 6102; 6103val IntToDWordMIPS_def = Def 6104 ("IntToDWordMIPS",iVar"v", 6105 ITB([(Bop(Gt,iVar"v",LI 9223372036854775807),LW(9223372036854775807,64)), 6106 (Bop(Lt,iVar"v",Mop(Neg,LI 9223372036854775808)), 6107 LW(9223372036854775807,64))],Mop(Cast F64,iVar"v"))) 6108; 6109val FP32_Abs1985_def = Def 6110 ("FP32_Abs1985",Var("a",F32), 6111 ITE(Mop(FPIsNan 32,Var("a",F32)),Var("a",F32), 6112 Mop(FPAbs 32,Var("a",F32)))) 6113; 6114val FP32_Neg1985_def = Def 6115 ("FP32_Neg1985",Var("a",F32), 6116 ITE(Mop(FPIsNan 32,Var("a",F32)),Var("a",F32), 6117 Mop(FPNeg 32,Var("a",F32)))) 6118; 6119val FP64_Abs1985_def = Def 6120 ("FP64_Abs1985",Var("a",F64), 6121 ITE(Mop(FPIsNan 64,Var("a",F64)),Var("a",F64), 6122 Mop(FPAbs 64,Var("a",F64)))) 6123; 6124val FP64_Neg1985_def = Def 6125 ("FP64_Neg1985",Var("a",F64), 6126 ITE(Mop(FPIsNan 64,Var("a",F64)),Var("a",F64), 6127 Mop(FPNeg 64,Var("a",F64)))) 6128; 6129val PostOpF32_def = Def 6130 ("PostOpF32",Var("v",F32), 6131 Close 6132 (qVar"state", 6133 ITE(Bop(And,Dest("FS",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), 6134 Mop(FPIsSubnormal 32,Var("v",F32))),LW(0,32),Var("v",F32)))) 6135; 6136val PostOpF64_def = Def 6137 ("PostOpF64",Var("v",F64), 6138 Close 6139 (qVar"state", 6140 ITE(Bop(And,Dest("FS",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), 6141 Mop(FPIsSubnormal 64,Var("v",F64))),LW(0,64),Var("v",F64)))) 6142; 6143val FP64_Unordered_def = Def 6144 ("FP64_Unordered",TP[Var("a",F64),Var("b",F64)], 6145 Bop(Or,Mop(FPIsNan 64,Var("a",F64)),Mop(FPIsNan 64,Var("b",F64)))) 6146; 6147val FP32_Unordered_def = Def 6148 ("FP32_Unordered",TP[Var("a",F32),Var("b",F32)], 6149 Bop(Or,Mop(FPIsNan 32,Var("a",F32)),Mop(FPIsNan 32,Var("b",F32)))) 6150; 6151val Rounding_Mode_def = Def 6152 ("Rounding_Mode",qVar"state", 6153 CS(Dest("RM",FTy 2,Dest("fcsr",CTy"FCSR",qVar"state")), 6154 [(LW(0,2),binary_ieeeSyntax.roundTiesToEven_tm), 6155 (LW(1,2),binary_ieeeSyntax.roundTowardZero_tm), 6156 (LW(2,2),binary_ieeeSyntax.roundTowardPositive_tm), 6157 (LW(3,2),binary_ieeeSyntax.roundTowardNegative_tm)])) 6158; 6159val dfn'ABS_D_def = Def 6160 ("dfn'ABS_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6161 Close 6162 (qVar"state", 6163 ITB([(Mop(Not, 6164 Dest 6165 ("CU1",bTy, 6166 Dest 6167 ("Status",CTy"StatusRegister", 6168 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6169 Apply 6170 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 6171 qVar"state")), 6172 (Dest("ABS2008",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), 6173 Apply 6174 (Call 6175 ("write'FGR",ATy(qTy,qTy), 6176 TP[Mop(FPAbs 64, 6177 Apply 6178 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6179 qVar"state")),Var("fd",FTy 5)]),qVar"state"))], 6180 Apply 6181 (Call 6182 ("write'FGR",ATy(qTy,qTy), 6183 TP[Apply 6184 (Call 6185 ("PostOpF64",ATy(qTy,F64), 6186 Call 6187 ("FP64_Abs1985",F64, 6188 Apply 6189 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6190 qVar"state"))),qVar"state"),Var("fd",FTy 5)]), 6191 qVar"state")))) 6192; 6193val dfn'ABS_S_def = Def 6194 ("dfn'ABS_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6195 Close 6196 (qVar"state", 6197 ITB([(Mop(Not, 6198 Dest 6199 ("CU1",bTy, 6200 Dest 6201 ("Status",CTy"StatusRegister", 6202 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6203 Apply 6204 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 6205 qVar"state")), 6206 (Dest("ABS2008",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), 6207 Apply 6208 (Call 6209 ("write'FGR",ATy(qTy,qTy), 6210 TP[Mop(SE F64, 6211 Mop(FPAbs 32, 6212 EX(Apply 6213 (Call 6214 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6215 qVar"state"),LN 31,LN 0,F32))), 6216 Var("fd",FTy 5)]),qVar"state"))], 6217 Apply 6218 (Call 6219 ("write'FGR",ATy(qTy,qTy), 6220 TP[Mop(SE F64, 6221 Apply 6222 (Call 6223 ("PostOpF32",ATy(qTy,F32), 6224 Call 6225 ("FP32_Abs1985",F32, 6226 EX(Apply 6227 (Call 6228 ("FGR",ATy(qTy,F64), 6229 Var("fs",FTy 5)),qVar"state"), 6230 LN 31,LN 0,F32))),qVar"state")), 6231 Var("fd",FTy 5)]),qVar"state")))) 6232; 6233val dfn'ADD_D_def = Def 6234 ("dfn'ADD_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 6235 Close 6236 (qVar"state", 6237 ITE(Mop(Not, 6238 Dest 6239 ("CU1",bTy, 6240 Dest 6241 ("Status",CTy"StatusRegister", 6242 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6243 Apply 6244 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6245 Apply 6246 (Call 6247 ("write'FGR",ATy(qTy,qTy), 6248 TP[Apply 6249 (Call 6250 ("PostOpF64",ATy(qTy,F64), 6251 Mop(FPAdd 64, 6252 TP[Apply 6253 (Const("Rounding_Mode",ATy(qTy,rTy)), 6254 qVar"state"), 6255 Apply 6256 (Call 6257 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6258 qVar"state"), 6259 Apply 6260 (Call 6261 ("FGR",ATy(qTy,F64),Var("ft",FTy 5)), 6262 qVar"state")])),qVar"state"), 6263 Var("fd",FTy 5)]),qVar"state")))) 6264; 6265val dfn'ADD_S_def = Def 6266 ("dfn'ADD_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 6267 Close 6268 (qVar"state", 6269 ITE(Mop(Not, 6270 Dest 6271 ("CU1",bTy, 6272 Dest 6273 ("Status",CTy"StatusRegister", 6274 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6275 Apply 6276 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6277 Apply 6278 (Call 6279 ("write'FGR",ATy(qTy,qTy), 6280 TP[Mop(SE F64, 6281 Apply 6282 (Call 6283 ("PostOpF32",ATy(qTy,F32), 6284 Mop(FPAdd 32, 6285 TP[Apply 6286 (Const("Rounding_Mode",ATy(qTy,rTy)), 6287 qVar"state"), 6288 EX(Apply 6289 (Call 6290 ("FGR",ATy(qTy,F64), 6291 Var("fs",FTy 5)),qVar"state"), 6292 LN 31,LN 0,F32), 6293 EX(Apply 6294 (Call 6295 ("FGR",ATy(qTy,F64), 6296 Var("ft",FTy 5)),qVar"state"), 6297 LN 31,LN 0,F32)])),qVar"state")), 6298 Var("fd",FTy 5)]),qVar"state")))) 6299; 6300val dfn'BC1F_def = Def 6301 ("dfn'BC1F",TP[Var("i",F16),Var("cc",FTy 3)], 6302 Close 6303 (qVar"state", 6304 ITB([(Mop(Not, 6305 Dest 6306 ("CU1",bTy, 6307 Dest 6308 ("Status",CTy"StatusRegister", 6309 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6310 Apply 6311 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 6312 qVar"state")), 6313 (Mop(Not, 6314 Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 6315 Mop(Cast nTy,Var("cc",FTy 3)))), 6316 Apply 6317 (Call 6318 ("write'BranchTo",ATy(qTy,qTy), 6319 Mop(Some, 6320 Bop(Add, 6321 Bop(Add, 6322 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 6323 LW(4,64)), 6324 Bop(Lsl,Mop(SE F64,Var("i",F16)),LN 2)))), 6325 qVar"state"))], 6326 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state")))) 6327; 6328val dfn'BC1FL_def = Def 6329 ("dfn'BC1FL",TP[Var("i",F16),Var("cc",FTy 3)], 6330 Close 6331 (qVar"state", 6332 ITB([(Mop(Not, 6333 Dest 6334 ("CU1",bTy, 6335 Dest 6336 ("Status",CTy"StatusRegister", 6337 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6338 Apply 6339 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 6340 qVar"state")), 6341 (Mop(Not, 6342 Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 6343 Mop(Cast nTy,Var("cc",FTy 3)))), 6344 Apply 6345 (Call 6346 ("write'BranchTo",ATy(qTy,qTy), 6347 Mop(Some, 6348 Bop(Add, 6349 Bop(Add, 6350 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 6351 LW(4,64)), 6352 Bop(Lsl,Mop(SE F64,Var("i",F16)),LN 2)))), 6353 qVar"state"))], 6354 Let(TP[Var("v",F64),qVar"s"], 6355 Let(qVar"s0", 6356 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 6357 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 6358 Apply 6359 (Call 6360 ("write'PC",ATy(qTy,qTy),Bop(Add,Var("v",F64),LW(4,64))), 6361 qVar"s"))))) 6362; 6363val dfn'BC1T_def = Def 6364 ("dfn'BC1T",TP[Var("i",F16),Var("cc",FTy 3)], 6365 Close 6366 (qVar"state", 6367 ITB([(Mop(Not, 6368 Dest 6369 ("CU1",bTy, 6370 Dest 6371 ("Status",CTy"StatusRegister", 6372 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6373 Apply 6374 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 6375 qVar"state")), 6376 (Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 6377 Mop(Cast nTy,Var("cc",FTy 3))), 6378 Apply 6379 (Call 6380 ("write'BranchTo",ATy(qTy,qTy), 6381 Mop(Some, 6382 Bop(Add, 6383 Bop(Add, 6384 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 6385 LW(4,64)), 6386 Bop(Lsl,Mop(SE F64,Var("i",F16)),LN 2)))), 6387 qVar"state"))], 6388 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state")))) 6389; 6390val dfn'BC1TL_def = Def 6391 ("dfn'BC1TL",TP[Var("i",F16),Var("cc",FTy 3)], 6392 Close 6393 (qVar"state", 6394 ITB([(Mop(Not, 6395 Dest 6396 ("CU1",bTy, 6397 Dest 6398 ("Status",CTy"StatusRegister", 6399 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6400 Apply 6401 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 6402 qVar"state")), 6403 (Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 6404 Mop(Cast nTy,Var("cc",FTy 3))), 6405 Apply 6406 (Call 6407 ("write'BranchTo",ATy(qTy,qTy), 6408 Mop(Some, 6409 Bop(Add, 6410 Bop(Add, 6411 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 6412 LW(4,64)), 6413 Bop(Lsl,Mop(SE F64,Var("i",F16)),LN 2)))), 6414 qVar"state"))], 6415 Let(TP[Var("v",F64),qVar"s"], 6416 Let(qVar"s0", 6417 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 6418 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 6419 Apply 6420 (Call 6421 ("write'PC",ATy(qTy,qTy),Bop(Add,Var("v",F64),LW(4,64))), 6422 qVar"s"))))) 6423; 6424val dfn'C_cond_D_def = Def 6425 ("dfn'C_cond_D", 6426 TP[Var("fs",FTy 5),Var("ft",FTy 5),Var("cnd",FTy 3),Var("cc",FTy 3)], 6427 Close 6428 (qVar"state", 6429 ITE(Mop(Not, 6430 Dest 6431 ("CU1",bTy, 6432 Dest 6433 ("Status",CTy"StatusRegister", 6434 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6435 Apply 6436 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6437 Let(nVar"i",Mop(Cast nTy,Var("cc",FTy 3)), 6438 Let(TP[Var("v",CTy"FCSR"),qVar"s"], 6439 Let(TP[Var("v",PTy(CTy"FCSR",F8)),qVar"s"], 6440 Let(TP[bVar"v0",qVar"s0"], 6441 CS(Var("cnd",FTy 3), 6442 [(LW(0,3),TP[LF,qVar"state"]), 6443 (LW(1,3), 6444 TP[Call 6445 ("FP64_Unordered",bTy, 6446 TP[Apply 6447 (Call 6448 ("FGR",ATy(qTy,F64), 6449 Var("fs",FTy 5)),qVar"state"), 6450 Apply 6451 (Call 6452 ("FGR",ATy(qTy,F64), 6453 Var("ft",FTy 5)),qVar"state")]), 6454 qVar"state"]), 6455 (LW(2,3), 6456 TP[Mop(FPEq 64, 6457 TP[Apply 6458 (Call 6459 ("FGR",ATy(qTy,F64), 6460 Var("fs",FTy 5)), 6461 qVar"state"), 6462 Apply 6463 (Call 6464 ("FGR",ATy(qTy,F64), 6465 Var("ft",FTy 5)), 6466 qVar"state")]),qVar"state"]), 6467 (LW(3,3), 6468 TP[Bop(Or, 6469 Mop(FPEq 64, 6470 TP[Apply 6471 (Call 6472 ("FGR",ATy(qTy,F64), 6473 Var("fs",FTy 5)), 6474 qVar"state"), 6475 Apply 6476 (Call 6477 ("FGR",ATy(qTy,F64), 6478 Var("ft",FTy 5)), 6479 qVar"state")]), 6480 Call 6481 ("FP64_Unordered",bTy, 6482 TP[Apply 6483 (Call 6484 ("FGR",ATy(qTy,F64), 6485 Var("fs",FTy 5)), 6486 qVar"state"), 6487 Apply 6488 (Call 6489 ("FGR",ATy(qTy,F64), 6490 Var("ft",FTy 5)), 6491 qVar"state")])),qVar"state"]), 6492 (LW(4,3), 6493 TP[Mop(FPLt 64, 6494 TP[Apply 6495 (Call 6496 ("FGR",ATy(qTy,F64), 6497 Var("fs",FTy 5)), 6498 qVar"state"), 6499 Apply 6500 (Call 6501 ("FGR",ATy(qTy,F64), 6502 Var("ft",FTy 5)), 6503 qVar"state")]),qVar"state"]), 6504 (LW(5,3), 6505 TP[Mop(Not, 6506 Mop(FPGe 64, 6507 TP[Apply 6508 (Call 6509 ("FGR",ATy(qTy,F64), 6510 Var("fs",FTy 5)), 6511 qVar"state"), 6512 Apply 6513 (Call 6514 ("FGR",ATy(qTy,F64), 6515 Var("ft",FTy 5)), 6516 qVar"state")])), 6517 qVar"state"]), 6518 (LW(6,3), 6519 TP[Mop(FPLe 64, 6520 TP[Apply 6521 (Call 6522 ("FGR",ATy(qTy,F64), 6523 Var("fs",FTy 5)), 6524 qVar"state"), 6525 Apply 6526 (Call 6527 ("FGR",ATy(qTy,F64), 6528 Var("ft",FTy 5)), 6529 qVar"state")]),qVar"state"]), 6530 (LW(7,3), 6531 TP[Mop(Not, 6532 Mop(FPGt 64, 6533 TP[Apply 6534 (Call 6535 ("FGR",ATy(qTy,F64), 6536 Var("fs",FTy 5)), 6537 qVar"state"), 6538 Apply 6539 (Call 6540 ("FGR",ATy(qTy,F64), 6541 Var("ft",FTy 5)), 6542 qVar"state")])), 6543 qVar"state"])]), 6544 TP[TP[Dest("fcsr",CTy"FCSR",qVar"state"), 6545 BFI(nVar"i",nVar"i",Mop(Cast F1,bVar"v0"), 6546 Dest 6547 ("FCC",F8, 6548 Dest("fcsr",CTy"FCSR",qVar"state")))], 6549 qVar"s0"]), 6550 TP[Rupd("FCC",Var("v",PTy(CTy"FCSR",F8))),qVar"s"]), 6551 Rupd("fcsr",TP[qVar"s",Var("v",CTy"FCSR")])))))) 6552; 6553val dfn'C_cond_S_def = Def 6554 ("dfn'C_cond_S", 6555 TP[Var("fs",FTy 5),Var("ft",FTy 5),Var("cnd",FTy 3),Var("cc",FTy 3)], 6556 Close 6557 (qVar"state", 6558 ITE(Mop(Not, 6559 Dest 6560 ("CU1",bTy, 6561 Dest 6562 ("Status",CTy"StatusRegister", 6563 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6564 Apply 6565 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6566 Let(nVar"i",Mop(Cast nTy,Var("cc",FTy 3)), 6567 Let(TP[Var("v",CTy"FCSR"),qVar"s"], 6568 Let(TP[Var("v",PTy(CTy"FCSR",F8)),qVar"s"], 6569 Let(TP[bVar"v0",qVar"s0"], 6570 CS(Var("cnd",FTy 3), 6571 [(LW(0,3),TP[LF,qVar"state"]), 6572 (LW(1,3), 6573 TP[Call 6574 ("FP32_Unordered",bTy, 6575 TP[EX(Apply 6576 (Call 6577 ("FGR",ATy(qTy,F64), 6578 Var("fs",FTy 5)), 6579 qVar"state"),LN 31,LN 0,F32), 6580 EX(Apply 6581 (Call 6582 ("FGR",ATy(qTy,F64), 6583 Var("ft",FTy 5)), 6584 qVar"state"),LN 31,LN 0,F32)]), 6585 qVar"state"]), 6586 (LW(2,3), 6587 TP[Mop(FPEq 32, 6588 TP[EX(Apply 6589 (Call 6590 ("FGR",ATy(qTy,F64), 6591 Var("fs",FTy 5)), 6592 qVar"state"),LN 31,LN 0,F32), 6593 EX(Apply 6594 (Call 6595 ("FGR",ATy(qTy,F64), 6596 Var("ft",FTy 5)), 6597 qVar"state"),LN 31,LN 0,F32)]), 6598 qVar"state"]), 6599 (LW(3,3), 6600 TP[Bop(Or, 6601 Mop(FPEq 32, 6602 TP[EX(Apply 6603 (Call 6604 ("FGR",ATy(qTy,F64), 6605 Var("fs",FTy 5)), 6606 qVar"state"),LN 31, 6607 LN 0,F32), 6608 EX(Apply 6609 (Call 6610 ("FGR",ATy(qTy,F64), 6611 Var("ft",FTy 5)), 6612 qVar"state"),LN 31, 6613 LN 0,F32)]), 6614 Call 6615 ("FP32_Unordered",bTy, 6616 TP[EX(Apply 6617 (Call 6618 ("FGR",ATy(qTy,F64), 6619 Var("fs",FTy 5)), 6620 qVar"state"),LN 31,LN 0, 6621 F32), 6622 EX(Apply 6623 (Call 6624 ("FGR",ATy(qTy,F64), 6625 Var("ft",FTy 5)), 6626 qVar"state"),LN 31,LN 0, 6627 F32)])),qVar"state"]), 6628 (LW(4,3), 6629 TP[Mop(FPLt 32, 6630 TP[EX(Apply 6631 (Call 6632 ("FGR",ATy(qTy,F64), 6633 Var("fs",FTy 5)), 6634 qVar"state"),LN 31,LN 0,F32), 6635 EX(Apply 6636 (Call 6637 ("FGR",ATy(qTy,F64), 6638 Var("ft",FTy 5)), 6639 qVar"state"),LN 31,LN 0,F32)]), 6640 qVar"state"]), 6641 (LW(5,3), 6642 TP[Mop(Not, 6643 Mop(FPGe 32, 6644 TP[EX(Apply 6645 (Call 6646 ("FGR",ATy(qTy,F64), 6647 Var("fs",FTy 5)), 6648 qVar"state"),LN 31, 6649 LN 0,F32), 6650 EX(Apply 6651 (Call 6652 ("FGR",ATy(qTy,F64), 6653 Var("ft",FTy 5)), 6654 qVar"state"),LN 31, 6655 LN 0,F32)])),qVar"state"]), 6656 (LW(6,3), 6657 TP[Mop(FPLe 32, 6658 TP[EX(Apply 6659 (Call 6660 ("FGR",ATy(qTy,F64), 6661 Var("fs",FTy 5)), 6662 qVar"state"),LN 31,LN 0,F32), 6663 EX(Apply 6664 (Call 6665 ("FGR",ATy(qTy,F64), 6666 Var("ft",FTy 5)), 6667 qVar"state"),LN 31,LN 0,F32)]), 6668 qVar"state"]), 6669 (LW(7,3), 6670 TP[Mop(Not, 6671 Mop(FPGt 32, 6672 TP[EX(Apply 6673 (Call 6674 ("FGR",ATy(qTy,F64), 6675 Var("fs",FTy 5)), 6676 qVar"state"),LN 31, 6677 LN 0,F32), 6678 EX(Apply 6679 (Call 6680 ("FGR",ATy(qTy,F64), 6681 Var("ft",FTy 5)), 6682 qVar"state"),LN 31, 6683 LN 0,F32)])),qVar"state"])]), 6684 TP[TP[Dest("fcsr",CTy"FCSR",qVar"state"), 6685 BFI(nVar"i",nVar"i",Mop(Cast F1,bVar"v0"), 6686 Dest 6687 ("FCC",F8, 6688 Dest("fcsr",CTy"FCSR",qVar"state")))], 6689 qVar"s0"]), 6690 TP[Rupd("FCC",Var("v",PTy(CTy"FCSR",F8))),qVar"s"]), 6691 Rupd("fcsr",TP[qVar"s",Var("v",CTy"FCSR")])))))) 6692; 6693val dfn'CEIL_L_D_def = Def 6694 ("dfn'CEIL_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6695 Close 6696 (qVar"state", 6697 ITE(Mop(Not, 6698 Dest 6699 ("CU1",bTy, 6700 Dest 6701 ("Status",CTy"StatusRegister", 6702 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6703 Apply 6704 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6705 Apply 6706 (Call 6707 ("write'FGR",ATy(qTy,qTy), 6708 TP[CS(Mop(FPToInt 64, 6709 TP[binary_ieeeSyntax.roundTowardPositive_tm, 6710 Apply 6711 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6712 qVar"state")]), 6713 [(Mop(Some,iVar"x"), 6714 Call("IntToDWordMIPS",F64,iVar"x")), 6715 (LO iTy,LW(9223372036854775807,64))]), 6716 Var("fd",FTy 5)]),qVar"state")))) 6717; 6718val dfn'CEIL_L_S_def = Def 6719 ("dfn'CEIL_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6720 Close 6721 (qVar"state", 6722 ITE(Mop(Not, 6723 Dest 6724 ("CU1",bTy, 6725 Dest 6726 ("Status",CTy"StatusRegister", 6727 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6728 Apply 6729 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6730 Apply 6731 (Call 6732 ("write'FGR",ATy(qTy,qTy), 6733 TP[CS(Mop(FPToInt 32, 6734 TP[binary_ieeeSyntax.roundTowardPositive_tm, 6735 EX(Apply 6736 (Call 6737 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6738 qVar"state"),LN 31,LN 0,F32)]), 6739 [(Mop(Some,iVar"x"), 6740 Call("IntToDWordMIPS",F64,iVar"x")), 6741 (LO iTy,LW(9223372036854775807,64))]), 6742 Var("fd",FTy 5)]),qVar"state")))) 6743; 6744val dfn'CEIL_W_D_def = Def 6745 ("dfn'CEIL_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6746 Close 6747 (qVar"state", 6748 ITE(Mop(Not, 6749 Dest 6750 ("CU1",bTy, 6751 Dest 6752 ("Status",CTy"StatusRegister", 6753 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6754 Apply 6755 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6756 Apply 6757 (Call 6758 ("write'FGR",ATy(qTy,qTy), 6759 TP[CS(Mop(FPToInt 64, 6760 TP[binary_ieeeSyntax.roundTowardPositive_tm, 6761 Apply 6762 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6763 qVar"state")]), 6764 [(Mop(Some,iVar"x"), 6765 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 6766 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 6767 qVar"state")))) 6768; 6769val dfn'CEIL_W_S_def = Def 6770 ("dfn'CEIL_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6771 Close 6772 (qVar"state", 6773 ITE(Mop(Not, 6774 Dest 6775 ("CU1",bTy, 6776 Dest 6777 ("Status",CTy"StatusRegister", 6778 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6779 Apply 6780 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6781 Apply 6782 (Call 6783 ("write'FGR",ATy(qTy,qTy), 6784 TP[CS(Mop(FPToInt 32, 6785 TP[binary_ieeeSyntax.roundTowardPositive_tm, 6786 EX(Apply 6787 (Call 6788 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6789 qVar"state"),LN 31,LN 0,F32)]), 6790 [(Mop(Some,iVar"x"), 6791 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 6792 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 6793 qVar"state")))) 6794; 6795val dfn'CVT_D_L_def = Def 6796 ("dfn'CVT_D_L",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6797 Close 6798 (qVar"state", 6799 ITE(Mop(Not, 6800 Dest 6801 ("CU1",bTy, 6802 Dest 6803 ("Status",CTy"StatusRegister", 6804 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6805 Apply 6806 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6807 Apply 6808 (Call 6809 ("write'FGR",ATy(qTy,qTy), 6810 TP[Mop(FPFromInt 64, 6811 TP[Apply 6812 (Const("Rounding_Mode",ATy(qTy,rTy)), 6813 qVar"state"), 6814 Mop(Cast iTy, 6815 Apply 6816 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6817 qVar"state"))]),Var("fd",FTy 5)]), 6818 qVar"state")))) 6819; 6820val dfn'CVT_D_S_def = Def 6821 ("dfn'CVT_D_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6822 Close 6823 (qVar"state", 6824 ITE(Mop(Not, 6825 Dest 6826 ("CU1",bTy, 6827 Dest 6828 ("Status",CTy"StatusRegister", 6829 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6830 Apply 6831 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6832 Apply 6833 (Call 6834 ("write'FGR",ATy(qTy,qTy), 6835 TP[Mop(FP32To64, 6836 EX(Apply 6837 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6838 qVar"state"),LN 31,LN 0,F32)),Var("fd",FTy 5)]), 6839 qVar"state")))) 6840; 6841val dfn'CVT_D_W_def = Def 6842 ("dfn'CVT_D_W",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6843 Close 6844 (qVar"state", 6845 ITE(Mop(Not, 6846 Dest 6847 ("CU1",bTy, 6848 Dest 6849 ("Status",CTy"StatusRegister", 6850 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6851 Apply 6852 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6853 Let(TP[Var("v",rTy),qVar"s"], 6854 Let(qVar"s0", 6855 ITE(Call 6856 ("NotWordValue",bTy, 6857 Apply 6858 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6859 qVar"state")), 6860 Mop(Snd, 6861 Apply 6862 (Call 6863 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 6864 Call 6865 ("UNPREDICTABLE",CTy"exception", 6866 LS"CVT.D.W: NotWordValue")),qVar"state")), 6867 qVar"state"), 6868 TP[Apply(Const("Rounding_Mode",ATy(qTy,rTy)),qVar"s0"), 6869 qVar"s0"]), 6870 Apply 6871 (Call 6872 ("write'FGR",ATy(qTy,qTy), 6873 TP[Mop(FPFromInt 64, 6874 TP[Var("v",rTy), 6875 Mop(Cast iTy, 6876 EX(Apply 6877 (Call 6878 ("FGR",ATy(qTy,F64), 6879 Var("fs",FTy 5)),qVar"s"), 6880 LN 31,LN 0,F32))]),Var("fd",FTy 5)]), 6881 qVar"s"))))) 6882; 6883val dfn'CVT_L_D_def = Def 6884 ("dfn'CVT_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6885 Close 6886 (qVar"state", 6887 ITE(Mop(Not, 6888 Dest 6889 ("CU1",bTy, 6890 Dest 6891 ("Status",CTy"StatusRegister", 6892 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6893 Apply 6894 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6895 Apply 6896 (Call 6897 ("write'FGR",ATy(qTy,qTy), 6898 TP[CS(Mop(FPToInt 64, 6899 TP[Apply 6900 (Const("Rounding_Mode",ATy(qTy,rTy)), 6901 qVar"state"), 6902 Apply 6903 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6904 qVar"state")]), 6905 [(Mop(Some,iVar"x"), 6906 Call("IntToDWordMIPS",F64,iVar"x")), 6907 (LO iTy,LW(9223372036854775807,64))]), 6908 Var("fd",FTy 5)]),qVar"state")))) 6909; 6910val dfn'CVT_L_S_def = Def 6911 ("dfn'CVT_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6912 Close 6913 (qVar"state", 6914 ITE(Mop(Not, 6915 Dest 6916 ("CU1",bTy, 6917 Dest 6918 ("Status",CTy"StatusRegister", 6919 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6920 Apply 6921 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6922 Apply 6923 (Call 6924 ("write'FGR",ATy(qTy,qTy), 6925 TP[CS(Mop(FPToInt 32, 6926 TP[Apply 6927 (Const("Rounding_Mode",ATy(qTy,rTy)), 6928 qVar"state"), 6929 EX(Apply 6930 (Call 6931 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6932 qVar"state"),LN 31,LN 0,F32)]), 6933 [(Mop(Some,iVar"x"), 6934 Call("IntToDWordMIPS",F64,iVar"x")), 6935 (LO iTy,LW(9223372036854775807,64))]), 6936 Var("fd",FTy 5)]),qVar"state")))) 6937; 6938val dfn'CVT_S_D_def = Def 6939 ("dfn'CVT_S_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6940 Close 6941 (qVar"state", 6942 ITE(Mop(Not, 6943 Dest 6944 ("CU1",bTy, 6945 Dest 6946 ("Status",CTy"StatusRegister", 6947 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6948 Apply 6949 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6950 Apply 6951 (Call 6952 ("write'FGR",ATy(qTy,qTy), 6953 TP[Mop(SE F64, 6954 Mop(FP64To32, 6955 TP[Apply 6956 (Const("Rounding_Mode",ATy(qTy,rTy)), 6957 qVar"state"), 6958 Apply 6959 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6960 qVar"state")])),Var("fd",FTy 5)]), 6961 qVar"state")))) 6962; 6963val dfn'CVT_S_L_def = Def 6964 ("dfn'CVT_S_L",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6965 Close 6966 (qVar"state", 6967 ITE(Mop(Not, 6968 Dest 6969 ("CU1",bTy, 6970 Dest 6971 ("Status",CTy"StatusRegister", 6972 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 6973 Apply 6974 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 6975 Apply 6976 (Call 6977 ("write'FGR",ATy(qTy,qTy), 6978 TP[Mop(SE F64, 6979 Mop(FPFromInt 32, 6980 TP[Apply 6981 (Const("Rounding_Mode",ATy(qTy,rTy)), 6982 qVar"state"), 6983 Mop(Cast iTy, 6984 Apply 6985 (Call 6986 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 6987 qVar"state"))])),Var("fd",FTy 5)]), 6988 qVar"state")))) 6989; 6990val dfn'CVT_S_W_def = Def 6991 ("dfn'CVT_S_W",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 6992 Close 6993 (qVar"state", 6994 ITE(Mop(Not, 6995 Dest 6996 ("CU1",bTy, 6997 Dest 6998 ("Status",CTy"StatusRegister", 6999 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7000 Apply 7001 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7002 Let(TP[Var("v",rTy),qVar"s"], 7003 Let(qVar"s0", 7004 ITE(Call 7005 ("NotWordValue",bTy, 7006 Apply 7007 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7008 qVar"state")), 7009 Mop(Snd, 7010 Apply 7011 (Call 7012 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 7013 Call 7014 ("UNPREDICTABLE",CTy"exception", 7015 LS"CVT.S.W: NotWordValue")),qVar"state")), 7016 qVar"state"), 7017 TP[Apply(Const("Rounding_Mode",ATy(qTy,rTy)),qVar"s0"), 7018 qVar"s0"]), 7019 Apply 7020 (Call 7021 ("write'FGR",ATy(qTy,qTy), 7022 TP[Mop(SE F64, 7023 Mop(FPFromInt 32, 7024 TP[Var("v",rTy), 7025 Mop(Cast iTy, 7026 EX(Apply 7027 (Call 7028 ("FGR",ATy(qTy,F64), 7029 Var("fs",FTy 5)),qVar"s"), 7030 LN 31,LN 0,F32))])), 7031 Var("fd",FTy 5)]),qVar"s"))))) 7032; 7033val dfn'CVT_W_D_def = Def 7034 ("dfn'CVT_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7035 Close 7036 (qVar"state", 7037 ITE(Mop(Not, 7038 Dest 7039 ("CU1",bTy, 7040 Dest 7041 ("Status",CTy"StatusRegister", 7042 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7043 Apply 7044 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7045 Apply 7046 (Call 7047 ("write'FGR",ATy(qTy,qTy), 7048 TP[CS(Mop(FPToInt 64, 7049 TP[Apply 7050 (Const("Rounding_Mode",ATy(qTy,rTy)), 7051 qVar"state"), 7052 Apply 7053 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7054 qVar"state")]), 7055 [(Mop(Some,iVar"x"), 7056 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 7057 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 7058 qVar"state")))) 7059; 7060val dfn'CVT_W_S_def = Def 7061 ("dfn'CVT_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7062 Close 7063 (qVar"state", 7064 ITE(Mop(Not, 7065 Dest 7066 ("CU1",bTy, 7067 Dest 7068 ("Status",CTy"StatusRegister", 7069 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7070 Apply 7071 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7072 Apply 7073 (Call 7074 ("write'FGR",ATy(qTy,qTy), 7075 TP[CS(Mop(FPToInt 32, 7076 TP[Apply 7077 (Const("Rounding_Mode",ATy(qTy,rTy)), 7078 qVar"state"), 7079 EX(Apply 7080 (Call 7081 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7082 qVar"state"),LN 31,LN 0,F32)]), 7083 [(Mop(Some,iVar"x"), 7084 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 7085 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 7086 qVar"state")))) 7087; 7088val dfn'DIV_D_def = Def 7089 ("dfn'DIV_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 7090 Close 7091 (qVar"state", 7092 ITE(Mop(Not, 7093 Dest 7094 ("CU1",bTy, 7095 Dest 7096 ("Status",CTy"StatusRegister", 7097 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7098 Apply 7099 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7100 Apply 7101 (Call 7102 ("write'FGR",ATy(qTy,qTy), 7103 TP[Apply 7104 (Call 7105 ("PostOpF64",ATy(qTy,F64), 7106 Mop(FPDiv 64, 7107 TP[Apply 7108 (Const("Rounding_Mode",ATy(qTy,rTy)), 7109 qVar"state"), 7110 Apply 7111 (Call 7112 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7113 qVar"state"), 7114 Apply 7115 (Call 7116 ("FGR",ATy(qTy,F64),Var("ft",FTy 5)), 7117 qVar"state")])),qVar"state"), 7118 Var("fd",FTy 5)]),qVar"state")))) 7119; 7120val dfn'DIV_S_def = Def 7121 ("dfn'DIV_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 7122 Close 7123 (qVar"state", 7124 ITE(Mop(Not, 7125 Dest 7126 ("CU1",bTy, 7127 Dest 7128 ("Status",CTy"StatusRegister", 7129 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7130 Apply 7131 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7132 Apply 7133 (Call 7134 ("write'FGR",ATy(qTy,qTy), 7135 TP[Mop(SE F64, 7136 Apply 7137 (Call 7138 ("PostOpF32",ATy(qTy,F32), 7139 Mop(FPDiv 32, 7140 TP[Apply 7141 (Const("Rounding_Mode",ATy(qTy,rTy)), 7142 qVar"state"), 7143 EX(Apply 7144 (Call 7145 ("FGR",ATy(qTy,F64), 7146 Var("fs",FTy 5)),qVar"state"), 7147 LN 31,LN 0,F32), 7148 EX(Apply 7149 (Call 7150 ("FGR",ATy(qTy,F64), 7151 Var("ft",FTy 5)),qVar"state"), 7152 LN 31,LN 0,F32)])),qVar"state")), 7153 Var("fd",FTy 5)]),qVar"state")))) 7154; 7155val dfn'FLOOR_L_D_def = Def 7156 ("dfn'FLOOR_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7157 Close 7158 (qVar"state", 7159 ITE(Mop(Not, 7160 Dest 7161 ("CU1",bTy, 7162 Dest 7163 ("Status",CTy"StatusRegister", 7164 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7165 Apply 7166 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7167 Apply 7168 (Call 7169 ("write'FGR",ATy(qTy,qTy), 7170 TP[CS(Mop(FPToInt 64, 7171 TP[binary_ieeeSyntax.roundTowardNegative_tm, 7172 Apply 7173 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7174 qVar"state")]), 7175 [(Mop(Some,iVar"x"), 7176 Call("IntToDWordMIPS",F64,iVar"x")), 7177 (LO iTy,LW(9223372036854775807,64))]), 7178 Var("fd",FTy 5)]),qVar"state")))) 7179; 7180val dfn'FLOOR_L_S_def = Def 7181 ("dfn'FLOOR_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7182 Close 7183 (qVar"state", 7184 ITE(Mop(Not, 7185 Dest 7186 ("CU1",bTy, 7187 Dest 7188 ("Status",CTy"StatusRegister", 7189 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7190 Apply 7191 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7192 Apply 7193 (Call 7194 ("write'FGR",ATy(qTy,qTy), 7195 TP[CS(Mop(FPToInt 32, 7196 TP[binary_ieeeSyntax.roundTowardNegative_tm, 7197 EX(Apply 7198 (Call 7199 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7200 qVar"state"),LN 31,LN 0,F32)]), 7201 [(Mop(Some,iVar"x"), 7202 Call("IntToDWordMIPS",F64,iVar"x")), 7203 (LO iTy,LW(9223372036854775807,64))]), 7204 Var("fd",FTy 5)]),qVar"state")))) 7205; 7206val dfn'FLOOR_W_D_def = Def 7207 ("dfn'FLOOR_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7208 Close 7209 (qVar"state", 7210 ITE(Mop(Not, 7211 Dest 7212 ("CU1",bTy, 7213 Dest 7214 ("Status",CTy"StatusRegister", 7215 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7216 Apply 7217 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7218 Apply 7219 (Call 7220 ("write'FGR",ATy(qTy,qTy), 7221 TP[CS(Mop(FPToInt 64, 7222 TP[binary_ieeeSyntax.roundTowardNegative_tm, 7223 Apply 7224 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7225 qVar"state")]), 7226 [(Mop(Some,iVar"x"), 7227 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 7228 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 7229 qVar"state")))) 7230; 7231val dfn'FLOOR_W_S_def = Def 7232 ("dfn'FLOOR_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7233 Close 7234 (qVar"state", 7235 ITE(Mop(Not, 7236 Dest 7237 ("CU1",bTy, 7238 Dest 7239 ("Status",CTy"StatusRegister", 7240 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7241 Apply 7242 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7243 Apply 7244 (Call 7245 ("write'FGR",ATy(qTy,qTy), 7246 TP[CS(Mop(FPToInt 32, 7247 TP[binary_ieeeSyntax.roundTowardNegative_tm, 7248 EX(Apply 7249 (Call 7250 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7251 qVar"state"),LN 31,LN 0,F32)]), 7252 [(Mop(Some,iVar"x"), 7253 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 7254 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 7255 qVar"state")))) 7256; 7257val dfn'LDC1_def = Def 7258 ("dfn'LDC1",TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)], 7259 Close 7260 (qVar"state", 7261 ITE(Mop(Not, 7262 Dest 7263 ("CU1",bTy, 7264 Dest 7265 ("Status",CTy"StatusRegister", 7266 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7267 Apply 7268 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7269 Let(TP[Var("v",F64),qVar"s"], 7270 Apply 7271 (Call 7272 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 7273 TP[Const("DOUBLEWORD",FTy 3), 7274 Const("DOUBLEWORD",FTy 3),LT, 7275 Apply 7276 (Call 7277 ("getVirtualAddress",ATy(qTy,F64), 7278 Bop(Add,Mop(SE F64,Var("offset",F16)), 7279 Apply 7280 (Call 7281 ("GPR",ATy(qTy,F64), 7282 Var("base",FTy 5)),qVar"state"))), 7283 qVar"state"),LF]),qVar"state"), 7284 ITE(Mop(Not, 7285 Apply 7286 (Const("exceptionSignalled",ATy(qTy,bTy)),qVar"s")), 7287 Apply 7288 (Call 7289 ("write'FGR",ATy(qTy,qTy), 7290 TP[Var("v",F64),Var("ft",FTy 5)]),qVar"s"),qVar"s"))))) 7291; 7292val dfn'LDXC1_def = Def 7293 ("dfn'LDXC1",TP[Var("fd",FTy 5),Var("index",FTy 5),Var("base",FTy 5)], 7294 Close 7295 (qVar"state", 7296 ITE(Mop(Not, 7297 Dest 7298 ("CU1",bTy, 7299 Dest 7300 ("Status",CTy"StatusRegister", 7301 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7302 Apply 7303 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7304 Let(TP[Var("v",F64),qVar"s"], 7305 Apply 7306 (Call 7307 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 7308 TP[Const("DOUBLEWORD",FTy 3), 7309 Const("DOUBLEWORD",FTy 3),LT, 7310 Apply 7311 (Call 7312 ("getVirtualAddress",ATy(qTy,F64), 7313 Bop(Add, 7314 Apply 7315 (Call 7316 ("GPR",ATy(qTy,F64), 7317 Var("index",FTy 5)),qVar"state"), 7318 Apply 7319 (Call 7320 ("GPR",ATy(qTy,F64), 7321 Var("base",FTy 5)),qVar"state"))), 7322 qVar"state"),LF]),qVar"state"), 7323 ITE(Mop(Not, 7324 Apply 7325 (Const("exceptionSignalled",ATy(qTy,bTy)),qVar"s")), 7326 Apply 7327 (Call 7328 ("write'FGR",ATy(qTy,qTy), 7329 TP[Var("v",F64),Var("fd",FTy 5)]),qVar"s"),qVar"s"))))) 7330; 7331val dfn'LWC1_def = Def 7332 ("dfn'LWC1",TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)], 7333 Close 7334 (qVar"state", 7335 ITE(Mop(Not, 7336 Dest 7337 ("CU1",bTy, 7338 Dest 7339 ("Status",CTy"StatusRegister", 7340 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7341 Apply 7342 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7343 Let(Var("v",F64), 7344 Apply 7345 (Call 7346 ("getVirtualAddress",ATy(qTy,F64), 7347 Bop(Add,Mop(SE F64,Var("offset",F16)), 7348 Apply 7349 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 7350 qVar"state"))),qVar"state"), 7351 Let(TP[Var("v0",F64),qVar"s"], 7352 Apply 7353 (Call 7354 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 7355 TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, 7356 Var("v",F64),LF]),qVar"state"), 7357 ITE(Mop(Not, 7358 Apply 7359 (Const("exceptionSignalled",ATy(qTy,bTy)), 7360 qVar"s")), 7361 Let(Var("v1",FTy 3), 7362 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 7363 CC[Apply 7364 (Const("BigEndianCPU",ATy(qTy,F1)), 7365 qVar"s"),LW(0,2)]), 7366 Apply 7367 (Call 7368 ("write'FGR",ATy(qTy,qTy), 7369 TP[Mop(SE F64, 7370 EX(Var("v0",F64), 7371 Bop(Add,LN 31, 7372 Bop(Mul,LN 8, 7373 Mop(Cast nTy, 7374 Var("v1",FTy 3)))), 7375 Bop(Mul,LN 8, 7376 Mop(Cast nTy,Var("v1",FTy 3))), 7377 F32)),Var("ft",FTy 5)]),qVar"s")), 7378 qVar"s")))))) 7379; 7380val dfn'LWXC1_def = Def 7381 ("dfn'LWXC1",TP[Var("ft",FTy 5),Var("index",FTy 5),Var("base",FTy 5)], 7382 Close 7383 (qVar"state", 7384 ITE(Mop(Not, 7385 Dest 7386 ("CU1",bTy, 7387 Dest 7388 ("Status",CTy"StatusRegister", 7389 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7390 Apply 7391 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7392 Let(Var("v",F64), 7393 Apply 7394 (Call 7395 ("getVirtualAddress",ATy(qTy,F64), 7396 Bop(Add, 7397 Apply 7398 (Call("GPR",ATy(qTy,F64),Var("index",FTy 5)), 7399 qVar"state"), 7400 Apply 7401 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 7402 qVar"state"))),qVar"state"), 7403 Let(TP[Var("v0",F64),qVar"s"], 7404 Apply 7405 (Call 7406 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 7407 TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, 7408 Var("v",F64),LF]),qVar"state"), 7409 ITE(Mop(Not, 7410 Apply 7411 (Const("exceptionSignalled",ATy(qTy,bTy)), 7412 qVar"s")), 7413 Let(Var("v1",FTy 3), 7414 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 7415 CC[Apply 7416 (Const("BigEndianCPU",ATy(qTy,F1)), 7417 qVar"s"),LW(0,2)]), 7418 Apply 7419 (Call 7420 ("write'FGR",ATy(qTy,qTy), 7421 TP[Mop(SE F64, 7422 EX(Var("v0",F64), 7423 Bop(Add,LN 31, 7424 Bop(Mul,LN 8, 7425 Mop(Cast nTy, 7426 Var("v1",FTy 3)))), 7427 Bop(Mul,LN 8, 7428 Mop(Cast nTy,Var("v1",FTy 3))), 7429 F32)),Var("ft",FTy 5)]),qVar"s")), 7430 qVar"s")))))) 7431; 7432val dfn'MADD_D_def = Def 7433 ("dfn'MADD_D", 7434 TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 7435 Close 7436 (qVar"state", 7437 ITE(Mop(Not, 7438 Dest 7439 ("CU1",bTy, 7440 Dest 7441 ("Status",CTy"StatusRegister", 7442 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7443 Apply 7444 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7445 Apply 7446 (Call 7447 ("write'FGR",ATy(qTy,qTy), 7448 TP[Apply 7449 (Call 7450 ("PostOpF64",ATy(qTy,F64), 7451 Mop(FPAdd 64, 7452 TP[Apply 7453 (Const("Rounding_Mode",ATy(qTy,rTy)), 7454 qVar"state"), 7455 Apply 7456 (Call 7457 ("PostOpF64",ATy(qTy,F64), 7458 Mop(FPMul 64, 7459 TP[Apply 7460 (Const 7461 ("Rounding_Mode", 7462 ATy(qTy,rTy)), 7463 qVar"state"), 7464 Apply 7465 (Call 7466 ("FGR",ATy(qTy,F64), 7467 Var("fs",FTy 5)), 7468 qVar"state"), 7469 Apply 7470 (Call 7471 ("FGR",ATy(qTy,F64), 7472 Var("ft",FTy 5)), 7473 qVar"state")])), 7474 qVar"state"), 7475 Apply 7476 (Call 7477 ("FGR",ATy(qTy,F64),Var("fr",FTy 5)), 7478 qVar"state")])),qVar"state"), 7479 Var("fd",FTy 5)]),qVar"state")))) 7480; 7481val dfn'MADD_S_def = Def 7482 ("dfn'MADD_S", 7483 TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 7484 Close 7485 (qVar"state", 7486 ITE(Mop(Not, 7487 Dest 7488 ("CU1",bTy, 7489 Dest 7490 ("Status",CTy"StatusRegister", 7491 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7492 Apply 7493 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7494 Apply 7495 (Call 7496 ("write'FGR",ATy(qTy,qTy), 7497 TP[Mop(SE F64, 7498 Apply 7499 (Call 7500 ("PostOpF32",ATy(qTy,F32), 7501 Mop(FPAdd 32, 7502 TP[Apply 7503 (Const("Rounding_Mode",ATy(qTy,rTy)), 7504 qVar"state"), 7505 Apply 7506 (Call 7507 ("PostOpF32",ATy(qTy,F32), 7508 Mop(FPMul 32, 7509 TP[Apply 7510 (Const 7511 ("Rounding_Mode", 7512 ATy(qTy,rTy)), 7513 qVar"state"), 7514 EX(Apply 7515 (Call 7516 ("FGR", 7517 ATy(qTy,F64), 7518 Var("fs",FTy 5)), 7519 qVar"state"),LN 31, 7520 LN 0,F32), 7521 EX(Apply 7522 (Call 7523 ("FGR", 7524 ATy(qTy,F64), 7525 Var("ft",FTy 5)), 7526 qVar"state"),LN 31, 7527 LN 0,F32)])), 7528 qVar"state"), 7529 EX(Apply 7530 (Call 7531 ("FGR",ATy(qTy,F64), 7532 Var("fr",FTy 5)),qVar"state"), 7533 LN 31,LN 0,F32)])),qVar"state")), 7534 Var("fd",FTy 5)]),qVar"state")))) 7535; 7536val dfn'MOV_D_def = Def 7537 ("dfn'MOV_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7538 Close 7539 (qVar"state", 7540 ITE(Mop(Not, 7541 Dest 7542 ("CU1",bTy, 7543 Dest 7544 ("Status",CTy"StatusRegister", 7545 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7546 Apply 7547 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7548 Apply 7549 (Call 7550 ("write'FGR",ATy(qTy,qTy), 7551 TP[Apply 7552 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)),qVar"state"), 7553 Var("fd",FTy 5)]),qVar"state")))) 7554; 7555val dfn'MOV_S_def = Def 7556 ("dfn'MOV_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7557 Close 7558 (qVar"state", 7559 ITE(Mop(Not, 7560 Dest 7561 ("CU1",bTy, 7562 Dest 7563 ("Status",CTy"StatusRegister", 7564 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7565 Apply 7566 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7567 Apply 7568 (Call 7569 ("write'FGR",ATy(qTy,qTy), 7570 TP[Mop(SE F64, 7571 EX(Apply 7572 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7573 qVar"state"),LN 31,LN 0,F32)),Var("fd",FTy 5)]), 7574 qVar"state")))) 7575; 7576val dfn'MOVF_def = Def 7577 ("dfn'MOVF",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("cc",FTy 3)], 7578 Close 7579 (qVar"state", 7580 ITB([(Mop(Not, 7581 Dest 7582 ("CU1",bTy, 7583 Dest 7584 ("Status",CTy"StatusRegister", 7585 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7586 Apply 7587 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7588 qVar"state")), 7589 (Mop(Not, 7590 Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 7591 Mop(Cast nTy,Var("cc",FTy 3)))), 7592 Apply 7593 (Call 7594 ("write'GPR",ATy(qTy,qTy), 7595 TP[Apply 7596 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 7597 qVar"state"),Var("rd",FTy 5)]),qVar"state"))], 7598 qVar"state"))) 7599; 7600val dfn'MOVF_D_def = Def 7601 ("dfn'MOVF_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)], 7602 Close 7603 (qVar"state", 7604 ITB([(Mop(Not, 7605 Dest 7606 ("CU1",bTy, 7607 Dest 7608 ("Status",CTy"StatusRegister", 7609 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7610 Apply 7611 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7612 qVar"state")), 7613 (Mop(Not, 7614 Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 7615 Mop(Cast nTy,Var("cc",FTy 3)))), 7616 Apply 7617 (Call 7618 ("write'FGR",ATy(qTy,qTy), 7619 TP[Apply 7620 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7621 qVar"state"),Var("fd",FTy 5)]),qVar"state"))], 7622 qVar"state"))) 7623; 7624val dfn'MOVF_S_def = Def 7625 ("dfn'MOVF_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)], 7626 Close 7627 (qVar"state", 7628 ITB([(Mop(Not, 7629 Dest 7630 ("CU1",bTy, 7631 Dest 7632 ("Status",CTy"StatusRegister", 7633 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7634 Apply 7635 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7636 qVar"state")), 7637 (Mop(Not, 7638 Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 7639 Mop(Cast nTy,Var("cc",FTy 3)))), 7640 Apply 7641 (Call 7642 ("write'FGR",ATy(qTy,qTy), 7643 TP[Mop(SE F64, 7644 EX(Apply 7645 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7646 qVar"state"),LN 31,LN 0,F32)), 7647 Var("fd",FTy 5)]),qVar"state"))],qVar"state"))) 7648; 7649val dfn'MOVN_D_def = Def 7650 ("dfn'MOVN_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)], 7651 Close 7652 (qVar"state", 7653 ITB([(Mop(Not, 7654 Dest 7655 ("CU1",bTy, 7656 Dest 7657 ("Status",CTy"StatusRegister", 7658 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7659 Apply 7660 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7661 qVar"state")), 7662 (Mop(Not, 7663 EQ(Apply 7664 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 7665 LW(0,64))), 7666 Apply 7667 (Call 7668 ("write'FGR",ATy(qTy,qTy), 7669 TP[Apply 7670 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7671 qVar"state"),Var("fd",FTy 5)]),qVar"state"))], 7672 qVar"state"))) 7673; 7674val dfn'MOVN_S_def = Def 7675 ("dfn'MOVN_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)], 7676 Close 7677 (qVar"state", 7678 ITB([(Mop(Not, 7679 Dest 7680 ("CU1",bTy, 7681 Dest 7682 ("Status",CTy"StatusRegister", 7683 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7684 Apply 7685 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7686 qVar"state")), 7687 (Mop(Not, 7688 EQ(Apply 7689 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 7690 LW(0,64))), 7691 Apply 7692 (Call 7693 ("write'FGR",ATy(qTy,qTy), 7694 TP[Mop(SE F64, 7695 EX(Apply 7696 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7697 qVar"state"),LN 31,LN 0,F32)), 7698 Var("fd",FTy 5)]),qVar"state"))],qVar"state"))) 7699; 7700val dfn'MOVT_def = Def 7701 ("dfn'MOVT",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("cc",FTy 3)], 7702 Close 7703 (qVar"state", 7704 ITB([(Mop(Not, 7705 Dest 7706 ("CU1",bTy, 7707 Dest 7708 ("Status",CTy"StatusRegister", 7709 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7710 Apply 7711 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7712 qVar"state")), 7713 (Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 7714 Mop(Cast nTy,Var("cc",FTy 3))), 7715 Apply 7716 (Call 7717 ("write'GPR",ATy(qTy,qTy), 7718 TP[Apply 7719 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 7720 qVar"state"),Var("rd",FTy 5)]),qVar"state"))], 7721 qVar"state"))) 7722; 7723val dfn'MOVT_D_def = Def 7724 ("dfn'MOVT_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)], 7725 Close 7726 (qVar"state", 7727 ITB([(Mop(Not, 7728 Dest 7729 ("CU1",bTy, 7730 Dest 7731 ("Status",CTy"StatusRegister", 7732 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7733 Apply 7734 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7735 qVar"state")), 7736 (Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 7737 Mop(Cast nTy,Var("cc",FTy 3))), 7738 Apply 7739 (Call 7740 ("write'FGR",ATy(qTy,qTy), 7741 TP[Apply 7742 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7743 qVar"state"),Var("fd",FTy 5)]),qVar"state"))], 7744 qVar"state"))) 7745; 7746val dfn'MOVT_S_def = Def 7747 ("dfn'MOVT_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)], 7748 Close 7749 (qVar"state", 7750 ITB([(Mop(Not, 7751 Dest 7752 ("CU1",bTy, 7753 Dest 7754 ("Status",CTy"StatusRegister", 7755 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7756 Apply 7757 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7758 qVar"state")), 7759 (Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), 7760 Mop(Cast nTy,Var("cc",FTy 3))), 7761 Apply 7762 (Call 7763 ("write'FGR",ATy(qTy,qTy), 7764 TP[Mop(SE F64, 7765 EX(Apply 7766 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7767 qVar"state"),LN 31,LN 0,F32)), 7768 Var("fd",FTy 5)]),qVar"state"))],qVar"state"))) 7769; 7770val dfn'MOVZ_D_def = Def 7771 ("dfn'MOVZ_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)], 7772 Close 7773 (qVar"state", 7774 ITB([(Mop(Not, 7775 Dest 7776 ("CU1",bTy, 7777 Dest 7778 ("Status",CTy"StatusRegister", 7779 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7780 Apply 7781 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7782 qVar"state")), 7783 (EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 7784 LW(0,64)), 7785 Apply 7786 (Call 7787 ("write'FGR",ATy(qTy,qTy), 7788 TP[Apply 7789 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7790 qVar"state"),Var("fd",FTy 5)]),qVar"state"))], 7791 qVar"state"))) 7792; 7793val dfn'MOVZ_S_def = Def 7794 ("dfn'MOVZ_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)], 7795 Close 7796 (qVar"state", 7797 ITB([(Mop(Not, 7798 Dest 7799 ("CU1",bTy, 7800 Dest 7801 ("Status",CTy"StatusRegister", 7802 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7803 Apply 7804 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 7805 qVar"state")), 7806 (EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 7807 LW(0,64)), 7808 Apply 7809 (Call 7810 ("write'FGR",ATy(qTy,qTy), 7811 TP[Mop(SE F64, 7812 EX(Apply 7813 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7814 qVar"state"),LN 31,LN 0,F32)), 7815 Var("fd",FTy 5)]),qVar"state"))],qVar"state"))) 7816; 7817val dfn'MSUB_D_def = Def 7818 ("dfn'MSUB_D", 7819 TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 7820 Close 7821 (qVar"state", 7822 ITE(Mop(Not, 7823 Dest 7824 ("CU1",bTy, 7825 Dest 7826 ("Status",CTy"StatusRegister", 7827 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7828 Apply 7829 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7830 Apply 7831 (Call 7832 ("write'FGR",ATy(qTy,qTy), 7833 TP[Apply 7834 (Call 7835 ("PostOpF64",ATy(qTy,F64), 7836 Mop(FPSub 64, 7837 TP[Apply 7838 (Const("Rounding_Mode",ATy(qTy,rTy)), 7839 qVar"state"), 7840 Apply 7841 (Call 7842 ("PostOpF64",ATy(qTy,F64), 7843 Mop(FPMul 64, 7844 TP[Apply 7845 (Const 7846 ("Rounding_Mode", 7847 ATy(qTy,rTy)), 7848 qVar"state"), 7849 Apply 7850 (Call 7851 ("FGR",ATy(qTy,F64), 7852 Var("fs",FTy 5)), 7853 qVar"state"), 7854 Apply 7855 (Call 7856 ("FGR",ATy(qTy,F64), 7857 Var("ft",FTy 5)), 7858 qVar"state")])), 7859 qVar"state"), 7860 Apply 7861 (Call 7862 ("FGR",ATy(qTy,F64),Var("fr",FTy 5)), 7863 qVar"state")])),qVar"state"), 7864 Var("fd",FTy 5)]),qVar"state")))) 7865; 7866val dfn'MSUB_S_def = Def 7867 ("dfn'MSUB_S", 7868 TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 7869 Close 7870 (qVar"state", 7871 ITE(Mop(Not, 7872 Dest 7873 ("CU1",bTy, 7874 Dest 7875 ("Status",CTy"StatusRegister", 7876 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7877 Apply 7878 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7879 Apply 7880 (Call 7881 ("write'FGR",ATy(qTy,qTy), 7882 TP[Mop(SE F64, 7883 Apply 7884 (Call 7885 ("PostOpF32",ATy(qTy,F32), 7886 Mop(FPSub 32, 7887 TP[Apply 7888 (Const("Rounding_Mode",ATy(qTy,rTy)), 7889 qVar"state"), 7890 Apply 7891 (Call 7892 ("PostOpF32",ATy(qTy,F32), 7893 Mop(FPMul 32, 7894 TP[Apply 7895 (Const 7896 ("Rounding_Mode", 7897 ATy(qTy,rTy)), 7898 qVar"state"), 7899 EX(Apply 7900 (Call 7901 ("FGR", 7902 ATy(qTy,F64), 7903 Var("fs",FTy 5)), 7904 qVar"state"),LN 31, 7905 LN 0,F32), 7906 EX(Apply 7907 (Call 7908 ("FGR", 7909 ATy(qTy,F64), 7910 Var("ft",FTy 5)), 7911 qVar"state"),LN 31, 7912 LN 0,F32)])), 7913 qVar"state"), 7914 EX(Apply 7915 (Call 7916 ("FGR",ATy(qTy,F64), 7917 Var("fr",FTy 5)),qVar"state"), 7918 LN 31,LN 0,F32)])),qVar"state")), 7919 Var("fd",FTy 5)]),qVar"state")))) 7920; 7921val dfn'MUL_D_def = Def 7922 ("dfn'MUL_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 7923 Close 7924 (qVar"state", 7925 ITE(Mop(Not, 7926 Dest 7927 ("CU1",bTy, 7928 Dest 7929 ("Status",CTy"StatusRegister", 7930 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7931 Apply 7932 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7933 Apply 7934 (Call 7935 ("write'FGR",ATy(qTy,qTy), 7936 TP[Apply 7937 (Call 7938 ("PostOpF64",ATy(qTy,F64), 7939 Mop(FPMul 64, 7940 TP[Apply 7941 (Const("Rounding_Mode",ATy(qTy,rTy)), 7942 qVar"state"), 7943 Apply 7944 (Call 7945 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 7946 qVar"state"), 7947 Apply 7948 (Call 7949 ("FGR",ATy(qTy,F64),Var("ft",FTy 5)), 7950 qVar"state")])),qVar"state"), 7951 Var("fd",FTy 5)]),qVar"state")))) 7952; 7953val dfn'MUL_S_def = Def 7954 ("dfn'MUL_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 7955 Close 7956 (qVar"state", 7957 ITE(Mop(Not, 7958 Dest 7959 ("CU1",bTy, 7960 Dest 7961 ("Status",CTy"StatusRegister", 7962 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7963 Apply 7964 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 7965 Apply 7966 (Call 7967 ("write'FGR",ATy(qTy,qTy), 7968 TP[Mop(SE F64, 7969 Apply 7970 (Call 7971 ("PostOpF32",ATy(qTy,F32), 7972 Mop(FPMul 32, 7973 TP[Apply 7974 (Const("Rounding_Mode",ATy(qTy,rTy)), 7975 qVar"state"), 7976 EX(Apply 7977 (Call 7978 ("FGR",ATy(qTy,F64), 7979 Var("fs",FTy 5)),qVar"state"), 7980 LN 31,LN 0,F32), 7981 EX(Apply 7982 (Call 7983 ("FGR",ATy(qTy,F64), 7984 Var("ft",FTy 5)),qVar"state"), 7985 LN 31,LN 0,F32)])),qVar"state")), 7986 Var("fd",FTy 5)]),qVar"state")))) 7987; 7988val dfn'NEG_D_def = Def 7989 ("dfn'NEG_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 7990 Close 7991 (qVar"state", 7992 ITB([(Mop(Not, 7993 Dest 7994 ("CU1",bTy, 7995 Dest 7996 ("Status",CTy"StatusRegister", 7997 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 7998 Apply 7999 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 8000 qVar"state")), 8001 (Dest("ABS2008",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), 8002 Apply 8003 (Call 8004 ("write'FGR",ATy(qTy,qTy), 8005 TP[Mop(FPNeg 64, 8006 Apply 8007 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8008 qVar"state")),Var("fd",FTy 5)]),qVar"state"))], 8009 Apply 8010 (Call 8011 ("write'FGR",ATy(qTy,qTy), 8012 TP[Apply 8013 (Call 8014 ("PostOpF64",ATy(qTy,F64), 8015 Call 8016 ("FP64_Neg1985",F64, 8017 Apply 8018 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8019 qVar"state"))),qVar"state"),Var("fd",FTy 5)]), 8020 qVar"state")))) 8021; 8022val dfn'NEG_S_def = Def 8023 ("dfn'NEG_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8024 Close 8025 (qVar"state", 8026 ITB([(Mop(Not, 8027 Dest 8028 ("CU1",bTy, 8029 Dest 8030 ("Status",CTy"StatusRegister", 8031 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8032 Apply 8033 (Const("SignalCP1UnusableException",ATy(qTy,qTy)), 8034 qVar"state")), 8035 (Dest("ABS2008",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), 8036 Apply 8037 (Call 8038 ("write'FGR",ATy(qTy,qTy), 8039 TP[Mop(SE F64, 8040 Mop(FPNeg 32, 8041 EX(Apply 8042 (Call 8043 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8044 qVar"state"),LN 31,LN 0,F32))), 8045 Var("fd",FTy 5)]),qVar"state"))], 8046 Apply 8047 (Call 8048 ("write'FGR",ATy(qTy,qTy), 8049 TP[Mop(SE F64, 8050 Apply 8051 (Call 8052 ("PostOpF32",ATy(qTy,F32), 8053 Call 8054 ("FP32_Neg1985",F32, 8055 EX(Apply 8056 (Call 8057 ("FGR",ATy(qTy,F64), 8058 Var("fs",FTy 5)),qVar"state"), 8059 LN 31,LN 0,F32))),qVar"state")), 8060 Var("fd",FTy 5)]),qVar"state")))) 8061; 8062val dfn'ROUND_L_D_def = Def 8063 ("dfn'ROUND_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8064 Close 8065 (qVar"state", 8066 ITE(Mop(Not, 8067 Dest 8068 ("CU1",bTy, 8069 Dest 8070 ("Status",CTy"StatusRegister", 8071 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8072 Apply 8073 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8074 Apply 8075 (Call 8076 ("write'FGR",ATy(qTy,qTy), 8077 TP[CS(Mop(FPToInt 64, 8078 TP[binary_ieeeSyntax.roundTiesToEven_tm, 8079 Apply 8080 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8081 qVar"state")]), 8082 [(Mop(Some,iVar"x"), 8083 Call("IntToDWordMIPS",F64,iVar"x")), 8084 (LO iTy,LW(9223372036854775807,64))]), 8085 Var("fd",FTy 5)]),qVar"state")))) 8086; 8087val dfn'ROUND_L_S_def = Def 8088 ("dfn'ROUND_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8089 Close 8090 (qVar"state", 8091 ITE(Mop(Not, 8092 Dest 8093 ("CU1",bTy, 8094 Dest 8095 ("Status",CTy"StatusRegister", 8096 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8097 Apply 8098 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8099 Apply 8100 (Call 8101 ("write'FGR",ATy(qTy,qTy), 8102 TP[CS(Mop(FPToInt 32, 8103 TP[binary_ieeeSyntax.roundTiesToEven_tm, 8104 EX(Apply 8105 (Call 8106 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8107 qVar"state"),LN 31,LN 0,F32)]), 8108 [(Mop(Some,iVar"x"), 8109 Call("IntToDWordMIPS",F64,iVar"x")), 8110 (LO iTy,LW(9223372036854775807,64))]), 8111 Var("fd",FTy 5)]),qVar"state")))) 8112; 8113val dfn'ROUND_W_D_def = Def 8114 ("dfn'ROUND_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8115 Close 8116 (qVar"state", 8117 ITE(Mop(Not, 8118 Dest 8119 ("CU1",bTy, 8120 Dest 8121 ("Status",CTy"StatusRegister", 8122 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8123 Apply 8124 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8125 Apply 8126 (Call 8127 ("write'FGR",ATy(qTy,qTy), 8128 TP[CS(Mop(FPToInt 64, 8129 TP[binary_ieeeSyntax.roundTiesToEven_tm, 8130 Apply 8131 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8132 qVar"state")]), 8133 [(Mop(Some,iVar"x"), 8134 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 8135 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 8136 qVar"state")))) 8137; 8138val dfn'ROUND_W_S_def = Def 8139 ("dfn'ROUND_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8140 Close 8141 (qVar"state", 8142 ITE(Mop(Not, 8143 Dest 8144 ("CU1",bTy, 8145 Dest 8146 ("Status",CTy"StatusRegister", 8147 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8148 Apply 8149 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8150 Apply 8151 (Call 8152 ("write'FGR",ATy(qTy,qTy), 8153 TP[CS(Mop(FPToInt 32, 8154 TP[binary_ieeeSyntax.roundTiesToEven_tm, 8155 EX(Apply 8156 (Call 8157 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8158 qVar"state"),LN 31,LN 0,F32)]), 8159 [(Mop(Some,iVar"x"), 8160 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 8161 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 8162 qVar"state")))) 8163; 8164val dfn'SDC1_def = Def 8165 ("dfn'SDC1",TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)], 8166 Close 8167 (qVar"state", 8168 ITE(Mop(Not, 8169 Dest 8170 ("CU1",bTy, 8171 Dest 8172 ("Status",CTy"StatusRegister", 8173 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8174 Apply 8175 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8176 Mop(Snd, 8177 Apply 8178 (Call 8179 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 8180 TP[Const("DOUBLEWORD",FTy 3), 8181 Const("DOUBLEWORD",FTy 3),LT, 8182 Apply 8183 (Call("FGR",ATy(qTy,F64),Var("ft",FTy 5)), 8184 qVar"state"), 8185 Apply 8186 (Call 8187 ("getVirtualAddress",ATy(qTy,F64), 8188 Bop(Add,Mop(SE F64,Var("offset",F16)), 8189 Apply 8190 (Call 8191 ("GPR",ATy(qTy,F64), 8192 Var("base",FTy 5)),qVar"state"))), 8193 qVar"state"),LF]),qVar"state"))))) 8194; 8195val dfn'SDXC1_def = Def 8196 ("dfn'SDXC1",TP[Var("fs",FTy 5),Var("index",FTy 5),Var("base",FTy 5)], 8197 Close 8198 (qVar"state", 8199 ITE(Mop(Not, 8200 Dest 8201 ("CU1",bTy, 8202 Dest 8203 ("Status",CTy"StatusRegister", 8204 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8205 Apply 8206 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8207 Mop(Snd, 8208 Apply 8209 (Call 8210 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 8211 TP[Const("DOUBLEWORD",FTy 3), 8212 Const("DOUBLEWORD",FTy 3),LT, 8213 Apply 8214 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8215 qVar"state"), 8216 Apply 8217 (Call 8218 ("getVirtualAddress",ATy(qTy,F64), 8219 Bop(Add, 8220 Apply 8221 (Call 8222 ("GPR",ATy(qTy,F64), 8223 Var("index",FTy 5)),qVar"state"), 8224 Apply 8225 (Call 8226 ("GPR",ATy(qTy,F64), 8227 Var("base",FTy 5)),qVar"state"))), 8228 qVar"state"),LF]),qVar"state"))))) 8229; 8230val dfn'SQRT_D_def = Def 8231 ("dfn'SQRT_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8232 Close 8233 (qVar"state", 8234 ITE(Mop(Not, 8235 Dest 8236 ("CU1",bTy, 8237 Dest 8238 ("Status",CTy"StatusRegister", 8239 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8240 Apply 8241 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8242 Apply 8243 (Call 8244 ("write'FGR",ATy(qTy,qTy), 8245 TP[Apply 8246 (Call 8247 ("PostOpF64",ATy(qTy,F64), 8248 Mop(FPSqrt 64, 8249 TP[Apply 8250 (Const("Rounding_Mode",ATy(qTy,rTy)), 8251 qVar"state"), 8252 Apply 8253 (Call 8254 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8255 qVar"state")])),qVar"state"), 8256 Var("fd",FTy 5)]),qVar"state")))) 8257; 8258val dfn'SQRT_S_def = Def 8259 ("dfn'SQRT_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8260 Close 8261 (qVar"state", 8262 ITE(Mop(Not, 8263 Dest 8264 ("CU1",bTy, 8265 Dest 8266 ("Status",CTy"StatusRegister", 8267 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8268 Apply 8269 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8270 Apply 8271 (Call 8272 ("write'FGR",ATy(qTy,qTy), 8273 TP[Mop(SE F64, 8274 Apply 8275 (Call 8276 ("PostOpF32",ATy(qTy,F32), 8277 Mop(FPSqrt 32, 8278 TP[Apply 8279 (Const("Rounding_Mode",ATy(qTy,rTy)), 8280 qVar"state"), 8281 EX(Apply 8282 (Call 8283 ("FGR",ATy(qTy,F64), 8284 Var("fs",FTy 5)),qVar"state"), 8285 LN 31,LN 0,F32)])),qVar"state")), 8286 Var("fd",FTy 5)]),qVar"state")))) 8287; 8288val dfn'SUB_D_def = Def 8289 ("dfn'SUB_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 8290 Close 8291 (qVar"state", 8292 ITE(Mop(Not, 8293 Dest 8294 ("CU1",bTy, 8295 Dest 8296 ("Status",CTy"StatusRegister", 8297 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8298 Apply 8299 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8300 Apply 8301 (Call 8302 ("write'FGR",ATy(qTy,qTy), 8303 TP[Apply 8304 (Call 8305 ("PostOpF64",ATy(qTy,F64), 8306 Mop(FPSub 64, 8307 TP[Apply 8308 (Const("Rounding_Mode",ATy(qTy,rTy)), 8309 qVar"state"), 8310 Apply 8311 (Call 8312 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8313 qVar"state"), 8314 Apply 8315 (Call 8316 ("FGR",ATy(qTy,F64),Var("ft",FTy 5)), 8317 qVar"state")])),qVar"state"), 8318 Var("fd",FTy 5)]),qVar"state")))) 8319; 8320val dfn'SUB_S_def = Def 8321 ("dfn'SUB_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], 8322 Close 8323 (qVar"state", 8324 ITE(Mop(Not, 8325 Dest 8326 ("CU1",bTy, 8327 Dest 8328 ("Status",CTy"StatusRegister", 8329 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8330 Apply 8331 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8332 Apply 8333 (Call 8334 ("write'FGR",ATy(qTy,qTy), 8335 TP[Mop(SE F64, 8336 Apply 8337 (Call 8338 ("PostOpF32",ATy(qTy,F32), 8339 Mop(FPSub 32, 8340 TP[Apply 8341 (Const("Rounding_Mode",ATy(qTy,rTy)), 8342 qVar"state"), 8343 EX(Apply 8344 (Call 8345 ("FGR",ATy(qTy,F64), 8346 Var("fs",FTy 5)),qVar"state"), 8347 LN 31,LN 0,F32), 8348 EX(Apply 8349 (Call 8350 ("FGR",ATy(qTy,F64), 8351 Var("ft",FTy 5)),qVar"state"), 8352 LN 31,LN 0,F32)])),qVar"state")), 8353 Var("fd",FTy 5)]),qVar"state")))) 8354; 8355val dfn'SWC1_def = Def 8356 ("dfn'SWC1",TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)], 8357 Close 8358 (qVar"state", 8359 ITE(Mop(Not, 8360 Dest 8361 ("CU1",bTy, 8362 Dest 8363 ("Status",CTy"StatusRegister", 8364 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8365 Apply 8366 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8367 Let(Var("v",F64), 8368 Apply 8369 (Call 8370 ("getVirtualAddress",ATy(qTy,F64), 8371 Bop(Add,Mop(SE F64,Var("offset",F16)), 8372 Apply 8373 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 8374 qVar"state"))),qVar"state"), 8375 Mop(Snd, 8376 Apply 8377 (Call 8378 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 8379 TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, 8380 Bop(Lsl, 8381 Apply 8382 (Call("FGR",ATy(qTy,F64),Var("ft",FTy 5)), 8383 qVar"state"), 8384 Bop(Mul,LN 8, 8385 Mop(Cast nTy, 8386 Bop(BXor, 8387 EX(Var("v",F64),LN 2,LN 0,FTy 3), 8388 CC[Apply 8389 (Const 8390 ("BigEndianCPU", 8391 ATy(qTy,F1)), 8392 qVar"state"),LW(0,2)])))), 8393 Var("v",F64),LF]),qVar"state")))))) 8394; 8395val dfn'SWXC1_def = Def 8396 ("dfn'SWXC1",TP[Var("ft",FTy 5),Var("index",FTy 5),Var("base",FTy 5)], 8397 Close 8398 (qVar"state", 8399 ITE(Mop(Not, 8400 Dest 8401 ("CU1",bTy, 8402 Dest 8403 ("Status",CTy"StatusRegister", 8404 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8405 Apply 8406 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8407 Let(Var("v",F64), 8408 Apply 8409 (Call 8410 ("getVirtualAddress",ATy(qTy,F64), 8411 Bop(Add, 8412 Apply 8413 (Call("GPR",ATy(qTy,F64),Var("index",FTy 5)), 8414 qVar"state"), 8415 Apply 8416 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 8417 qVar"state"))),qVar"state"), 8418 Mop(Snd, 8419 Apply 8420 (Call 8421 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 8422 TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, 8423 Bop(Lsl, 8424 Apply 8425 (Call("FGR",ATy(qTy,F64),Var("ft",FTy 5)), 8426 qVar"state"), 8427 Bop(Mul,LN 8, 8428 Mop(Cast nTy, 8429 Bop(BXor, 8430 EX(Var("v",F64),LN 2,LN 0,FTy 3), 8431 CC[Apply 8432 (Const 8433 ("BigEndianCPU", 8434 ATy(qTy,F1)), 8435 qVar"state"),LW(0,2)])))), 8436 Var("v",F64),LF]),qVar"state")))))) 8437; 8438val dfn'TRUNC_L_D_def = Def 8439 ("dfn'TRUNC_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8440 Close 8441 (qVar"state", 8442 ITE(Mop(Not, 8443 Dest 8444 ("CU1",bTy, 8445 Dest 8446 ("Status",CTy"StatusRegister", 8447 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8448 Apply 8449 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8450 Apply 8451 (Call 8452 ("write'FGR",ATy(qTy,qTy), 8453 TP[CS(Mop(FPToInt 64, 8454 TP[binary_ieeeSyntax.roundTowardZero_tm, 8455 Apply 8456 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8457 qVar"state")]), 8458 [(Mop(Some,iVar"x"), 8459 Call("IntToDWordMIPS",F64,iVar"x")), 8460 (LO iTy,LW(9223372036854775807,64))]), 8461 Var("fd",FTy 5)]),qVar"state")))) 8462; 8463val dfn'TRUNC_L_S_def = Def 8464 ("dfn'TRUNC_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8465 Close 8466 (qVar"state", 8467 ITE(Mop(Not, 8468 Dest 8469 ("CU1",bTy, 8470 Dest 8471 ("Status",CTy"StatusRegister", 8472 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8473 Apply 8474 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8475 Apply 8476 (Call 8477 ("write'FGR",ATy(qTy,qTy), 8478 TP[CS(Mop(FPToInt 32, 8479 TP[binary_ieeeSyntax.roundTowardZero_tm, 8480 EX(Apply 8481 (Call 8482 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8483 qVar"state"),LN 31,LN 0,F32)]), 8484 [(Mop(Some,iVar"x"), 8485 Call("IntToDWordMIPS",F64,iVar"x")), 8486 (LO iTy,LW(9223372036854775807,64))]), 8487 Var("fd",FTy 5)]),qVar"state")))) 8488; 8489val dfn'TRUNC_W_D_def = Def 8490 ("dfn'TRUNC_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8491 Close 8492 (qVar"state", 8493 ITE(Mop(Not, 8494 Dest 8495 ("CU1",bTy, 8496 Dest 8497 ("Status",CTy"StatusRegister", 8498 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8499 Apply 8500 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8501 Apply 8502 (Call 8503 ("write'FGR",ATy(qTy,qTy), 8504 TP[CS(Mop(FPToInt 64, 8505 TP[binary_ieeeSyntax.roundTowardZero_tm, 8506 Apply 8507 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8508 qVar"state")]), 8509 [(Mop(Some,iVar"x"), 8510 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 8511 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 8512 qVar"state")))) 8513; 8514val dfn'TRUNC_W_S_def = Def 8515 ("dfn'TRUNC_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], 8516 Close 8517 (qVar"state", 8518 ITE(Mop(Not, 8519 Dest 8520 ("CU1",bTy, 8521 Dest 8522 ("Status",CTy"StatusRegister", 8523 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8524 Apply 8525 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8526 Apply 8527 (Call 8528 ("write'FGR",ATy(qTy,qTy), 8529 TP[CS(Mop(FPToInt 32, 8530 TP[binary_ieeeSyntax.roundTowardZero_tm, 8531 EX(Apply 8532 (Call 8533 ("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8534 qVar"state"),LN 31,LN 0,F32)]), 8535 [(Mop(Some,iVar"x"), 8536 Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), 8537 (LO iTy,LW(2147483647,64))]),Var("fd",FTy 5)]), 8538 qVar"state")))) 8539; 8540val dfn'DMFC1_def = Def 8541 ("dfn'DMFC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], 8542 Close 8543 (qVar"state", 8544 ITE(Mop(Not, 8545 Dest 8546 ("CU1",bTy, 8547 Dest 8548 ("Status",CTy"StatusRegister", 8549 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8550 Apply 8551 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8552 Apply 8553 (Call 8554 ("write'GPR",ATy(qTy,qTy), 8555 TP[Apply 8556 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)),qVar"state"), 8557 Var("rt",FTy 5)]),qVar"state")))) 8558; 8559val dfn'DMTC1_def = Def 8560 ("dfn'DMTC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], 8561 Close 8562 (qVar"state", 8563 ITE(Mop(Not, 8564 Dest 8565 ("CU1",bTy, 8566 Dest 8567 ("Status",CTy"StatusRegister", 8568 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8569 Apply 8570 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8571 Apply 8572 (Call 8573 ("write'FGR",ATy(qTy,qTy), 8574 TP[Apply 8575 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 8576 Var("fs",FTy 5)]),qVar"state")))) 8577; 8578val dfn'MFC1_def = Def 8579 ("dfn'MFC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], 8580 Close 8581 (qVar"state", 8582 ITE(Mop(Not, 8583 Dest 8584 ("CU1",bTy, 8585 Dest 8586 ("Status",CTy"StatusRegister", 8587 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8588 Apply 8589 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8590 Apply 8591 (Call 8592 ("write'GPR",ATy(qTy,qTy), 8593 TP[Mop(SE F64, 8594 EX(Apply 8595 (Call("FGR",ATy(qTy,F64),Var("fs",FTy 5)), 8596 qVar"state"),LN 31,LN 0,F32)),Var("rt",FTy 5)]), 8597 qVar"state")))) 8598; 8599val dfn'MTC1_def = Def 8600 ("dfn'MTC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], 8601 Close 8602 (qVar"state", 8603 ITE(Mop(Not, 8604 Dest 8605 ("CU1",bTy, 8606 Dest 8607 ("Status",CTy"StatusRegister", 8608 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8609 Apply 8610 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8611 Apply 8612 (Call 8613 ("write'FGR",ATy(qTy,qTy), 8614 TP[Mop(SE F64, 8615 EX(Apply 8616 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 8617 qVar"state"),LN 31,LN 0,F32)),Var("fs",FTy 5)]), 8618 qVar"state")))) 8619; 8620val dfn'CFC1_def = Def 8621 ("dfn'CFC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], 8622 Close 8623 (qVar"state", 8624 ITE(Mop(Not, 8625 Dest 8626 ("CU1",bTy, 8627 Dest 8628 ("Status",CTy"StatusRegister", 8629 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8630 Apply 8631 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8632 Let(TP[Var("v",F64),qVar"s"], 8633 CS(Var("fs",FTy 5), 8634 [(LW(0,5), 8635 TP[Mop(SE F64, 8636 Call 8637 ("reg'FIR",F32, 8638 Dest("fir",CTy"FIR",qVar"state"))), 8639 qVar"state"]), 8640 (LW(25,5), 8641 TP[Mop(Cast F64, 8642 Dest 8643 ("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state"))), 8644 qVar"state"]), 8645 (LW(31,5), 8646 TP[Mop(SE F64, 8647 Call 8648 ("reg'FCSR",F32, 8649 Dest("fcsr",CTy"FCSR",qVar"state"))), 8650 qVar"state"]), 8651 (AVar(FTy 5), 8652 Apply 8653 (Call 8654 ("raise'exception",ATy(qTy,PTy(F64,qTy)), 8655 Call 8656 ("UNPREDICTABLE",CTy"exception", 8657 LS 8658 "Unsupported floating point control register")), 8659 qVar"state"))]), 8660 Apply 8661 (Call 8662 ("write'GPR",ATy(qTy,qTy), 8663 TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s"))))) 8664; 8665val dfn'CTC1_def = Def 8666 ("dfn'CTC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], 8667 Close 8668 (qVar"state", 8669 ITE(Mop(Not, 8670 Dest 8671 ("CU1",bTy, 8672 Dest 8673 ("Status",CTy"StatusRegister", 8674 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8675 Apply 8676 (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8677 CS(Var("fs",FTy 5), 8678 [(LW(0,5),qVar"state"), 8679 (LW(25,5), 8680 Rupd 8681 ("fcsr", 8682 TP[qVar"state", 8683 Rupd 8684 ("FCC", 8685 TP[Dest("fcsr",CTy"FCSR",qVar"state"), 8686 EX(Apply 8687 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 8688 qVar"state"),LN 7,LN 0,F8)])])), 8689 (LW(31,5), 8690 Let(qVar"s", 8691 Rupd 8692 ("fcsr", 8693 TP[qVar"state", 8694 Call 8695 ("write'reg'FCSR",CTy"FCSR", 8696 TP[Dest("fcsr",CTy"FCSR",qVar"state"), 8697 EX(Apply 8698 (Call 8699 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 8700 qVar"state"),LN 31,LN 0,F32)])]), 8701 Rupd 8702 ("fcsr", 8703 TP[qVar"s", 8704 Rupd 8705 ("NAN2008", 8706 TP[Dest("fcsr",CTy"FCSR",qVar"s"),LT])]))), 8707 (AVar(FTy 5), 8708 Mop(Snd, 8709 Apply 8710 (Call 8711 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 8712 Call 8713 ("UNPREDICTABLE",CTy"exception", 8714 LS 8715 "Unsupported floating point control register")), 8716 qVar"state")))])))) 8717; 8718val dfn'UnknownFPInstruction_def = Def 8719 ("dfn'UnknownFPInstruction",qVar"state", 8720 ITE(Mop(Not, 8721 Dest 8722 ("CU1",bTy, 8723 Dest 8724 ("Status",CTy"StatusRegister", 8725 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8726 Apply(Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), 8727 Apply 8728 (Call 8729 ("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), 8730 qVar"state"))) 8731; 8732val register_inaccessible_def = Def 8733 ("register_inaccessible",Var("cb",FTy 5), 8734 Close 8735 (qVar"state", 8736 Mop(Not, 8737 Apply 8738 (Call 8739 ("allow_system_reg_access",ATy(qTy,bTy), 8740 TP[Call 8741 ("getPerms",CTy"Perms", 8742 Apply 8743 (Const("PCC",ATy(qTy,CTy"Capability")),qVar"state")), 8744 Var("cb",FTy 5)]),qVar"state")))) 8745; 8746val register_inaccessible_write_attempt_def = Def 8747 ("register_inaccessible_write_attempt",Var("mask",F16), 8748 Close 8749 (qVar"state", 8750 Let(TP[bVar"r",Var("s1",PTy(bTy,qTy))], 8751 Let(Var("s",PTy(bTy,qTy)), 8752 ITB([(Bop(And,Bop(Bit,Var("mask",F16),LN 15), 8753 Apply 8754 (Call 8755 ("register_inaccessible",ATy(qTy,bTy), 8756 LW(31,5)),qVar"state")), 8757 TP[LT, 8758 Apply 8759 (Call 8760 ("SignalCapException",ATy(qTy,qTy), 8761 TP[LC("capExcAccessSysReg", 8762 CTy"CapExceptionType"),LW(31,5)]), 8763 qVar"state")]), 8764 (Bop(And,Bop(Bit,Var("mask",F16),LN 14), 8765 Apply 8766 (Call 8767 ("register_inaccessible",ATy(qTy,bTy), 8768 LW(30,5)),qVar"state")), 8769 TP[LT, 8770 Apply 8771 (Call 8772 ("SignalCapException",ATy(qTy,qTy), 8773 TP[LC("capExcAccessSysReg", 8774 CTy"CapExceptionType"),LW(30,5)]), 8775 qVar"state")]), 8776 (Bop(And,Bop(Bit,Var("mask",F16),LN 13), 8777 Apply 8778 (Call 8779 ("register_inaccessible",ATy(qTy,bTy), 8780 LW(29,5)),qVar"state")), 8781 TP[LT, 8782 Apply 8783 (Call 8784 ("SignalCapException",ATy(qTy,qTy), 8785 TP[LC("capExcAccessSysReg", 8786 CTy"CapExceptionType"),LW(29,5)]), 8787 qVar"state")]), 8788 (Bop(And,Bop(Bit,Var("mask",F16),LN 11), 8789 Apply 8790 (Call 8791 ("register_inaccessible",ATy(qTy,bTy), 8792 LW(27,5)),qVar"state")), 8793 TP[LT, 8794 Apply 8795 (Call 8796 ("SignalCapException",ATy(qTy,qTy), 8797 TP[LC("capExcAccessSysReg", 8798 CTy"CapExceptionType"),LW(27,5)]), 8799 qVar"state")]), 8800 (Bop(And,Bop(Bit,Var("mask",F16),LN 12), 8801 Apply 8802 (Call 8803 ("register_inaccessible",ATy(qTy,bTy), 8804 LW(28,5)),qVar"state")), 8805 TP[LT, 8806 Apply 8807 (Call 8808 ("SignalCapException",ATy(qTy,qTy), 8809 TP[LC("capExcAccessSysReg", 8810 CTy"CapExceptionType"),LW(28,5)]), 8811 qVar"state")])],TP[LF,qVar"state"]), 8812 TP[Mop(Fst,Var("s",PTy(bTy,qTy))),Var("s",PTy(bTy,qTy))]), 8813 TP[bVar"r",Mop(Snd,Var("s1",PTy(bTy,qTy)))]))) 8814; 8815val watchOOB_def = Def 8816 ("watchOOB",TP[Var("cap",CTy"Capability"),Var("pc",F64)], 8817 Close(qVar"state",LU)) 8818; 8819val SignExtendBitString_def = Def 8820 ("SignExtendBitString",TP[nVar"w",vVar"x"], 8821 Mop(PadLeft,TP[Mop(Head,vVar"x"),nVar"w",vVar"x"])) 8822; 8823val ZeroExtendBitString_def = Def 8824 ("ZeroExtendBitString",TP[nVar"w",vVar"x"], 8825 Mop(PadLeft,TP[LF,nVar"w",vVar"x"])) 8826; 8827val dfn'DumpCapReg_def = Def0 ("dfn'DumpCapReg",LU) 8828; 8829val dfn'CGetBase_def = Def 8830 ("dfn'CGetBase",TP[Var("rd",FTy 5),Var("cb",FTy 5)], 8831 Close 8832 (qVar"state", 8833 ITB([(Mop(Not, 8834 Dest 8835 ("CU2",bTy, 8836 Dest 8837 ("Status",CTy"StatusRegister", 8838 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8839 Apply 8840 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 8841 qVar"state")), 8842 (Apply 8843 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 8844 qVar"state"), 8845 Apply 8846 (Call 8847 ("SignalCapException",ATy(qTy,qTy), 8848 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 8849 Var("cb",FTy 5)]),qVar"state"))], 8850 Apply 8851 (Call 8852 ("write'GPR",ATy(qTy,qTy), 8853 TP[Call 8854 ("getBase",F64, 8855 Apply 8856 (Call 8857 ("CAPR",ATy(qTy,CTy"Capability"), 8858 Var("cb",FTy 5)),qVar"state")),Var("rd",FTy 5)]), 8859 qVar"state")))) 8860; 8861val dfn'CGetOffset_def = Def 8862 ("dfn'CGetOffset",TP[Var("rd",FTy 5),Var("cb",FTy 5)], 8863 Close 8864 (qVar"state", 8865 ITB([(Mop(Not, 8866 Dest 8867 ("CU2",bTy, 8868 Dest 8869 ("Status",CTy"StatusRegister", 8870 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8871 Apply 8872 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 8873 qVar"state")), 8874 (Apply 8875 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 8876 qVar"state"), 8877 Apply 8878 (Call 8879 ("SignalCapException",ATy(qTy,qTy), 8880 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 8881 Var("cb",FTy 5)]),qVar"state"))], 8882 Apply 8883 (Call 8884 ("write'GPR",ATy(qTy,qTy), 8885 TP[Call 8886 ("getOffset",F64, 8887 Apply 8888 (Call 8889 ("CAPR",ATy(qTy,CTy"Capability"), 8890 Var("cb",FTy 5)),qVar"state")),Var("rd",FTy 5)]), 8891 qVar"state")))) 8892; 8893val dfn'CGetLen_def = Def 8894 ("dfn'CGetLen",TP[Var("rd",FTy 5),Var("cb",FTy 5)], 8895 Close 8896 (qVar"state", 8897 ITB([(Mop(Not, 8898 Dest 8899 ("CU2",bTy, 8900 Dest 8901 ("Status",CTy"StatusRegister", 8902 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8903 Apply 8904 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 8905 qVar"state")), 8906 (Apply 8907 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 8908 qVar"state"), 8909 Apply 8910 (Call 8911 ("SignalCapException",ATy(qTy,qTy), 8912 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 8913 Var("cb",FTy 5)]),qVar"state"))], 8914 Apply 8915 (Call 8916 ("write'GPR",ATy(qTy,qTy), 8917 TP[Call 8918 ("getLength",F64, 8919 Apply 8920 (Call 8921 ("CAPR",ATy(qTy,CTy"Capability"), 8922 Var("cb",FTy 5)),qVar"state")),Var("rd",FTy 5)]), 8923 qVar"state")))) 8924; 8925val dfn'CGetTag_def = Def 8926 ("dfn'CGetTag",TP[Var("rd",FTy 5),Var("cb",FTy 5)], 8927 Close 8928 (qVar"state", 8929 ITB([(Mop(Not, 8930 Dest 8931 ("CU2",bTy, 8932 Dest 8933 ("Status",CTy"StatusRegister", 8934 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8935 Apply 8936 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 8937 qVar"state")), 8938 (Apply 8939 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 8940 qVar"state"), 8941 Apply 8942 (Call 8943 ("SignalCapException",ATy(qTy,qTy), 8944 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 8945 Var("cb",FTy 5)]),qVar"state"))], 8946 Apply 8947 (Call 8948 ("write'GPR",ATy(qTy,qTy), 8949 TP[Mop(Cast F64, 8950 Mop(Cast F1, 8951 Call 8952 ("getTag",bTy, 8953 Apply 8954 (Call 8955 ("CAPR",ATy(qTy,CTy"Capability"), 8956 Var("cb",FTy 5)),qVar"state")))), 8957 Var("rd",FTy 5)]),qVar"state")))) 8958; 8959val dfn'CGetSealed_def = Def 8960 ("dfn'CGetSealed",TP[Var("rd",FTy 5),Var("cb",FTy 5)], 8961 Close 8962 (qVar"state", 8963 ITB([(Mop(Not, 8964 Dest 8965 ("CU2",bTy, 8966 Dest 8967 ("Status",CTy"StatusRegister", 8968 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 8969 Apply 8970 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 8971 qVar"state")), 8972 (Apply 8973 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 8974 qVar"state"), 8975 Apply 8976 (Call 8977 ("SignalCapException",ATy(qTy,qTy), 8978 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 8979 Var("cb",FTy 5)]),qVar"state"))], 8980 Let(TP[Var("v",F64),qVar"s"], 8981 Let(qVar"s0", 8982 Apply 8983 (Call 8984 ("write'GPR",ATy(qTy,qTy), 8985 TP[BFI(LN 0,LN 0, 8986 Mop(Cast F1, 8987 Call 8988 ("getSealed",bTy, 8989 Apply 8990 (Call 8991 ("CAPR", 8992 ATy(qTy,CTy"Capability"), 8993 Var("cb",FTy 5)),qVar"state"))), 8994 Apply 8995 (Call("GPR",ATy(qTy,F64),Var("rd",FTy 5)), 8996 qVar"state")),Var("rd",FTy 5)]), 8997 qVar"state"), 8998 TP[Apply 8999 (Call("GPR",ATy(qTy,F64),Var("rd",FTy 5)),qVar"s0"), 9000 qVar"s0"]), 9001 Apply 9002 (Call 9003 ("write'GPR",ATy(qTy,qTy), 9004 TP[BFI(LN 63,LN 1,LW(0,63),Var("v",F64)), 9005 Var("rd",FTy 5)]),qVar"s"))))) 9006; 9007val dfn'CGetPerm_def = Def 9008 ("dfn'CGetPerm",TP[Var("rd",FTy 5),Var("cb",FTy 5)], 9009 Close 9010 (qVar"state", 9011 ITB([(Mop(Not, 9012 Dest 9013 ("CU2",bTy, 9014 Dest 9015 ("Status",CTy"StatusRegister", 9016 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9017 Apply 9018 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9019 qVar"state")), 9020 (Apply 9021 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 9022 qVar"state"), 9023 Apply 9024 (Call 9025 ("SignalCapException",ATy(qTy,qTy), 9026 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9027 Var("cb",FTy 5)]),qVar"state"))], 9028 Apply 9029 (Call 9030 ("write'GPR",ATy(qTy,qTy), 9031 TP[BFI(Bop(Add,Const("UPERMS",nTy),LN 14),LN 15, 9032 EX(Call 9033 ("reg'UPerms",F32, 9034 Call 9035 ("getUPerms",CTy"UPerms", 9036 Apply 9037 (Call 9038 ("CAPR",ATy(qTy,CTy"Capability"), 9039 Var("cb",FTy 5)),qVar"state"))), 9040 Bop(Sub,Const("UPERMS",nTy),LN 1),LN 0,F16), 9041 BFI(LN 14,LN 0, 9042 EX(Call 9043 ("reg'Perms",F32, 9044 Call 9045 ("getPerms",CTy"Perms", 9046 Apply 9047 (Call 9048 ("CAPR",ATy(qTy,CTy"Capability"), 9049 Var("cb",FTy 5)),qVar"state"))), 9050 LN 14,LN 0,FTy 15),LW(0,64))), 9051 Var("rd",FTy 5)]),qVar"state")))) 9052; 9053val dfn'CGetType_def = Def 9054 ("dfn'CGetType",TP[Var("rd",FTy 5),Var("cb",FTy 5)], 9055 Close 9056 (qVar"state", 9057 ITB([(Mop(Not, 9058 Dest 9059 ("CU2",bTy, 9060 Dest 9061 ("Status",CTy"StatusRegister", 9062 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9063 Apply 9064 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9065 qVar"state")), 9066 (Apply 9067 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 9068 qVar"state"), 9069 Apply 9070 (Call 9071 ("SignalCapException",ATy(qTy,qTy), 9072 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9073 Var("cb",FTy 5)]),qVar"state")), 9074 (Call 9075 ("getSealed",bTy, 9076 Apply 9077 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9078 qVar"state")), 9079 Apply 9080 (Call 9081 ("write'GPR",ATy(qTy,qTy), 9082 TP[Mop(Cast F64, 9083 Call 9084 ("getType",FTy 24, 9085 Apply 9086 (Call 9087 ("CAPR",ATy(qTy,CTy"Capability"), 9088 Var("cb",FTy 5)),qVar"state"))), 9089 Var("rd",FTy 5)]),qVar"state"))], 9090 Apply 9091 (Call 9092 ("write'GPR",ATy(qTy,qTy), 9093 TP[Mop(BNot,LW(0,64)),Var("rd",FTy 5)]),qVar"state")))) 9094; 9095val dfn'CGetPCC_def = Def 9096 ("dfn'CGetPCC",Var("cd",FTy 5), 9097 Close 9098 (qVar"state", 9099 ITB([(Mop(Not, 9100 Dest 9101 ("CU2",bTy, 9102 Dest 9103 ("Status",CTy"StatusRegister", 9104 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9105 Apply 9106 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9107 qVar"state")), 9108 (Apply 9109 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 9110 qVar"state"), 9111 Apply 9112 (Call 9113 ("SignalCapException",ATy(qTy,qTy), 9114 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9115 Var("cd",FTy 5)]),qVar"state"))], 9116 Apply 9117 (Call 9118 ("write'CAPR",ATy(qTy,qTy), 9119 TP[Call 9120 ("setOffset",CTy"Capability", 9121 TP[Apply 9122 (Const("PCC",ATy(qTy,CTy"Capability")), 9123 qVar"state"), 9124 Apply(Const("PC",ATy(qTy,F64)),qVar"state")]), 9125 Var("cd",FTy 5)]),qVar"state")))) 9126; 9127val dfn'CGetPCCSetOffset_def = Def 9128 ("dfn'CGetPCCSetOffset",TP[Var("cd",FTy 5),Var("rs",FTy 5)], 9129 Close 9130 (qVar"state", 9131 ITB([(Mop(Not, 9132 Dest 9133 ("CU2",bTy, 9134 Dest 9135 ("Status",CTy"StatusRegister", 9136 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9137 Apply 9138 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9139 qVar"state")), 9140 (Apply 9141 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 9142 qVar"state"), 9143 Apply 9144 (Call 9145 ("SignalCapException",ATy(qTy,qTy), 9146 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9147 Var("cd",FTy 5)]),qVar"state")), 9148 (Mop(Not, 9149 Call 9150 ("canRepOffset",bTy, 9151 TP[Apply 9152 (Const("PCC",ATy(qTy,CTy"Capability")),qVar"state"), 9153 Apply 9154 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 9155 qVar"state")])), 9156 Apply 9157 (Call 9158 ("write'CAPR",ATy(qTy,qTy), 9159 TP[Call 9160 ("setOffset",CTy"Capability", 9161 TP[Const("nullCap",CTy"Capability"), 9162 Bop(Add, 9163 Call 9164 ("getBase",F64, 9165 Apply 9166 (Const("PCC",ATy(qTy,CTy"Capability")), 9167 qVar"state")), 9168 Apply 9169 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 9170 qVar"state"))]),Var("cd",FTy 5)]), 9171 qVar"state"))], 9172 Apply 9173 (Call 9174 ("write'CAPR",ATy(qTy,qTy), 9175 TP[Call 9176 ("setOffset",CTy"Capability", 9177 TP[Apply 9178 (Const("PCC",ATy(qTy,CTy"Capability")), 9179 qVar"state"), 9180 Apply 9181 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 9182 qVar"state")]),Var("cd",FTy 5)]),qVar"state")))) 9183; 9184val dfn'CGetCause_def = Def 9185 ("dfn'CGetCause",Var("rd",FTy 5), 9186 Close 9187 (qVar"state", 9188 ITB([(Mop(Not, 9189 Dest 9190 ("CU2",bTy, 9191 Dest 9192 ("Status",CTy"StatusRegister", 9193 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9194 Apply 9195 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9196 qVar"state")), 9197 (Mop(Not, 9198 Dest 9199 ("Access_System_Registers",bTy, 9200 Call 9201 ("getPerms",CTy"Perms", 9202 Apply 9203 (Const("PCC",ATy(qTy,CTy"Capability")),qVar"state")))), 9204 Apply 9205 (Call 9206 ("SignalCapException_noReg",ATy(qTy,qTy), 9207 LC("capExcAccessSysReg",CTy"CapExceptionType")), 9208 qVar"state"))], 9209 Let(TP[Var("v",F64),qVar"s"], 9210 Let(qVar"s0", 9211 Apply 9212 (Call 9213 ("write'GPR",ATy(qTy,qTy), 9214 TP[BFI(LN 7,LN 0, 9215 Dest 9216 ("RegNum",F8, 9217 Dest 9218 ("capcause",CTy"CapCause",qVar"state")), 9219 Apply 9220 (Call("GPR",ATy(qTy,F64),Var("rd",FTy 5)), 9221 qVar"state")),Var("rd",FTy 5)]), 9222 qVar"state"), 9223 TP[Apply 9224 (Call("GPR",ATy(qTy,F64),Var("rd",FTy 5)),qVar"s0"), 9225 qVar"s0"]), 9226 Let(TP[Var("v",F64),qVar"s"], 9227 Let(qVar"s0", 9228 Apply 9229 (Call 9230 ("write'GPR",ATy(qTy,qTy), 9231 TP[BFI(LN 15,LN 8, 9232 Dest 9233 ("ExcCode",F8, 9234 Dest 9235 ("capcause",CTy"CapCause",qVar"s")), 9236 Var("v",F64)),Var("rd",FTy 5)]),qVar"s"), 9237 TP[Apply 9238 (Call("GPR",ATy(qTy,F64),Var("rd",FTy 5)), 9239 qVar"s0"),qVar"s0"]), 9240 Apply 9241 (Call 9242 ("write'GPR",ATy(qTy,qTy), 9243 TP[BFI(LN 63,LN 16,LW(0,48),Var("v",F64)), 9244 Var("rd",FTy 5)]),qVar"s")))))) 9245; 9246val dfn'CSetCause_def = Def 9247 ("dfn'CSetCause",Var("rt",FTy 5), 9248 Close 9249 (qVar"state", 9250 ITB([(Mop(Not, 9251 Dest 9252 ("CU2",bTy, 9253 Dest 9254 ("Status",CTy"StatusRegister", 9255 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9256 Apply 9257 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9258 qVar"state")), 9259 (Mop(Not, 9260 Dest 9261 ("Access_System_Registers",bTy, 9262 Call 9263 ("getPerms",CTy"Perms", 9264 Apply 9265 (Const("PCC",ATy(qTy,CTy"Capability")),qVar"state")))), 9266 Apply 9267 (Call 9268 ("SignalCapException_noReg",ATy(qTy,qTy), 9269 LC("capExcAccessSysReg",CTy"CapExceptionType")), 9270 qVar"state"))], 9271 Let(qVar"s", 9272 Rupd 9273 ("capcause", 9274 TP[qVar"state", 9275 Rupd 9276 ("ExcCode", 9277 TP[Dest("capcause",CTy"CapCause",qVar"state"), 9278 EX(Apply 9279 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9280 qVar"state"),LN 15,LN 8,F8)])]), 9281 Rupd 9282 ("capcause", 9283 TP[qVar"s", 9284 Rupd 9285 ("RegNum", 9286 TP[Dest("capcause",CTy"CapCause",qVar"s"), 9287 EX(Apply 9288 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9289 qVar"s"),LN 7,LN 0,F8)])]))))) 9290; 9291val dfn'CIncOffset_def = Def 9292 ("dfn'CIncOffset",TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)], 9293 Close 9294 (qVar"state", 9295 ITB([(Mop(Not, 9296 Dest 9297 ("CU2",bTy, 9298 Dest 9299 ("Status",CTy"StatusRegister", 9300 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9301 Apply 9302 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9303 qVar"state")), 9304 (Apply 9305 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 9306 qVar"state"), 9307 Apply 9308 (Call 9309 ("SignalCapException",ATy(qTy,qTy), 9310 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9311 Var("cd",FTy 5)]),qVar"state")), 9312 (Apply 9313 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 9314 qVar"state"), 9315 Apply 9316 (Call 9317 ("SignalCapException",ATy(qTy,qTy), 9318 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9319 Var("cb",FTy 5)]),qVar"state")), 9320 (Bop(And, 9321 Call 9322 ("getTag",bTy, 9323 Apply 9324 (Call 9325 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9326 qVar"state")), 9327 Bop(And, 9328 Call 9329 ("getSealed",bTy, 9330 Apply 9331 (Call 9332 ("CAPR",ATy(qTy,CTy"Capability"), 9333 Var("cb",FTy 5)),qVar"state")), 9334 Mop(Not, 9335 EQ(Apply 9336 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9337 qVar"state"),LW(0,64))))), 9338 Apply 9339 (Call 9340 ("SignalCapException",ATy(qTy,qTy), 9341 TP[LC("capExcSeal",CTy"CapExceptionType"), 9342 Var("cb",FTy 5)]),qVar"state")), 9343 (Mop(Not, 9344 Call 9345 ("canRepOffset",bTy, 9346 TP[Apply 9347 (Call 9348 ("CAPR",ATy(qTy,CTy"Capability"), 9349 Var("cb",FTy 5)),qVar"state"), 9350 Bop(Add, 9351 Call 9352 ("getOffset",F64, 9353 Apply 9354 (Call 9355 ("CAPR",ATy(qTy,CTy"Capability"), 9356 Var("cb",FTy 5)),qVar"state")), 9357 Apply 9358 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9359 qVar"state"))])), 9360 Apply 9361 (Call 9362 ("write'CAPR",ATy(qTy,qTy), 9363 TP[Call 9364 ("setOffset",CTy"Capability", 9365 TP[Const("nullCap",CTy"Capability"), 9366 Bop(Add, 9367 Bop(Add, 9368 Call 9369 ("getBase",F64, 9370 Apply 9371 (Call 9372 ("CAPR", 9373 ATy(qTy,CTy"Capability"), 9374 Var("cb",FTy 5)),qVar"state")), 9375 Call 9376 ("getOffset",F64, 9377 Apply 9378 (Call 9379 ("CAPR", 9380 ATy(qTy,CTy"Capability"), 9381 Var("cb",FTy 5)),qVar"state"))), 9382 Apply 9383 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9384 qVar"state"))]),Var("cd",FTy 5)]), 9385 qVar"state"))], 9386 Apply 9387 (Call 9388 ("write'CAPR",ATy(qTy,qTy), 9389 TP[Call 9390 ("setOffset",CTy"Capability", 9391 TP[Apply 9392 (Call 9393 ("CAPR",ATy(qTy,CTy"Capability"), 9394 Var("cb",FTy 5)),qVar"state"), 9395 Bop(Add, 9396 Call 9397 ("getOffset",F64, 9398 Apply 9399 (Call 9400 ("CAPR",ATy(qTy,CTy"Capability"), 9401 Var("cb",FTy 5)),qVar"state")), 9402 Apply 9403 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9404 qVar"state"))]),Var("cd",FTy 5)]), 9405 qVar"state")))) 9406; 9407val dfn'CIncOffsetImmediate_def = Def 9408 ("dfn'CIncOffsetImmediate", 9409 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("increment",FTy 11)], 9410 Close 9411 (qVar"state", 9412 ITB([(Mop(Not, 9413 Dest 9414 ("CU2",bTy, 9415 Dest 9416 ("Status",CTy"StatusRegister", 9417 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9418 Apply 9419 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9420 qVar"state")), 9421 (Apply 9422 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 9423 qVar"state"), 9424 Apply 9425 (Call 9426 ("SignalCapException",ATy(qTy,qTy), 9427 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9428 Var("cd",FTy 5)]),qVar"state")), 9429 (Apply 9430 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 9431 qVar"state"), 9432 Apply 9433 (Call 9434 ("SignalCapException",ATy(qTy,qTy), 9435 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9436 Var("cb",FTy 5)]),qVar"state")), 9437 (Bop(And, 9438 Call 9439 ("getTag",bTy, 9440 Apply 9441 (Call 9442 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9443 qVar"state")), 9444 Call 9445 ("getSealed",bTy, 9446 Apply 9447 (Call 9448 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9449 qVar"state"))), 9450 Apply 9451 (Call 9452 ("SignalCapException",ATy(qTy,qTy), 9453 TP[LC("capExcSeal",CTy"CapExceptionType"), 9454 Var("cb",FTy 5)]),qVar"state")), 9455 (Mop(Not, 9456 Call 9457 ("canRepOffset",bTy, 9458 TP[Apply 9459 (Call 9460 ("CAPR",ATy(qTy,CTy"Capability"), 9461 Var("cb",FTy 5)),qVar"state"), 9462 Bop(Add, 9463 Call 9464 ("getOffset",F64, 9465 Apply 9466 (Call 9467 ("CAPR",ATy(qTy,CTy"Capability"), 9468 Var("cb",FTy 5)),qVar"state")), 9469 Mop(SE F64,Var("increment",FTy 11)))])), 9470 Apply 9471 (Call 9472 ("write'CAPR",ATy(qTy,qTy), 9473 TP[Call 9474 ("setOffset",CTy"Capability", 9475 TP[Const("nullCap",CTy"Capability"), 9476 Bop(Add, 9477 Bop(Add, 9478 Call 9479 ("getBase",F64, 9480 Apply 9481 (Call 9482 ("CAPR", 9483 ATy(qTy,CTy"Capability"), 9484 Var("cb",FTy 5)),qVar"state")), 9485 Call 9486 ("getOffset",F64, 9487 Apply 9488 (Call 9489 ("CAPR", 9490 ATy(qTy,CTy"Capability"), 9491 Var("cb",FTy 5)),qVar"state"))), 9492 Mop(SE F64,Var("increment",FTy 11)))]), 9493 Var("cd",FTy 5)]),qVar"state"))], 9494 Apply 9495 (Call 9496 ("write'CAPR",ATy(qTy,qTy), 9497 TP[Call 9498 ("setOffset",CTy"Capability", 9499 TP[Apply 9500 (Call 9501 ("CAPR",ATy(qTy,CTy"Capability"), 9502 Var("cb",FTy 5)),qVar"state"), 9503 Bop(Add, 9504 Call 9505 ("getOffset",F64, 9506 Apply 9507 (Call 9508 ("CAPR",ATy(qTy,CTy"Capability"), 9509 Var("cb",FTy 5)),qVar"state")), 9510 Mop(SE F64,Var("increment",FTy 11)))]), 9511 Var("cd",FTy 5)]),qVar"state")))) 9512; 9513val dfn'CSetBounds_def = Def 9514 ("dfn'CSetBounds",TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)], 9515 Close 9516 (qVar"state", 9517 Let(Var("v",F64), 9518 Call 9519 ("getBase",F64, 9520 Apply 9521 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9522 qVar"state")), 9523 Let(Var("v1",F64), 9524 Bop(Add, 9525 Call 9526 ("getBase",F64, 9527 Apply 9528 (Call 9529 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9530 qVar"state")), 9531 Call 9532 ("getOffset",F64, 9533 Apply 9534 (Call 9535 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9536 qVar"state"))), 9537 ITB([(Mop(Not, 9538 Dest 9539 ("CU2",bTy, 9540 Dest 9541 ("Status",CTy"StatusRegister", 9542 Apply 9543 (Const("CP0",ATy(qTy,CTy"CP0")), 9544 qVar"state")))), 9545 Apply 9546 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9547 qVar"state")), 9548 (Apply 9549 (Call 9550 ("register_inaccessible",ATy(qTy,bTy), 9551 Var("cd",FTy 5)),qVar"state"), 9552 Apply 9553 (Call 9554 ("SignalCapException",ATy(qTy,qTy), 9555 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9556 Var("cd",FTy 5)]),qVar"state")), 9557 (Apply 9558 (Call 9559 ("register_inaccessible",ATy(qTy,bTy), 9560 Var("cb",FTy 5)),qVar"state"), 9561 Apply 9562 (Call 9563 ("SignalCapException",ATy(qTy,qTy), 9564 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9565 Var("cb",FTy 5)]),qVar"state")), 9566 (Mop(Not, 9567 Call 9568 ("getTag",bTy, 9569 Apply 9570 (Call 9571 ("CAPR",ATy(qTy,CTy"Capability"), 9572 Var("cb",FTy 5)),qVar"state"))), 9573 Apply 9574 (Call 9575 ("SignalCapException",ATy(qTy,qTy), 9576 TP[LC("capExcTag",CTy"CapExceptionType"), 9577 Var("cb",FTy 5)]),qVar"state")), 9578 (Call 9579 ("getSealed",bTy, 9580 Apply 9581 (Call 9582 ("CAPR",ATy(qTy,CTy"Capability"), 9583 Var("cb",FTy 5)),qVar"state")), 9584 Apply 9585 (Call 9586 ("SignalCapException",ATy(qTy,qTy), 9587 TP[LC("capExcSeal",CTy"CapExceptionType"), 9588 Var("cb",FTy 5)]),qVar"state")), 9589 (Bop(Ult,Var("v1",F64),Var("v",F64)), 9590 Apply 9591 (Call 9592 ("SignalCapException",ATy(qTy,qTy), 9593 TP[LC("capExcLength",CTy"CapExceptionType"), 9594 Var("cb",FTy 5)]),qVar"state")), 9595 (Bop(Ugt, 9596 Bop(Add,CC[LW(0,1),Var("v1",F64)], 9597 CC[LW(0,1), 9598 Apply 9599 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9600 qVar"state")]), 9601 Bop(Add,CC[LW(0,1),Var("v",F64)], 9602 CC[LW(0,1), 9603 Call 9604 ("getLength",F64, 9605 Apply 9606 (Call 9607 ("CAPR",ATy(qTy,CTy"Capability"), 9608 Var("cb",FTy 5)),qVar"state"))])), 9609 Apply 9610 (Call 9611 ("SignalCapException",ATy(qTy,qTy), 9612 TP[LC("capExcLength",CTy"CapExceptionType"), 9613 Var("cb",FTy 5)]),qVar"state"))], 9614 Apply 9615 (Call 9616 ("write'CAPR",ATy(qTy,qTy), 9617 TP[Call 9618 ("setBounds",CTy"Capability", 9619 TP[Apply 9620 (Call 9621 ("CAPR",ATy(qTy,CTy"Capability"), 9622 Var("cb",FTy 5)),qVar"state"), 9623 Apply 9624 (Call 9625 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9626 qVar"state")]),Var("cd",FTy 5)]), 9627 qVar"state")))))) 9628; 9629val dfn'CSetBoundsExact_def = Def 9630 ("dfn'CSetBoundsExact", 9631 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)], 9632 Close 9633 (qVar"state", 9634 Let(Var("v",F64), 9635 Call 9636 ("getBase",F64, 9637 Apply 9638 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9639 qVar"state")), 9640 Let(Var("v1",F64), 9641 Bop(Add, 9642 Call 9643 ("getBase",F64, 9644 Apply 9645 (Call 9646 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9647 qVar"state")), 9648 Call 9649 ("getOffset",F64, 9650 Apply 9651 (Call 9652 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9653 qVar"state"))), 9654 ITB([(Mop(Not, 9655 Dest 9656 ("CU2",bTy, 9657 Dest 9658 ("Status",CTy"StatusRegister", 9659 Apply 9660 (Const("CP0",ATy(qTy,CTy"CP0")), 9661 qVar"state")))), 9662 Apply 9663 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9664 qVar"state")), 9665 (Apply 9666 (Call 9667 ("register_inaccessible",ATy(qTy,bTy), 9668 Var("cd",FTy 5)),qVar"state"), 9669 Apply 9670 (Call 9671 ("SignalCapException",ATy(qTy,qTy), 9672 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9673 Var("cd",FTy 5)]),qVar"state")), 9674 (Apply 9675 (Call 9676 ("register_inaccessible",ATy(qTy,bTy), 9677 Var("cb",FTy 5)),qVar"state"), 9678 Apply 9679 (Call 9680 ("SignalCapException",ATy(qTy,qTy), 9681 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9682 Var("cb",FTy 5)]),qVar"state")), 9683 (Mop(Not, 9684 Call 9685 ("getTag",bTy, 9686 Apply 9687 (Call 9688 ("CAPR",ATy(qTy,CTy"Capability"), 9689 Var("cb",FTy 5)),qVar"state"))), 9690 Apply 9691 (Call 9692 ("SignalCapException",ATy(qTy,qTy), 9693 TP[LC("capExcTag",CTy"CapExceptionType"), 9694 Var("cb",FTy 5)]),qVar"state")), 9695 (Call 9696 ("getSealed",bTy, 9697 Apply 9698 (Call 9699 ("CAPR",ATy(qTy,CTy"Capability"), 9700 Var("cb",FTy 5)),qVar"state")), 9701 Apply 9702 (Call 9703 ("SignalCapException",ATy(qTy,qTy), 9704 TP[LC("capExcSeal",CTy"CapExceptionType"), 9705 Var("cb",FTy 5)]),qVar"state")), 9706 (Bop(Ult,Var("v1",F64),Var("v",F64)), 9707 Apply 9708 (Call 9709 ("SignalCapException",ATy(qTy,qTy), 9710 TP[LC("capExcLength",CTy"CapExceptionType"), 9711 Var("cb",FTy 5)]),qVar"state")), 9712 (Bop(Ugt, 9713 Bop(Add,CC[LW(0,1),Var("v1",F64)], 9714 CC[LW(0,1), 9715 Apply 9716 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9717 qVar"state")]), 9718 Bop(Add,CC[LW(0,1),Var("v",F64)], 9719 CC[LW(0,1), 9720 Call 9721 ("getLength",F64, 9722 Apply 9723 (Call 9724 ("CAPR",ATy(qTy,CTy"Capability"), 9725 Var("cb",FTy 5)),qVar"state"))])), 9726 Apply 9727 (Call 9728 ("SignalCapException",ATy(qTy,qTy), 9729 TP[LC("capExcLength",CTy"CapExceptionType"), 9730 Var("cb",FTy 5)]),qVar"state")), 9731 (Mop(Not, 9732 Call 9733 ("canRepBounds",bTy, 9734 TP[Apply 9735 (Call 9736 ("CAPR",ATy(qTy,CTy"Capability"), 9737 Var("cb",FTy 5)),qVar"state"), 9738 Apply 9739 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9740 qVar"state")])), 9741 Apply 9742 (Call 9743 ("SignalCapException",ATy(qTy,qTy), 9744 TP[LC("capExcInexact",CTy"CapExceptionType"), 9745 Var("cb",FTy 5)]),qVar"state"))], 9746 Apply 9747 (Call 9748 ("write'CAPR",ATy(qTy,qTy), 9749 TP[Call 9750 ("setBounds",CTy"Capability", 9751 TP[Apply 9752 (Call 9753 ("CAPR",ATy(qTy,CTy"Capability"), 9754 Var("cb",FTy 5)),qVar"state"), 9755 Apply 9756 (Call 9757 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 9758 qVar"state")]),Var("cd",FTy 5)]), 9759 qVar"state")))))) 9760; 9761val dfn'CSetBoundsImmediate_def = Def 9762 ("dfn'CSetBoundsImmediate", 9763 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("req_length",FTy 11)], 9764 Close 9765 (qVar"state", 9766 Let(Var("v",F64), 9767 Call 9768 ("getBase",F64, 9769 Apply 9770 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9771 qVar"state")), 9772 Let(Var("v1",F64), 9773 Bop(Add, 9774 Call 9775 ("getBase",F64, 9776 Apply 9777 (Call 9778 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9779 qVar"state")), 9780 Call 9781 ("getOffset",F64, 9782 Apply 9783 (Call 9784 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 9785 qVar"state"))), 9786 ITB([(Mop(Not, 9787 Dest 9788 ("CU2",bTy, 9789 Dest 9790 ("Status",CTy"StatusRegister", 9791 Apply 9792 (Const("CP0",ATy(qTy,CTy"CP0")), 9793 qVar"state")))), 9794 Apply 9795 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9796 qVar"state")), 9797 (Apply 9798 (Call 9799 ("register_inaccessible",ATy(qTy,bTy), 9800 Var("cd",FTy 5)),qVar"state"), 9801 Apply 9802 (Call 9803 ("SignalCapException",ATy(qTy,qTy), 9804 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9805 Var("cd",FTy 5)]),qVar"state")), 9806 (Apply 9807 (Call 9808 ("register_inaccessible",ATy(qTy,bTy), 9809 Var("cb",FTy 5)),qVar"state"), 9810 Apply 9811 (Call 9812 ("SignalCapException",ATy(qTy,qTy), 9813 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9814 Var("cb",FTy 5)]),qVar"state")), 9815 (Mop(Not, 9816 Call 9817 ("getTag",bTy, 9818 Apply 9819 (Call 9820 ("CAPR",ATy(qTy,CTy"Capability"), 9821 Var("cb",FTy 5)),qVar"state"))), 9822 Apply 9823 (Call 9824 ("SignalCapException",ATy(qTy,qTy), 9825 TP[LC("capExcTag",CTy"CapExceptionType"), 9826 Var("cb",FTy 5)]),qVar"state")), 9827 (Call 9828 ("getSealed",bTy, 9829 Apply 9830 (Call 9831 ("CAPR",ATy(qTy,CTy"Capability"), 9832 Var("cb",FTy 5)),qVar"state")), 9833 Apply 9834 (Call 9835 ("SignalCapException",ATy(qTy,qTy), 9836 TP[LC("capExcSeal",CTy"CapExceptionType"), 9837 Var("cb",FTy 5)]),qVar"state")), 9838 (Bop(Ult,Var("v1",F64),Var("v",F64)), 9839 Apply 9840 (Call 9841 ("SignalCapException",ATy(qTy,qTy), 9842 TP[LC("capExcLength",CTy"CapExceptionType"), 9843 Var("cb",FTy 5)]),qVar"state")), 9844 (Bop(Ugt, 9845 Bop(Add,CC[LW(0,1),Var("v1",F64)], 9846 Mop(Cast(FTy 65),Var("req_length",FTy 11))), 9847 Bop(Add,CC[LW(0,1),Var("v",F64)], 9848 CC[LW(0,1), 9849 Call 9850 ("getLength",F64, 9851 Apply 9852 (Call 9853 ("CAPR",ATy(qTy,CTy"Capability"), 9854 Var("cb",FTy 5)),qVar"state"))])), 9855 Apply 9856 (Call 9857 ("SignalCapException",ATy(qTy,qTy), 9858 TP[LC("capExcLength",CTy"CapExceptionType"), 9859 Var("cb",FTy 5)]),qVar"state"))], 9860 Apply 9861 (Call 9862 ("write'CAPR",ATy(qTy,qTy), 9863 TP[Call 9864 ("setBounds",CTy"Capability", 9865 TP[Apply 9866 (Call 9867 ("CAPR",ATy(qTy,CTy"Capability"), 9868 Var("cb",FTy 5)),qVar"state"), 9869 Mop(Cast F64,Var("req_length",FTy 11))]), 9870 Var("cd",FTy 5)]),qVar"state")))))) 9871; 9872val dfn'CClearRegs_def = Def 9873 ("dfn'CClearRegs",TP[Var("regset",FTy 5),Var("mask",F16)], 9874 Close 9875 (qVar"state", 9876 ITE(Mop(Not, 9877 Dest 9878 ("CU2",bTy, 9879 Dest 9880 ("Status",CTy"StatusRegister", 9881 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9882 Apply 9883 (Const("SignalCP2UnusableException",ATy(qTy,qTy)),qVar"state"), 9884 CS(Var("regset",FTy 5), 9885 [(LW(0,5), 9886 Mop(Snd, 9887 Apply 9888 (For(TP[LN 0,LN 15, 9889 Close 9890 (nVar"i", 9891 Close 9892 (qVar"state", 9893 TP[LU, 9894 ITE(Bop(Bit,Var("mask",F16),nVar"i"), 9895 Apply 9896 (Call 9897 ("write'GPR",ATy(qTy,qTy), 9898 TP[LW(0,64), 9899 Mop(Cast(FTy 5),nVar"i")]), 9900 qVar"state"),qVar"state")]))]), 9901 qVar"state"))), 9902 (LW(1,5), 9903 Mop(Snd, 9904 Apply 9905 (For(TP[LN 16,LN 31, 9906 Close 9907 (nVar"i", 9908 Close 9909 (qVar"state", 9910 TP[LU, 9911 ITE(Bop(Bit,Var("mask",F16), 9912 Bop(Sub,nVar"i",LN 16)), 9913 Apply 9914 (Call 9915 ("write'GPR",ATy(qTy,qTy), 9916 TP[LW(0,64), 9917 Mop(Cast(FTy 5),nVar"i")]), 9918 qVar"state"),qVar"state")]))]), 9919 qVar"state"))), 9920 (LW(2,5), 9921 Mop(Snd, 9922 Apply 9923 (For(TP[LN 0,LN 15, 9924 Close 9925 (nVar"i", 9926 Close 9927 (qVar"state", 9928 TP[LU, 9929 ITE(Bop(Bit,Var("mask",F16),nVar"i"), 9930 Apply 9931 (Call 9932 ("write'CAPR",ATy(qTy,qTy), 9933 TP[Const 9934 ("nullCap", 9935 CTy"Capability"), 9936 Mop(Cast(FTy 5),nVar"i")]), 9937 qVar"state"),qVar"state")]))]), 9938 qVar"state"))), 9939 (LW(3,5), 9940 Let(TP[bVar"v",qVar"s"], 9941 Apply 9942 (Call 9943 ("register_inaccessible_write_attempt", 9944 ATy(qTy,PTy(bTy,qTy)),Var("mask",F16)), 9945 qVar"state"), 9946 ITE(Mop(Not,bVar"v"), 9947 Mop(Snd, 9948 Apply 9949 (For(TP[LN 16,LN 31, 9950 Close 9951 (nVar"i", 9952 Close 9953 (qVar"state", 9954 TP[LU, 9955 ITE(Bop(Bit,Var("mask",F16), 9956 Bop(Sub,nVar"i", 9957 LN 16)), 9958 Apply 9959 (Call 9960 ("write'CAPR", 9961 ATy(qTy,qTy), 9962 TP[Const 9963 ("nullCap", 9964 CTy"Capability"), 9965 Mop(Cast(FTy 5), 9966 nVar"i")]), 9967 qVar"state"), 9968 qVar"state")]))]), 9969 qVar"s")),qVar"s"))), 9970 (AVar(FTy 5), 9971 Apply 9972 (Call 9973 ("SignalException",ATy(qTy,qTy), 9974 LC("ResI",CTy"ExceptionType")),qVar"state"))])))) 9975; 9976val dfn'CClearTag_def = Def 9977 ("dfn'CClearTag",TP[Var("cd",FTy 5),Var("cb",FTy 5)], 9978 Close 9979 (qVar"state", 9980 ITB([(Mop(Not, 9981 Dest 9982 ("CU2",bTy, 9983 Dest 9984 ("Status",CTy"StatusRegister", 9985 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 9986 Apply 9987 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 9988 qVar"state")), 9989 (Apply 9990 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 9991 qVar"state"), 9992 Apply 9993 (Call 9994 ("SignalCapException",ATy(qTy,qTy), 9995 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 9996 Var("cd",FTy 5)]),qVar"state")), 9997 (Apply 9998 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 9999 qVar"state"), 10000 Apply 10001 (Call 10002 ("SignalCapException",ATy(qTy,qTy), 10003 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10004 Var("cb",FTy 5)]),qVar"state"))], 10005 Apply 10006 (Call 10007 ("write'CAPR",ATy(qTy,qTy), 10008 TP[Call 10009 ("setTag",CTy"Capability", 10010 TP[Apply 10011 (Call 10012 ("CAPR",ATy(qTy,CTy"Capability"), 10013 Var("cb",FTy 5)),qVar"state"),LF]), 10014 Var("cd",FTy 5)]),qVar"state")))) 10015; 10016val dfn'CAndPerm_def = Def 10017 ("dfn'CAndPerm",TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)], 10018 Close 10019 (qVar"state", 10020 ITB([(Mop(Not, 10021 Dest 10022 ("CU2",bTy, 10023 Dest 10024 ("Status",CTy"StatusRegister", 10025 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10026 Apply 10027 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 10028 qVar"state")), 10029 (Apply 10030 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 10031 qVar"state"), 10032 Apply 10033 (Call 10034 ("SignalCapException",ATy(qTy,qTy), 10035 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10036 Var("cd",FTy 5)]),qVar"state")), 10037 (Apply 10038 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 10039 qVar"state"), 10040 Apply 10041 (Call 10042 ("SignalCapException",ATy(qTy,qTy), 10043 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10044 Var("cb",FTy 5)]),qVar"state")), 10045 (Mop(Not, 10046 Call 10047 ("getTag",bTy, 10048 Apply 10049 (Call 10050 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10051 qVar"state"))), 10052 Apply 10053 (Call 10054 ("SignalCapException",ATy(qTy,qTy), 10055 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 10056 qVar"state")), 10057 (Call 10058 ("getSealed",bTy, 10059 Apply 10060 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10061 qVar"state")), 10062 Apply 10063 (Call 10064 ("SignalCapException",ATy(qTy,qTy), 10065 TP[LC("capExcSeal",CTy"CapExceptionType"), 10066 Var("cb",FTy 5)]),qVar"state"))], 10067 Apply 10068 (Call 10069 ("write'CAPR",ATy(qTy,qTy), 10070 TP[Call 10071 ("setUPerms",CTy"Capability", 10072 TP[Call 10073 ("setPerms",CTy"Capability", 10074 TP[Apply 10075 (Call 10076 ("CAPR",ATy(qTy,CTy"Capability"), 10077 Var("cb",FTy 5)),qVar"state"), 10078 Call 10079 ("rec'Perms",CTy"Perms", 10080 Mop(Cast F32, 10081 Bop(BAnd, 10082 EX(Call 10083 ("reg'Perms",F32, 10084 Call 10085 ("getPerms",CTy"Perms", 10086 Apply 10087 (Call 10088 ("CAPR", 10089 ATy(qTy, 10090 CTy"Capability"), 10091 Var("cb",FTy 5)), 10092 qVar"state"))), 10093 LN 14,LN 0,FTy 15), 10094 EX(Apply 10095 (Call 10096 ("GPR",ATy(qTy,F64), 10097 Var("rt",FTy 5)), 10098 qVar"state"),LN 14,LN 0, 10099 FTy 15))))]), 10100 Call 10101 ("rec'UPerms",CTy"UPerms", 10102 Mop(Cast F32, 10103 Bop(BAnd, 10104 EX(Call 10105 ("reg'UPerms",F32, 10106 Call 10107 ("getUPerms",CTy"UPerms", 10108 Apply 10109 (Call 10110 ("CAPR", 10111 ATy(qTy,CTy"Capability"), 10112 Var("cb",FTy 5)), 10113 qVar"state"))), 10114 Bop(Sub,Const("UPERMS",nTy),LN 1), 10115 LN 0,F16), 10116 EX(Apply 10117 (Call 10118 ("GPR",ATy(qTy,F64), 10119 Var("rt",FTy 5)),qVar"state"), 10120 Bop(Add,Const("UPERMS",nTy),LN 14), 10121 LN 15,F16))))]),Var("cd",FTy 5)]), 10122 qVar"state")))) 10123; 10124val dfn'CSetOffset_def = Def 10125 ("dfn'CSetOffset",TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)], 10126 Close 10127 (qVar"state", 10128 ITB([(Mop(Not, 10129 Dest 10130 ("CU2",bTy, 10131 Dest 10132 ("Status",CTy"StatusRegister", 10133 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10134 Apply 10135 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 10136 qVar"state")), 10137 (Apply 10138 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 10139 qVar"state"), 10140 Apply 10141 (Call 10142 ("SignalCapException",ATy(qTy,qTy), 10143 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10144 Var("cd",FTy 5)]),qVar"state")), 10145 (Apply 10146 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 10147 qVar"state"), 10148 Apply 10149 (Call 10150 ("SignalCapException",ATy(qTy,qTy), 10151 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10152 Var("cb",FTy 5)]),qVar"state")), 10153 (Bop(And, 10154 Call 10155 ("getTag",bTy, 10156 Apply 10157 (Call 10158 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10159 qVar"state")), 10160 Call 10161 ("getSealed",bTy, 10162 Apply 10163 (Call 10164 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10165 qVar"state"))), 10166 Apply 10167 (Call 10168 ("SignalCapException",ATy(qTy,qTy), 10169 TP[LC("capExcSeal",CTy"CapExceptionType"), 10170 Var("cb",FTy 5)]),qVar"state")), 10171 (Mop(Not, 10172 Call 10173 ("canRepOffset",bTy, 10174 TP[Apply 10175 (Call 10176 ("CAPR",ATy(qTy,CTy"Capability"), 10177 Var("cb",FTy 5)),qVar"state"), 10178 Apply 10179 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10180 qVar"state")])), 10181 Apply 10182 (Call 10183 ("write'CAPR",ATy(qTy,qTy), 10184 TP[Call 10185 ("setOffset",CTy"Capability", 10186 TP[Const("nullCap",CTy"Capability"), 10187 Bop(Add, 10188 Call 10189 ("getBase",F64, 10190 Apply 10191 (Call 10192 ("CAPR",ATy(qTy,CTy"Capability"), 10193 Var("cb",FTy 5)),qVar"state")), 10194 Apply 10195 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10196 qVar"state"))]),Var("cd",FTy 5)]), 10197 qVar"state"))], 10198 Apply 10199 (Call 10200 ("write'CAPR",ATy(qTy,qTy), 10201 TP[Call 10202 ("setOffset",CTy"Capability", 10203 TP[Apply 10204 (Call 10205 ("CAPR",ATy(qTy,CTy"Capability"), 10206 Var("cb",FTy 5)),qVar"state"), 10207 Apply 10208 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10209 qVar"state")]),Var("cd",FTy 5)]),qVar"state")))) 10210; 10211val dfn'CSub_def = Def 10212 ("dfn'CSub",TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5)], 10213 Close 10214 (qVar"state", 10215 ITB([(Mop(Not, 10216 Dest 10217 ("CU2",bTy, 10218 Dest 10219 ("Status",CTy"StatusRegister", 10220 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10221 Apply 10222 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 10223 qVar"state")), 10224 (Apply 10225 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 10226 qVar"state"), 10227 Apply 10228 (Call 10229 ("SignalCapException",ATy(qTy,qTy), 10230 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10231 Var("cb",FTy 5)]),qVar"state")), 10232 (Apply 10233 (Call("register_inaccessible",ATy(qTy,bTy),Var("ct",FTy 5)), 10234 qVar"state"), 10235 Apply 10236 (Call 10237 ("SignalCapException",ATy(qTy,qTy), 10238 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10239 Var("ct",FTy 5)]),qVar"state"))], 10240 Apply 10241 (Call 10242 ("write'GPR",ATy(qTy,qTy), 10243 TP[Bop(Sub, 10244 Bop(Sub, 10245 Bop(Add, 10246 Call 10247 ("getBase",F64, 10248 Apply 10249 (Call 10250 ("CAPR",ATy(qTy,CTy"Capability"), 10251 Var("cb",FTy 5)),qVar"state")), 10252 Call 10253 ("getOffset",F64, 10254 Apply 10255 (Call 10256 ("CAPR",ATy(qTy,CTy"Capability"), 10257 Var("cb",FTy 5)),qVar"state"))), 10258 Call 10259 ("getBase",F64, 10260 Apply 10261 (Call 10262 ("CAPR",ATy(qTy,CTy"Capability"), 10263 Var("ct",FTy 5)),qVar"state"))), 10264 Call 10265 ("getOffset",F64, 10266 Apply 10267 (Call 10268 ("CAPR",ATy(qTy,CTy"Capability"), 10269 Var("ct",FTy 5)),qVar"state"))), 10270 Var("rd",FTy 5)]),qVar"state")))) 10271; 10272val dfn'CCheckPerm_def = Def 10273 ("dfn'CCheckPerm",TP[Var("cs",FTy 5),Var("rt",FTy 5)], 10274 Close 10275 (qVar"state", 10276 ITB([(Mop(Not, 10277 Dest 10278 ("CU2",bTy, 10279 Dest 10280 ("Status",CTy"StatusRegister", 10281 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10282 Apply 10283 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 10284 qVar"state")), 10285 (Apply 10286 (Call("register_inaccessible",ATy(qTy,bTy),Var("cs",FTy 5)), 10287 qVar"state"), 10288 Apply 10289 (Call 10290 ("SignalCapException",ATy(qTy,qTy), 10291 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10292 Var("cs",FTy 5)]),qVar"state")), 10293 (Mop(Not, 10294 Call 10295 ("getTag",bTy, 10296 Apply 10297 (Call 10298 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 10299 qVar"state"))), 10300 Apply 10301 (Call 10302 ("SignalCapException",ATy(qTy,qTy), 10303 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cs",FTy 5)]), 10304 qVar"state")), 10305 (Mop(Not, 10306 EQ(Bop(BAnd, 10307 EX(Call 10308 ("reg'Perms",F32, 10309 Call 10310 ("getPerms",CTy"Perms", 10311 Apply 10312 (Call 10313 ("CAPR",ATy(qTy,CTy"Capability"), 10314 Var("cs",FTy 5)),qVar"state"))), 10315 LN 14,LN 0,FTy 15), 10316 EX(Apply 10317 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10318 qVar"state"),LN 14,LN 0,FTy 15)), 10319 EX(Apply 10320 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10321 qVar"state"),LN 14,LN 0,FTy 15))), 10322 Apply 10323 (Call 10324 ("SignalCapException",ATy(qTy,qTy), 10325 TP[LC("capExcUser",CTy"CapExceptionType"), 10326 Var("cs",FTy 5)]),qVar"state")), 10327 (Mop(Not, 10328 EQ(Bop(BAnd, 10329 EX(Call 10330 ("reg'UPerms",F32, 10331 Call 10332 ("getUPerms",CTy"UPerms", 10333 Apply 10334 (Call 10335 ("CAPR",ATy(qTy,CTy"Capability"), 10336 Var("cs",FTy 5)),qVar"state"))), 10337 Bop(Sub,Const("UPERMS",nTy),LN 1),LN 0,F16), 10338 EX(Apply 10339 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10340 qVar"state"), 10341 Bop(Add,Const("UPERMS",nTy),LN 14),LN 15,F16)), 10342 EX(Apply 10343 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10344 qVar"state"),Bop(Add,Const("UPERMS",nTy),LN 14), 10345 LN 15,F16))), 10346 Apply 10347 (Call 10348 ("SignalCapException",ATy(qTy,qTy), 10349 TP[LC("capExcUser",CTy"CapExceptionType"), 10350 Var("cs",FTy 5)]),qVar"state")), 10351 (Mop(Not, 10352 EQ(EX(Apply 10353 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10354 qVar"state"),LN 63, 10355 Bop(Add,Const("UPERMS",nTy),LN 15),FTy 33),LW(0,33))), 10356 Apply 10357 (Call 10358 ("SignalCapException",ATy(qTy,qTy), 10359 TP[LC("capExcUser",CTy"CapExceptionType"), 10360 Var("cs",FTy 5)]),qVar"state"))],qVar"state"))) 10361; 10362val dfn'CCheckType_def = Def 10363 ("dfn'CCheckType",TP[Var("cs",FTy 5),Var("cb",FTy 5)], 10364 Close 10365 (qVar"state", 10366 ITB([(Mop(Not, 10367 Dest 10368 ("CU2",bTy, 10369 Dest 10370 ("Status",CTy"StatusRegister", 10371 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10372 Apply 10373 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 10374 qVar"state")), 10375 (Apply 10376 (Call("register_inaccessible",ATy(qTy,bTy),Var("cs",FTy 5)), 10377 qVar"state"), 10378 Apply 10379 (Call 10380 ("SignalCapException",ATy(qTy,qTy), 10381 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10382 Var("cs",FTy 5)]),qVar"state")), 10383 (Apply 10384 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 10385 qVar"state"), 10386 Apply 10387 (Call 10388 ("SignalCapException",ATy(qTy,qTy), 10389 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10390 Var("cb",FTy 5)]),qVar"state")), 10391 (Mop(Not, 10392 Call 10393 ("getTag",bTy, 10394 Apply 10395 (Call 10396 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 10397 qVar"state"))), 10398 Apply 10399 (Call 10400 ("SignalCapException",ATy(qTy,qTy), 10401 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cs",FTy 5)]), 10402 qVar"state")), 10403 (Mop(Not, 10404 Call 10405 ("getTag",bTy, 10406 Apply 10407 (Call 10408 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10409 qVar"state"))), 10410 Apply 10411 (Call 10412 ("SignalCapException",ATy(qTy,qTy), 10413 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 10414 qVar"state")), 10415 (Mop(Not, 10416 Call 10417 ("getSealed",bTy, 10418 Apply 10419 (Call 10420 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 10421 qVar"state"))), 10422 Apply 10423 (Call 10424 ("SignalCapException",ATy(qTy,qTy), 10425 TP[LC("capExcSeal",CTy"CapExceptionType"), 10426 Var("cs",FTy 5)]),qVar"state")), 10427 (Mop(Not, 10428 Call 10429 ("getSealed",bTy, 10430 Apply 10431 (Call 10432 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10433 qVar"state"))), 10434 Apply 10435 (Call 10436 ("SignalCapException",ATy(qTy,qTy), 10437 TP[LC("capExcSeal",CTy"CapExceptionType"), 10438 Var("cb",FTy 5)]),qVar"state")), 10439 (Mop(Not, 10440 EQ(Call 10441 ("getType",FTy 24, 10442 Apply 10443 (Call 10444 ("CAPR",ATy(qTy,CTy"Capability"), 10445 Var("cs",FTy 5)),qVar"state")), 10446 Call 10447 ("getType",FTy 24, 10448 Apply 10449 (Call 10450 ("CAPR",ATy(qTy,CTy"Capability"), 10451 Var("cb",FTy 5)),qVar"state")))), 10452 Apply 10453 (Call 10454 ("SignalCapException",ATy(qTy,qTy), 10455 TP[LC("capExcType",CTy"CapExceptionType"), 10456 Var("cs",FTy 5)]),qVar"state"))],qVar"state"))) 10457; 10458val dfn'CFromPtr_def = Def 10459 ("dfn'CFromPtr",TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)], 10460 Close 10461 (qVar"state", 10462 ITB([(Mop(Not, 10463 Dest 10464 ("CU2",bTy, 10465 Dest 10466 ("Status",CTy"StatusRegister", 10467 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10468 Apply 10469 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 10470 qVar"state")), 10471 (Apply 10472 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 10473 qVar"state"), 10474 Apply 10475 (Call 10476 ("SignalCapException",ATy(qTy,qTy), 10477 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10478 Var("cd",FTy 5)]),qVar"state")), 10479 (Apply 10480 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 10481 qVar"state"), 10482 Apply 10483 (Call 10484 ("SignalCapException",ATy(qTy,qTy), 10485 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10486 Var("cb",FTy 5)]),qVar"state")), 10487 (EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 10488 LW(0,64)), 10489 Apply 10490 (Call 10491 ("write'CAPR",ATy(qTy,qTy), 10492 TP[Const("nullCap",CTy"Capability"),Var("cd",FTy 5)]), 10493 qVar"state")), 10494 (Mop(Not, 10495 Call 10496 ("getTag",bTy, 10497 Apply 10498 (Call 10499 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10500 qVar"state"))), 10501 Apply 10502 (Call 10503 ("SignalCapException",ATy(qTy,qTy), 10504 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 10505 qVar"state")), 10506 (Call 10507 ("getSealed",bTy, 10508 Apply 10509 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10510 qVar"state")), 10511 Apply 10512 (Call 10513 ("SignalCapException",ATy(qTy,qTy), 10514 TP[LC("capExcSeal",CTy"CapExceptionType"), 10515 Var("cb",FTy 5)]),qVar"state")), 10516 (Mop(Not, 10517 Call 10518 ("canRepOffset",bTy, 10519 TP[Apply 10520 (Call 10521 ("CAPR",ATy(qTy,CTy"Capability"), 10522 Var("cb",FTy 5)),qVar"state"), 10523 Apply 10524 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10525 qVar"state")])), 10526 Apply 10527 (Call 10528 ("write'CAPR",ATy(qTy,qTy), 10529 TP[Call 10530 ("setOffset",CTy"Capability", 10531 TP[Const("nullCap",CTy"Capability"), 10532 Bop(Add, 10533 Call 10534 ("getBase",F64, 10535 Apply 10536 (Call 10537 ("CAPR",ATy(qTy,CTy"Capability"), 10538 Var("cb",FTy 5)),qVar"state")), 10539 Apply 10540 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10541 qVar"state"))]),Var("cd",FTy 5)]), 10542 qVar"state"))], 10543 Apply 10544 (Call 10545 ("write'CAPR",ATy(qTy,qTy), 10546 TP[Call 10547 ("setOffset",CTy"Capability", 10548 TP[Apply 10549 (Call 10550 ("CAPR",ATy(qTy,CTy"Capability"), 10551 Var("cb",FTy 5)),qVar"state"), 10552 Apply 10553 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 10554 qVar"state")]),Var("cd",FTy 5)]),qVar"state")))) 10555; 10556val dfn'CToPtr_def = Def 10557 ("dfn'CToPtr",TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5)], 10558 Close 10559 (qVar"state", 10560 ITB([(Mop(Not, 10561 Dest 10562 ("CU2",bTy, 10563 Dest 10564 ("Status",CTy"StatusRegister", 10565 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10566 Apply 10567 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 10568 qVar"state")), 10569 (Apply 10570 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 10571 qVar"state"), 10572 Apply 10573 (Call 10574 ("SignalCapException",ATy(qTy,qTy), 10575 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10576 Var("cb",FTy 5)]),qVar"state")), 10577 (Apply 10578 (Call("register_inaccessible",ATy(qTy,bTy),Var("ct",FTy 5)), 10579 qVar"state"), 10580 Apply 10581 (Call 10582 ("SignalCapException",ATy(qTy,qTy), 10583 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10584 Var("ct",FTy 5)]),qVar"state")), 10585 (Mop(Not, 10586 Call 10587 ("getTag",bTy, 10588 Apply 10589 (Call 10590 ("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 10591 qVar"state"))), 10592 Apply 10593 (Call 10594 ("SignalCapException",ATy(qTy,qTy), 10595 TP[LC("capExcTag",CTy"CapExceptionType"),Var("ct",FTy 5)]), 10596 qVar"state")), 10597 (Mop(Not, 10598 Call 10599 ("getTag",bTy, 10600 Apply 10601 (Call 10602 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10603 qVar"state"))), 10604 Apply 10605 (Call("write'GPR",ATy(qTy,qTy),TP[LW(0,64),Var("rd",FTy 5)]), 10606 qVar"state"))], 10607 Apply 10608 (Call 10609 ("write'GPR",ATy(qTy,qTy), 10610 TP[Bop(Sub, 10611 Bop(Add, 10612 Call 10613 ("getBase",F64, 10614 Apply 10615 (Call 10616 ("CAPR",ATy(qTy,CTy"Capability"), 10617 Var("cb",FTy 5)),qVar"state")), 10618 Call 10619 ("getOffset",F64, 10620 Apply 10621 (Call 10622 ("CAPR",ATy(qTy,CTy"Capability"), 10623 Var("cb",FTy 5)),qVar"state"))), 10624 Call 10625 ("getBase",F64, 10626 Apply 10627 (Call 10628 ("CAPR",ATy(qTy,CTy"Capability"), 10629 Var("ct",FTy 5)),qVar"state"))), 10630 Var("rd",FTy 5)]),qVar"state")))) 10631; 10632val dfn'CPtrCmp_def = Def 10633 ("dfn'CPtrCmp", 10634 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5),Var("t",FTy 3)], 10635 Close 10636 (qVar"state", 10637 ITB([(Mop(Not, 10638 Dest 10639 ("CU2",bTy, 10640 Dest 10641 ("Status",CTy"StatusRegister", 10642 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10643 Apply 10644 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 10645 qVar"state")), 10646 (Apply 10647 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 10648 qVar"state"), 10649 Apply 10650 (Call 10651 ("SignalCapException",ATy(qTy,qTy), 10652 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10653 Var("cb",FTy 5)]),qVar"state")), 10654 (Apply 10655 (Call("register_inaccessible",ATy(qTy,bTy),Var("ct",FTy 5)), 10656 qVar"state"), 10657 Apply 10658 (Call 10659 ("SignalCapException",ATy(qTy,qTy), 10660 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10661 Var("ct",FTy 5)]),qVar"state"))], 10662 Let(Var("v",CTy"Capability"), 10663 Apply 10664 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 10665 qVar"state"), 10666 Let(Var("v0",CTy"Capability"), 10667 Apply 10668 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 10669 qVar"state"), 10670 Let(Var("s", 10671 PTy(bTy,PTy(bTy,PTy(bTy,PTy(bTy,PTy(bTy,qTy)))))), 10672 ITE(Mop(Not, 10673 EQ(Call 10674 ("getTag",bTy,Var("v",CTy"Capability")), 10675 Call 10676 ("getTag",bTy,Var("v0",CTy"Capability")))), 10677 ITE(Call("getTag",bTy,Var("v",CTy"Capability")), 10678 TP[LF,LF,LT,LT,LF,qVar"state"], 10679 TP[LT,LT,LF,LF,LF,qVar"state"]), 10680 Let(Var("cursor1",F64), 10681 Bop(Add, 10682 Call 10683 ("getBase",F64, 10684 Var("v",CTy"Capability")), 10685 Call 10686 ("getOffset",F64, 10687 Var("v",CTy"Capability"))), 10688 Let(Var("cursor2",F64), 10689 Bop(Add, 10690 Call 10691 ("getBase",F64, 10692 Var("v0",CTy"Capability")), 10693 Call 10694 ("getOffset",F64, 10695 Var("v0",CTy"Capability"))), 10696 TP[Bop(Ult,Var("cursor1",F64), 10697 Var("cursor2",F64)), 10698 Bop(Lt,Var("cursor1",F64), 10699 Var("cursor2",F64)), 10700 Bop(Ugt,Var("cursor1",F64), 10701 Var("cursor2",F64)), 10702 Bop(Gt,Var("cursor1",F64), 10703 Var("cursor2",F64)), 10704 EQ(Var("cursor1",F64), 10705 Var("cursor2",F64)),qVar"state"]))), 10706 CS(Var("t",FTy 3), 10707 [(LW(0,3), 10708 Apply 10709 (Call 10710 ("write'GPR",ATy(qTy,qTy), 10711 TP[Mop(Cast F64, 10712 Mop(Fst, 10713 Mop(Snd, 10714 Mop(Snd, 10715 Mop(Snd, 10716 Mop(Snd, 10717 Var("s", 10718 PTy(bTy, 10719 PTy(bTy, 10720 PTy(bTy, 10721 PTy(bTy, 10722 PTy(bTy, 10723 qTy)))))))))))), 10724 Var("rd",FTy 5)]), 10725 Mop(Snd, 10726 Mop(Snd, 10727 Mop(Snd, 10728 Mop(Snd, 10729 Mop(Snd, 10730 Var("s", 10731 PTy(bTy, 10732 PTy(bTy, 10733 PTy(bTy, 10734 PTy(bTy, 10735 PTy(bTy, 10736 qTy))))))))))))), 10737 (LW(1,3), 10738 Apply 10739 (Call 10740 ("write'GPR",ATy(qTy,qTy), 10741 TP[Mop(Cast F64, 10742 Mop(Not, 10743 Mop(Fst, 10744 Mop(Snd, 10745 Mop(Snd, 10746 Mop(Snd, 10747 Mop(Snd, 10748 Var("s", 10749 PTy(bTy, 10750 PTy(bTy, 10751 PTy(bTy, 10752 PTy(bTy, 10753 PTy(bTy, 10754 qTy))))))))))))), 10755 Var("rd",FTy 5)]), 10756 Mop(Snd, 10757 Mop(Snd, 10758 Mop(Snd, 10759 Mop(Snd, 10760 Mop(Snd, 10761 Var("s", 10762 PTy(bTy, 10763 PTy(bTy, 10764 PTy(bTy, 10765 PTy(bTy, 10766 PTy(bTy, 10767 qTy))))))))))))), 10768 (LW(2,3), 10769 Apply 10770 (Call 10771 ("write'GPR",ATy(qTy,qTy), 10772 TP[Mop(Cast F64, 10773 Mop(Fst, 10774 Mop(Snd, 10775 Var("s", 10776 PTy(bTy, 10777 PTy(bTy, 10778 PTy(bTy, 10779 PTy(bTy, 10780 PTy(bTy, 10781 qTy))))))))), 10782 Var("rd",FTy 5)]), 10783 Mop(Snd, 10784 Mop(Snd, 10785 Mop(Snd, 10786 Mop(Snd, 10787 Mop(Snd, 10788 Var("s", 10789 PTy(bTy, 10790 PTy(bTy, 10791 PTy(bTy, 10792 PTy(bTy, 10793 PTy(bTy, 10794 qTy))))))))))))), 10795 (LW(3,3), 10796 Apply 10797 (Call 10798 ("write'GPR",ATy(qTy,qTy), 10799 TP[Mop(Cast F64, 10800 Bop(Or, 10801 Mop(Fst, 10802 Mop(Snd, 10803 Var("s", 10804 PTy(bTy, 10805 PTy(bTy, 10806 PTy(bTy, 10807 PTy(bTy, 10808 PTy(bTy, 10809 qTy)))))))), 10810 Mop(Fst, 10811 Mop(Snd, 10812 Mop(Snd, 10813 Mop(Snd, 10814 Mop(Snd, 10815 Var("s", 10816 PTy(bTy, 10817 PTy(bTy, 10818 PTy(bTy, 10819 PTy(bTy, 10820 PTy(bTy, 10821 qTy))))))))))))), 10822 Var("rd",FTy 5)]), 10823 Mop(Snd, 10824 Mop(Snd, 10825 Mop(Snd, 10826 Mop(Snd, 10827 Mop(Snd, 10828 Var("s", 10829 PTy(bTy, 10830 PTy(bTy, 10831 PTy(bTy, 10832 PTy(bTy, 10833 PTy(bTy, 10834 qTy))))))))))))), 10835 (LW(4,3), 10836 Apply 10837 (Call 10838 ("write'GPR",ATy(qTy,qTy), 10839 TP[Mop(Cast F64, 10840 Mop(Fst, 10841 Var("s", 10842 PTy(bTy, 10843 PTy(bTy, 10844 PTy(bTy, 10845 PTy(bTy, 10846 PTy(bTy, 10847 qTy)))))))), 10848 Var("rd",FTy 5)]), 10849 Mop(Snd, 10850 Mop(Snd, 10851 Mop(Snd, 10852 Mop(Snd, 10853 Mop(Snd, 10854 Var("s", 10855 PTy(bTy, 10856 PTy(bTy, 10857 PTy(bTy, 10858 PTy(bTy, 10859 PTy(bTy, 10860 qTy))))))))))))), 10861 (LW(5,3), 10862 Apply 10863 (Call 10864 ("write'GPR",ATy(qTy,qTy), 10865 TP[Mop(Cast F64, 10866 Bop(Or, 10867 Mop(Fst, 10868 Var("s", 10869 PTy(bTy, 10870 PTy(bTy, 10871 PTy(bTy, 10872 PTy(bTy, 10873 PTy(bTy, 10874 qTy))))))), 10875 Mop(Fst, 10876 Mop(Snd, 10877 Mop(Snd, 10878 Mop(Snd, 10879 Mop(Snd, 10880 Var("s", 10881 PTy(bTy, 10882 PTy(bTy, 10883 PTy(bTy, 10884 PTy(bTy, 10885 PTy(bTy, 10886 qTy))))))))))))), 10887 Var("rd",FTy 5)]), 10888 Mop(Snd, 10889 Mop(Snd, 10890 Mop(Snd, 10891 Mop(Snd, 10892 Mop(Snd, 10893 Var("s", 10894 PTy(bTy, 10895 PTy(bTy, 10896 PTy(bTy, 10897 PTy(bTy, 10898 PTy(bTy, 10899 qTy))))))))))))), 10900 (LW(6,3), 10901 Apply 10902 (Call 10903 ("write'GPR",ATy(qTy,qTy), 10904 TP[ITE(EQ(Var("v",CTy"Capability"), 10905 Var("v0",CTy"Capability")), 10906 LW(1,64),LW(0,64)),Var("rd",FTy 5)]), 10907 Mop(Snd, 10908 Mop(Snd, 10909 Mop(Snd, 10910 Mop(Snd, 10911 Mop(Snd, 10912 Var("s", 10913 PTy(bTy, 10914 PTy(bTy, 10915 PTy(bTy, 10916 PTy(bTy, 10917 PTy(bTy, 10918 qTy))))))))))))), 10919 (LW(7,3), 10920 Apply 10921 (Call 10922 ("write'GPR",ATy(qTy,qTy), 10923 TP[ITE(EQ(Var("v",CTy"Capability"), 10924 Var("v0",CTy"Capability")), 10925 LW(0,64),LW(1,64)),Var("rd",FTy 5)]), 10926 Mop(Snd, 10927 Mop(Snd, 10928 Mop(Snd, 10929 Mop(Snd, 10930 Mop(Snd, 10931 Var("s", 10932 PTy(bTy, 10933 PTy(bTy, 10934 PTy(bTy, 10935 PTy(bTy, 10936 PTy(bTy, 10937 qTy)))))))))))))]))))))) 10938; 10939val dfn'CBTU_def = Def 10940 ("dfn'CBTU",TP[Var("cb",FTy 5),Var("offset",F16)], 10941 Close 10942 (qVar"state", 10943 ITE(Mop(Not, 10944 Dest 10945 ("CU2",bTy, 10946 Dest 10947 ("Status",CTy"StatusRegister", 10948 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10949 Apply 10950 (Const("SignalCP2UnusableException",ATy(qTy,qTy)),qVar"state"), 10951 Let(TP[bVar"v",qVar"s"], 10952 Let(qVar"s0", 10953 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 10954 TP[Apply 10955 (Call 10956 ("register_inaccessible",ATy(qTy,bTy), 10957 Var("cb",FTy 5)),qVar"s0"),qVar"s0"]), 10958 ITB([(bVar"v", 10959 Apply 10960 (Call 10961 ("SignalCapException",ATy(qTy,qTy), 10962 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 10963 Var("cb",FTy 5)]),qVar"s")), 10964 (Mop(Not, 10965 Call 10966 ("getTag",bTy, 10967 Apply 10968 (Call 10969 ("CAPR",ATy(qTy,CTy"Capability"), 10970 Var("cb",FTy 5)),qVar"s"))), 10971 Apply 10972 (Call 10973 ("write'BranchTo",ATy(qTy,qTy), 10974 Mop(Some, 10975 Bop(Add, 10976 Bop(Add, 10977 Apply 10978 (Const("PC",ATy(qTy,F64)),qVar"s"), 10979 LW(4,64)), 10980 Bop(Lsl,Mop(SE F64,Var("offset",F16)), 10981 LN 2)))),qVar"s"))],qVar"s"))))) 10982; 10983val dfn'CBTS_def = Def 10984 ("dfn'CBTS",TP[Var("cb",FTy 5),Var("offset",F16)], 10985 Close 10986 (qVar"state", 10987 ITE(Mop(Not, 10988 Dest 10989 ("CU2",bTy, 10990 Dest 10991 ("Status",CTy"StatusRegister", 10992 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 10993 Apply 10994 (Const("SignalCP2UnusableException",ATy(qTy,qTy)),qVar"state"), 10995 Let(TP[bVar"v",qVar"s"], 10996 Let(qVar"s0", 10997 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 10998 TP[Apply 10999 (Call 11000 ("register_inaccessible",ATy(qTy,bTy), 11001 Var("cb",FTy 5)),qVar"s0"),qVar"s0"]), 11002 ITB([(bVar"v", 11003 Apply 11004 (Call 11005 ("SignalCapException",ATy(qTy,qTy), 11006 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11007 Var("cb",FTy 5)]),qVar"s")), 11008 (Call 11009 ("getTag",bTy, 11010 Apply 11011 (Call 11012 ("CAPR",ATy(qTy,CTy"Capability"), 11013 Var("cb",FTy 5)),qVar"s")), 11014 Apply 11015 (Call 11016 ("write'BranchTo",ATy(qTy,qTy), 11017 Mop(Some, 11018 Bop(Add, 11019 Bop(Add, 11020 Apply 11021 (Const("PC",ATy(qTy,F64)),qVar"s"), 11022 LW(4,64)), 11023 Bop(Lsl,Mop(SE F64,Var("offset",F16)), 11024 LN 2)))),qVar"s"))],qVar"s"))))) 11025; 11026val dfn'CSC_def = Def 11027 ("dfn'CSC", 11028 TP[Var("cs",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5),Var("offset",FTy 11)], 11029 Close 11030 (qVar"state", 11031 ITB([(Mop(Not, 11032 Dest 11033 ("CU2",bTy, 11034 Dest 11035 ("Status",CTy"StatusRegister", 11036 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 11037 Apply 11038 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 11039 qVar"state")), 11040 (Apply 11041 (Call("register_inaccessible",ATy(qTy,bTy),Var("cs",FTy 5)), 11042 qVar"state"), 11043 Apply 11044 (Call 11045 ("SignalCapException",ATy(qTy,qTy), 11046 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11047 Var("cs",FTy 5)]),qVar"state")), 11048 (Apply 11049 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 11050 qVar"state"), 11051 Apply 11052 (Call 11053 ("SignalCapException",ATy(qTy,qTy), 11054 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11055 Var("cb",FTy 5)]),qVar"state")), 11056 (Mop(Not, 11057 Call 11058 ("getTag",bTy, 11059 Apply 11060 (Call 11061 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11062 qVar"state"))), 11063 Apply 11064 (Call 11065 ("SignalCapException",ATy(qTy,qTy), 11066 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 11067 qVar"state")), 11068 (Call 11069 ("getSealed",bTy, 11070 Apply 11071 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11072 qVar"state")), 11073 Apply 11074 (Call 11075 ("SignalCapException",ATy(qTy,qTy), 11076 TP[LC("capExcSeal",CTy"CapExceptionType"), 11077 Var("cb",FTy 5)]),qVar"state")), 11078 (Mop(Not, 11079 Dest 11080 ("Permit_Store_Capability",bTy, 11081 Call 11082 ("getPerms",CTy"Perms", 11083 Apply 11084 (Call 11085 ("CAPR",ATy(qTy,CTy"Capability"), 11086 Var("cb",FTy 5)),qVar"state")))), 11087 Apply 11088 (Call 11089 ("SignalCapException",ATy(qTy,qTy), 11090 TP[LC("capExcPermStoreCap",CTy"CapExceptionType"), 11091 Var("cb",FTy 5)]),qVar"state")), 11092 (Bop(And, 11093 Mop(Not, 11094 Dest 11095 ("Permit_Store_Local_Capability",bTy, 11096 Call 11097 ("getPerms",CTy"Perms", 11098 Apply 11099 (Call 11100 ("CAPR",ATy(qTy,CTy"Capability"), 11101 Var("cb",FTy 5)),qVar"state")))), 11102 Bop(And, 11103 Call 11104 ("getTag",bTy, 11105 Apply 11106 (Call 11107 ("CAPR",ATy(qTy,CTy"Capability"), 11108 Var("cs",FTy 5)),qVar"state")), 11109 Mop(Not, 11110 Dest 11111 ("Global",bTy, 11112 Call 11113 ("getPerms",CTy"Perms", 11114 Apply 11115 (Call 11116 ("CAPR",ATy(qTy,CTy"Capability"), 11117 Var("cs",FTy 5)),qVar"state")))))), 11118 Apply 11119 (Call 11120 ("SignalCapException",ATy(qTy,qTy), 11121 TP[LC("capExcPermStoreLocalCap",CTy"CapExceptionType"), 11122 Var("cb",FTy 5)]),qVar"state"))], 11123 Let(Var("v",F64), 11124 Bop(Add, 11125 Bop(Add, 11126 Bop(Add, 11127 Call 11128 ("getBase",F64, 11129 Apply 11130 (Call 11131 ("CAPR",ATy(qTy,CTy"Capability"), 11132 Var("cb",FTy 5)),qVar"state")), 11133 Call 11134 ("getOffset",F64, 11135 Apply 11136 (Call 11137 ("CAPR",ATy(qTy,CTy"Capability"), 11138 Var("cb",FTy 5)),qVar"state"))), 11139 Apply 11140 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 11141 qVar"state")), 11142 Mop(SE F64,CC[Var("offset",FTy 11),LW(0,4)])), 11143 ITB([(Bop(Ugt, 11144 Bop(Add,Var("v",F64), 11145 Mop(Cast F64,Const("CAPBYTEWIDTH",nTy))), 11146 Bop(Add, 11147 Call 11148 ("getBase",F64, 11149 Apply 11150 (Call 11151 ("CAPR",ATy(qTy,CTy"Capability"), 11152 Var("cb",FTy 5)),qVar"state")), 11153 Call 11154 ("getLength",F64, 11155 Apply 11156 (Call 11157 ("CAPR",ATy(qTy,CTy"Capability"), 11158 Var("cb",FTy 5)),qVar"state")))), 11159 Apply 11160 (Call 11161 ("SignalCapException",ATy(qTy,qTy), 11162 TP[LC("capExcLength",CTy"CapExceptionType"), 11163 Var("cb",FTy 5)]),qVar"state")), 11164 (Bop(Ult,Var("v",F64), 11165 Call 11166 ("getBase",F64, 11167 Apply 11168 (Call 11169 ("CAPR",ATy(qTy,CTy"Capability"), 11170 Var("cb",FTy 5)),qVar"state"))), 11171 Apply 11172 (Call 11173 ("SignalCapException",ATy(qTy,qTy), 11174 TP[LC("capExcLength",CTy"CapExceptionType"), 11175 Var("cb",FTy 5)]),qVar"state")), 11176 (Mop(Not,Call("isCapAligned",bTy,Var("v",F64))), 11177 Apply 11178 (Call 11179 ("SignalException",ATy(qTy,qTy), 11180 LC("AdES",CTy"ExceptionType")), 11181 Apply 11182 (Call 11183 ("write'CP0",ATy(qTy,qTy), 11184 Rupd 11185 ("BadVAddr", 11186 TP[Apply 11187 (Const("CP0",ATy(qTy,CTy"CP0")), 11188 qVar"state"),Var("v",F64)])), 11189 qVar"state")))], 11190 Apply 11191 (Call("write'LLbit",ATy(qTy,qTy),LO bTy), 11192 Mop(Snd, 11193 Apply 11194 (Call 11195 ("StoreCap",ATy(qTy,PTy(bTy,qTy)), 11196 TP[Var("v",F64), 11197 Apply 11198 (Call 11199 ("CAPR",ATy(qTy,CTy"Capability"), 11200 Var("cs",FTy 5)),qVar"state"),LF]), 11201 qVar"state")))))))) 11202; 11203val dfn'CLC_def = Def 11204 ("dfn'CLC", 11205 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5),Var("offset",FTy 11)], 11206 Close 11207 (qVar"state", 11208 ITB([(Mop(Not, 11209 Dest 11210 ("CU2",bTy, 11211 Dest 11212 ("Status",CTy"StatusRegister", 11213 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 11214 Apply 11215 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 11216 qVar"state")), 11217 (Apply 11218 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 11219 qVar"state"), 11220 Apply 11221 (Call 11222 ("SignalCapException",ATy(qTy,qTy), 11223 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11224 Var("cd",FTy 5)]),qVar"state")), 11225 (Apply 11226 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 11227 qVar"state"), 11228 Apply 11229 (Call 11230 ("SignalCapException",ATy(qTy,qTy), 11231 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11232 Var("cb",FTy 5)]),qVar"state")), 11233 (Mop(Not, 11234 Call 11235 ("getTag",bTy, 11236 Apply 11237 (Call 11238 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11239 qVar"state"))), 11240 Apply 11241 (Call 11242 ("SignalCapException",ATy(qTy,qTy), 11243 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 11244 qVar"state")), 11245 (Call 11246 ("getSealed",bTy, 11247 Apply 11248 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11249 qVar"state")), 11250 Apply 11251 (Call 11252 ("SignalCapException",ATy(qTy,qTy), 11253 TP[LC("capExcSeal",CTy"CapExceptionType"), 11254 Var("cb",FTy 5)]),qVar"state"))], 11255 Let(Var("v",F64), 11256 Bop(Add, 11257 Bop(Add, 11258 Bop(Add, 11259 Call 11260 ("getBase",F64, 11261 Apply 11262 (Call 11263 ("CAPR",ATy(qTy,CTy"Capability"), 11264 Var("cb",FTy 5)),qVar"state")), 11265 Call 11266 ("getOffset",F64, 11267 Apply 11268 (Call 11269 ("CAPR",ATy(qTy,CTy"Capability"), 11270 Var("cb",FTy 5)),qVar"state"))), 11271 Apply 11272 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 11273 qVar"state")), 11274 Mop(SE F64,CC[Var("offset",FTy 11),LW(0,4)])), 11275 ITB([(Bop(Ugt, 11276 Bop(Add,Var("v",F64), 11277 Mop(Cast F64,Const("CAPBYTEWIDTH",nTy))), 11278 Bop(Add, 11279 Call 11280 ("getBase",F64, 11281 Apply 11282 (Call 11283 ("CAPR",ATy(qTy,CTy"Capability"), 11284 Var("cb",FTy 5)),qVar"state")), 11285 Call 11286 ("getLength",F64, 11287 Apply 11288 (Call 11289 ("CAPR",ATy(qTy,CTy"Capability"), 11290 Var("cb",FTy 5)),qVar"state")))), 11291 Apply 11292 (Call 11293 ("SignalCapException",ATy(qTy,qTy), 11294 TP[LC("capExcLength",CTy"CapExceptionType"), 11295 Var("cb",FTy 5)]),qVar"state")), 11296 (Bop(Ult,Var("v",F64), 11297 Call 11298 ("getBase",F64, 11299 Apply 11300 (Call 11301 ("CAPR",ATy(qTy,CTy"Capability"), 11302 Var("cb",FTy 5)),qVar"state"))), 11303 Apply 11304 (Call 11305 ("SignalCapException",ATy(qTy,qTy), 11306 TP[LC("capExcLength",CTy"CapExceptionType"), 11307 Var("cb",FTy 5)]),qVar"state")), 11308 (Mop(Not,Call("isCapAligned",bTy,Var("v",F64))), 11309 Apply 11310 (Call 11311 ("SignalException",ATy(qTy,qTy), 11312 LC("AdEL",CTy"ExceptionType")), 11313 Apply 11314 (Call 11315 ("write'CP0",ATy(qTy,qTy), 11316 Rupd 11317 ("BadVAddr", 11318 TP[Apply 11319 (Const("CP0",ATy(qTy,CTy"CP0")), 11320 qVar"state"),Var("v",F64)])), 11321 qVar"state")))], 11322 Let(TP[Var("v",CTy"Capability"),qVar"s"], 11323 Apply 11324 (Call 11325 ("LoadCap",ATy(qTy,PTy(CTy"Capability",qTy)), 11326 TP[Var("v",F64),LF]),qVar"state"), 11327 Apply 11328 (Call("write'LLbit",ATy(qTy,qTy),LO bTy), 11329 ITE(Mop(Not, 11330 Apply 11331 (Const 11332 ("exceptionSignalled",ATy(qTy,bTy)), 11333 qVar"s")), 11334 Apply 11335 (Call 11336 ("write'CAPR",ATy(qTy,qTy), 11337 TP[ITE(Mop(Not, 11338 Dest 11339 ("Permit_Load_Capability", 11340 bTy, 11341 Call 11342 ("getPerms",CTy"Perms", 11343 Apply 11344 (Call 11345 ("CAPR", 11346 ATy(qTy, 11347 CTy"Capability"), 11348 Var("cb",FTy 5)), 11349 qVar"s")))), 11350 Call 11351 ("setTag",CTy"Capability", 11352 TP[Var("v",CTy"Capability"), 11353 LF]), 11354 Var("v",CTy"Capability")), 11355 Var("cd",FTy 5)]),qVar"s"),qVar"s")))))))) 11356; 11357val dfn'CLoad_def = Def 11358 ("dfn'CLoad", 11359 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5),Var("offset",F8), 11360 Var("s",F1),Var("t",FTy 2)], 11361 Close 11362 (qVar"state", 11363 ITB([(Mop(Not, 11364 Dest 11365 ("CU2",bTy, 11366 Dest 11367 ("Status",CTy"StatusRegister", 11368 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 11369 Apply 11370 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 11371 qVar"state")), 11372 (Apply 11373 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 11374 qVar"state"), 11375 Apply 11376 (Call 11377 ("SignalCapException",ATy(qTy,qTy), 11378 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11379 Var("cb",FTy 5)]),qVar"state")), 11380 (Mop(Not, 11381 Call 11382 ("getTag",bTy, 11383 Apply 11384 (Call 11385 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11386 qVar"state"))), 11387 Apply 11388 (Call 11389 ("SignalCapException",ATy(qTy,qTy), 11390 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 11391 qVar"state")), 11392 (Call 11393 ("getSealed",bTy, 11394 Apply 11395 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11396 qVar"state")), 11397 Apply 11398 (Call 11399 ("SignalCapException",ATy(qTy,qTy), 11400 TP[LC("capExcSeal",CTy"CapExceptionType"), 11401 Var("cb",FTy 5)]),qVar"state")), 11402 (Mop(Not, 11403 Dest 11404 ("Permit_Load",bTy, 11405 Call 11406 ("getPerms",CTy"Perms", 11407 Apply 11408 (Call 11409 ("CAPR",ATy(qTy,CTy"Capability"), 11410 Var("cb",FTy 5)),qVar"state")))), 11411 Apply 11412 (Call 11413 ("SignalCapException",ATy(qTy,qTy), 11414 TP[LC("capExcPermLoad",CTy"CapExceptionType"), 11415 Var("cb",FTy 5)]),qVar"state"))], 11416 Let(Var("v",CTy"Capability"), 11417 Apply 11418 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11419 qVar"state"), 11420 Let(Var("v0",F64), 11421 Bop(Add, 11422 Bop(Add, 11423 Bop(Add, 11424 Call("getBase",F64,Var("v",CTy"Capability")), 11425 Call 11426 ("getOffset",F64,Var("v",CTy"Capability"))), 11427 Apply 11428 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 11429 qVar"state")), 11430 Mop(SE F64, 11431 Bop(Lsl, 11432 CC[REP(Mop(Cast F1, 11433 Bop(Bit,Var("offset",F8),LN 7)), 11434 LN 3,FTy 3),Var("offset",F8)], 11435 Mop(Cast nTy,Var("t",FTy 2))))), 11436 Let(Var("s0",PTy(FTy 3,PTy(FTy 3,PTy(F64,qTy)))), 11437 CS(Var("t",FTy 2), 11438 [(LW(0,2), 11439 TP[Bop(BXor,EX(Var("v0",F64),LN 2,LN 0,FTy 3), 11440 REP(Apply 11441 (Const("BigEndianCPU",ATy(qTy,F1)), 11442 qVar"state"),LN 3,FTy 3)), 11443 Const("BYTE",FTy 3),LW(1,64),qVar"state"]), 11444 (LW(1,2), 11445 TP[Bop(BXor,EX(Var("v0",F64),LN 2,LN 0,FTy 3), 11446 CC[REP(Apply 11447 (Const 11448 ("BigEndianCPU",ATy(qTy,F1)), 11449 qVar"state"),LN 2,FTy 2), 11450 LW(0,1)]),Const("HALFWORD",FTy 3), 11451 LW(2,64),qVar"state"]), 11452 (LW(2,2), 11453 TP[Bop(BXor,EX(Var("v0",F64),LN 2,LN 0,FTy 3), 11454 CC[Apply 11455 (Const("BigEndianCPU",ATy(qTy,F1)), 11456 qVar"state"),LW(0,2)]), 11457 Const("WORD",FTy 3),LW(4,64),qVar"state"]), 11458 (LW(3,2), 11459 TP[LW(0,3),Const("DOUBLEWORD",FTy 3),LW(8,64), 11460 qVar"state"])]), 11461 ITB([(Bop(Ugt, 11462 Bop(Add,CC[LW(0,1),Var("v0",F64)], 11463 CC[LW(0,1), 11464 Mop(Fst, 11465 Mop(Snd, 11466 Mop(Snd, 11467 Var("s0", 11468 PTy(FTy 3, 11469 PTy(FTy 3, 11470 PTy(F64,qTy)))))))]), 11471 Bop(Add, 11472 CC[LW(0,1), 11473 Call 11474 ("getBase",F64, 11475 Var("v",CTy"Capability"))], 11476 CC[LW(0,1), 11477 Call 11478 ("getLength",F64, 11479 Var("v",CTy"Capability"))])), 11480 Apply 11481 (Call 11482 ("SignalCapException",ATy(qTy,qTy), 11483 TP[LC("capExcLength", 11484 CTy"CapExceptionType"), 11485 Var("cb",FTy 5)]), 11486 Mop(Snd, 11487 Mop(Snd, 11488 Mop(Snd, 11489 Var("s0", 11490 PTy(FTy 3, 11491 PTy(FTy 3,PTy(F64,qTy))))))))), 11492 (Bop(Ult,Var("v0",F64), 11493 Call 11494 ("getBase",F64,Var("v",CTy"Capability"))), 11495 Apply 11496 (Call 11497 ("SignalCapException",ATy(qTy,qTy), 11498 TP[LC("capExcLength", 11499 CTy"CapExceptionType"), 11500 Var("cb",FTy 5)]), 11501 Mop(Snd, 11502 Mop(Snd, 11503 Mop(Snd, 11504 Var("s0", 11505 PTy(FTy 3, 11506 PTy(FTy 3,PTy(F64,qTy)))))))))], 11507 Let(TP[Var("v",F64), 11508 Var("s0", 11509 PTy(FTy 3,PTy(FTy 3,PTy(F64,qTy))))], 11510 Let(TP[Var("v",F64), 11511 Var("s3",PTy(FTy 3,PTy(F64,qTy)))], 11512 Let(TP[Var("v",F64), 11513 Var("s3",PTy(F64,qTy))], 11514 Let(TP[Var("v",F64),qVar"s3"], 11515 Apply 11516 (Call 11517 ("LoadMemoryCap", 11518 ATy(qTy,PTy(F64,qTy)), 11519 TP[Mop(Fst, 11520 Mop(Snd, 11521 Var("s0", 11522 PTy(FTy 3, 11523 PTy(FTy 3, 11524 PTy(F64, 11525 qTy)))))), 11526 LT,Var("v0",F64),LF]), 11527 Mop(Snd, 11528 Mop(Snd, 11529 Mop(Snd, 11530 Var("s0", 11531 PTy(FTy 3, 11532 PTy(FTy 3, 11533 PTy(F64, 11534 qTy)))))))), 11535 TP[Var("v",F64), 11536 Mop(Fst, 11537 Mop(Snd, 11538 Mop(Snd, 11539 Var("s0", 11540 PTy(FTy 3, 11541 PTy(FTy 3, 11542 PTy(F64, 11543 qTy))))))), 11544 qVar"s3"]), 11545 TP[Var("v",F64), 11546 Mop(Fst, 11547 Mop(Snd, 11548 Var("s0", 11549 PTy(FTy 3, 11550 PTy(FTy 3, 11551 PTy(F64,qTy)))))), 11552 Var("s3",PTy(F64,qTy))]), 11553 TP[Var("v",F64), 11554 Mop(Fst, 11555 Var("s0", 11556 PTy(FTy 3, 11557 PTy(FTy 3,PTy(F64,qTy))))), 11558 Var("s3",PTy(FTy 3,PTy(F64,qTy)))]), 11559 Let(TP[bVar"v0", 11560 Var("s0", 11561 PTy(FTy 3,PTy(FTy 3,PTy(F64,qTy))))], 11562 Let(TP[bVar"v", 11563 Var("s3",PTy(FTy 3,PTy(F64,qTy)))], 11564 Let(TP[bVar"v", 11565 Var("s3",PTy(F64,qTy))], 11566 Let(TP[bVar"v",qVar"s3"], 11567 Let(qVar"s", 11568 Mop(Snd, 11569 Mop(Snd, 11570 Mop(Snd, 11571 Var("s0", 11572 PTy(FTy 3, 11573 PTy(FTy 3, 11574 PTy(F64, 11575 qTy))))))), 11576 TP[Apply 11577 (Const 11578 ("exceptionSignalled", 11579 ATy(qTy,bTy)), 11580 qVar"s"),qVar"s"]), 11581 TP[bVar"v", 11582 Mop(Fst, 11583 Mop(Snd, 11584 Mop(Snd, 11585 Var("s0", 11586 PTy(FTy 3, 11587 PTy(FTy 3, 11588 PTy(F64, 11589 qTy))))))), 11590 qVar"s3"]), 11591 TP[bVar"v", 11592 Mop(Fst, 11593 Mop(Snd, 11594 Var("s0", 11595 PTy(FTy 3, 11596 PTy(FTy 3, 11597 PTy(F64, 11598 qTy)))))), 11599 Var("s3",PTy(F64,qTy))]), 11600 TP[bVar"v", 11601 Mop(Fst, 11602 Var("s0", 11603 PTy(FTy 3, 11604 PTy(FTy 3, 11605 PTy(F64,qTy))))), 11606 Var("s3",PTy(FTy 3,PTy(F64,qTy)))]), 11607 ITE(Mop(Not,bVar"v0"), 11608 Let(vVar"final_data", 11609 EX(Mop(Cast vTy,Var("v",F64)), 11610 Bop(Sub, 11611 Bop(Add, 11612 Bop(Mul, 11613 Mop(Cast nTy, 11614 Mop(Fst, 11615 Var("s0", 11616 PTy(FTy 3, 11617 PTy(FTy 3, 11618 PTy(F64, 11619 qTy)))))), 11620 LN 8), 11621 Bop(Mul, 11622 Mop(Cast nTy, 11623 Mop(Fst, 11624 Mop(Snd, 11625 Mop(Snd, 11626 Var("s0", 11627 PTy(FTy 3, 11628 PTy(FTy 3, 11629 PTy(F64, 11630 qTy)))))))), 11631 LN 8)),LN 1), 11632 Bop(Mul, 11633 Mop(Cast nTy, 11634 Mop(Fst, 11635 Var("s0", 11636 PTy(FTy 3, 11637 PTy(FTy 3, 11638 PTy(F64, 11639 qTy)))))), 11640 LN 8),vTy), 11641 ITE(EQ(Var("s",F1),LW(0,1)), 11642 Apply 11643 (Call 11644 ("write'GPR", 11645 ATy(qTy,qTy), 11646 TP[Mop(Cast F64, 11647 Call 11648 ("ZeroExtendBitString", 11649 vTy, 11650 TP[LN 64, 11651 vVar"final_data"])), 11652 Var("rd",FTy 5)]), 11653 Mop(Snd, 11654 Mop(Snd, 11655 Mop(Snd, 11656 Var("s0", 11657 PTy(FTy 3, 11658 PTy(FTy 3, 11659 PTy(F64, 11660 qTy)))))))), 11661 Apply 11662 (Call 11663 ("write'GPR", 11664 ATy(qTy,qTy), 11665 TP[Mop(Cast F64, 11666 Call 11667 ("SignExtendBitString", 11668 vTy, 11669 TP[LN 64, 11670 vVar"final_data"])), 11671 Var("rd",FTy 5)]), 11672 Mop(Snd, 11673 Mop(Snd, 11674 Mop(Snd, 11675 Var("s0", 11676 PTy(FTy 3, 11677 PTy(FTy 3, 11678 PTy(F64, 11679 qTy)))))))))), 11680 Mop(Snd, 11681 Mop(Snd, 11682 Mop(Snd, 11683 Var("s0", 11684 PTy(FTy 3, 11685 PTy(FTy 3, 11686 PTy(F64,qTy))))))))))))))))) 11687; 11688val dfn'CStore_def = Def 11689 ("dfn'CStore", 11690 TP[Var("rs",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5),Var("offset",F8), 11691 Var("t",FTy 2)], 11692 Close 11693 (qVar"state", 11694 ITB([(Mop(Not, 11695 Dest 11696 ("CU2",bTy, 11697 Dest 11698 ("Status",CTy"StatusRegister", 11699 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 11700 Apply 11701 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 11702 qVar"state")), 11703 (Apply 11704 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 11705 qVar"state"), 11706 Apply 11707 (Call 11708 ("SignalCapException",ATy(qTy,qTy), 11709 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11710 Var("cb",FTy 5)]),qVar"state")), 11711 (Mop(Not, 11712 Call 11713 ("getTag",bTy, 11714 Apply 11715 (Call 11716 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11717 qVar"state"))), 11718 Apply 11719 (Call 11720 ("SignalCapException",ATy(qTy,qTy), 11721 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 11722 qVar"state")), 11723 (Call 11724 ("getSealed",bTy, 11725 Apply 11726 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11727 qVar"state")), 11728 Apply 11729 (Call 11730 ("SignalCapException",ATy(qTy,qTy), 11731 TP[LC("capExcSeal",CTy"CapExceptionType"), 11732 Var("cb",FTy 5)]),qVar"state")), 11733 (Mop(Not, 11734 Dest 11735 ("Permit_Store",bTy, 11736 Call 11737 ("getPerms",CTy"Perms", 11738 Apply 11739 (Call 11740 ("CAPR",ATy(qTy,CTy"Capability"), 11741 Var("cb",FTy 5)),qVar"state")))), 11742 Apply 11743 (Call 11744 ("SignalCapException",ATy(qTy,qTy), 11745 TP[LC("capExcPermStore",CTy"CapExceptionType"), 11746 Var("cb",FTy 5)]),qVar"state"))], 11747 Let(Var("v",CTy"Capability"), 11748 Apply 11749 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11750 qVar"state"), 11751 Let(Var("v0",F64), 11752 Bop(Add, 11753 Bop(Add, 11754 Bop(Add, 11755 Call("getBase",F64,Var("v",CTy"Capability")), 11756 Call 11757 ("getOffset",F64,Var("v",CTy"Capability"))), 11758 Apply 11759 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 11760 qVar"state")), 11761 Mop(SE F64, 11762 Bop(Lsl, 11763 CC[REP(Mop(Cast F1, 11764 Bop(Bit,Var("offset",F8),LN 7)), 11765 LN 3,FTy 3),Var("offset",F8)], 11766 Mop(Cast nTy,Var("t",FTy 2))))), 11767 Let(Var("s",PTy(FTy 3,PTy(FTy 3,PTy(F64,qTy)))), 11768 CS(Var("t",FTy 2), 11769 [(LW(0,2), 11770 TP[Bop(BXor,EX(Var("v0",F64),LN 2,LN 0,FTy 3), 11771 REP(Apply 11772 (Const("BigEndianCPU",ATy(qTy,F1)), 11773 qVar"state"),LN 3,FTy 3)), 11774 Const("BYTE",FTy 3),LW(1,64),qVar"state"]), 11775 (LW(1,2), 11776 TP[Bop(BXor,EX(Var("v0",F64),LN 2,LN 0,FTy 3), 11777 CC[REP(Apply 11778 (Const 11779 ("BigEndianCPU",ATy(qTy,F1)), 11780 qVar"state"),LN 2,FTy 2), 11781 LW(0,1)]),Const("HALFWORD",FTy 3), 11782 LW(2,64),qVar"state"]), 11783 (LW(2,2), 11784 TP[Bop(BXor,EX(Var("v0",F64),LN 2,LN 0,FTy 3), 11785 CC[REP(Apply 11786 (Const 11787 ("BigEndianCPU",ATy(qTy,F1)), 11788 qVar"state"),LN 1,F1),LW(0,2)]), 11789 Const("WORD",FTy 3),LW(4,64),qVar"state"]), 11790 (LW(3,2), 11791 TP[LW(0,3),Const("DOUBLEWORD",FTy 3),LW(8,64), 11792 qVar"state"])]), 11793 ITB([(Bop(Ugt, 11794 Bop(Add,CC[LW(0,1),Var("v0",F64)], 11795 CC[LW(0,1), 11796 Mop(Fst, 11797 Mop(Snd, 11798 Mop(Snd, 11799 Var("s", 11800 PTy(FTy 3, 11801 PTy(FTy 3, 11802 PTy(F64,qTy)))))))]), 11803 Bop(Add, 11804 CC[LW(0,1), 11805 Call 11806 ("getBase",F64, 11807 Var("v",CTy"Capability"))], 11808 CC[LW(0,1), 11809 Call 11810 ("getLength",F64, 11811 Var("v",CTy"Capability"))])), 11812 Apply 11813 (Call 11814 ("SignalCapException",ATy(qTy,qTy), 11815 TP[LC("capExcLength", 11816 CTy"CapExceptionType"), 11817 Var("cb",FTy 5)]), 11818 Mop(Snd, 11819 Mop(Snd, 11820 Mop(Snd, 11821 Var("s", 11822 PTy(FTy 3, 11823 PTy(FTy 3,PTy(F64,qTy))))))))), 11824 (Bop(Ult,Var("v0",F64), 11825 Call 11826 ("getBase",F64,Var("v",CTy"Capability"))), 11827 Apply 11828 (Call 11829 ("SignalCapException",ATy(qTy,qTy), 11830 TP[LC("capExcLength", 11831 CTy"CapExceptionType"), 11832 Var("cb",FTy 5)]), 11833 Mop(Snd, 11834 Mop(Snd, 11835 Mop(Snd, 11836 Var("s", 11837 PTy(FTy 3, 11838 PTy(FTy 3,PTy(F64,qTy)))))))))], 11839 Let(TP[Var("v", 11840 PTy(FTy 3, 11841 PTy(FTy 3, 11842 PTy(F64,PTy(bTy,PTy(F64,bTy)))))), 11843 Var("s", 11844 PTy(FTy 3,PTy(FTy 3,PTy(F64,qTy))))], 11845 Let(TP[Var("v0", 11846 PTy(FTy 3, 11847 PTy(F64,PTy(bTy,PTy(F64,bTy))))), 11848 Var("s0", 11849 PTy(FTy 3,PTy(FTy 3,PTy(F64,qTy))))], 11850 Let(TP[Var("v1",F64), 11851 Var("s0", 11852 PTy(FTy 3, 11853 PTy(FTy 3,PTy(F64,qTy))))], 11854 Let(TP[Var("v",F64), 11855 Var("s3", 11856 PTy(FTy 3,PTy(F64,qTy)))], 11857 Let(TP[Var("v",F64), 11858 Var("s3",PTy(F64,qTy))], 11859 Let(TP[Var("v",F64),qVar"s3"], 11860 Let(qVar"s0", 11861 Mop(Snd, 11862 Mop(Snd, 11863 Mop(Snd, 11864 Var("s", 11865 PTy(FTy 3, 11866 PTy(FTy 3, 11867 PTy(F64, 11868 qTy))))))), 11869 TP[Apply 11870 (Call 11871 ("GPR", 11872 ATy(qTy,F64), 11873 Var("rs", 11874 FTy 5)), 11875 qVar"s0"), 11876 qVar"s0"]), 11877 TP[Var("v",F64), 11878 Mop(Fst, 11879 Mop(Snd, 11880 Mop(Snd, 11881 Var("s", 11882 PTy(FTy 3, 11883 PTy(FTy 3, 11884 PTy(F64, 11885 qTy))))))), 11886 qVar"s3"]), 11887 TP[Var("v",F64), 11888 Mop(Fst, 11889 Mop(Snd, 11890 Var("s", 11891 PTy(FTy 3, 11892 PTy(FTy 3, 11893 PTy(F64, 11894 qTy)))))), 11895 Var("s3",PTy(F64,qTy))]), 11896 TP[Var("v",F64), 11897 Mop(Fst, 11898 Var("s", 11899 PTy(FTy 3, 11900 PTy(FTy 3, 11901 PTy(F64,qTy))))), 11902 Var("s3", 11903 PTy(FTy 3,PTy(F64,qTy)))]), 11904 TP[TP[Mop(Fst, 11905 Mop(Snd, 11906 Var("s", 11907 PTy(FTy 3, 11908 PTy(FTy 3, 11909 PTy(F64, 11910 qTy)))))), 11911 Bop(Lsl,Var("v1",F64), 11912 Bop(Mul,LN 8, 11913 Mop(Cast nTy, 11914 Mop(Fst, 11915 Var("s0", 11916 PTy(FTy 3, 11917 PTy(FTy 3, 11918 PTy(F64, 11919 qTy)))))))), 11920 LT,Var("v0",F64),LF], 11921 Var("s0", 11922 PTy(FTy 3, 11923 PTy(FTy 3,PTy(F64,qTy))))]), 11924 TP[TP[Mop(Fst, 11925 Mop(Snd, 11926 Var("s", 11927 PTy(FTy 3, 11928 PTy(FTy 3, 11929 PTy(F64,qTy)))))), 11930 Var("v0", 11931 PTy(FTy 3, 11932 PTy(F64, 11933 PTy(bTy,PTy(F64,bTy)))))], 11934 Var("s0", 11935 PTy(FTy 3,PTy(FTy 3,PTy(F64,qTy))))]), 11936 Mop(Snd, 11937 Apply 11938 (Call 11939 ("StoreMemoryCap", 11940 ATy(qTy,PTy(bTy,qTy)), 11941 Var("v", 11942 PTy(FTy 3, 11943 PTy(FTy 3, 11944 PTy(F64, 11945 PTy(bTy, 11946 PTy(F64,bTy))))))), 11947 Mop(Snd, 11948 Mop(Snd, 11949 Mop(Snd, 11950 Var("s", 11951 PTy(FTy 3, 11952 PTy(FTy 3, 11953 PTy(F64,qTy))))))))))))))))) 11954; 11955val dfn'CLLC_def = Def 11956 ("dfn'CLLC",TP[Var("cd",FTy 5),Var("cb",FTy 5)], 11957 Close 11958 (qVar"state", 11959 Let(Var("v",F64), 11960 Bop(Add, 11961 Call 11962 ("getBase",F64, 11963 Apply 11964 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11965 qVar"state")), 11966 Call 11967 ("getOffset",F64, 11968 Apply 11969 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 11970 qVar"state"))), 11971 ITB([(Mop(Not, 11972 Dest 11973 ("CU2",bTy, 11974 Dest 11975 ("Status",CTy"StatusRegister", 11976 Apply 11977 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 11978 Apply 11979 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 11980 qVar"state")), 11981 (Apply 11982 (Call 11983 ("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 11984 qVar"state"), 11985 Apply 11986 (Call 11987 ("SignalCapException",ATy(qTy,qTy), 11988 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11989 Var("cd",FTy 5)]),qVar"state")), 11990 (Apply 11991 (Call 11992 ("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 11993 qVar"state"), 11994 Apply 11995 (Call 11996 ("SignalCapException",ATy(qTy,qTy), 11997 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 11998 Var("cb",FTy 5)]),qVar"state")), 11999 (Mop(Not, 12000 Call 12001 ("getTag",bTy, 12002 Apply 12003 (Call 12004 ("CAPR",ATy(qTy,CTy"Capability"), 12005 Var("cb",FTy 5)),qVar"state"))), 12006 Apply 12007 (Call 12008 ("SignalCapException",ATy(qTy,qTy), 12009 TP[LC("capExcTag",CTy"CapExceptionType"), 12010 Var("cb",FTy 5)]),qVar"state")), 12011 (Call 12012 ("getSealed",bTy, 12013 Apply 12014 (Call 12015 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12016 qVar"state")), 12017 Apply 12018 (Call 12019 ("SignalCapException",ATy(qTy,qTy), 12020 TP[LC("capExcSeal",CTy"CapExceptionType"), 12021 Var("cb",FTy 5)]),qVar"state")), 12022 (Bop(Ugt, 12023 Bop(Add,Var("v",F64), 12024 Mop(Cast F64,Const("CAPBYTEWIDTH",nTy))), 12025 Bop(Add, 12026 Call 12027 ("getBase",F64, 12028 Apply 12029 (Call 12030 ("CAPR",ATy(qTy,CTy"Capability"), 12031 Var("cb",FTy 5)),qVar"state")), 12032 Call 12033 ("getLength",F64, 12034 Apply 12035 (Call 12036 ("CAPR",ATy(qTy,CTy"Capability"), 12037 Var("cb",FTy 5)),qVar"state")))), 12038 Apply 12039 (Call 12040 ("SignalCapException",ATy(qTy,qTy), 12041 TP[LC("capExcLength",CTy"CapExceptionType"), 12042 Var("cb",FTy 5)]),qVar"state")), 12043 (Bop(Ult,Var("v",F64), 12044 Call 12045 ("getBase",F64, 12046 Apply 12047 (Call 12048 ("CAPR",ATy(qTy,CTy"Capability"), 12049 Var("cb",FTy 5)),qVar"state"))), 12050 Apply 12051 (Call 12052 ("SignalCapException",ATy(qTy,qTy), 12053 TP[LC("capExcLength",CTy"CapExceptionType"), 12054 Var("cb",FTy 5)]),qVar"state")), 12055 (Mop(Not,Call("isCapAligned",bTy,Var("v",F64))), 12056 Apply 12057 (Call 12058 ("SignalException",ATy(qTy,qTy), 12059 LC("AdEL",CTy"ExceptionType")), 12060 Apply 12061 (Call 12062 ("write'CP0",ATy(qTy,qTy), 12063 Rupd 12064 ("BadVAddr", 12065 TP[Apply 12066 (Const("CP0",ATy(qTy,CTy"CP0")), 12067 qVar"state"),Var("v",F64)])),qVar"state")))], 12068 Let(TP[Var("v",CTy"Capability"),qVar"s"], 12069 Apply 12070 (Call 12071 ("LoadCap",ATy(qTy,PTy(CTy"Capability",qTy)), 12072 TP[Var("v",F64),LT]),qVar"state"), 12073 ITE(Mop(Not, 12074 Apply 12075 (Const("exceptionSignalled",ATy(qTy,bTy)), 12076 qVar"s")), 12077 Apply 12078 (Call 12079 ("write'CAPR",ATy(qTy,qTy), 12080 TP[ITE(Mop(Not, 12081 Dest 12082 ("Permit_Load_Capability",bTy, 12083 Call 12084 ("getPerms",CTy"Perms", 12085 Apply 12086 (Call 12087 ("CAPR", 12088 ATy(qTy,CTy"Capability"), 12089 Var("cb",FTy 5)), 12090 qVar"s")))), 12091 Call 12092 ("setTag",CTy"Capability", 12093 TP[Var("v",CTy"Capability"),LF]), 12094 Var("v",CTy"Capability")), 12095 Var("cd",FTy 5)]),qVar"s"),qVar"s")))))) 12096; 12097val dfn'CLLx_def = Def 12098 ("dfn'CLLx",TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("stt",FTy 3)], 12099 Close 12100 (qVar"state", 12101 Let(Var("t",FTy 2),EX(Var("stt",FTy 3),LN 1,LN 0,FTy 2), 12102 Let(Var("v",CTy"Capability"), 12103 Apply 12104 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12105 qVar"state"), 12106 Let(Var("addr",F64), 12107 Bop(Add,Call("getBase",F64,Var("v",CTy"Capability")), 12108 Call("getOffset",F64,Var("v",CTy"Capability"))), 12109 Let(Var("size",F64), 12110 Mop(Cast F64, 12111 Bop(Lsl,LW(1,64),Mop(Cast nTy,Var("t",FTy 2)))), 12112 Let(TP[Var("v0",FTy 3),qVar"s"], 12113 CS(Var("t",FTy 2), 12114 [(LW(0,2), 12115 TP[Bop(BXor, 12116 EX(Var("addr",F64),LN 2,LN 0,FTy 3), 12117 REP(Apply 12118 (Const 12119 ("BigEndianCPU",ATy(qTy,F1)), 12120 qVar"state"),LN 3,FTy 3)), 12121 qVar"state"]), 12122 (LW(1,2), 12123 TP[Bop(BXor, 12124 EX(Var("addr",F64),LN 2,LN 0,FTy 3), 12125 CC[REP(Apply 12126 (Const 12127 ("BigEndianCPU", 12128 ATy(qTy,F1)), 12129 qVar"state"),LN 2,FTy 2), 12130 LW(0,1)]),qVar"state"]), 12131 (LW(2,2), 12132 TP[Bop(BXor, 12133 EX(Var("addr",F64),LN 2,LN 0,FTy 3), 12134 CC[REP(Apply 12135 (Const 12136 ("BigEndianCPU", 12137 ATy(qTy,F1)), 12138 qVar"state"),LN 1,F1), 12139 LW(0,2)]),qVar"state"]), 12140 (LW(3,2),TP[LW(0,3),qVar"state"])]), 12141 ITB([(Mop(Not, 12142 Dest 12143 ("CU2",bTy, 12144 Dest 12145 ("Status",CTy"StatusRegister", 12146 Apply 12147 (Const 12148 ("CP0",ATy(qTy,CTy"CP0")), 12149 qVar"s")))), 12150 Apply 12151 (Const 12152 ("SignalCP2UnusableException", 12153 ATy(qTy,qTy)),qVar"s")), 12154 (Apply 12155 (Call 12156 ("register_inaccessible", 12157 ATy(qTy,bTy),Var("cb",FTy 5)), 12158 qVar"s"), 12159 Apply 12160 (Call 12161 ("SignalCapException",ATy(qTy,qTy), 12162 TP[LC("capExcAccessSysReg", 12163 CTy"CapExceptionType"), 12164 Var("cb",FTy 5)]),qVar"s")), 12165 (Mop(Not, 12166 Call 12167 ("getTag",bTy, 12168 Var("v",CTy"Capability"))), 12169 Apply 12170 (Call 12171 ("SignalCapException",ATy(qTy,qTy), 12172 TP[LC("capExcTag", 12173 CTy"CapExceptionType"), 12174 Var("cb",FTy 5)]),qVar"s")), 12175 (Call 12176 ("getSealed",bTy, 12177 Var("v",CTy"Capability")), 12178 Apply 12179 (Call 12180 ("SignalCapException",ATy(qTy,qTy), 12181 TP[LC("capExcSeal", 12182 CTy"CapExceptionType"), 12183 Var("cb",FTy 5)]),qVar"s")), 12184 (Mop(Not, 12185 Dest 12186 ("Permit_Load",bTy, 12187 Call 12188 ("getPerms",CTy"Perms", 12189 Var("v",CTy"Capability")))), 12190 Apply 12191 (Call 12192 ("SignalCapException",ATy(qTy,qTy), 12193 TP[LC("capExcPermLoad", 12194 CTy"CapExceptionType"), 12195 Var("cb",FTy 5)]),qVar"s")), 12196 (Bop(Ugt, 12197 Bop(Add,CC[LW(0,1),Var("addr",F64)], 12198 CC[LW(0,1),Var("size",F64)]), 12199 Bop(Add, 12200 CC[LW(0,1), 12201 Call 12202 ("getBase",F64, 12203 Var("v",CTy"Capability"))], 12204 CC[LW(0,1), 12205 Call 12206 ("getLength",F64, 12207 Var("v",CTy"Capability"))])), 12208 Apply 12209 (Call 12210 ("SignalCapException",ATy(qTy,qTy), 12211 TP[LC("capExcLength", 12212 CTy"CapExceptionType"), 12213 Var("cb",FTy 5)]),qVar"s")), 12214 (Bop(Ult,Var("addr",F64), 12215 Call 12216 ("getBase",F64, 12217 Apply 12218 (Call 12219 ("CAPR", 12220 ATy(qTy,CTy"Capability"), 12221 Var("cb",FTy 5)),qVar"s"))), 12222 Apply 12223 (Call 12224 ("SignalCapException",ATy(qTy,qTy), 12225 TP[LC("capExcLength", 12226 CTy"CapExceptionType"), 12227 Var("cb",FTy 5)]),qVar"s"))], 12228 Let(TP[Var("v1",F64),qVar"s"], 12229 Apply 12230 (Call 12231 ("LoadMemoryCap", 12232 ATy(qTy,PTy(F64,qTy)), 12233 TP[ITE(EQ(Var("t",FTy 2),LW(0,2)), 12234 LW(0,3), 12235 REP(LW(1,1), 12236 Mop(Cast nTy, 12237 Var("t",FTy 2)), 12238 FTy 3)),LT, 12239 Var("addr",F64),LT]),qVar"s"), 12240 ITE(Mop(Not, 12241 Apply 12242 (Const 12243 ("exceptionSignalled", 12244 ATy(qTy,bTy)),qVar"s")), 12245 Let(vVar"final_data", 12246 EX(Mop(Cast vTy,Var("v1",F64)), 12247 Bop(Sub, 12248 Bop(Add, 12249 Bop(Mul, 12250 Mop(Cast nTy, 12251 Var("v0", 12252 FTy 3)), 12253 LN 8), 12254 Bop(Mul, 12255 Mop(Cast nTy, 12256 Var("size", 12257 F64)), 12258 LN 8)),LN 1), 12259 Bop(Mul, 12260 Mop(Cast nTy, 12261 Var("v0",FTy 3)),LN 8), 12262 vTy), 12263 ITE(Mop(Not, 12264 Bop(Bit, 12265 Var("stt",FTy 3), 12266 LN 2)), 12267 Apply 12268 (Call 12269 ("write'GPR", 12270 ATy(qTy,qTy), 12271 TP[Mop(Cast F64, 12272 Call 12273 ("ZeroExtendBitString", 12274 vTy, 12275 TP[LN 64, 12276 vVar"final_data"])), 12277 Var("rd",FTy 5)]), 12278 qVar"s"), 12279 Apply 12280 (Call 12281 ("write'GPR", 12282 ATy(qTy,qTy), 12283 TP[Mop(Cast F64, 12284 Call 12285 ("SignExtendBitString", 12286 vTy, 12287 TP[LN 64, 12288 vVar"final_data"])), 12289 Var("rd",FTy 5)]), 12290 qVar"s"))),qVar"s")))))))))) 12291; 12292val dfn'CSCC_def = Def 12293 ("dfn'CSCC",TP[Var("cs",FTy 5),Var("cb",FTy 5),Var("rd",FTy 5)], 12294 Close 12295 (qVar"state", 12296 Let(Var("v",F64), 12297 Bop(Add, 12298 Call 12299 ("getBase",F64, 12300 Apply 12301 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12302 qVar"state")), 12303 Call 12304 ("getOffset",F64, 12305 Apply 12306 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12307 qVar"state"))), 12308 ITB([(Mop(Not, 12309 Dest 12310 ("CU2",bTy, 12311 Dest 12312 ("Status",CTy"StatusRegister", 12313 Apply 12314 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 12315 Apply 12316 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 12317 qVar"state")), 12318 (Apply 12319 (Call 12320 ("register_inaccessible",ATy(qTy,bTy),Var("cs",FTy 5)), 12321 qVar"state"), 12322 Apply 12323 (Call 12324 ("SignalCapException",ATy(qTy,qTy), 12325 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12326 Var("cs",FTy 5)]),qVar"state")), 12327 (Apply 12328 (Call 12329 ("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 12330 qVar"state"), 12331 Apply 12332 (Call 12333 ("SignalCapException",ATy(qTy,qTy), 12334 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12335 Var("cb",FTy 5)]),qVar"state")), 12336 (Mop(Not, 12337 Call 12338 ("getTag",bTy, 12339 Apply 12340 (Call 12341 ("CAPR",ATy(qTy,CTy"Capability"), 12342 Var("cb",FTy 5)),qVar"state"))), 12343 Apply 12344 (Call 12345 ("SignalCapException",ATy(qTy,qTy), 12346 TP[LC("capExcTag",CTy"CapExceptionType"), 12347 Var("cb",FTy 5)]),qVar"state")), 12348 (Call 12349 ("getSealed",bTy, 12350 Apply 12351 (Call 12352 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12353 qVar"state")), 12354 Apply 12355 (Call 12356 ("SignalCapException",ATy(qTy,qTy), 12357 TP[LC("capExcSeal",CTy"CapExceptionType"), 12358 Var("cb",FTy 5)]),qVar"state")), 12359 (Mop(Not, 12360 Dest 12361 ("Permit_Store_Capability",bTy, 12362 Call 12363 ("getPerms",CTy"Perms", 12364 Apply 12365 (Call 12366 ("CAPR",ATy(qTy,CTy"Capability"), 12367 Var("cb",FTy 5)),qVar"state")))), 12368 Apply 12369 (Call 12370 ("SignalCapException",ATy(qTy,qTy), 12371 TP[LC("capExcPermStoreCap",CTy"CapExceptionType"), 12372 Var("cb",FTy 5)]),qVar"state")), 12373 (Bop(And, 12374 Mop(Not, 12375 Dest 12376 ("Permit_Store_Local_Capability",bTy, 12377 Call 12378 ("getPerms",CTy"Perms", 12379 Apply 12380 (Call 12381 ("CAPR",ATy(qTy,CTy"Capability"), 12382 Var("cb",FTy 5)),qVar"state")))), 12383 Bop(And, 12384 Call 12385 ("getTag",bTy, 12386 Apply 12387 (Call 12388 ("CAPR",ATy(qTy,CTy"Capability"), 12389 Var("cs",FTy 5)),qVar"state")), 12390 Mop(Not, 12391 Dest 12392 ("Global",bTy, 12393 Call 12394 ("getPerms",CTy"Perms", 12395 Apply 12396 (Call 12397 ("CAPR",ATy(qTy,CTy"Capability"), 12398 Var("cs",FTy 5)),qVar"state")))))), 12399 Apply 12400 (Call 12401 ("SignalCapException",ATy(qTy,qTy), 12402 TP[LC("capExcPermStoreLocalCap", 12403 CTy"CapExceptionType"),Var("cb",FTy 5)]), 12404 qVar"state")), 12405 (Bop(Ugt, 12406 Bop(Add,CC[LW(0,1),Var("v",F64)], 12407 Mop(Cast(FTy 65),Const("CAPBYTEWIDTH",nTy))), 12408 Bop(Add, 12409 CC[LW(0,1), 12410 Call 12411 ("getBase",F64, 12412 Apply 12413 (Call 12414 ("CAPR",ATy(qTy,CTy"Capability"), 12415 Var("cb",FTy 5)),qVar"state"))], 12416 CC[LW(0,1), 12417 Call 12418 ("getLength",F64, 12419 Apply 12420 (Call 12421 ("CAPR",ATy(qTy,CTy"Capability"), 12422 Var("cb",FTy 5)),qVar"state"))])), 12423 Apply 12424 (Call 12425 ("SignalCapException",ATy(qTy,qTy), 12426 TP[LC("capExcLength",CTy"CapExceptionType"), 12427 Var("cb",FTy 5)]),qVar"state")), 12428 (Bop(Ult,Var("v",F64), 12429 Call 12430 ("getBase",F64, 12431 Apply 12432 (Call 12433 ("CAPR",ATy(qTy,CTy"Capability"), 12434 Var("cb",FTy 5)),qVar"state"))), 12435 Apply 12436 (Call 12437 ("SignalCapException",ATy(qTy,qTy), 12438 TP[LC("capExcLength",CTy"CapExceptionType"), 12439 Var("cb",FTy 5)]),qVar"state")), 12440 (Mop(Not,Call("isCapAligned",bTy,Var("v",F64))), 12441 Apply 12442 (Call 12443 ("SignalException",ATy(qTy,qTy), 12444 LC("AdES",CTy"ExceptionType")), 12445 Apply 12446 (Call 12447 ("write'CP0",ATy(qTy,qTy), 12448 Rupd 12449 ("BadVAddr", 12450 TP[Apply 12451 (Const("CP0",ATy(qTy,CTy"CP0")), 12452 qVar"state"),Var("v",F64)])),qVar"state")))], 12453 Let(TP[Var("v",F64),qVar"s"], 12454 Let(TP[bVar"v",qVar"s"], 12455 Apply 12456 (Call 12457 ("StoreCap",ATy(qTy,PTy(bTy,qTy)), 12458 TP[Var("v",F64), 12459 Apply 12460 (Call 12461 ("CAPR",ATy(qTy,CTy"Capability"), 12462 Var("cs",FTy 5)),qVar"state"),LT]), 12463 qVar"state"), 12464 TP[ITE(bVar"v",LW(1,64),LW(0,64)),qVar"s"]), 12465 ITE(Mop(Not, 12466 Apply 12467 (Const("exceptionSignalled",ATy(qTy,bTy)), 12468 qVar"s")), 12469 Apply 12470 (Call 12471 ("write'GPR",ATy(qTy,qTy), 12472 TP[Var("v",F64),Var("rd",FTy 5)]),qVar"s"), 12473 qVar"s")))))) 12474; 12475val dfn'CSCx_def = Def 12476 ("dfn'CSCx", 12477 TP[Var("rs",FTy 5),Var("cb",FTy 5),Var("rd",FTy 5),Var("t",FTy 2)], 12478 Close 12479 (qVar"state", 12480 Let(Var("v",F64), 12481 Bop(Add, 12482 Call 12483 ("getBase",F64, 12484 Apply 12485 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12486 qVar"state")), 12487 Call 12488 ("getOffset",F64, 12489 Apply 12490 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12491 qVar"state"))), 12492 Let(Var("access_length",FTy 3), 12493 ITE(EQ(Var("t",FTy 2),LW(0,2)),LW(0,3), 12494 REP(LW(1,1),Mop(Cast nTy,Var("t",FTy 2)),FTy 3)), 12495 ITB([(Mop(Not, 12496 Dest 12497 ("CU2",bTy, 12498 Dest 12499 ("Status",CTy"StatusRegister", 12500 Apply 12501 (Const("CP0",ATy(qTy,CTy"CP0")), 12502 qVar"state")))), 12503 Apply 12504 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 12505 qVar"state")), 12506 (Apply 12507 (Call 12508 ("register_inaccessible",ATy(qTy,bTy), 12509 Var("cb",FTy 5)),qVar"state"), 12510 Apply 12511 (Call 12512 ("SignalCapException",ATy(qTy,qTy), 12513 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12514 Var("cb",FTy 5)]),qVar"state")), 12515 (Mop(Not, 12516 Call 12517 ("getTag",bTy, 12518 Apply 12519 (Call 12520 ("CAPR",ATy(qTy,CTy"Capability"), 12521 Var("cb",FTy 5)),qVar"state"))), 12522 Apply 12523 (Call 12524 ("SignalCapException",ATy(qTy,qTy), 12525 TP[LC("capExcTag",CTy"CapExceptionType"), 12526 Var("cb",FTy 5)]),qVar"state")), 12527 (Call 12528 ("getSealed",bTy, 12529 Apply 12530 (Call 12531 ("CAPR",ATy(qTy,CTy"Capability"), 12532 Var("cb",FTy 5)),qVar"state")), 12533 Apply 12534 (Call 12535 ("SignalCapException",ATy(qTy,qTy), 12536 TP[LC("capExcSeal",CTy"CapExceptionType"), 12537 Var("cb",FTy 5)]),qVar"state")), 12538 (Mop(Not, 12539 Dest 12540 ("Permit_Store",bTy, 12541 Call 12542 ("getPerms",CTy"Perms", 12543 Apply 12544 (Call 12545 ("CAPR",ATy(qTy,CTy"Capability"), 12546 Var("cb",FTy 5)),qVar"state")))), 12547 Apply 12548 (Call 12549 ("SignalCapException",ATy(qTy,qTy), 12550 TP[LC("capExcPermStore",CTy"CapExceptionType"), 12551 Var("cb",FTy 5)]),qVar"state")), 12552 (Bop(Ugt, 12553 Bop(Add,CC[LW(0,1),Var("v",F64)], 12554 CC[LW(0,1), 12555 Mop(Cast F64, 12556 Bop(Lsl,LW(1,64), 12557 Mop(Cast nTy,Var("t",FTy 2))))]), 12558 Bop(Add, 12559 CC[LW(0,1), 12560 Call 12561 ("getBase",F64, 12562 Apply 12563 (Call 12564 ("CAPR",ATy(qTy,CTy"Capability"), 12565 Var("cb",FTy 5)),qVar"state"))], 12566 CC[LW(0,1), 12567 Call 12568 ("getLength",F64, 12569 Apply 12570 (Call 12571 ("CAPR",ATy(qTy,CTy"Capability"), 12572 Var("cb",FTy 5)),qVar"state"))])), 12573 Apply 12574 (Call 12575 ("SignalCapException",ATy(qTy,qTy), 12576 TP[LC("capExcLength",CTy"CapExceptionType"), 12577 Var("cb",FTy 5)]),qVar"state")), 12578 (Bop(Ult,Var("v",F64), 12579 Call 12580 ("getBase",F64, 12581 Apply 12582 (Call 12583 ("CAPR",ATy(qTy,CTy"Capability"), 12584 Var("cb",FTy 5)),qVar"state"))), 12585 Apply 12586 (Call 12587 ("SignalCapException",ATy(qTy,qTy), 12588 TP[LC("capExcLength",CTy"CapExceptionType"), 12589 Var("cb",FTy 5)]),qVar"state"))], 12590 Let(TP[Var("v",F64),qVar"s"], 12591 Let(TP[bVar"v",qVar"s"], 12592 Apply 12593 (Call 12594 ("StoreMemoryCap",ATy(qTy,PTy(bTy,qTy)), 12595 TP[Var("access_length",FTy 3), 12596 Var("access_length",FTy 3), 12597 Apply 12598 (Call 12599 ("GPR",ATy(qTy,F64), 12600 Var("rs",FTy 5)),qVar"state"),LT, 12601 Var("v",F64),LT]),qVar"state"), 12602 TP[ITE(bVar"v",LW(1,64),LW(0,64)),qVar"s"]), 12603 ITE(Mop(Not, 12604 Apply 12605 (Const("exceptionSignalled",ATy(qTy,bTy)), 12606 qVar"s")), 12607 Apply 12608 (Call 12609 ("write'GPR",ATy(qTy,qTy), 12610 TP[Var("v",F64),Var("rd",FTy 5)]),qVar"s"), 12611 qVar"s"))))))) 12612; 12613val dfn'CMOVN_def = Def 12614 ("dfn'CMOVN",TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)], 12615 Close 12616 (qVar"state", 12617 ITB([(Mop(Not, 12618 Dest 12619 ("CU2",bTy, 12620 Dest 12621 ("Status",CTy"StatusRegister", 12622 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 12623 Apply 12624 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 12625 qVar"state")), 12626 (Apply 12627 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 12628 qVar"state"), 12629 Apply 12630 (Call 12631 ("SignalCapException",ATy(qTy,qTy), 12632 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12633 Var("cd",FTy 5)]),qVar"state")), 12634 (Apply 12635 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 12636 qVar"state"), 12637 Apply 12638 (Call 12639 ("SignalCapException",ATy(qTy,qTy), 12640 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12641 Var("cb",FTy 5)]),qVar"state")), 12642 (Mop(Not, 12643 EQ(Apply 12644 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 12645 LW(0,64))), 12646 Apply 12647 (Call 12648 ("write'CAPR",ATy(qTy,qTy), 12649 TP[Apply 12650 (Call 12651 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12652 qVar"state"),Var("cd",FTy 5)]),qVar"state"))], 12653 qVar"state"))) 12654; 12655val dfn'CMOVZ_def = Def 12656 ("dfn'CMOVZ",TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)], 12657 Close 12658 (qVar"state", 12659 ITB([(Mop(Not, 12660 Dest 12661 ("CU2",bTy, 12662 Dest 12663 ("Status",CTy"StatusRegister", 12664 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 12665 Apply 12666 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 12667 qVar"state")), 12668 (Apply 12669 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 12670 qVar"state"), 12671 Apply 12672 (Call 12673 ("SignalCapException",ATy(qTy,qTy), 12674 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12675 Var("cd",FTy 5)]),qVar"state")), 12676 (Apply 12677 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 12678 qVar"state"), 12679 Apply 12680 (Call 12681 ("SignalCapException",ATy(qTy,qTy), 12682 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12683 Var("cb",FTy 5)]),qVar"state")), 12684 (EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 12685 LW(0,64)), 12686 Apply 12687 (Call 12688 ("write'CAPR",ATy(qTy,qTy), 12689 TP[Apply 12690 (Call 12691 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 12692 qVar"state"),Var("cd",FTy 5)]),qVar"state"))], 12693 qVar"state"))) 12694; 12695val dfn'CJR_def = Def 12696 ("dfn'CJR",Var("cb",FTy 5), 12697 Close 12698 (qVar"state", 12699 ITE(Mop(Not, 12700 Dest 12701 ("CU2",bTy, 12702 Dest 12703 ("Status",CTy"StatusRegister", 12704 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 12705 Apply 12706 (Const("SignalCP2UnusableException",ATy(qTy,qTy)),qVar"state"), 12707 Let(TP[bVar"v",qVar"s"], 12708 Let(qVar"s0", 12709 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 12710 TP[Apply 12711 (Call 12712 ("register_inaccessible",ATy(qTy,bTy), 12713 Var("cb",FTy 5)),qVar"s0"),qVar"s0"]), 12714 ITB([(bVar"v", 12715 Apply 12716 (Call 12717 ("SignalCapException",ATy(qTy,qTy), 12718 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12719 Var("cb",FTy 5)]),qVar"s")), 12720 (Mop(Not, 12721 Call 12722 ("getTag",bTy, 12723 Apply 12724 (Call 12725 ("CAPR",ATy(qTy,CTy"Capability"), 12726 Var("cb",FTy 5)),qVar"s"))), 12727 Apply 12728 (Call 12729 ("SignalCapException",ATy(qTy,qTy), 12730 TP[LC("capExcTag",CTy"CapExceptionType"), 12731 Var("cb",FTy 5)]),qVar"s")), 12732 (Call 12733 ("getSealed",bTy, 12734 Apply 12735 (Call 12736 ("CAPR",ATy(qTy,CTy"Capability"), 12737 Var("cb",FTy 5)),qVar"s")), 12738 Apply 12739 (Call 12740 ("SignalCapException",ATy(qTy,qTy), 12741 TP[LC("capExcSeal",CTy"CapExceptionType"), 12742 Var("cb",FTy 5)]),qVar"s")), 12743 (Mop(Not, 12744 Dest 12745 ("Permit_Execute",bTy, 12746 Call 12747 ("getPerms",CTy"Perms", 12748 Apply 12749 (Call 12750 ("CAPR",ATy(qTy,CTy"Capability"), 12751 Var("cb",FTy 5)),qVar"s")))), 12752 Apply 12753 (Call 12754 ("SignalCapException",ATy(qTy,qTy), 12755 TP[LC("capExcPermExe",CTy"CapExceptionType"), 12756 Var("cb",FTy 5)]),qVar"s")), 12757 (Bop(Ugt, 12758 Bop(Add, 12759 CC[LW(0,1), 12760 Call 12761 ("getOffset",F64, 12762 Apply 12763 (Call 12764 ("CAPR",ATy(qTy,CTy"Capability"), 12765 Var("cb",FTy 5)),qVar"s"))], 12766 LW(4,65)), 12767 CC[LW(0,1), 12768 Call 12769 ("getLength",F64, 12770 Apply 12771 (Call 12772 ("CAPR",ATy(qTy,CTy"Capability"), 12773 Var("cb",FTy 5)),qVar"s"))]), 12774 Apply 12775 (Call 12776 ("SignalCapException",ATy(qTy,qTy), 12777 TP[LC("capExcLength",CTy"CapExceptionType"), 12778 Var("cb",FTy 5)]),qVar"s")), 12779 (Mop(Not, 12780 EQ(EX(Bop(Add, 12781 Call 12782 ("getBase",F64, 12783 Apply 12784 (Call 12785 ("CAPR", 12786 ATy(qTy,CTy"Capability"), 12787 Var("cb",FTy 5)),qVar"s")), 12788 Call 12789 ("getOffset",F64, 12790 Apply 12791 (Call 12792 ("CAPR", 12793 ATy(qTy,CTy"Capability"), 12794 Var("cb",FTy 5)),qVar"s"))), 12795 LN 1,LN 0,FTy 2),LW(0,2))), 12796 Apply 12797 (Call 12798 ("SignalException",ATy(qTy,qTy), 12799 LC("AdEL",CTy"ExceptionType")), 12800 Apply 12801 (Call 12802 ("write'CP0",ATy(qTy,qTy), 12803 Rupd 12804 ("BadVAddr", 12805 TP[Apply 12806 (Const("CP0",ATy(qTy,CTy"CP0")), 12807 qVar"s"), 12808 Bop(Add, 12809 Call 12810 ("getBase",F64, 12811 Apply 12812 (Call 12813 ("CAPR", 12814 ATy(qTy,CTy"Capability"), 12815 Var("cb",FTy 5)),qVar"s")), 12816 Call 12817 ("getOffset",F64, 12818 Apply 12819 (Call 12820 ("CAPR", 12821 ATy(qTy,CTy"Capability"), 12822 Var("cb",FTy 5)),qVar"s")))])), 12823 qVar"s")))], 12824 Rupd 12825 ("BranchToPCC", 12826 TP[qVar"s", 12827 Mop(Some, 12828 TP[Call 12829 ("getOffset",F64, 12830 Apply 12831 (Call 12832 ("CAPR",ATy(qTy,CTy"Capability"), 12833 Var("cb",FTy 5)),qVar"s")), 12834 Apply 12835 (Call 12836 ("CAPR",ATy(qTy,CTy"Capability"), 12837 Var("cb",FTy 5)),qVar"s")])])))))) 12838; 12839val dfn'CJALR_def = Def 12840 ("dfn'CJALR",TP[Var("cd",FTy 5),Var("cb",FTy 5)], 12841 Close 12842 (qVar"state", 12843 ITE(Mop(Not, 12844 Dest 12845 ("CU2",bTy, 12846 Dest 12847 ("Status",CTy"StatusRegister", 12848 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 12849 Apply 12850 (Const("SignalCP2UnusableException",ATy(qTy,qTy)),qVar"state"), 12851 Let(TP[bVar"v",qVar"s"], 12852 Let(qVar"s0", 12853 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 12854 TP[Apply 12855 (Call 12856 ("register_inaccessible",ATy(qTy,bTy), 12857 Var("cd",FTy 5)),qVar"s0"),qVar"s0"]), 12858 ITB([(bVar"v", 12859 Apply 12860 (Call 12861 ("SignalCapException",ATy(qTy,qTy), 12862 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12863 Var("cd",FTy 5)]),qVar"s")), 12864 (Apply 12865 (Call 12866 ("register_inaccessible",ATy(qTy,bTy), 12867 Var("cb",FTy 5)),qVar"s"), 12868 Apply 12869 (Call 12870 ("SignalCapException",ATy(qTy,qTy), 12871 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 12872 Var("cb",FTy 5)]),qVar"s")), 12873 (Mop(Not, 12874 Call 12875 ("getTag",bTy, 12876 Apply 12877 (Call 12878 ("CAPR",ATy(qTy,CTy"Capability"), 12879 Var("cb",FTy 5)),qVar"s"))), 12880 Apply 12881 (Call 12882 ("SignalCapException",ATy(qTy,qTy), 12883 TP[LC("capExcTag",CTy"CapExceptionType"), 12884 Var("cb",FTy 5)]),qVar"s")), 12885 (Call 12886 ("getSealed",bTy, 12887 Apply 12888 (Call 12889 ("CAPR",ATy(qTy,CTy"Capability"), 12890 Var("cb",FTy 5)),qVar"s")), 12891 Apply 12892 (Call 12893 ("SignalCapException",ATy(qTy,qTy), 12894 TP[LC("capExcSeal",CTy"CapExceptionType"), 12895 Var("cb",FTy 5)]),qVar"s")), 12896 (Mop(Not, 12897 Dest 12898 ("Permit_Execute",bTy, 12899 Call 12900 ("getPerms",CTy"Perms", 12901 Apply 12902 (Call 12903 ("CAPR",ATy(qTy,CTy"Capability"), 12904 Var("cb",FTy 5)),qVar"s")))), 12905 Apply 12906 (Call 12907 ("SignalCapException",ATy(qTy,qTy), 12908 TP[LC("capExcPermExe",CTy"CapExceptionType"), 12909 Var("cb",FTy 5)]),qVar"s")), 12910 (Bop(Ugt, 12911 Bop(Add, 12912 CC[LW(0,1), 12913 Call 12914 ("getOffset",F64, 12915 Apply 12916 (Call 12917 ("CAPR",ATy(qTy,CTy"Capability"), 12918 Var("cb",FTy 5)),qVar"s"))], 12919 LW(4,65)), 12920 CC[LW(0,1), 12921 Call 12922 ("getLength",F64, 12923 Apply 12924 (Call 12925 ("CAPR",ATy(qTy,CTy"Capability"), 12926 Var("cb",FTy 5)),qVar"s"))]), 12927 Apply 12928 (Call 12929 ("SignalCapException",ATy(qTy,qTy), 12930 TP[LC("capExcLength",CTy"CapExceptionType"), 12931 Var("cb",FTy 5)]),qVar"s")), 12932 (Mop(Not, 12933 EQ(EX(Bop(Add, 12934 Call 12935 ("getBase",F64, 12936 Apply 12937 (Call 12938 ("CAPR", 12939 ATy(qTy,CTy"Capability"), 12940 Var("cb",FTy 5)),qVar"s")), 12941 Call 12942 ("getOffset",F64, 12943 Apply 12944 (Call 12945 ("CAPR", 12946 ATy(qTy,CTy"Capability"), 12947 Var("cb",FTy 5)),qVar"s"))), 12948 LN 1,LN 0,FTy 2),LW(0,2))), 12949 Apply 12950 (Call 12951 ("SignalException",ATy(qTy,qTy), 12952 LC("AdEL",CTy"ExceptionType")), 12953 Apply 12954 (Call 12955 ("write'CP0",ATy(qTy,qTy), 12956 Rupd 12957 ("BadVAddr", 12958 TP[Apply 12959 (Const("CP0",ATy(qTy,CTy"CP0")), 12960 qVar"s"), 12961 Bop(Add, 12962 Call 12963 ("getBase",F64, 12964 Apply 12965 (Call 12966 ("CAPR", 12967 ATy(qTy,CTy"Capability"), 12968 Var("cb",FTy 5)),qVar"s")), 12969 Call 12970 ("getOffset",F64, 12971 Apply 12972 (Call 12973 ("CAPR", 12974 ATy(qTy,CTy"Capability"), 12975 Var("cb",FTy 5)),qVar"s")))])), 12976 qVar"s")))], 12977 Let(TP[Var("v",CTy"Capability"),qVar"s"], 12978 Let(qVar"s0", 12979 Apply 12980 (Call 12981 ("write'CAPR",ATy(qTy,qTy), 12982 TP[Call 12983 ("setOffset",CTy"Capability", 12984 TP[Apply 12985 (Const 12986 ("PCC", 12987 ATy(qTy,CTy"Capability")), 12988 qVar"s"), 12989 Bop(Add, 12990 Apply 12991 (Const("PC",ATy(qTy,F64)), 12992 qVar"s"),LW(8,64))]), 12993 Var("cd",FTy 5)]),qVar"s"), 12994 TP[Apply 12995 (Call 12996 ("CAPR",ATy(qTy,CTy"Capability"), 12997 Var("cd",FTy 5)),qVar"s0"),qVar"s0"]), 12998 Rupd 12999 ("BranchToPCC", 13000 TP[qVar"s", 13001 Mop(Some, 13002 TP[Call 13003 ("getOffset",F64, 13004 Apply 13005 (Call 13006 ("CAPR", 13007 ATy(qTy,CTy"Capability"), 13008 Var("cb",FTy 5)),qVar"s")), 13009 Apply 13010 (Call 13011 ("CAPR",ATy(qTy,CTy"Capability"), 13012 Var("cb",FTy 5)),qVar"s")])]))))))) 13013; 13014val dfn'CSeal_def = Def 13015 ("dfn'CSeal",TP[Var("cd",FTy 5),Var("cs",FTy 5),Var("ct",FTy 5)], 13016 Close 13017 (qVar"state", 13018 ITB([(Mop(Not, 13019 Dest 13020 ("CU2",bTy, 13021 Dest 13022 ("Status",CTy"StatusRegister", 13023 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 13024 Apply 13025 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 13026 qVar"state")), 13027 (Apply 13028 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 13029 qVar"state"), 13030 Apply 13031 (Call 13032 ("SignalCapException",ATy(qTy,qTy), 13033 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13034 Var("cd",FTy 5)]),qVar"state")), 13035 (Apply 13036 (Call("register_inaccessible",ATy(qTy,bTy),Var("cs",FTy 5)), 13037 qVar"state"), 13038 Apply 13039 (Call 13040 ("SignalCapException",ATy(qTy,qTy), 13041 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13042 Var("cs",FTy 5)]),qVar"state")), 13043 (Apply 13044 (Call("register_inaccessible",ATy(qTy,bTy),Var("ct",FTy 5)), 13045 qVar"state"), 13046 Apply 13047 (Call 13048 ("SignalCapException",ATy(qTy,qTy), 13049 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13050 Var("ct",FTy 5)]),qVar"state")), 13051 (Mop(Not, 13052 Call 13053 ("getTag",bTy, 13054 Apply 13055 (Call 13056 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13057 qVar"state"))), 13058 Apply 13059 (Call 13060 ("SignalCapException",ATy(qTy,qTy), 13061 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cs",FTy 5)]), 13062 qVar"state")), 13063 (Mop(Not, 13064 Call 13065 ("getTag",bTy, 13066 Apply 13067 (Call 13068 ("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 13069 qVar"state"))), 13070 Apply 13071 (Call 13072 ("SignalCapException",ATy(qTy,qTy), 13073 TP[LC("capExcTag",CTy"CapExceptionType"),Var("ct",FTy 5)]), 13074 qVar"state")), 13075 (Call 13076 ("getSealed",bTy, 13077 Apply 13078 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13079 qVar"state")), 13080 Apply 13081 (Call 13082 ("SignalCapException",ATy(qTy,qTy), 13083 TP[LC("capExcSeal",CTy"CapExceptionType"), 13084 Var("cs",FTy 5)]),qVar"state")), 13085 (Call 13086 ("getSealed",bTy, 13087 Apply 13088 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 13089 qVar"state")), 13090 Apply 13091 (Call 13092 ("SignalCapException",ATy(qTy,qTy), 13093 TP[LC("capExcSeal",CTy"CapExceptionType"), 13094 Var("ct",FTy 5)]),qVar"state")), 13095 (Mop(Not, 13096 Dest 13097 ("Permit_Seal",bTy, 13098 Call 13099 ("getPerms",CTy"Perms", 13100 Apply 13101 (Call 13102 ("CAPR",ATy(qTy,CTy"Capability"), 13103 Var("ct",FTy 5)),qVar"state")))), 13104 Apply 13105 (Call 13106 ("SignalCapException",ATy(qTy,qTy), 13107 TP[LC("capExcPermSeal",CTy"CapExceptionType"), 13108 Var("ct",FTy 5)]),qVar"state")), 13109 (Bop(Uge, 13110 Call 13111 ("getOffset",F64, 13112 Apply 13113 (Call 13114 ("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 13115 qVar"state")), 13116 Call 13117 ("getLength",F64, 13118 Apply 13119 (Call 13120 ("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 13121 qVar"state"))), 13122 Apply 13123 (Call 13124 ("SignalCapException",ATy(qTy,qTy), 13125 TP[LC("capExcLength",CTy"CapExceptionType"), 13126 Var("ct",FTy 5)]),qVar"state")), 13127 (Bop(Uge, 13128 Bop(Add, 13129 Call 13130 ("getBase",F64, 13131 Apply 13132 (Call 13133 ("CAPR",ATy(qTy,CTy"Capability"), 13134 Var("ct",FTy 5)),qVar"state")), 13135 Call 13136 ("getOffset",F64, 13137 Apply 13138 (Call 13139 ("CAPR",ATy(qTy,CTy"Capability"), 13140 Var("ct",FTy 5)),qVar"state"))), 13141 Mop(Cast F64,Bop(Exp,LN 2,Const("OTYPEWIDTH",nTy)))), 13142 Apply 13143 (Call 13144 ("SignalCapException",ATy(qTy,qTy), 13145 TP[LC("capExcLength",CTy"CapExceptionType"), 13146 Var("ct",FTy 5)]),qVar"state")), 13147 (Mop(Not, 13148 Call 13149 ("canRepSeal",bTy, 13150 TP[Apply 13151 (Call 13152 ("CAPR",ATy(qTy,CTy"Capability"), 13153 Var("cs",FTy 5)),qVar"state"),LT])), 13154 Apply 13155 (Call 13156 ("SignalCapException",ATy(qTy,qTy), 13157 TP[LC("capExcInexact",CTy"CapExceptionType"), 13158 Var("cs",FTy 5)]),qVar"state"))], 13159 Apply 13160 (Call 13161 ("write'CAPR",ATy(qTy,qTy), 13162 TP[Call 13163 ("setType",CTy"Capability", 13164 TP[Call 13165 ("setSealed",CTy"Capability", 13166 TP[Apply 13167 (Call 13168 ("CAPR",ATy(qTy,CTy"Capability"), 13169 Var("cs",FTy 5)),qVar"state"),LT]), 13170 EX(Bop(Add, 13171 Call 13172 ("getBase",F64, 13173 Apply 13174 (Call 13175 ("CAPR",ATy(qTy,CTy"Capability"), 13176 Var("ct",FTy 5)),qVar"state")), 13177 Call 13178 ("getOffset",F64, 13179 Apply 13180 (Call 13181 ("CAPR",ATy(qTy,CTy"Capability"), 13182 Var("ct",FTy 5)),qVar"state"))), 13183 Bop(Sub,Const("OTYPEWIDTH",nTy),LN 1),LN 0, 13184 FTy 24)]),Var("cd",FTy 5)]),qVar"state")))) 13185; 13186val dfn'CUnseal_def = Def 13187 ("dfn'CUnseal",TP[Var("cd",FTy 5),Var("cs",FTy 5),Var("ct",FTy 5)], 13188 Close 13189 (qVar"state", 13190 ITB([(Mop(Not, 13191 Dest 13192 ("CU2",bTy, 13193 Dest 13194 ("Status",CTy"StatusRegister", 13195 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 13196 Apply 13197 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 13198 qVar"state")), 13199 (Apply 13200 (Call("register_inaccessible",ATy(qTy,bTy),Var("cd",FTy 5)), 13201 qVar"state"), 13202 Apply 13203 (Call 13204 ("SignalCapException",ATy(qTy,qTy), 13205 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13206 Var("cd",FTy 5)]),qVar"state")), 13207 (Apply 13208 (Call("register_inaccessible",ATy(qTy,bTy),Var("cs",FTy 5)), 13209 qVar"state"), 13210 Apply 13211 (Call 13212 ("SignalCapException",ATy(qTy,qTy), 13213 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13214 Var("cs",FTy 5)]),qVar"state")), 13215 (Apply 13216 (Call("register_inaccessible",ATy(qTy,bTy),Var("ct",FTy 5)), 13217 qVar"state"), 13218 Apply 13219 (Call 13220 ("SignalCapException",ATy(qTy,qTy), 13221 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13222 Var("ct",FTy 5)]),qVar"state")), 13223 (Mop(Not, 13224 Call 13225 ("getTag",bTy, 13226 Apply 13227 (Call 13228 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13229 qVar"state"))), 13230 Apply 13231 (Call 13232 ("SignalCapException",ATy(qTy,qTy), 13233 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cs",FTy 5)]), 13234 qVar"state")), 13235 (Mop(Not, 13236 Call 13237 ("getTag",bTy, 13238 Apply 13239 (Call 13240 ("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 13241 qVar"state"))), 13242 Apply 13243 (Call 13244 ("SignalCapException",ATy(qTy,qTy), 13245 TP[LC("capExcTag",CTy"CapExceptionType"),Var("ct",FTy 5)]), 13246 qVar"state")), 13247 (Mop(Not, 13248 Call 13249 ("getSealed",bTy, 13250 Apply 13251 (Call 13252 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13253 qVar"state"))), 13254 Apply 13255 (Call 13256 ("SignalCapException",ATy(qTy,qTy), 13257 TP[LC("capExcSeal",CTy"CapExceptionType"), 13258 Var("cs",FTy 5)]),qVar"state")), 13259 (Call 13260 ("getSealed",bTy, 13261 Apply 13262 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 13263 qVar"state")), 13264 Apply 13265 (Call 13266 ("SignalCapException",ATy(qTy,qTy), 13267 TP[LC("capExcSeal",CTy"CapExceptionType"), 13268 Var("ct",FTy 5)]),qVar"state")), 13269 (Mop(Not, 13270 EQ(Bop(Add, 13271 Call 13272 ("getBase",F64, 13273 Apply 13274 (Call 13275 ("CAPR",ATy(qTy,CTy"Capability"), 13276 Var("ct",FTy 5)),qVar"state")), 13277 Call 13278 ("getOffset",F64, 13279 Apply 13280 (Call 13281 ("CAPR",ATy(qTy,CTy"Capability"), 13282 Var("ct",FTy 5)),qVar"state"))), 13283 Mop(Cast F64, 13284 Call 13285 ("getType",FTy 24, 13286 Apply 13287 (Call 13288 ("CAPR",ATy(qTy,CTy"Capability"), 13289 Var("cs",FTy 5)),qVar"state"))))), 13290 Apply 13291 (Call 13292 ("SignalCapException",ATy(qTy,qTy), 13293 TP[LC("capExcType",CTy"CapExceptionType"), 13294 Var("ct",FTy 5)]),qVar"state")), 13295 (Mop(Not, 13296 Dest 13297 ("Permit_Seal",bTy, 13298 Call 13299 ("getPerms",CTy"Perms", 13300 Apply 13301 (Call 13302 ("CAPR",ATy(qTy,CTy"Capability"), 13303 Var("ct",FTy 5)),qVar"state")))), 13304 Apply 13305 (Call 13306 ("SignalCapException",ATy(qTy,qTy), 13307 TP[LC("capExcPermSeal",CTy"CapExceptionType"), 13308 Var("ct",FTy 5)]),qVar"state")), 13309 (Bop(Uge, 13310 Call 13311 ("getOffset",F64, 13312 Apply 13313 (Call 13314 ("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 13315 qVar"state")), 13316 Call 13317 ("getLength",F64, 13318 Apply 13319 (Call 13320 ("CAPR",ATy(qTy,CTy"Capability"),Var("ct",FTy 5)), 13321 qVar"state"))), 13322 Apply 13323 (Call 13324 ("SignalCapException",ATy(qTy,qTy), 13325 TP[LC("capExcLength",CTy"CapExceptionType"), 13326 Var("ct",FTy 5)]),qVar"state"))], 13327 Let(Var("s0",CTy"Capability"), 13328 Call 13329 ("setType",CTy"Capability", 13330 TP[Call 13331 ("setSealed",CTy"Capability", 13332 TP[Apply 13333 (Call 13334 ("CAPR",ATy(qTy,CTy"Capability"), 13335 Var("cs",FTy 5)),qVar"state"),LF]), 13336 LW(0,24)]), 13337 Apply 13338 (Call 13339 ("write'CAPR",ATy(qTy,qTy), 13340 TP[Call 13341 ("setPerms",CTy"Capability", 13342 TP[Var("s0",CTy"Capability"), 13343 Rupd 13344 ("Global", 13345 TP[Call 13346 ("getPerms",CTy"Perms", 13347 Var("s0",CTy"Capability")), 13348 Bop(And, 13349 Dest 13350 ("Global",bTy, 13351 Call 13352 ("getPerms",CTy"Perms", 13353 Apply 13354 (Call 13355 ("CAPR", 13356 ATy(qTy,CTy"Capability"), 13357 Var("cs",FTy 5)), 13358 qVar"state"))), 13359 Dest 13360 ("Global",bTy, 13361 Call 13362 ("getPerms",CTy"Perms", 13363 Apply 13364 (Call 13365 ("CAPR", 13366 ATy(qTy,CTy"Capability"), 13367 Var("ct",FTy 5)), 13368 qVar"state"))))])]), 13369 Var("cd",FTy 5)]),qVar"state"))))) 13370; 13371val dfn'CCall0_def = Def 13372 ("dfn'CCall0",TP[Var("cs",FTy 5),Var("cb",FTy 5)], 13373 Close 13374 (qVar"state", 13375 ITB([(Mop(Not, 13376 Dest 13377 ("CU2",bTy, 13378 Dest 13379 ("Status",CTy"StatusRegister", 13380 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 13381 Apply 13382 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 13383 qVar"state")), 13384 (Apply 13385 (Call("register_inaccessible",ATy(qTy,bTy),Var("cs",FTy 5)), 13386 qVar"state"), 13387 Apply 13388 (Call 13389 ("SignalCapException",ATy(qTy,qTy), 13390 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13391 Var("cs",FTy 5)]),qVar"state")), 13392 (Apply 13393 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 13394 qVar"state"), 13395 Apply 13396 (Call 13397 ("SignalCapException",ATy(qTy,qTy), 13398 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13399 Var("cb",FTy 5)]),qVar"state")), 13400 (Mop(Not, 13401 Call 13402 ("getTag",bTy, 13403 Apply 13404 (Call 13405 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13406 qVar"state"))), 13407 Apply 13408 (Call 13409 ("SignalCapException",ATy(qTy,qTy), 13410 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cs",FTy 5)]), 13411 qVar"state")), 13412 (Mop(Not, 13413 Call 13414 ("getTag",bTy, 13415 Apply 13416 (Call 13417 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 13418 qVar"state"))), 13419 Apply 13420 (Call 13421 ("SignalCapException",ATy(qTy,qTy), 13422 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 13423 qVar"state")), 13424 (Mop(Not, 13425 Call 13426 ("getSealed",bTy, 13427 Apply 13428 (Call 13429 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13430 qVar"state"))), 13431 Apply 13432 (Call 13433 ("SignalCapException",ATy(qTy,qTy), 13434 TP[LC("capExcSeal",CTy"CapExceptionType"), 13435 Var("cs",FTy 5)]),qVar"state")), 13436 (Mop(Not, 13437 Call 13438 ("getSealed",bTy, 13439 Apply 13440 (Call 13441 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 13442 qVar"state"))), 13443 Apply 13444 (Call 13445 ("SignalCapException",ATy(qTy,qTy), 13446 TP[LC("capExcSeal",CTy"CapExceptionType"), 13447 Var("cb",FTy 5)]),qVar"state")), 13448 (Mop(Not, 13449 EQ(Call 13450 ("getType",FTy 24, 13451 Apply 13452 (Call 13453 ("CAPR",ATy(qTy,CTy"Capability"), 13454 Var("cs",FTy 5)),qVar"state")), 13455 Call 13456 ("getType",FTy 24, 13457 Apply 13458 (Call 13459 ("CAPR",ATy(qTy,CTy"Capability"), 13460 Var("cb",FTy 5)),qVar"state")))), 13461 Apply 13462 (Call 13463 ("SignalCapException",ATy(qTy,qTy), 13464 TP[LC("capExcType",CTy"CapExceptionType"), 13465 Var("cs",FTy 5)]),qVar"state")), 13466 (Mop(Not, 13467 Dest 13468 ("Permit_Execute",bTy, 13469 Call 13470 ("getPerms",CTy"Perms", 13471 Apply 13472 (Call 13473 ("CAPR",ATy(qTy,CTy"Capability"), 13474 Var("cs",FTy 5)),qVar"state")))), 13475 Apply 13476 (Call 13477 ("SignalCapException",ATy(qTy,qTy), 13478 TP[LC("capExcPermExe",CTy"CapExceptionType"), 13479 Var("cs",FTy 5)]),qVar"state")), 13480 (Dest 13481 ("Permit_Execute",bTy, 13482 Call 13483 ("getPerms",CTy"Perms", 13484 Apply 13485 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 13486 qVar"state"))), 13487 Apply 13488 (Call 13489 ("SignalCapException",ATy(qTy,qTy), 13490 TP[LC("capExcPermExe",CTy"CapExceptionType"), 13491 Var("cb",FTy 5)]),qVar"state")), 13492 (Bop(Uge, 13493 Call 13494 ("getOffset",F64, 13495 Apply 13496 (Call 13497 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13498 qVar"state")), 13499 Call 13500 ("getLength",F64, 13501 Apply 13502 (Call 13503 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13504 qVar"state"))), 13505 Apply 13506 (Call 13507 ("SignalCapException",ATy(qTy,qTy), 13508 TP[LC("capExcLength",CTy"CapExceptionType"), 13509 Var("cs",FTy 5)]),qVar"state"))], 13510 Apply 13511 (Call 13512 ("SignalCapException",ATy(qTy,qTy), 13513 TP[LC("capExcCall",CTy"CapExceptionType"),Var("cs",FTy 5)]), 13514 qVar"state")))) 13515; 13516val dfn'CCall1_def = Def 13517 ("dfn'CCall1",TP[Var("cs",FTy 5),Var("cb",FTy 5)], 13518 Close 13519 (qVar"state", 13520 ITB([(Mop(Not, 13521 Dest 13522 ("CU2",bTy, 13523 Dest 13524 ("Status",CTy"StatusRegister", 13525 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 13526 Apply 13527 (Const("SignalCP2UnusableException",ATy(qTy,qTy)), 13528 qVar"state")), 13529 (Apply 13530 (Call("register_inaccessible",ATy(qTy,bTy),Var("cs",FTy 5)), 13531 qVar"state"), 13532 Apply 13533 (Call 13534 ("SignalCapException",ATy(qTy,qTy), 13535 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13536 Var("cs",FTy 5)]),qVar"state")), 13537 (Apply 13538 (Call("register_inaccessible",ATy(qTy,bTy),Var("cb",FTy 5)), 13539 qVar"state"), 13540 Apply 13541 (Call 13542 ("SignalCapException",ATy(qTy,qTy), 13543 TP[LC("capExcAccessSysReg",CTy"CapExceptionType"), 13544 Var("cb",FTy 5)]),qVar"state")), 13545 (Mop(Not, 13546 Call 13547 ("getTag",bTy, 13548 Apply 13549 (Call 13550 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13551 qVar"state"))), 13552 Apply 13553 (Call 13554 ("SignalCapException",ATy(qTy,qTy), 13555 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cs",FTy 5)]), 13556 qVar"state")), 13557 (Mop(Not, 13558 Call 13559 ("getTag",bTy, 13560 Apply 13561 (Call 13562 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 13563 qVar"state"))), 13564 Apply 13565 (Call 13566 ("SignalCapException",ATy(qTy,qTy), 13567 TP[LC("capExcTag",CTy"CapExceptionType"),Var("cb",FTy 5)]), 13568 qVar"state")), 13569 (Mop(Not, 13570 Call 13571 ("getSealed",bTy, 13572 Apply 13573 (Call 13574 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13575 qVar"state"))), 13576 Apply 13577 (Call 13578 ("SignalCapException",ATy(qTy,qTy), 13579 TP[LC("capExcSeal",CTy"CapExceptionType"), 13580 Var("cs",FTy 5)]),qVar"state")), 13581 (Mop(Not, 13582 Call 13583 ("getSealed",bTy, 13584 Apply 13585 (Call 13586 ("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 13587 qVar"state"))), 13588 Apply 13589 (Call 13590 ("SignalCapException",ATy(qTy,qTy), 13591 TP[LC("capExcSeal",CTy"CapExceptionType"), 13592 Var("cb",FTy 5)]),qVar"state")), 13593 (Mop(Not, 13594 EQ(Call 13595 ("getType",FTy 24, 13596 Apply 13597 (Call 13598 ("CAPR",ATy(qTy,CTy"Capability"), 13599 Var("cs",FTy 5)),qVar"state")), 13600 Call 13601 ("getType",FTy 24, 13602 Apply 13603 (Call 13604 ("CAPR",ATy(qTy,CTy"Capability"), 13605 Var("cb",FTy 5)),qVar"state")))), 13606 Apply 13607 (Call 13608 ("SignalCapException",ATy(qTy,qTy), 13609 TP[LC("capExcType",CTy"CapExceptionType"), 13610 Var("cs",FTy 5)]),qVar"state")), 13611 (Mop(Not, 13612 Dest 13613 ("Permit_CCall",bTy, 13614 Call 13615 ("getPerms",CTy"Perms", 13616 Apply 13617 (Call 13618 ("CAPR",ATy(qTy,CTy"Capability"), 13619 Var("cs",FTy 5)),qVar"state")))), 13620 Apply 13621 (Call 13622 ("SignalCapException",ATy(qTy,qTy), 13623 TP[LC("capExcPermCCall",CTy"CapExceptionType"), 13624 Var("cs",FTy 5)]),qVar"state")), 13625 (Mop(Not, 13626 Dest 13627 ("Permit_CCall",bTy, 13628 Call 13629 ("getPerms",CTy"Perms", 13630 Apply 13631 (Call 13632 ("CAPR",ATy(qTy,CTy"Capability"), 13633 Var("cb",FTy 5)),qVar"state")))), 13634 Apply 13635 (Call 13636 ("SignalCapException",ATy(qTy,qTy), 13637 TP[LC("capExcPermCCall",CTy"CapExceptionType"), 13638 Var("cb",FTy 5)]),qVar"state")), 13639 (Mop(Not, 13640 Dest 13641 ("Permit_Execute",bTy, 13642 Call 13643 ("getPerms",CTy"Perms", 13644 Apply 13645 (Call 13646 ("CAPR",ATy(qTy,CTy"Capability"), 13647 Var("cs",FTy 5)),qVar"state")))), 13648 Apply 13649 (Call 13650 ("SignalCapException",ATy(qTy,qTy), 13651 TP[LC("capExcPermExe",CTy"CapExceptionType"), 13652 Var("cs",FTy 5)]),qVar"state")), 13653 (Dest 13654 ("Permit_Execute",bTy, 13655 Call 13656 ("getPerms",CTy"Perms", 13657 Apply 13658 (Call("CAPR",ATy(qTy,CTy"Capability"),Var("cb",FTy 5)), 13659 qVar"state"))), 13660 Apply 13661 (Call 13662 ("SignalCapException",ATy(qTy,qTy), 13663 TP[LC("capExcPermExe",CTy"CapExceptionType"), 13664 Var("cb",FTy 5)]),qVar"state")), 13665 (Bop(Uge, 13666 Call 13667 ("getOffset",F64, 13668 Apply 13669 (Call 13670 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13671 qVar"state")), 13672 Call 13673 ("getLength",F64, 13674 Apply 13675 (Call 13676 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13677 qVar"state"))), 13678 Apply 13679 (Call 13680 ("SignalCapException",ATy(qTy,qTy), 13681 TP[LC("capExcLength",CTy"CapExceptionType"), 13682 Var("cs",FTy 5)]),qVar"state"))], 13683 Let(TP[Var("v",CTy"Capability"),qVar"s"], 13684 Let(qVar"s0", 13685 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 13686 TP[Apply 13687 (Call 13688 ("CAPR",ATy(qTy,CTy"Capability"),Var("cs",FTy 5)), 13689 qVar"s0"),qVar"s0"]), 13690 Let(TP[Var("v",CTy"Capability"),qVar"s"], 13691 Let(qVar"s0", 13692 Apply 13693 (Call 13694 ("write'PCC",ATy(qTy,qTy), 13695 Call 13696 ("setType",CTy"Capability", 13697 TP[Call 13698 ("setSealed",CTy"Capability", 13699 TP[Var("v",CTy"Capability"),LF]), 13700 LW(0,24)])),qVar"s"), 13701 TP[Apply 13702 (Call 13703 ("CAPR",ATy(qTy,CTy"Capability"), 13704 Var("cs",FTy 5)),qVar"s0"),qVar"s0"]), 13705 Let(TP[Var("v",CTy"Capability"),qVar"s"], 13706 Let(qVar"s0", 13707 Rupd 13708 ("CCallBranch", 13709 TP[Apply 13710 (Call 13711 ("write'BranchTo",ATy(qTy,qTy), 13712 Mop(Some, 13713 Call 13714 ("getOffset",F64, 13715 Var("v",CTy"Capability")))), 13716 qVar"s"),LT]), 13717 TP[Apply 13718 (Call 13719 ("CAPR",ATy(qTy,CTy"Capability"), 13720 Var("cb",FTy 5)),qVar"s0"),qVar"s0"]), 13721 Apply 13722 (Call 13723 ("write'IDC",ATy(qTy,qTy), 13724 Call 13725 ("setType",CTy"Capability", 13726 TP[Call 13727 ("setSealed",CTy"Capability", 13728 TP[Var("v",CTy"Capability"),LF]), 13729 LW(0,24)])),qVar"s"))))))) 13730; 13731val dfn'CReturn_def = Def 13732 ("dfn'CReturn",qVar"state", 13733 ITE(Mop(Not, 13734 Dest 13735 ("CU2",bTy, 13736 Dest 13737 ("Status",CTy"StatusRegister", 13738 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 13739 Apply(Const("SignalCP2UnusableException",ATy(qTy,qTy)),qVar"state"), 13740 Apply 13741 (Call 13742 ("SignalCapException_noReg",ATy(qTy,qTy), 13743 LC("capExcRet",CTy"CapExceptionType")),qVar"state"))) 13744; 13745val dfn'UnknownCapInstruction_def = Def 13746 ("dfn'UnknownCapInstruction",qVar"state", 13747 ITE(Mop(Not, 13748 Dest 13749 ("CU2",bTy, 13750 Dest 13751 ("Status",CTy"StatusRegister", 13752 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 13753 Apply(Const("SignalCP2UnusableException",ATy(qTy,qTy)),qVar"state"), 13754 Apply 13755 (Call 13756 ("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), 13757 qVar"state"))) 13758; 13759val dfn'ADDI_def = Def 13760 ("dfn'ADDI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13761 Close 13762 (qVar"state", 13763 Let(TP[Var("v",F64),qVar"s"], 13764 Let(qVar"s0", 13765 ITE(Call 13766 ("NotWordValue",bTy, 13767 Apply 13768 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 13769 qVar"state")), 13770 Mop(Snd, 13771 Apply 13772 (Call 13773 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 13774 Call 13775 ("UNPREDICTABLE",CTy"exception", 13776 LS"ADDI: NotWordValue")),qVar"state")), 13777 qVar"state"), 13778 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 13779 qVar"s0"]), 13780 Let(Var("v",FTy 33), 13781 Bop(Add,EX(Var("v",F64),LN 32,LN 0,FTy 33), 13782 Mop(SE(FTy 33),Var("immediate",F16))), 13783 ITE(Mop(Not, 13784 EQ(Bop(Bit,Var("v",FTy 33),LN 32), 13785 Bop(Bit,Var("v",FTy 33),LN 31))), 13786 Apply 13787 (Call 13788 ("SignalException",ATy(qTy,qTy), 13789 LC("Ov",CTy"ExceptionType")),qVar"s"), 13790 Apply 13791 (Call 13792 ("write'GPR",ATy(qTy,qTy), 13793 TP[Mop(SE F64,EX(Var("v",FTy 33),LN 31,LN 0,F32)), 13794 Var("rt",FTy 5)]),qVar"s")))))) 13795; 13796val dfn'ADDIU_def = Def 13797 ("dfn'ADDIU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13798 Close 13799 (qVar"state", 13800 Let(TP[Var("v",F64),qVar"s"], 13801 Let(qVar"s0", 13802 ITE(Call 13803 ("NotWordValue",bTy, 13804 Apply 13805 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 13806 qVar"state")), 13807 Mop(Snd, 13808 Apply 13809 (Call 13810 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 13811 Call 13812 ("UNPREDICTABLE",CTy"exception", 13813 LS"ADDIU: NotWordValue")),qVar"state")), 13814 qVar"state"), 13815 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 13816 qVar"s0"]), 13817 Apply 13818 (Call 13819 ("write'GPR",ATy(qTy,qTy), 13820 TP[Mop(SE F64, 13821 Bop(Add,EX(Var("v",F64),LN 31,LN 0,F32), 13822 Mop(SE F32,Var("immediate",F16)))), 13823 Var("rt",FTy 5)]),qVar"s")))) 13824; 13825val dfn'DADDI_def = Def 13826 ("dfn'DADDI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13827 Close 13828 (qVar"state", 13829 Let(Var("v",FTy 65), 13830 Bop(Add, 13831 Mop(SE(FTy 65), 13832 Apply 13833 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), 13834 Mop(SE(FTy 65),Var("immediate",F16))), 13835 ITE(Mop(Not, 13836 EQ(Bop(Bit,Var("v",FTy 65),LN 64), 13837 Bop(Bit,Var("v",FTy 65),LN 63))), 13838 Apply 13839 (Call 13840 ("SignalException",ATy(qTy,qTy), 13841 LC("Ov",CTy"ExceptionType")),qVar"state"), 13842 Apply 13843 (Call 13844 ("write'GPR",ATy(qTy,qTy), 13845 TP[EX(Var("v",FTy 65),LN 63,LN 0,F64),Var("rt",FTy 5)]), 13846 qVar"state"))))) 13847; 13848val dfn'DADDIU_def = Def 13849 ("dfn'DADDIU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13850 Close 13851 (qVar"state", 13852 Apply 13853 (Call 13854 ("write'GPR",ATy(qTy,qTy), 13855 TP[Bop(Add, 13856 Apply 13857 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 13858 Mop(SE F64,Var("immediate",F16))),Var("rt",FTy 5)]), 13859 qVar"state"))) 13860; 13861val dfn'SLTI_def = Def 13862 ("dfn'SLTI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13863 Close 13864 (qVar"state", 13865 Apply 13866 (Call 13867 ("write'GPR",ATy(qTy,qTy), 13868 TP[Mop(Cast F64, 13869 Bop(Lt, 13870 Apply 13871 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 13872 qVar"state"),Mop(SE F64,Var("immediate",F16)))), 13873 Var("rt",FTy 5)]),qVar"state"))) 13874; 13875val dfn'SLTIU_def = Def 13876 ("dfn'SLTIU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13877 Close 13878 (qVar"state", 13879 Apply 13880 (Call 13881 ("write'GPR",ATy(qTy,qTy), 13882 TP[Mop(Cast F64, 13883 Bop(Ult, 13884 Apply 13885 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 13886 qVar"state"),Mop(SE F64,Var("immediate",F16)))), 13887 Var("rt",FTy 5)]),qVar"state"))) 13888; 13889val dfn'ANDI_def = Def 13890 ("dfn'ANDI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13891 Close 13892 (qVar"state", 13893 Apply 13894 (Call 13895 ("write'GPR",ATy(qTy,qTy), 13896 TP[Bop(BAnd, 13897 Apply 13898 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 13899 Mop(Cast F64,Var("immediate",F16))),Var("rt",FTy 5)]), 13900 qVar"state"))) 13901; 13902val dfn'ORI_def = Def 13903 ("dfn'ORI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13904 Close 13905 (qVar"state", 13906 Apply 13907 (Call 13908 ("write'GPR",ATy(qTy,qTy), 13909 TP[Bop(BOr, 13910 Apply 13911 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 13912 Mop(Cast F64,Var("immediate",F16))),Var("rt",FTy 5)]), 13913 qVar"state"))) 13914; 13915val dfn'XORI_def = Def 13916 ("dfn'XORI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], 13917 Close 13918 (qVar"state", 13919 Apply 13920 (Call 13921 ("write'GPR",ATy(qTy,qTy), 13922 TP[Bop(BXor, 13923 Apply 13924 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 13925 Mop(Cast F64,Var("immediate",F16))),Var("rt",FTy 5)]), 13926 qVar"state"))) 13927; 13928val dfn'LUI_def = Def 13929 ("dfn'LUI",TP[Var("rt",FTy 5),Var("immediate",F16)], 13930 Close 13931 (qVar"state", 13932 Apply 13933 (Call 13934 ("write'GPR",ATy(qTy,qTy), 13935 TP[Mop(SE F64,CC[Var("immediate",F16),LW(0,16)]), 13936 Var("rt",FTy 5)]),qVar"state"))) 13937; 13938val dfn'ADD_def = Def 13939 ("dfn'ADD",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 13940 Close 13941 (qVar"state", 13942 Let(TP[Var("v",F64),qVar"s"], 13943 Let(qVar"s0", 13944 ITE(Bop(Or, 13945 Call 13946 ("NotWordValue",bTy, 13947 Apply 13948 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 13949 qVar"state")), 13950 Call 13951 ("NotWordValue",bTy, 13952 Apply 13953 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 13954 qVar"state"))), 13955 Mop(Snd, 13956 Apply 13957 (Call 13958 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 13959 Call 13960 ("UNPREDICTABLE",CTy"exception", 13961 LS"ADD: NotWordValue")),qVar"state")), 13962 qVar"state"), 13963 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 13964 qVar"s0"]), 13965 Let(Var("v",FTy 33), 13966 Bop(Add,EX(Var("v",F64),LN 32,LN 0,FTy 33), 13967 EX(Apply 13968 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"s"), 13969 LN 32,LN 0,FTy 33)), 13970 ITE(Mop(Not, 13971 EQ(Bop(Bit,Var("v",FTy 33),LN 32), 13972 Bop(Bit,Var("v",FTy 33),LN 31))), 13973 Apply 13974 (Call 13975 ("SignalException",ATy(qTy,qTy), 13976 LC("Ov",CTy"ExceptionType")),qVar"s"), 13977 Apply 13978 (Call 13979 ("write'GPR",ATy(qTy,qTy), 13980 TP[Mop(SE F64,EX(Var("v",FTy 33),LN 31,LN 0,F32)), 13981 Var("rd",FTy 5)]),qVar"s")))))) 13982; 13983val dfn'ADDU_def = Def 13984 ("dfn'ADDU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 13985 Close 13986 (qVar"state", 13987 Let(TP[Var("v",F64),qVar"s"], 13988 Let(qVar"s0", 13989 ITE(Bop(Or, 13990 Call 13991 ("NotWordValue",bTy, 13992 Apply 13993 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 13994 qVar"state")), 13995 Call 13996 ("NotWordValue",bTy, 13997 Apply 13998 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 13999 qVar"state"))), 14000 Mop(Snd, 14001 Apply 14002 (Call 14003 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14004 Call 14005 ("UNPREDICTABLE",CTy"exception", 14006 LS"ADDU: NotWordValue")),qVar"state")), 14007 qVar"state"), 14008 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 14009 qVar"s0"]), 14010 Apply 14011 (Call 14012 ("write'GPR",ATy(qTy,qTy), 14013 TP[Mop(SE F64, 14014 Bop(Add,EX(Var("v",F64),LN 31,LN 0,F32), 14015 EX(Apply 14016 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14017 qVar"s"),LN 31,LN 0,F32))), 14018 Var("rd",FTy 5)]),qVar"s")))) 14019; 14020val dfn'SUB_def = Def 14021 ("dfn'SUB",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14022 Close 14023 (qVar"state", 14024 Let(TP[Var("v",F64),qVar"s"], 14025 Let(qVar"s0", 14026 ITE(Bop(Or, 14027 Call 14028 ("NotWordValue",bTy, 14029 Apply 14030 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14031 qVar"state")), 14032 Call 14033 ("NotWordValue",bTy, 14034 Apply 14035 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14036 qVar"state"))), 14037 Mop(Snd, 14038 Apply 14039 (Call 14040 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14041 Call 14042 ("UNPREDICTABLE",CTy"exception", 14043 LS"SUB: NotWordValue")),qVar"state")), 14044 qVar"state"), 14045 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 14046 qVar"s0"]), 14047 Let(Var("v",FTy 33), 14048 Bop(Sub,EX(Var("v",F64),LN 32,LN 0,FTy 33), 14049 EX(Apply 14050 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"s"), 14051 LN 32,LN 0,FTy 33)), 14052 ITE(Mop(Not, 14053 EQ(Bop(Bit,Var("v",FTy 33),LN 32), 14054 Bop(Bit,Var("v",FTy 33),LN 31))), 14055 Apply 14056 (Call 14057 ("SignalException",ATy(qTy,qTy), 14058 LC("Ov",CTy"ExceptionType")),qVar"s"), 14059 Apply 14060 (Call 14061 ("write'GPR",ATy(qTy,qTy), 14062 TP[Mop(SE F64,EX(Var("v",FTy 33),LN 31,LN 0,F32)), 14063 Var("rd",FTy 5)]),qVar"s")))))) 14064; 14065val dfn'SUBU_def = Def 14066 ("dfn'SUBU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14067 Close 14068 (qVar"state", 14069 Let(TP[Var("v",F64),qVar"s"], 14070 Let(qVar"s0", 14071 ITE(Bop(Or, 14072 Call 14073 ("NotWordValue",bTy, 14074 Apply 14075 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14076 qVar"state")), 14077 Call 14078 ("NotWordValue",bTy, 14079 Apply 14080 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14081 qVar"state"))), 14082 Mop(Snd, 14083 Apply 14084 (Call 14085 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14086 Call 14087 ("UNPREDICTABLE",CTy"exception", 14088 LS"SUBU: NotWordValue")),qVar"state")), 14089 qVar"state"), 14090 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 14091 qVar"s0"]), 14092 Apply 14093 (Call 14094 ("write'GPR",ATy(qTy,qTy), 14095 TP[Mop(SE F64, 14096 Bop(Sub,EX(Var("v",F64),LN 31,LN 0,F32), 14097 EX(Apply 14098 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14099 qVar"s"),LN 31,LN 0,F32))), 14100 Var("rd",FTy 5)]),qVar"s")))) 14101; 14102val dfn'DADD_def = Def 14103 ("dfn'DADD",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14104 Close 14105 (qVar"state", 14106 Let(Var("v",FTy 65), 14107 Bop(Add, 14108 Mop(SE(FTy 65), 14109 Apply 14110 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), 14111 Mop(SE(FTy 65), 14112 Apply 14113 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), 14114 ITE(Mop(Not, 14115 EQ(Bop(Bit,Var("v",FTy 65),LN 64), 14116 Bop(Bit,Var("v",FTy 65),LN 63))), 14117 Apply 14118 (Call 14119 ("SignalException",ATy(qTy,qTy), 14120 LC("Ov",CTy"ExceptionType")),qVar"state"), 14121 Apply 14122 (Call 14123 ("write'GPR",ATy(qTy,qTy), 14124 TP[EX(Var("v",FTy 65),LN 63,LN 0,F64),Var("rd",FTy 5)]), 14125 qVar"state"))))) 14126; 14127val dfn'DADDU_def = Def 14128 ("dfn'DADDU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14129 Close 14130 (qVar"state", 14131 Apply 14132 (Call 14133 ("write'GPR",ATy(qTy,qTy), 14134 TP[Bop(Add, 14135 Apply 14136 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14137 Apply 14138 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 14139 Var("rd",FTy 5)]),qVar"state"))) 14140; 14141val dfn'DSUB_def = Def 14142 ("dfn'DSUB",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14143 Close 14144 (qVar"state", 14145 Let(Var("v",FTy 65), 14146 Bop(Sub, 14147 Mop(SE(FTy 65), 14148 Apply 14149 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), 14150 Mop(SE(FTy 65), 14151 Apply 14152 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), 14153 ITE(Mop(Not, 14154 EQ(Bop(Bit,Var("v",FTy 65),LN 64), 14155 Bop(Bit,Var("v",FTy 65),LN 63))), 14156 Apply 14157 (Call 14158 ("SignalException",ATy(qTy,qTy), 14159 LC("Ov",CTy"ExceptionType")),qVar"state"), 14160 Apply 14161 (Call 14162 ("write'GPR",ATy(qTy,qTy), 14163 TP[EX(Var("v",FTy 65),LN 63,LN 0,F64),Var("rd",FTy 5)]), 14164 qVar"state"))))) 14165; 14166val dfn'DSUBU_def = Def 14167 ("dfn'DSUBU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14168 Close 14169 (qVar"state", 14170 Apply 14171 (Call 14172 ("write'GPR",ATy(qTy,qTy), 14173 TP[Bop(Sub, 14174 Apply 14175 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14176 Apply 14177 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 14178 Var("rd",FTy 5)]),qVar"state"))) 14179; 14180val dfn'SLT_def = Def 14181 ("dfn'SLT",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14182 Close 14183 (qVar"state", 14184 Apply 14185 (Call 14186 ("write'GPR",ATy(qTy,qTy), 14187 TP[Mop(Cast F64, 14188 Bop(Lt, 14189 Apply 14190 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14191 qVar"state"), 14192 Apply 14193 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14194 qVar"state"))),Var("rd",FTy 5)]),qVar"state"))) 14195; 14196val dfn'SLTU_def = Def 14197 ("dfn'SLTU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14198 Close 14199 (qVar"state", 14200 Apply 14201 (Call 14202 ("write'GPR",ATy(qTy,qTy), 14203 TP[Mop(Cast F64, 14204 Bop(Ult, 14205 Apply 14206 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14207 qVar"state"), 14208 Apply 14209 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14210 qVar"state"))),Var("rd",FTy 5)]),qVar"state"))) 14211; 14212val dfn'AND_def = Def 14213 ("dfn'AND",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14214 Close 14215 (qVar"state", 14216 Apply 14217 (Call 14218 ("write'GPR",ATy(qTy,qTy), 14219 TP[Bop(BAnd, 14220 Apply 14221 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14222 Apply 14223 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 14224 Var("rd",FTy 5)]),qVar"state"))) 14225; 14226val dfn'OR_def = Def 14227 ("dfn'OR",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14228 Close 14229 (qVar"state", 14230 Apply 14231 (Call 14232 ("write'GPR",ATy(qTy,qTy), 14233 TP[Bop(BOr, 14234 Apply 14235 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14236 Apply 14237 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 14238 Var("rd",FTy 5)]),qVar"state"))) 14239; 14240val dfn'XOR_def = Def 14241 ("dfn'XOR",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14242 Close 14243 (qVar"state", 14244 Apply 14245 (Call 14246 ("write'GPR",ATy(qTy,qTy), 14247 TP[Bop(BXor, 14248 Apply 14249 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14250 Apply 14251 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 14252 Var("rd",FTy 5)]),qVar"state"))) 14253; 14254val dfn'NOR_def = Def 14255 ("dfn'NOR",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14256 Close 14257 (qVar"state", 14258 Apply 14259 (Call 14260 ("write'GPR",ATy(qTy,qTy), 14261 TP[Mop(BNot, 14262 Bop(BOr, 14263 Apply 14264 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14265 qVar"state"), 14266 Apply 14267 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14268 qVar"state"))),Var("rd",FTy 5)]),qVar"state"))) 14269; 14270val dfn'MOVN_def = Def 14271 ("dfn'MOVN",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14272 Close 14273 (qVar"state", 14274 ITE(Mop(Not, 14275 EQ(Apply 14276 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 14277 LW(0,64))), 14278 Apply 14279 (Call 14280 ("write'GPR",ATy(qTy,qTy), 14281 TP[Apply 14282 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14283 Var("rd",FTy 5)]),qVar"state"),qVar"state"))) 14284; 14285val dfn'MOVZ_def = Def 14286 ("dfn'MOVZ",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14287 Close 14288 (qVar"state", 14289 ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 14290 LW(0,64)), 14291 Apply 14292 (Call 14293 ("write'GPR",ATy(qTy,qTy), 14294 TP[Apply 14295 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14296 Var("rd",FTy 5)]),qVar"state"),qVar"state"))) 14297; 14298val dfn'MADD_def = Def 14299 ("dfn'MADD",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14300 Close 14301 (qVar"state", 14302 Let(TP[Var("v",F64),qVar"s"], 14303 Apply 14304 (Const("HI",ATy(qTy,PTy(F64,qTy))), 14305 ITE(Bop(Or, 14306 Call 14307 ("NotWordValue",bTy, 14308 Apply 14309 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14310 qVar"state")), 14311 Call 14312 ("NotWordValue",bTy, 14313 Apply 14314 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14315 qVar"state"))), 14316 Mop(Snd, 14317 Apply 14318 (Call 14319 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14320 Call 14321 ("UNPREDICTABLE",CTy"exception", 14322 LS"MADD: NotWordValue")),qVar"state")), 14323 qVar"state")), 14324 Let(TP[Var("v",F64),qVar"s"], 14325 Let(TP[Var("v",F64),qVar"s"], 14326 Let(TP[Var("v0",F64),qVar"s"], 14327 Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"s"), 14328 TP[CC[EX(Var("v",F64),LN 31,LN 0,F32), 14329 EX(Var("v0",F64),LN 31,LN 0,F32)],qVar"s"]), 14330 TP[Bop(Add,Var("v",F64), 14331 Bop(Mul, 14332 Mop(SE F64, 14333 EX(Apply 14334 (Call 14335 ("GPR",ATy(qTy,F64), 14336 Var("rs",FTy 5)),qVar"s"),LN 31, 14337 LN 0,F32)), 14338 Mop(SE F64, 14339 EX(Apply 14340 (Call 14341 ("GPR",ATy(qTy,F64), 14342 Var("rt",FTy 5)),qVar"s"),LN 31, 14343 LN 0,F32)))),qVar"s"]), 14344 Apply 14345 (Call 14346 ("write'LO",ATy(qTy,qTy), 14347 Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), 14348 Apply 14349 (Call 14350 ("write'HI",ATy(qTy,qTy), 14351 Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), 14352 qVar"s")))))) 14353; 14354val dfn'MADDU_def = Def 14355 ("dfn'MADDU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14356 Close 14357 (qVar"state", 14358 Let(TP[Var("v",F64),qVar"s"], 14359 Apply 14360 (Const("HI",ATy(qTy,PTy(F64,qTy))), 14361 ITE(Bop(Or, 14362 Call 14363 ("NotWordValue",bTy, 14364 Apply 14365 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14366 qVar"state")), 14367 Call 14368 ("NotWordValue",bTy, 14369 Apply 14370 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14371 qVar"state"))), 14372 Mop(Snd, 14373 Apply 14374 (Call 14375 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14376 Call 14377 ("UNPREDICTABLE",CTy"exception", 14378 LS"MADDU: NotWordValue")),qVar"state")), 14379 qVar"state")), 14380 Let(TP[Var("v",F64),qVar"s"], 14381 Let(TP[Var("v",F64),qVar"s"], 14382 Let(TP[Var("v0",F64),qVar"s"], 14383 Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"s"), 14384 TP[CC[EX(Var("v",F64),LN 31,LN 0,F32), 14385 EX(Var("v0",F64),LN 31,LN 0,F32)],qVar"s"]), 14386 TP[Bop(Add,Var("v",F64), 14387 Bop(Mul, 14388 Mop(Cast F64, 14389 EX(Apply 14390 (Call 14391 ("GPR",ATy(qTy,F64), 14392 Var("rs",FTy 5)),qVar"s"),LN 31, 14393 LN 0,F32)), 14394 Mop(Cast F64, 14395 EX(Apply 14396 (Call 14397 ("GPR",ATy(qTy,F64), 14398 Var("rt",FTy 5)),qVar"s"),LN 31, 14399 LN 0,F32)))),qVar"s"]), 14400 Apply 14401 (Call 14402 ("write'LO",ATy(qTy,qTy), 14403 Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), 14404 Apply 14405 (Call 14406 ("write'HI",ATy(qTy,qTy), 14407 Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), 14408 qVar"s")))))) 14409; 14410val dfn'MSUB_def = Def 14411 ("dfn'MSUB",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14412 Close 14413 (qVar"state", 14414 Let(TP[Var("v",F64),qVar"s"], 14415 Apply 14416 (Const("HI",ATy(qTy,PTy(F64,qTy))), 14417 ITE(Bop(Or, 14418 Call 14419 ("NotWordValue",bTy, 14420 Apply 14421 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14422 qVar"state")), 14423 Call 14424 ("NotWordValue",bTy, 14425 Apply 14426 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14427 qVar"state"))), 14428 Mop(Snd, 14429 Apply 14430 (Call 14431 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14432 Call 14433 ("UNPREDICTABLE",CTy"exception", 14434 LS"MSUB: NotWordValue")),qVar"state")), 14435 qVar"state")), 14436 Let(TP[Var("v",F64),qVar"s"], 14437 Let(TP[Var("v",F64),qVar"s"], 14438 Let(TP[Var("v0",F64),qVar"s"], 14439 Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"s"), 14440 TP[CC[EX(Var("v",F64),LN 31,LN 0,F32), 14441 EX(Var("v0",F64),LN 31,LN 0,F32)],qVar"s"]), 14442 TP[Bop(Sub,Var("v",F64), 14443 Bop(Mul, 14444 Mop(SE F64, 14445 EX(Apply 14446 (Call 14447 ("GPR",ATy(qTy,F64), 14448 Var("rs",FTy 5)),qVar"s"),LN 31, 14449 LN 0,F32)), 14450 Mop(SE F64, 14451 EX(Apply 14452 (Call 14453 ("GPR",ATy(qTy,F64), 14454 Var("rt",FTy 5)),qVar"s"),LN 31, 14455 LN 0,F32)))),qVar"s"]), 14456 Apply 14457 (Call 14458 ("write'LO",ATy(qTy,qTy), 14459 Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), 14460 Apply 14461 (Call 14462 ("write'HI",ATy(qTy,qTy), 14463 Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), 14464 qVar"s")))))) 14465; 14466val dfn'MSUBU_def = Def 14467 ("dfn'MSUBU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14468 Close 14469 (qVar"state", 14470 Let(TP[Var("v",F64),qVar"s"], 14471 Apply 14472 (Const("HI",ATy(qTy,PTy(F64,qTy))), 14473 ITE(Bop(Or, 14474 Call 14475 ("NotWordValue",bTy, 14476 Apply 14477 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14478 qVar"state")), 14479 Call 14480 ("NotWordValue",bTy, 14481 Apply 14482 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14483 qVar"state"))), 14484 Mop(Snd, 14485 Apply 14486 (Call 14487 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14488 Call 14489 ("UNPREDICTABLE",CTy"exception", 14490 LS"MSUBU: NotWordValue")),qVar"state")), 14491 qVar"state")), 14492 Let(TP[Var("v",F64),qVar"s"], 14493 Let(TP[Var("v",F64),qVar"s"], 14494 Let(TP[Var("v0",F64),qVar"s"], 14495 Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"s"), 14496 TP[CC[EX(Var("v",F64),LN 31,LN 0,F32), 14497 EX(Var("v0",F64),LN 31,LN 0,F32)],qVar"s"]), 14498 TP[Bop(Sub,Var("v",F64), 14499 Bop(Mul, 14500 Mop(Cast F64, 14501 EX(Apply 14502 (Call 14503 ("GPR",ATy(qTy,F64), 14504 Var("rs",FTy 5)),qVar"s"),LN 31, 14505 LN 0,F32)), 14506 Mop(Cast F64, 14507 EX(Apply 14508 (Call 14509 ("GPR",ATy(qTy,F64), 14510 Var("rt",FTy 5)),qVar"s"),LN 31, 14511 LN 0,F32)))),qVar"s"]), 14512 Apply 14513 (Call 14514 ("write'LO",ATy(qTy,qTy), 14515 Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), 14516 Apply 14517 (Call 14518 ("write'HI",ATy(qTy,qTy), 14519 Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), 14520 qVar"s")))))) 14521; 14522val dfn'MUL_def = Def 14523 ("dfn'MUL",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14524 Close 14525 (qVar"state", 14526 Let(TP[Var("v",F64),qVar"s"], 14527 Let(qVar"s0", 14528 ITE(Bop(Or, 14529 Call 14530 ("NotWordValue",bTy, 14531 Apply 14532 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14533 qVar"state")), 14534 Call 14535 ("NotWordValue",bTy, 14536 Apply 14537 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14538 qVar"state"))), 14539 Mop(Snd, 14540 Apply 14541 (Call 14542 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14543 Call 14544 ("UNPREDICTABLE",CTy"exception", 14545 LS"MUL: NotWordValue")),qVar"state")), 14546 qVar"state"), 14547 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 14548 qVar"s0"]), 14549 Apply 14550 (Call("write'hi",ATy(qTy,qTy),LO F64), 14551 Apply 14552 (Call("write'lo",ATy(qTy,qTy),LO F64), 14553 Apply 14554 (Call 14555 ("write'GPR",ATy(qTy,qTy), 14556 TP[Mop(SE F64, 14557 Bop(Mul,EX(Var("v",F64),LN 31,LN 0,F32), 14558 EX(Apply 14559 (Call 14560 ("GPR",ATy(qTy,F64), 14561 Var("rt",FTy 5)),qVar"s"),LN 31, 14562 LN 0,F32))),Var("rd",FTy 5)]),qVar"s")))))) 14563; 14564val dfn'MULT_def = Def 14565 ("dfn'MULT",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14566 Close 14567 (qVar"state", 14568 Let(TP[Var("v",F64),qVar"s"], 14569 Let(qVar"s0", 14570 ITE(Bop(Or, 14571 Call 14572 ("NotWordValue",bTy, 14573 Apply 14574 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14575 qVar"state")), 14576 Call 14577 ("NotWordValue",bTy, 14578 Apply 14579 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14580 qVar"state"))), 14581 Mop(Snd, 14582 Apply 14583 (Call 14584 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14585 Call 14586 ("UNPREDICTABLE",CTy"exception", 14587 LS"MULT: NotWordValue")),qVar"state")), 14588 qVar"state"), 14589 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 14590 qVar"s0"]), 14591 Let(Var("v",F64), 14592 Bop(Mul,Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32)), 14593 Mop(SE F64, 14594 EX(Apply 14595 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14596 qVar"s"),LN 31,LN 0,F32))), 14597 Apply 14598 (Call 14599 ("write'HI",ATy(qTy,qTy), 14600 Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), 14601 Apply 14602 (Call 14603 ("write'LO",ATy(qTy,qTy), 14604 Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), 14605 qVar"s")))))) 14606; 14607val dfn'MULTU_def = Def 14608 ("dfn'MULTU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14609 Close 14610 (qVar"state", 14611 Let(TP[Var("v",F64),qVar"s"], 14612 Let(qVar"s0", 14613 ITE(Bop(Or, 14614 Call 14615 ("NotWordValue",bTy, 14616 Apply 14617 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14618 qVar"state")), 14619 Call 14620 ("NotWordValue",bTy, 14621 Apply 14622 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14623 qVar"state"))), 14624 Mop(Snd, 14625 Apply 14626 (Call 14627 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14628 Call 14629 ("UNPREDICTABLE",CTy"exception", 14630 LS"MULTU: NotWordValue")),qVar"state")), 14631 qVar"state"), 14632 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 14633 qVar"s0"]), 14634 Let(Var("v",F64), 14635 Bop(Mul,Mop(Cast F64,EX(Var("v",F64),LN 31,LN 0,F32)), 14636 Mop(Cast F64, 14637 EX(Apply 14638 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14639 qVar"s"),LN 31,LN 0,F32))), 14640 Apply 14641 (Call 14642 ("write'HI",ATy(qTy,qTy), 14643 Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), 14644 Apply 14645 (Call 14646 ("write'LO",ATy(qTy,qTy), 14647 Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), 14648 qVar"s")))))) 14649; 14650val dfn'DMULT_def = Def 14651 ("dfn'DMULT",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14652 Close 14653 (qVar"state", 14654 Let(Var("v",FTy 128), 14655 Bop(Mul, 14656 Mop(SE(FTy 128), 14657 Apply 14658 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), 14659 Mop(SE(FTy 128), 14660 Apply 14661 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), 14662 Apply 14663 (Call 14664 ("write'HI",ATy(qTy,qTy), 14665 EX(Var("v",FTy 128),LN 127,LN 64,F64)), 14666 Apply 14667 (Call 14668 ("write'LO",ATy(qTy,qTy), 14669 EX(Var("v",FTy 128),LN 63,LN 0,F64)),qVar"state"))))) 14670; 14671val dfn'DMULTU_def = Def 14672 ("dfn'DMULTU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14673 Close 14674 (qVar"state", 14675 Let(Var("v",FTy 128), 14676 Bop(Mul, 14677 Mop(Cast(FTy 128), 14678 Apply 14679 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), 14680 Mop(Cast(FTy 128), 14681 Apply 14682 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), 14683 Apply 14684 (Call 14685 ("write'HI",ATy(qTy,qTy), 14686 EX(Var("v",FTy 128),LN 127,LN 64,F64)), 14687 Apply 14688 (Call 14689 ("write'LO",ATy(qTy,qTy), 14690 EX(Var("v",FTy 128),LN 63,LN 0,F64)),qVar"state"))))) 14691; 14692val dfn'DIV_def = Def 14693 ("dfn'DIV",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14694 Close 14695 (qVar"state", 14696 Let(Var("v",F64), 14697 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14698 Let(Var("v0",F64), 14699 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 14700 Let(qVar"s1", 14701 ITE(Bop(Or,Call("NotWordValue",bTy,Var("v",F64)), 14702 Call("NotWordValue",bTy,Var("v0",F64))), 14703 Mop(Snd, 14704 Apply 14705 (Call 14706 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14707 Call 14708 ("UNPREDICTABLE",CTy"exception", 14709 LS"DIV: NotWordValue")),qVar"state")), 14710 qVar"state"), 14711 ITE(EQ(Var("v0",F64),LW(0,64)), 14712 Apply 14713 (Call("write'hi",ATy(qTy,qTy),LO F64), 14714 Apply 14715 (Call("write'lo",ATy(qTy,qTy),LO F64),qVar"s1")), 14716 Apply 14717 (Call 14718 ("write'HI",ATy(qTy,qTy), 14719 Mop(SE F64, 14720 Bop(Rem,EX(Var("v",F64),LN 31,LN 0,F32), 14721 EX(Var("v0",F64),LN 31,LN 0,F32)))), 14722 Apply 14723 (Call 14724 ("write'LO",ATy(qTy,qTy), 14725 Mop(SE F64, 14726 Bop(Quot, 14727 EX(Var("v",F64),LN 31,LN 0,F32), 14728 EX(Var("v0",F64),LN 31,LN 0,F32)))), 14729 qVar"s1")))))))) 14730; 14731val dfn'DIVU_def = Def 14732 ("dfn'DIVU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14733 Close 14734 (qVar"state", 14735 Let(Var("v",F64), 14736 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14737 Let(Var("v0",F64), 14738 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 14739 Let(qVar"s1", 14740 ITE(Bop(Or,Call("NotWordValue",bTy,Var("v",F64)), 14741 Call("NotWordValue",bTy,Var("v0",F64))), 14742 Mop(Snd, 14743 Apply 14744 (Call 14745 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14746 Call 14747 ("UNPREDICTABLE",CTy"exception", 14748 LS"DIVU: NotWordValue")),qVar"state")), 14749 qVar"state"), 14750 ITE(EQ(Var("v0",F64),LW(0,64)), 14751 Apply 14752 (Call("write'hi",ATy(qTy,qTy),LO F64), 14753 Apply 14754 (Call("write'lo",ATy(qTy,qTy),LO F64),qVar"s1")), 14755 Apply 14756 (Call 14757 ("write'HI",ATy(qTy,qTy), 14758 Mop(SE F64, 14759 Bop(Mod,EX(Var("v",F64),LN 31,LN 0,F32), 14760 EX(Var("v0",F64),LN 31,LN 0,F32)))), 14761 Apply 14762 (Call 14763 ("write'LO",ATy(qTy,qTy), 14764 Mop(SE F64, 14765 Bop(Div, 14766 EX(Var("v",F64),LN 31,LN 0,F32), 14767 EX(Var("v0",F64),LN 31,LN 0,F32)))), 14768 qVar"s1")))))))) 14769; 14770val dfn'DDIV_def = Def 14771 ("dfn'DDIV",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14772 Close 14773 (qVar"state", 14774 Let(Var("v",F64), 14775 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 14776 ITE(EQ(Var("v",F64),LW(0,64)), 14777 Apply 14778 (Call("write'hi",ATy(qTy,qTy),LO F64), 14779 Apply(Call("write'lo",ATy(qTy,qTy),LO F64),qVar"state")), 14780 Let(Var("v0",F64), 14781 Apply 14782 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14783 Apply 14784 (Call 14785 ("write'HI",ATy(qTy,qTy), 14786 Bop(Rem,Var("v0",F64),Var("v",F64))), 14787 Apply 14788 (Call 14789 ("write'LO",ATy(qTy,qTy), 14790 Bop(Quot,Var("v0",F64),Var("v",F64))), 14791 qVar"state"))))))) 14792; 14793val dfn'DDIVU_def = Def 14794 ("dfn'DDIVU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 14795 Close 14796 (qVar"state", 14797 Let(Var("v",F64), 14798 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 14799 ITE(EQ(Var("v",F64),LW(0,64)), 14800 Apply 14801 (Call("write'hi",ATy(qTy,qTy),LO F64), 14802 Apply(Call("write'lo",ATy(qTy,qTy),LO F64),qVar"state")), 14803 Let(Var("v0",F64), 14804 Apply 14805 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 14806 Apply 14807 (Call 14808 ("write'HI",ATy(qTy,qTy), 14809 Bop(Mod,Var("v0",F64),Var("v",F64))), 14810 Apply 14811 (Call 14812 ("write'LO",ATy(qTy,qTy), 14813 Bop(Div,Var("v0",F64),Var("v",F64))), 14814 qVar"state"))))))) 14815; 14816val dfn'MFHI_def = Def 14817 ("dfn'MFHI",Var("rd",FTy 5), 14818 Close 14819 (qVar"state", 14820 Let(TP[Var("v",F64),qVar"s"], 14821 Apply(Const("HI",ATy(qTy,PTy(F64,qTy))),qVar"state"), 14822 Apply 14823 (Call 14824 ("write'GPR",ATy(qTy,qTy),TP[Var("v",F64),Var("rd",FTy 5)]), 14825 qVar"s")))) 14826; 14827val dfn'MFLO_def = Def 14828 ("dfn'MFLO",Var("rd",FTy 5), 14829 Close 14830 (qVar"state", 14831 Let(TP[Var("v",F64),qVar"s"], 14832 Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"state"), 14833 Apply 14834 (Call 14835 ("write'GPR",ATy(qTy,qTy),TP[Var("v",F64),Var("rd",FTy 5)]), 14836 qVar"s")))) 14837; 14838val dfn'MTHI_def = Def 14839 ("dfn'MTHI",Var("rs",FTy 5), 14840 Close 14841 (qVar"state", 14842 Apply 14843 (Call 14844 ("write'HI",ATy(qTy,qTy), 14845 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), 14846 qVar"state"))) 14847; 14848val dfn'MTLO_def = Def 14849 ("dfn'MTLO",Var("rs",FTy 5), 14850 Close 14851 (qVar"state", 14852 Apply 14853 (Call 14854 ("write'LO",ATy(qTy,qTy), 14855 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), 14856 qVar"state"))) 14857; 14858val dfn'SLL_def = Def 14859 ("dfn'SLL",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 14860 Close 14861 (qVar"state", 14862 Apply 14863 (Call 14864 ("write'GPR",ATy(qTy,qTy), 14865 TP[Mop(SE F64, 14866 Bop(Lsl, 14867 EX(Apply 14868 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14869 qVar"state"),LN 31,LN 0,F32), 14870 Mop(Cast nTy,Var("sa",FTy 5)))),Var("rd",FTy 5)]), 14871 qVar"state"))) 14872; 14873val dfn'SRL_def = Def 14874 ("dfn'SRL",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 14875 Close 14876 (qVar"state", 14877 Let(TP[Var("v",F64),qVar"s"], 14878 Let(qVar"s0", 14879 ITE(Call 14880 ("NotWordValue",bTy, 14881 Apply 14882 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14883 qVar"state")), 14884 Mop(Snd, 14885 Apply 14886 (Call 14887 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14888 Call 14889 ("UNPREDICTABLE",CTy"exception", 14890 LS"SRL: NotWordValue")),qVar"state")), 14891 qVar"state"), 14892 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"s0"), 14893 qVar"s0"]), 14894 Apply 14895 (Call 14896 ("write'GPR",ATy(qTy,qTy), 14897 TP[Mop(SE F64, 14898 Bop(Lsr,EX(Var("v",F64),LN 31,LN 0,F32), 14899 Mop(Cast nTy,Var("sa",FTy 5)))),Var("rd",FTy 5)]), 14900 qVar"s")))) 14901; 14902val dfn'SRA_def = Def 14903 ("dfn'SRA",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 14904 Close 14905 (qVar"state", 14906 Let(TP[Var("v",F64),qVar"s"], 14907 Let(qVar"s0", 14908 ITE(Call 14909 ("NotWordValue",bTy, 14910 Apply 14911 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14912 qVar"state")), 14913 Mop(Snd, 14914 Apply 14915 (Call 14916 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14917 Call 14918 ("UNPREDICTABLE",CTy"exception", 14919 LS"SRA: NotWordValue")),qVar"state")), 14920 qVar"state"), 14921 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"s0"), 14922 qVar"s0"]), 14923 Apply 14924 (Call 14925 ("write'GPR",ATy(qTy,qTy), 14926 TP[Mop(SE F64, 14927 Bop(Asr,EX(Var("v",F64),LN 31,LN 0,F32), 14928 Mop(Cast nTy,Var("sa",FTy 5)))),Var("rd",FTy 5)]), 14929 qVar"s")))) 14930; 14931val dfn'SLLV_def = Def 14932 ("dfn'SLLV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14933 Close 14934 (qVar"state", 14935 Apply 14936 (Call 14937 ("write'GPR",ATy(qTy,qTy), 14938 TP[Mop(SE F64, 14939 Bop(Lsl, 14940 EX(Apply 14941 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14942 qVar"state"),LN 31,LN 0,F32), 14943 Mop(Cast nTy, 14944 EX(Apply 14945 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 14946 qVar"state"),LN 4,LN 0,FTy 5)))), 14947 Var("rd",FTy 5)]),qVar"state"))) 14948; 14949val dfn'SRLV_def = Def 14950 ("dfn'SRLV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14951 Close 14952 (qVar"state", 14953 Let(TP[Var("v",F64),qVar"s"], 14954 Let(qVar"s0", 14955 ITE(Call 14956 ("NotWordValue",bTy, 14957 Apply 14958 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14959 qVar"state")), 14960 Mop(Snd, 14961 Apply 14962 (Call 14963 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14964 Call 14965 ("UNPREDICTABLE",CTy"exception", 14966 LS"SRLV: NotWordValue")),qVar"state")), 14967 qVar"state"), 14968 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 14969 qVar"s0"]), 14970 Apply 14971 (Call 14972 ("write'GPR",ATy(qTy,qTy), 14973 TP[Mop(SE F64, 14974 Bop(Lsr, 14975 EX(Apply 14976 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14977 qVar"s"),LN 31,LN 0,F32), 14978 Mop(Cast nTy,EX(Var("v",F64),LN 4,LN 0,FTy 5)))), 14979 Var("rd",FTy 5)]),qVar"s")))) 14980; 14981val dfn'SRAV_def = Def 14982 ("dfn'SRAV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 14983 Close 14984 (qVar"state", 14985 Let(TP[Var("v",F64),qVar"s"], 14986 Let(qVar"s0", 14987 ITE(Call 14988 ("NotWordValue",bTy, 14989 Apply 14990 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 14991 qVar"state")), 14992 Mop(Snd, 14993 Apply 14994 (Call 14995 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 14996 Call 14997 ("UNPREDICTABLE",CTy"exception", 14998 LS"SRAV: NotWordValue")),qVar"state")), 14999 qVar"state"), 15000 TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), 15001 qVar"s0"]), 15002 Apply 15003 (Call 15004 ("write'GPR",ATy(qTy,qTy), 15005 TP[Mop(SE F64, 15006 Bop(Asr, 15007 EX(Apply 15008 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 15009 qVar"s"),LN 31,LN 0,F32), 15010 Mop(Cast nTy,EX(Var("v",F64),LN 4,LN 0,FTy 5)))), 15011 Var("rd",FTy 5)]),qVar"s")))) 15012; 15013val dfn'DSLL_def = Def 15014 ("dfn'DSLL",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 15015 Close 15016 (qVar"state", 15017 Apply 15018 (Call 15019 ("write'GPR",ATy(qTy,qTy), 15020 TP[Bop(Lsl, 15021 Apply 15022 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15023 Mop(Cast nTy,Var("sa",FTy 5))),Var("rd",FTy 5)]), 15024 qVar"state"))) 15025; 15026val dfn'DSRL_def = Def 15027 ("dfn'DSRL",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 15028 Close 15029 (qVar"state", 15030 Apply 15031 (Call 15032 ("write'GPR",ATy(qTy,qTy), 15033 TP[Bop(Lsr, 15034 Apply 15035 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15036 Mop(Cast nTy,Var("sa",FTy 5))),Var("rd",FTy 5)]), 15037 qVar"state"))) 15038; 15039val dfn'DSRA_def = Def 15040 ("dfn'DSRA",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 15041 Close 15042 (qVar"state", 15043 Apply 15044 (Call 15045 ("write'GPR",ATy(qTy,qTy), 15046 TP[Bop(Asr, 15047 Apply 15048 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15049 Mop(Cast nTy,Var("sa",FTy 5))),Var("rd",FTy 5)]), 15050 qVar"state"))) 15051; 15052val dfn'DSLLV_def = Def 15053 ("dfn'DSLLV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 15054 Close 15055 (qVar"state", 15056 Apply 15057 (Call 15058 ("write'GPR",ATy(qTy,qTy), 15059 TP[Bop(Lsl, 15060 Apply 15061 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15062 Mop(Cast nTy, 15063 EX(Apply 15064 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 15065 qVar"state"),LN 5,LN 0,FTy 6))), 15066 Var("rd",FTy 5)]),qVar"state"))) 15067; 15068val dfn'DSRLV_def = Def 15069 ("dfn'DSRLV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 15070 Close 15071 (qVar"state", 15072 Apply 15073 (Call 15074 ("write'GPR",ATy(qTy,qTy), 15075 TP[Bop(Lsr, 15076 Apply 15077 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15078 Mop(Cast nTy, 15079 EX(Apply 15080 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 15081 qVar"state"),LN 5,LN 0,FTy 6))), 15082 Var("rd",FTy 5)]),qVar"state"))) 15083; 15084val dfn'DSRAV_def = Def 15085 ("dfn'DSRAV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 15086 Close 15087 (qVar"state", 15088 Apply 15089 (Call 15090 ("write'GPR",ATy(qTy,qTy), 15091 TP[Bop(Asr, 15092 Apply 15093 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15094 Mop(Cast nTy, 15095 EX(Apply 15096 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 15097 qVar"state"),LN 5,LN 0,FTy 6))), 15098 Var("rd",FTy 5)]),qVar"state"))) 15099; 15100val dfn'DSLL32_def = Def 15101 ("dfn'DSLL32",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 15102 Close 15103 (qVar"state", 15104 Apply 15105 (Call 15106 ("write'GPR",ATy(qTy,qTy), 15107 TP[Bop(Lsl, 15108 Apply 15109 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15110 Bop(Add,Mop(Cast nTy,Var("sa",FTy 5)),LN 32)), 15111 Var("rd",FTy 5)]),qVar"state"))) 15112; 15113val dfn'DSRL32_def = Def 15114 ("dfn'DSRL32",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 15115 Close 15116 (qVar"state", 15117 Apply 15118 (Call 15119 ("write'GPR",ATy(qTy,qTy), 15120 TP[Bop(Lsr, 15121 Apply 15122 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15123 Bop(Add,Mop(Cast nTy,Var("sa",FTy 5)),LN 32)), 15124 Var("rd",FTy 5)]),qVar"state"))) 15125; 15126val dfn'DSRA32_def = Def 15127 ("dfn'DSRA32",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], 15128 Close 15129 (qVar"state", 15130 Apply 15131 (Call 15132 ("write'GPR",ATy(qTy,qTy), 15133 TP[Bop(Asr, 15134 Apply 15135 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15136 Bop(Add,Mop(Cast nTy,Var("sa",FTy 5)),LN 32)), 15137 Var("rd",FTy 5)]),qVar"state"))) 15138; 15139val dfn'TGE_def = Def 15140 ("dfn'TGE",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 15141 Close 15142 (qVar"state", 15143 ITE(Bop(Ge, 15144 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15145 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 15146 Apply 15147 (Call 15148 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15149 qVar"state"),qVar"state"))) 15150; 15151val dfn'TGEU_def = Def 15152 ("dfn'TGEU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 15153 Close 15154 (qVar"state", 15155 ITE(Bop(Uge, 15156 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15157 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 15158 Apply 15159 (Call 15160 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15161 qVar"state"),qVar"state"))) 15162; 15163val dfn'TLT_def = Def 15164 ("dfn'TLT",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 15165 Close 15166 (qVar"state", 15167 ITE(Bop(Lt, 15168 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15169 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 15170 Apply 15171 (Call 15172 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15173 qVar"state"),qVar"state"))) 15174; 15175val dfn'TLTU_def = Def 15176 ("dfn'TLTU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 15177 Close 15178 (qVar"state", 15179 ITE(Bop(Ult, 15180 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15181 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 15182 Apply 15183 (Call 15184 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15185 qVar"state"),qVar"state"))) 15186; 15187val dfn'TEQ_def = Def 15188 ("dfn'TEQ",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 15189 Close 15190 (qVar"state", 15191 ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15192 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 15193 Apply 15194 (Call 15195 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15196 qVar"state"),qVar"state"))) 15197; 15198val dfn'TNE_def = Def 15199 ("dfn'TNE",TP[Var("rs",FTy 5),Var("rt",FTy 5)], 15200 Close 15201 (qVar"state", 15202 ITE(Mop(Not, 15203 EQ(Apply 15204 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15205 Apply 15206 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), 15207 Apply 15208 (Call 15209 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15210 qVar"state"),qVar"state"))) 15211; 15212val dfn'TGEI_def = Def 15213 ("dfn'TGEI",TP[Var("rs",FTy 5),Var("immediate",F16)], 15214 Close 15215 (qVar"state", 15216 ITE(Bop(Ge, 15217 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15218 Mop(SE F64,Var("immediate",F16))), 15219 Apply 15220 (Call 15221 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15222 qVar"state"),qVar"state"))) 15223; 15224val dfn'TGEIU_def = Def 15225 ("dfn'TGEIU",TP[Var("rs",FTy 5),Var("immediate",F16)], 15226 Close 15227 (qVar"state", 15228 ITE(Bop(Uge, 15229 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15230 Mop(SE F64,Var("immediate",F16))), 15231 Apply 15232 (Call 15233 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15234 qVar"state"),qVar"state"))) 15235; 15236val dfn'TLTI_def = Def 15237 ("dfn'TLTI",TP[Var("rs",FTy 5),Var("immediate",F16)], 15238 Close 15239 (qVar"state", 15240 ITE(Bop(Lt, 15241 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15242 Mop(SE F64,Var("immediate",F16))), 15243 Apply 15244 (Call 15245 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15246 qVar"state"),qVar"state"))) 15247; 15248val dfn'TLTIU_def = Def 15249 ("dfn'TLTIU",TP[Var("rs",FTy 5),Var("immediate",F16)], 15250 Close 15251 (qVar"state", 15252 ITE(Bop(Ult, 15253 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15254 Mop(SE F64,Var("immediate",F16))), 15255 Apply 15256 (Call 15257 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15258 qVar"state"),qVar"state"))) 15259; 15260val dfn'TEQI_def = Def 15261 ("dfn'TEQI",TP[Var("rs",FTy 5),Var("immediate",F16)], 15262 Close 15263 (qVar"state", 15264 ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15265 Mop(SE F64,Var("immediate",F16))), 15266 Apply 15267 (Call 15268 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15269 qVar"state"),qVar"state"))) 15270; 15271val dfn'TNEI_def = Def 15272 ("dfn'TNEI",TP[Var("rs",FTy 5),Var("immediate",F16)], 15273 Close 15274 (qVar"state", 15275 ITE(Mop(Not, 15276 EQ(Apply 15277 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 15278 Mop(SE F64,Var("immediate",F16)))), 15279 Apply 15280 (Call 15281 ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), 15282 qVar"state"),qVar"state"))) 15283; 15284val loadByte_def = Def 15285 ("loadByte", 15286 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),bVar"unsigned"], 15287 Close 15288 (qVar"state", 15289 Let(Var("v",F64), 15290 Apply 15291 (Call 15292 ("getVirtualAddress",ATy(qTy,F64), 15293 Bop(Add,Mop(SE F64,Var("offset",F16)), 15294 Apply 15295 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15296 qVar"state"))),qVar"state"), 15297 Let(TP[Var("v0",F64),qVar"s"], 15298 Apply 15299 (Call 15300 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 15301 TP[Const("BYTE",FTy 3),Const("BYTE",FTy 3),LF, 15302 Var("v",F64),LF]),qVar"state"), 15303 ITE(Mop(Not, 15304 Apply 15305 (Const("exceptionSignalled",ATy(qTy,bTy)),qVar"s")), 15306 Let(Var("v1",FTy 3), 15307 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 15308 REP(Apply 15309 (Const("BigEndianCPU",ATy(qTy,F1)),qVar"s"), 15310 LN 3,FTy 3)), 15311 Let(Var("membyte",F8), 15312 EX(Var("v0",F64), 15313 Bop(Add,LN 7, 15314 Bop(Mul,LN 8, 15315 Mop(Cast nTy,Var("v1",FTy 3)))), 15316 Bop(Mul,LN 8,Mop(Cast nTy,Var("v1",FTy 3))), 15317 F8), 15318 Apply 15319 (Call 15320 ("write'GPR",ATy(qTy,qTy), 15321 TP[ITE(bVar"unsigned", 15322 Mop(Cast F64,Var("membyte",F8)), 15323 Mop(SE F64,Var("membyte",F8))), 15324 Var("rt",FTy 5)]),qVar"s"))),qVar"s"))))) 15325; 15326val loadHalf_def = Def 15327 ("loadHalf", 15328 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),bVar"unsigned"], 15329 Close 15330 (qVar"state", 15331 Let(Var("v",F64), 15332 Apply 15333 (Call 15334 ("getVirtualAddress",ATy(qTy,F64), 15335 Bop(Add,Mop(SE F64,Var("offset",F16)), 15336 Apply 15337 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15338 qVar"state"))),qVar"state"), 15339 Let(TP[Var("v0",F64),qVar"s"], 15340 Apply 15341 (Call 15342 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 15343 TP[Const("HALFWORD",FTy 3),Const("HALFWORD",FTy 3),LT, 15344 Var("v",F64),LF]),qVar"state"), 15345 ITE(Mop(Not, 15346 Apply 15347 (Const("exceptionSignalled",ATy(qTy,bTy)),qVar"s")), 15348 Let(Var("v1",FTy 3), 15349 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 15350 CC[REP(Apply 15351 (Const("BigEndianCPU",ATy(qTy,F1)), 15352 qVar"s"),LN 2,FTy 2),LW(0,1)]), 15353 Let(Var("memhalf",F16), 15354 EX(Var("v0",F64), 15355 Bop(Add,LN 15, 15356 Bop(Mul,LN 8, 15357 Mop(Cast nTy,Var("v1",FTy 3)))), 15358 Bop(Mul,LN 8,Mop(Cast nTy,Var("v1",FTy 3))), 15359 F16), 15360 Apply 15361 (Call 15362 ("write'GPR",ATy(qTy,qTy), 15363 TP[ITE(bVar"unsigned", 15364 Mop(Cast F64,Var("memhalf",F16)), 15365 Mop(SE F64,Var("memhalf",F16))), 15366 Var("rt",FTy 5)]),qVar"s"))),qVar"s"))))) 15367; 15368val loadWord_def = Def 15369 ("loadWord", 15370 TP[bVar"link",Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16), 15371 bVar"unsigned"], 15372 Close 15373 (qVar"state", 15374 Let(Var("v",F64), 15375 Apply 15376 (Call 15377 ("getVirtualAddress",ATy(qTy,F64), 15378 Bop(Add,Mop(SE F64,Var("offset",F16)), 15379 Apply 15380 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15381 qVar"state"))),qVar"state"), 15382 Let(TP[Var("v0",F64),qVar"s"], 15383 Apply 15384 (Call 15385 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 15386 TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, 15387 Var("v",F64),bVar"link"]),qVar"state"), 15388 ITE(Mop(Not, 15389 Apply 15390 (Const("exceptionSignalled",ATy(qTy,bTy)),qVar"s")), 15391 Let(Var("v1",FTy 3), 15392 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 15393 CC[Apply 15394 (Const("BigEndianCPU",ATy(qTy,F1)),qVar"s"), 15395 LW(0,2)]), 15396 Let(Var("memword",F32), 15397 EX(Var("v0",F64), 15398 Bop(Add,LN 31, 15399 Bop(Mul,LN 8, 15400 Mop(Cast nTy,Var("v1",FTy 3)))), 15401 Bop(Mul,LN 8,Mop(Cast nTy,Var("v1",FTy 3))), 15402 F32), 15403 Apply 15404 (Call 15405 ("write'GPR",ATy(qTy,qTy), 15406 TP[ITE(bVar"unsigned", 15407 Mop(Cast F64,Var("memword",F32)), 15408 Mop(SE F64,Var("memword",F32))), 15409 Var("rt",FTy 5)]),qVar"s"))),qVar"s"))))) 15410; 15411val loadDoubleword_def = Def 15412 ("loadDoubleword", 15413 TP[bVar"link",Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15414 Close 15415 (qVar"state", 15416 Let(TP[Var("v",F64),qVar"s"], 15417 Apply 15418 (Call 15419 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 15420 TP[Const("DOUBLEWORD",FTy 3),Const("DOUBLEWORD",FTy 3),LT, 15421 Apply 15422 (Call 15423 ("getVirtualAddress",ATy(qTy,F64), 15424 Bop(Add,Mop(SE F64,Var("offset",F16)), 15425 Apply 15426 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15427 qVar"state"))),qVar"state"),bVar"link"]), 15428 qVar"state"), 15429 ITE(Mop(Not, 15430 Apply(Const("exceptionSignalled",ATy(qTy,bTy)),qVar"s")), 15431 Apply 15432 (Call 15433 ("write'GPR",ATy(qTy,qTy), 15434 TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s"),qVar"s")))) 15435; 15436val dfn'LB_def = Def 15437 ("dfn'LB",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15438 Close 15439 (qVar"state", 15440 Apply 15441 (Call 15442 ("loadByte",ATy(qTy,qTy), 15443 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), 15444 qVar"state"))) 15445; 15446val dfn'LBU_def = Def 15447 ("dfn'LBU",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15448 Close 15449 (qVar"state", 15450 Apply 15451 (Call 15452 ("loadByte",ATy(qTy,qTy), 15453 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), 15454 qVar"state"))) 15455; 15456val dfn'LH_def = Def 15457 ("dfn'LH",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15458 Close 15459 (qVar"state", 15460 Apply 15461 (Call 15462 ("loadHalf",ATy(qTy,qTy), 15463 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), 15464 qVar"state"))) 15465; 15466val dfn'LHU_def = Def 15467 ("dfn'LHU",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15468 Close 15469 (qVar"state", 15470 Apply 15471 (Call 15472 ("loadHalf",ATy(qTy,qTy), 15473 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), 15474 qVar"state"))) 15475; 15476val dfn'LW_def = Def 15477 ("dfn'LW",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15478 Close 15479 (qVar"state", 15480 Apply 15481 (Call 15482 ("loadWord",ATy(qTy,qTy), 15483 TP[LF,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), 15484 qVar"state"))) 15485; 15486val dfn'LWU_def = Def 15487 ("dfn'LWU",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15488 Close 15489 (qVar"state", 15490 Apply 15491 (Call 15492 ("loadWord",ATy(qTy,qTy), 15493 TP[LF,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), 15494 qVar"state"))) 15495; 15496val dfn'LL_def = Def 15497 ("dfn'LL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15498 Close 15499 (qVar"state", 15500 Apply 15501 (Call 15502 ("loadWord",ATy(qTy,qTy), 15503 TP[LT,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), 15504 qVar"state"))) 15505; 15506val dfn'LD_def = Def 15507 ("dfn'LD",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15508 Close 15509 (qVar"state", 15510 Apply 15511 (Call 15512 ("loadDoubleword",ATy(qTy,qTy), 15513 TP[LF,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)]), 15514 qVar"state"))) 15515; 15516val dfn'LLD_def = Def 15517 ("dfn'LLD",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15518 Close 15519 (qVar"state", 15520 Apply 15521 (Call 15522 ("loadDoubleword",ATy(qTy,qTy), 15523 TP[LT,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)]), 15524 qVar"state"))) 15525; 15526val dfn'LWL_def = Def 15527 ("dfn'LWL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15528 Close 15529 (qVar"state", 15530 Let(Var("v",F64), 15531 Apply 15532 (Call 15533 ("getVirtualAddress",ATy(qTy,F64), 15534 Bop(Add,Mop(SE F64,Var("offset",F16)), 15535 Apply 15536 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15537 qVar"state"))),qVar"state"), 15538 Let(Var("v0",FTy 2), 15539 Bop(BXor,EX(Var("v",F64),LN 1,LN 0,FTy 2), 15540 REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), 15541 LN 2,FTy 2)), 15542 Let(TP[Var("v2",F64),qVar"s0"], 15543 Apply 15544 (Call 15545 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 15546 TP[Const("WORD",FTy 3), 15547 CC[LW(0,1),Var("v0",FTy 2)],LF,Var("v",F64),LF]), 15548 qVar"state"), 15549 ITE(Mop(Not, 15550 Apply 15551 (Const("exceptionSignalled",ATy(qTy,bTy)), 15552 qVar"s0")), 15553 Let(TP[Var("v",F32),qVar"s"], 15554 CS(TP[Bop(BXor,EX(Var("v",F64),LN 2,LN 2,F1), 15555 Apply 15556 (Const("BigEndianCPU",ATy(qTy,F1)), 15557 qVar"state")),Var("v0",FTy 2)], 15558 [(TP[LW(0,1),LW(0,2)], 15559 TP[CC[EX(Var("v2",F64),LN 7,LN 0,F8), 15560 EX(Apply 15561 (Call 15562 ("GPR",ATy(qTy,F64), 15563 Var("rt",FTy 5)),qVar"s0"), 15564 LN 23,LN 0,FTy 24)],qVar"s0"]), 15565 (TP[LW(0,1),LW(1,2)], 15566 TP[CC[EX(Var("v2",F64),LN 15,LN 0,F16), 15567 EX(Apply 15568 (Call 15569 ("GPR",ATy(qTy,F64), 15570 Var("rt",FTy 5)),qVar"s0"), 15571 LN 15,LN 0,F16)],qVar"s0"]), 15572 (TP[LW(0,1),LW(2,2)], 15573 TP[CC[EX(Var("v2",F64),LN 23,LN 0,FTy 24), 15574 EX(Apply 15575 (Call 15576 ("GPR",ATy(qTy,F64), 15577 Var("rt",FTy 5)),qVar"s0"), 15578 LN 7,LN 0,F8)],qVar"s0"]), 15579 (TP[LW(0,1),LW(3,2)], 15580 TP[EX(Var("v2",F64),LN 31,LN 0,F32), 15581 qVar"s0"]), 15582 (TP[LW(1,1),LW(0,2)], 15583 TP[CC[EX(Var("v2",F64),LN 39,LN 32,F8), 15584 EX(Apply 15585 (Call 15586 ("GPR",ATy(qTy,F64), 15587 Var("rt",FTy 5)),qVar"s0"), 15588 LN 23,LN 0,FTy 24)],qVar"s0"]), 15589 (TP[LW(1,1),LW(1,2)], 15590 TP[CC[EX(Var("v2",F64),LN 47,LN 32,F16), 15591 EX(Apply 15592 (Call 15593 ("GPR",ATy(qTy,F64), 15594 Var("rt",FTy 5)),qVar"s0"), 15595 LN 15,LN 0,F16)],qVar"s0"]), 15596 (TP[LW(1,1),LW(2,2)], 15597 TP[CC[EX(Var("v2",F64),LN 55,LN 32,FTy 24), 15598 EX(Apply 15599 (Call 15600 ("GPR",ATy(qTy,F64), 15601 Var("rt",FTy 5)),qVar"s0"), 15602 LN 7,LN 0,F8)],qVar"s0"]), 15603 (TP[LW(1,1),LW(3,2)], 15604 TP[EX(Var("v2",F64),LN 63,LN 32,F32), 15605 qVar"s0"])]), 15606 Apply 15607 (Call 15608 ("write'GPR",ATy(qTy,qTy), 15609 TP[Mop(SE F64,Var("v",F32)), 15610 Var("rt",FTy 5)]),qVar"s")),qVar"s0")))))) 15611; 15612val dfn'LWR_def = Def 15613 ("dfn'LWR",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15614 Close 15615 (qVar"state", 15616 Let(Var("v",F64), 15617 Apply 15618 (Call 15619 ("getVirtualAddress",ATy(qTy,F64), 15620 Bop(Add,Mop(SE F64,Var("offset",F16)), 15621 Apply 15622 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15623 qVar"state"))),qVar"state"), 15624 Let(Var("v0",FTy 2), 15625 Bop(BXor,EX(Var("v",F64),LN 1,LN 0,FTy 2), 15626 REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), 15627 LN 2,FTy 2)), 15628 Let(TP[Var("v2",F64),qVar"s0"], 15629 Apply 15630 (Call 15631 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 15632 TP[Const("WORD",FTy 3), 15633 Bop(Sub,Const("WORD",FTy 3), 15634 CC[LW(0,1),Var("v0",FTy 2)]),LF, 15635 Var("v",F64),LF]),qVar"state"), 15636 ITE(Mop(Not, 15637 Apply 15638 (Const("exceptionSignalled",ATy(qTy,bTy)), 15639 qVar"s0")), 15640 Let(TP[Var("v",F32),qVar"s"], 15641 CS(TP[Bop(BXor,EX(Var("v",F64),LN 2,LN 2,F1), 15642 Apply 15643 (Const("BigEndianCPU",ATy(qTy,F1)), 15644 qVar"state")),Var("v0",FTy 2)], 15645 [(TP[LW(0,1),LW(0,2)], 15646 TP[EX(Var("v2",F64),LN 31,LN 0,F32), 15647 qVar"s0"]), 15648 (TP[LW(0,1),LW(1,2)], 15649 TP[CC[EX(Apply 15650 (Call 15651 ("GPR",ATy(qTy,F64), 15652 Var("rt",FTy 5)),qVar"s0"), 15653 LN 31,LN 24,F8), 15654 EX(Var("v2",F64),LN 31,LN 8,FTy 24)], 15655 qVar"s0"]), 15656 (TP[LW(0,1),LW(2,2)], 15657 TP[CC[EX(Apply 15658 (Call 15659 ("GPR",ATy(qTy,F64), 15660 Var("rt",FTy 5)),qVar"s0"), 15661 LN 31,LN 16,F16), 15662 EX(Var("v2",F64),LN 31,LN 16,F16)], 15663 qVar"s0"]), 15664 (TP[LW(0,1),LW(3,2)], 15665 TP[CC[EX(Apply 15666 (Call 15667 ("GPR",ATy(qTy,F64), 15668 Var("rt",FTy 5)),qVar"s0"), 15669 LN 31,LN 8,FTy 24), 15670 EX(Var("v2",F64),LN 31,LN 24,F8)], 15671 qVar"s0"]), 15672 (TP[LW(1,1),LW(0,2)], 15673 TP[EX(Var("v2",F64),LN 63,LN 32,F32), 15674 qVar"s0"]), 15675 (TP[LW(1,1),LW(1,2)], 15676 TP[CC[EX(Apply 15677 (Call 15678 ("GPR",ATy(qTy,F64), 15679 Var("rt",FTy 5)),qVar"s0"), 15680 LN 31,LN 24,F8), 15681 EX(Var("v2",F64),LN 63,LN 40,FTy 24)], 15682 qVar"s0"]), 15683 (TP[LW(1,1),LW(2,2)], 15684 TP[CC[EX(Apply 15685 (Call 15686 ("GPR",ATy(qTy,F64), 15687 Var("rt",FTy 5)),qVar"s0"), 15688 LN 31,LN 16,F16), 15689 EX(Var("v2",F64),LN 63,LN 48,F16)], 15690 qVar"s0"]), 15691 (TP[LW(1,1),LW(3,2)], 15692 TP[CC[EX(Apply 15693 (Call 15694 ("GPR",ATy(qTy,F64), 15695 Var("rt",FTy 5)),qVar"s0"), 15696 LN 31,LN 8,FTy 24), 15697 EX(Var("v2",F64),LN 63,LN 56,F8)], 15698 qVar"s0"])]), 15699 Apply 15700 (Call 15701 ("write'GPR",ATy(qTy,qTy), 15702 TP[Mop(SE F64,Var("v",F32)), 15703 Var("rt",FTy 5)]),qVar"s")),qVar"s0")))))) 15704; 15705val dfn'LDL_def = Def 15706 ("dfn'LDL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15707 Close 15708 (qVar"state", 15709 Let(Var("v",F64), 15710 Apply 15711 (Call 15712 ("getVirtualAddress",ATy(qTy,F64), 15713 Bop(Add,Mop(SE F64,Var("offset",F16)), 15714 Apply 15715 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15716 qVar"state"))),qVar"state"), 15717 Let(Var("v0",FTy 3), 15718 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 15719 REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), 15720 LN 3,FTy 3)), 15721 Let(TP[Var("v1",F64),qVar"s"], 15722 Apply 15723 (Call 15724 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 15725 TP[Const("DOUBLEWORD",FTy 3),Var("v0",FTy 3),LF, 15726 Var("v",F64),LF]),qVar"state"), 15727 ITE(Mop(Not, 15728 Apply 15729 (Const("exceptionSignalled",ATy(qTy,bTy)), 15730 qVar"s")), 15731 Let(TP[Var("v",F64),qVar"s"], 15732 CS(Var("v0",FTy 3), 15733 [(LW(0,3), 15734 TP[CC[EX(Var("v1",F64),LN 7,LN 0,F8), 15735 EX(Apply 15736 (Call 15737 ("GPR",ATy(qTy,F64), 15738 Var("rt",FTy 5)),qVar"s"), 15739 LN 55,LN 0,FTy 56)],qVar"s"]), 15740 (LW(1,3), 15741 TP[CC[EX(Var("v1",F64),LN 15,LN 0,F16), 15742 EX(Apply 15743 (Call 15744 ("GPR",ATy(qTy,F64), 15745 Var("rt",FTy 5)),qVar"s"), 15746 LN 47,LN 0,FTy 48)],qVar"s"]), 15747 (LW(2,3), 15748 TP[CC[EX(Var("v1",F64),LN 23,LN 0,FTy 24), 15749 EX(Apply 15750 (Call 15751 ("GPR",ATy(qTy,F64), 15752 Var("rt",FTy 5)),qVar"s"), 15753 LN 39,LN 0,FTy 40)],qVar"s"]), 15754 (LW(3,3), 15755 TP[CC[EX(Var("v1",F64),LN 31,LN 0,F32), 15756 EX(Apply 15757 (Call 15758 ("GPR",ATy(qTy,F64), 15759 Var("rt",FTy 5)),qVar"s"), 15760 LN 31,LN 0,F32)],qVar"s"]), 15761 (LW(4,3), 15762 TP[CC[EX(Var("v1",F64),LN 39,LN 0,FTy 40), 15763 EX(Apply 15764 (Call 15765 ("GPR",ATy(qTy,F64), 15766 Var("rt",FTy 5)),qVar"s"), 15767 LN 23,LN 0,FTy 24)],qVar"s"]), 15768 (LW(5,3), 15769 TP[CC[EX(Var("v1",F64),LN 47,LN 0,FTy 48), 15770 EX(Apply 15771 (Call 15772 ("GPR",ATy(qTy,F64), 15773 Var("rt",FTy 5)),qVar"s"), 15774 LN 15,LN 0,F16)],qVar"s"]), 15775 (LW(6,3), 15776 TP[CC[EX(Var("v1",F64),LN 55,LN 0,FTy 56), 15777 EX(Apply 15778 (Call 15779 ("GPR",ATy(qTy,F64), 15780 Var("rt",FTy 5)),qVar"s"), 15781 LN 7,LN 0,F8)],qVar"s"]), 15782 (LW(7,3), 15783 TP[EX(Var("v1",F64),LN 63,LN 0,F64),qVar"s"])]), 15784 Apply 15785 (Call 15786 ("write'GPR",ATy(qTy,qTy), 15787 TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s")), 15788 qVar"s")))))) 15789; 15790val dfn'LDR_def = Def 15791 ("dfn'LDR",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15792 Close 15793 (qVar"state", 15794 Let(Var("v",F64), 15795 Apply 15796 (Call 15797 ("getVirtualAddress",ATy(qTy,F64), 15798 Bop(Add,Mop(SE F64,Var("offset",F16)), 15799 Apply 15800 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15801 qVar"state"))),qVar"state"), 15802 Let(Var("v0",FTy 3), 15803 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 15804 REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), 15805 LN 3,FTy 3)), 15806 Let(TP[Var("v1",F64),qVar"s"], 15807 Apply 15808 (Call 15809 ("LoadMemory",ATy(qTy,PTy(F64,qTy)), 15810 TP[Const("DOUBLEWORD",FTy 3), 15811 Bop(Sub,Const("DOUBLEWORD",FTy 3), 15812 Var("v0",FTy 3)),LF,Var("v",F64),LF]), 15813 qVar"state"), 15814 ITE(Mop(Not, 15815 Apply 15816 (Const("exceptionSignalled",ATy(qTy,bTy)), 15817 qVar"s")), 15818 Let(TP[Var("v",F64),qVar"s"], 15819 CS(Var("v0",FTy 3), 15820 [(LW(0,3), 15821 TP[EX(Var("v1",F64),LN 63,LN 0,F64),qVar"s"]), 15822 (LW(1,3), 15823 TP[CC[EX(Apply 15824 (Call 15825 ("GPR",ATy(qTy,F64), 15826 Var("rt",FTy 5)),qVar"s"), 15827 LN 63,LN 56,F8), 15828 EX(Var("v1",F64),LN 63,LN 8,FTy 56)], 15829 qVar"s"]), 15830 (LW(2,3), 15831 TP[CC[EX(Apply 15832 (Call 15833 ("GPR",ATy(qTy,F64), 15834 Var("rt",FTy 5)),qVar"s"), 15835 LN 63,LN 48,F16), 15836 EX(Var("v1",F64),LN 63,LN 16,FTy 48)], 15837 qVar"s"]), 15838 (LW(3,3), 15839 TP[CC[EX(Apply 15840 (Call 15841 ("GPR",ATy(qTy,F64), 15842 Var("rt",FTy 5)),qVar"s"), 15843 LN 63,LN 40,FTy 24), 15844 EX(Var("v1",F64),LN 63,LN 24,FTy 40)], 15845 qVar"s"]), 15846 (LW(4,3), 15847 TP[CC[EX(Apply 15848 (Call 15849 ("GPR",ATy(qTy,F64), 15850 Var("rt",FTy 5)),qVar"s"), 15851 LN 63,LN 32,F32), 15852 EX(Var("v1",F64),LN 63,LN 32,F32)], 15853 qVar"s"]), 15854 (LW(5,3), 15855 TP[CC[EX(Apply 15856 (Call 15857 ("GPR",ATy(qTy,F64), 15858 Var("rt",FTy 5)),qVar"s"), 15859 LN 63,LN 24,FTy 40), 15860 EX(Var("v1",F64),LN 63,LN 40,FTy 24)], 15861 qVar"s"]), 15862 (LW(6,3), 15863 TP[CC[EX(Apply 15864 (Call 15865 ("GPR",ATy(qTy,F64), 15866 Var("rt",FTy 5)),qVar"s"), 15867 LN 63,LN 16,FTy 48), 15868 EX(Var("v1",F64),LN 63,LN 48,F16)], 15869 qVar"s"]), 15870 (LW(7,3), 15871 TP[CC[EX(Apply 15872 (Call 15873 ("GPR",ATy(qTy,F64), 15874 Var("rt",FTy 5)),qVar"s"), 15875 LN 63,LN 8,FTy 56), 15876 EX(Var("v1",F64),LN 63,LN 56,F8)], 15877 qVar"s"])]), 15878 Apply 15879 (Call 15880 ("write'GPR",ATy(qTy,qTy), 15881 TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s")), 15882 qVar"s")))))) 15883; 15884val dfn'SB_def = Def 15885 ("dfn'SB",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15886 Close 15887 (qVar"state", 15888 Let(Var("v",F64), 15889 Apply 15890 (Call 15891 ("getVirtualAddress",ATy(qTy,F64), 15892 Bop(Add,Mop(SE F64,Var("offset",F16)), 15893 Apply 15894 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15895 qVar"state"))),qVar"state"), 15896 Mop(Snd, 15897 Apply 15898 (Call 15899 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 15900 TP[Const("BYTE",FTy 3),Const("BYTE",FTy 3),LF, 15901 Bop(Lsl, 15902 Apply 15903 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 15904 qVar"state"), 15905 Bop(Mul,LN 8, 15906 Mop(Cast nTy, 15907 Bop(BXor, 15908 EX(Var("v",F64),LN 2,LN 0,FTy 3), 15909 REP(Apply 15910 (Const 15911 ("BigEndianCPU", 15912 ATy(qTy,F1)),qVar"state"), 15913 LN 3,FTy 3))))),Var("v",F64),LF]), 15914 qVar"state"))))) 15915; 15916val dfn'SH_def = Def 15917 ("dfn'SH",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15918 Close 15919 (qVar"state", 15920 Let(Var("v",F64), 15921 Apply 15922 (Call 15923 ("getVirtualAddress",ATy(qTy,F64), 15924 Bop(Add,Mop(SE F64,Var("offset",F16)), 15925 Apply 15926 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15927 qVar"state"))),qVar"state"), 15928 Mop(Snd, 15929 Apply 15930 (Call 15931 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 15932 TP[Const("HALFWORD",FTy 3),Const("HALFWORD",FTy 3),LT, 15933 Bop(Lsl, 15934 Apply 15935 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 15936 qVar"state"), 15937 Bop(Mul,LN 8, 15938 Mop(Cast nTy, 15939 Bop(BXor, 15940 EX(Var("v",F64),LN 2,LN 0,FTy 3), 15941 CC[REP(Apply 15942 (Const 15943 ("BigEndianCPU", 15944 ATy(qTy,F1)), 15945 qVar"state"),LN 2,FTy 2), 15946 LW(0,1)])))),Var("v",F64),LF]), 15947 qVar"state"))))) 15948; 15949val storeWord_def = Def 15950 ("storeWord", 15951 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),bVar"cond"], 15952 Close 15953 (qVar"state", 15954 Let(Var("v",F64), 15955 Apply 15956 (Call 15957 ("getVirtualAddress",ATy(qTy,F64), 15958 Bop(Add,Mop(SE F64,Var("offset",F16)), 15959 Apply 15960 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15961 qVar"state"))),qVar"state"), 15962 Apply 15963 (Call 15964 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 15965 TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, 15966 Bop(Lsl, 15967 Apply 15968 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 15969 qVar"state"), 15970 Bop(Mul,LN 8, 15971 Mop(Cast nTy, 15972 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 15973 CC[Apply 15974 (Const("BigEndianCPU",ATy(qTy,F1)), 15975 qVar"state"),LW(0,2)])))), 15976 Var("v",F64),bVar"cond"]),qVar"state")))) 15977; 15978val storeDoubleword_def = Def 15979 ("storeDoubleword", 15980 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),bVar"cond"], 15981 Close 15982 (qVar"state", 15983 Apply 15984 (Call 15985 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 15986 TP[Const("DOUBLEWORD",FTy 3),Const("DOUBLEWORD",FTy 3),LT, 15987 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 15988 Apply 15989 (Call 15990 ("getVirtualAddress",ATy(qTy,F64), 15991 Bop(Add,Mop(SE F64,Var("offset",F16)), 15992 Apply 15993 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 15994 qVar"state"))),qVar"state"),bVar"cond"]), 15995 qVar"state"))) 15996; 15997val dfn'SW_def = Def 15998 ("dfn'SW",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 15999 Close 16000 (qVar"state", 16001 Mop(Snd, 16002 Apply 16003 (Call 16004 ("storeWord",ATy(qTy,PTy(bTy,qTy)), 16005 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), 16006 qVar"state")))) 16007; 16008val dfn'SD_def = Def 16009 ("dfn'SD",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16010 Close 16011 (qVar"state", 16012 Mop(Snd, 16013 Apply 16014 (Call 16015 ("storeDoubleword",ATy(qTy,PTy(bTy,qTy)), 16016 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), 16017 qVar"state")))) 16018; 16019val dfn'SC_def = Def 16020 ("dfn'SC",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16021 Close 16022 (qVar"state", 16023 Let(TP[bVar"v",qVar"s"], 16024 Apply 16025 (Call 16026 ("storeWord",ATy(qTy,PTy(bTy,qTy)), 16027 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), 16028 qVar"state"), 16029 ITE(Mop(Not, 16030 Apply(Const("exceptionSignalled",ATy(qTy,bTy)),qVar"s")), 16031 Apply 16032 (Call 16033 ("write'GPR",ATy(qTy,qTy), 16034 TP[ITE(bVar"v",LW(1,64),LW(0,64)),Var("rt",FTy 5)]), 16035 qVar"s"),qVar"s")))) 16036; 16037val dfn'SCD_def = Def 16038 ("dfn'SCD",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16039 Close 16040 (qVar"state", 16041 Let(TP[bVar"v",qVar"s"], 16042 Apply 16043 (Call 16044 ("storeDoubleword",ATy(qTy,PTy(bTy,qTy)), 16045 TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), 16046 qVar"state"), 16047 ITE(Mop(Not, 16048 Apply(Const("exceptionSignalled",ATy(qTy,bTy)),qVar"s")), 16049 Apply 16050 (Call 16051 ("write'GPR",ATy(qTy,qTy), 16052 TP[ITE(bVar"v",LW(1,64),LW(0,64)),Var("rt",FTy 5)]), 16053 qVar"s"),qVar"s")))) 16054; 16055val dfn'SWL_def = Def 16056 ("dfn'SWL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16057 Close 16058 (qVar"state", 16059 Let(Var("v",F64), 16060 Apply 16061 (Call 16062 ("getVirtualAddress",ATy(qTy,F64), 16063 Bop(Add,Mop(SE F64,Var("offset",F16)), 16064 Apply 16065 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 16066 qVar"state"))),qVar"state"), 16067 Let(Var("v0",FTy 2), 16068 Bop(BXor,EX(Var("v",F64),LN 1,LN 0,FTy 2), 16069 REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), 16070 LN 2,FTy 2)), 16071 Let(TP[Var("v2",F64),qVar"s0"], 16072 CS(Var("v0",FTy 2), 16073 [(LW(0,2), 16074 TP[Mop(Cast F64, 16075 EX(Apply 16076 (Call 16077 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16078 qVar"state"),LN 31,LN 24,F8)), 16079 qVar"state"]), 16080 (LW(1,2), 16081 TP[Mop(Cast F64, 16082 EX(Apply 16083 (Call 16084 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16085 qVar"state"),LN 31,LN 16,F16)), 16086 qVar"state"]), 16087 (LW(2,2), 16088 TP[Mop(Cast F64, 16089 EX(Apply 16090 (Call 16091 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16092 qVar"state"),LN 31,LN 8,FTy 24)), 16093 qVar"state"]), 16094 (LW(3,2), 16095 TP[Mop(Cast F64, 16096 EX(Apply 16097 (Call 16098 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16099 qVar"state"),LN 31,LN 0,F32)), 16100 qVar"state"])]), 16101 Mop(Snd, 16102 Apply 16103 (Call 16104 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 16105 TP[Const("WORD",FTy 3), 16106 Mop(Cast(FTy 3),Var("v0",FTy 2)),LF, 16107 ITE(EQ(Bop(BXor, 16108 EX(Var("v",F64),LN 2,LN 2,F1), 16109 Apply 16110 (Const 16111 ("BigEndianCPU",ATy(qTy,F1)), 16112 qVar"state")),LW(1,1)), 16113 Bop(Lsl,Var("v2",F64),LN 32), 16114 Var("v2",F64)), 16115 ITE(Apply 16116 (Const("BigEndianMem",ATy(qTy,bTy)), 16117 qVar"s0"),Var("v",F64), 16118 Bop(BAnd,Var("v",F64), 16119 Mop(BNot,LW(3,64)))),LF]),qVar"s0"))))))) 16120; 16121val dfn'SWR_def = Def 16122 ("dfn'SWR",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16123 Close 16124 (qVar"state", 16125 Let(Var("v",F64), 16126 Apply 16127 (Call 16128 ("getVirtualAddress",ATy(qTy,F64), 16129 Bop(Add,Mop(SE F64,Var("offset",F16)), 16130 Apply 16131 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 16132 qVar"state"))),qVar"state"), 16133 Let(Var("v0",FTy 2), 16134 Bop(BXor,EX(Var("v",F64),LN 1,LN 0,FTy 2), 16135 REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), 16136 LN 2,FTy 2)), 16137 Let(TP[Var("v1",F64),qVar"s"], 16138 CS(TP[Bop(BXor,EX(Var("v",F64),LN 2,LN 2,F1), 16139 Apply 16140 (Const("BigEndianCPU",ATy(qTy,F1)), 16141 qVar"state")),Var("v0",FTy 2)], 16142 [(TP[LW(0,1),LW(0,2)], 16143 TP[Mop(Cast F64, 16144 EX(Apply 16145 (Call 16146 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16147 qVar"state"),LN 31,LN 0,F32)), 16148 qVar"state"]), 16149 (TP[LW(0,1),LW(1,2)], 16150 TP[Bop(Lsl, 16151 Mop(Cast F64, 16152 EX(Apply 16153 (Call 16154 ("GPR",ATy(qTy,F64), 16155 Var("rt",FTy 5)),qVar"state"), 16156 LN 23,LN 0,FTy 24)),LN 8),qVar"state"]), 16157 (TP[LW(0,1),LW(2,2)], 16158 TP[Bop(Lsl, 16159 Mop(Cast F64, 16160 EX(Apply 16161 (Call 16162 ("GPR",ATy(qTy,F64), 16163 Var("rt",FTy 5)),qVar"state"), 16164 LN 15,LN 0,F16)),LN 16),qVar"state"]), 16165 (TP[LW(0,1),LW(3,2)], 16166 TP[Bop(Lsl, 16167 Mop(Cast F64, 16168 EX(Apply 16169 (Call 16170 ("GPR",ATy(qTy,F64), 16171 Var("rt",FTy 5)),qVar"state"), 16172 LN 7,LN 0,F8)),LN 24),qVar"state"]), 16173 (TP[LW(1,1),LW(0,2)], 16174 TP[Bop(Lsl, 16175 Mop(Cast F64, 16176 EX(Apply 16177 (Call 16178 ("GPR",ATy(qTy,F64), 16179 Var("rt",FTy 5)),qVar"state"), 16180 LN 31,LN 0,F32)),LN 32),qVar"state"]), 16181 (TP[LW(1,1),LW(1,2)], 16182 TP[Bop(Lsl, 16183 Mop(Cast F64, 16184 EX(Apply 16185 (Call 16186 ("GPR",ATy(qTy,F64), 16187 Var("rt",FTy 5)),qVar"state"), 16188 LN 23,LN 0,FTy 24)),LN 40), 16189 qVar"state"]), 16190 (TP[LW(1,1),LW(2,2)], 16191 TP[Bop(Lsl, 16192 Mop(Cast F64, 16193 EX(Apply 16194 (Call 16195 ("GPR",ATy(qTy,F64), 16196 Var("rt",FTy 5)),qVar"state"), 16197 LN 15,LN 0,F16)),LN 48),qVar"state"]), 16198 (TP[LW(1,1),LW(3,2)], 16199 TP[Bop(Lsl, 16200 Mop(Cast F64, 16201 EX(Apply 16202 (Call 16203 ("GPR",ATy(qTy,F64), 16204 Var("rt",FTy 5)),qVar"state"), 16205 LN 7,LN 0,F8)),LN 56),qVar"state"])]), 16206 Mop(Snd, 16207 Apply 16208 (Call 16209 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 16210 TP[Const("WORD",FTy 3), 16211 Bop(Sub,Const("WORD",FTy 3), 16212 Mop(Cast(FTy 3),Var("v0",FTy 2))),LF, 16213 Var("v1",F64), 16214 ITE(Apply 16215 (Const("BigEndianMem",ATy(qTy,bTy)), 16216 qVar"s"), 16217 Bop(BAnd,Var("v",F64), 16218 Mop(BNot,LW(3,64))),Var("v",F64)), 16219 LF]),qVar"s"))))))) 16220; 16221val dfn'SDL_def = Def 16222 ("dfn'SDL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16223 Close 16224 (qVar"state", 16225 Let(Var("v",F64), 16226 Apply 16227 (Call 16228 ("getVirtualAddress",ATy(qTy,F64), 16229 Bop(Add,Mop(SE F64,Var("offset",F16)), 16230 Apply 16231 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 16232 qVar"state"))),qVar"state"), 16233 Let(Var("v0",FTy 3), 16234 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 16235 REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), 16236 LN 3,FTy 3)), 16237 Let(TP[Var("v1",F64),qVar"s"], 16238 CS(Var("v0",FTy 3), 16239 [(LW(0,3), 16240 TP[Mop(Cast F64, 16241 EX(Apply 16242 (Call 16243 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16244 qVar"state"),LN 63,LN 56,F8)), 16245 qVar"state"]), 16246 (LW(1,3), 16247 TP[Mop(Cast F64, 16248 EX(Apply 16249 (Call 16250 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16251 qVar"state"),LN 63,LN 48,F16)), 16252 qVar"state"]), 16253 (LW(2,3), 16254 TP[Mop(Cast F64, 16255 EX(Apply 16256 (Call 16257 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16258 qVar"state"),LN 63,LN 40,FTy 24)), 16259 qVar"state"]), 16260 (LW(3,3), 16261 TP[Mop(Cast F64, 16262 EX(Apply 16263 (Call 16264 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16265 qVar"state"),LN 63,LN 32,F32)), 16266 qVar"state"]), 16267 (LW(4,3), 16268 TP[Mop(Cast F64, 16269 EX(Apply 16270 (Call 16271 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16272 qVar"state"),LN 63,LN 24,FTy 40)), 16273 qVar"state"]), 16274 (LW(5,3), 16275 TP[Mop(Cast F64, 16276 EX(Apply 16277 (Call 16278 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16279 qVar"state"),LN 63,LN 16,FTy 48)), 16280 qVar"state"]), 16281 (LW(6,3), 16282 TP[Mop(Cast F64, 16283 EX(Apply 16284 (Call 16285 ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16286 qVar"state"),LN 63,LN 8,FTy 56)), 16287 qVar"state"]), 16288 (LW(7,3), 16289 TP[Apply 16290 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16291 qVar"state"),qVar"state"])]), 16292 Mop(Snd, 16293 Apply 16294 (Call 16295 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 16296 TP[Const("DOUBLEWORD",FTy 3),Var("v0",FTy 3), 16297 LF,Var("v1",F64), 16298 ITE(Apply 16299 (Const("BigEndianMem",ATy(qTy,bTy)), 16300 qVar"s"),Var("v",F64), 16301 Bop(BAnd,Var("v",F64), 16302 Mop(BNot,LW(7,64)))),LF]),qVar"s"))))))) 16303; 16304val dfn'SDR_def = Def 16305 ("dfn'SDR",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16306 Close 16307 (qVar"state", 16308 Let(Var("v",F64), 16309 Apply 16310 (Call 16311 ("getVirtualAddress",ATy(qTy,F64), 16312 Bop(Add,Mop(SE F64,Var("offset",F16)), 16313 Apply 16314 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 16315 qVar"state"))),qVar"state"), 16316 Let(Var("v0",FTy 3), 16317 Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), 16318 REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), 16319 LN 3,FTy 3)), 16320 Let(TP[Var("v1",F64),qVar"s"], 16321 CS(Var("v0",FTy 3), 16322 [(LW(0,3), 16323 TP[Apply 16324 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), 16325 qVar"state"),qVar"state"]), 16326 (LW(1,3), 16327 TP[Bop(Lsl, 16328 Mop(Cast F64, 16329 EX(Apply 16330 (Call 16331 ("GPR",ATy(qTy,F64), 16332 Var("rt",FTy 5)),qVar"state"), 16333 LN 55,LN 0,FTy 56)),LN 8),qVar"state"]), 16334 (LW(2,3), 16335 TP[Bop(Lsl, 16336 Mop(Cast F64, 16337 EX(Apply 16338 (Call 16339 ("GPR",ATy(qTy,F64), 16340 Var("rt",FTy 5)),qVar"state"), 16341 LN 47,LN 0,FTy 48)),LN 16), 16342 qVar"state"]), 16343 (LW(3,3), 16344 TP[Bop(Lsl, 16345 Mop(Cast F64, 16346 EX(Apply 16347 (Call 16348 ("GPR",ATy(qTy,F64), 16349 Var("rt",FTy 5)),qVar"state"), 16350 LN 39,LN 0,FTy 40)),LN 24), 16351 qVar"state"]), 16352 (LW(4,3), 16353 TP[Bop(Lsl, 16354 Mop(Cast F64, 16355 EX(Apply 16356 (Call 16357 ("GPR",ATy(qTy,F64), 16358 Var("rt",FTy 5)),qVar"state"), 16359 LN 31,LN 0,F32)),LN 32),qVar"state"]), 16360 (LW(5,3), 16361 TP[Bop(Lsl, 16362 Mop(Cast F64, 16363 EX(Apply 16364 (Call 16365 ("GPR",ATy(qTy,F64), 16366 Var("rt",FTy 5)),qVar"state"), 16367 LN 23,LN 0,FTy 24)),LN 40), 16368 qVar"state"]), 16369 (LW(6,3), 16370 TP[Bop(Lsl, 16371 Mop(Cast F64, 16372 EX(Apply 16373 (Call 16374 ("GPR",ATy(qTy,F64), 16375 Var("rt",FTy 5)),qVar"state"), 16376 LN 15,LN 0,F16)),LN 48),qVar"state"]), 16377 (LW(7,3), 16378 TP[Bop(Lsl, 16379 Mop(Cast F64, 16380 EX(Apply 16381 (Call 16382 ("GPR",ATy(qTy,F64), 16383 Var("rt",FTy 5)),qVar"state"), 16384 LN 7,LN 0,F8)),LN 56),qVar"state"])]), 16385 Mop(Snd, 16386 Apply 16387 (Call 16388 ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), 16389 TP[Const("DOUBLEWORD",FTy 3), 16390 Bop(Sub,Const("DOUBLEWORD",FTy 3), 16391 Var("v0",FTy 3)),LF,Var("v1",F64), 16392 ITE(Apply 16393 (Const("BigEndianMem",ATy(qTy,bTy)), 16394 qVar"s"), 16395 Bop(BAnd,Var("v",F64), 16396 Mop(BNot,LW(7,64))),Var("v",F64)), 16397 LF]),qVar"s"))))))) 16398; 16399val dfn'SYNC_def = Def ("dfn'SYNC",Var("stype",FTy 5),LU) 16400; 16401val dfn'BREAK_def = Def 16402 ("dfn'BREAK",qVar"state", 16403 Apply 16404 (Call("SignalException",ATy(qTy,qTy),LC("Bp",CTy"ExceptionType")), 16405 qVar"state")) 16406; 16407val dfn'SYSCALL_def = Def 16408 ("dfn'SYSCALL",qVar"state", 16409 Apply 16410 (Call("SignalException",ATy(qTy,qTy),LC("Sys",CTy"ExceptionType")), 16411 qVar"state")) 16412; 16413val dfn'MTC0_def = Def 16414 ("dfn'MTC0",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)], 16415 Close 16416 (qVar"state", 16417 ITE(Bop(Or, 16418 Dest 16419 ("CU0",bTy, 16420 Dest 16421 ("Status",CTy"StatusRegister", 16422 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 16423 Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), 16424 Apply 16425 (Call 16426 ("write'CPR",ATy(qTy,qTy), 16427 TP[Apply 16428 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 16429 LN 0,Var("rd",FTy 5),Var("sel",FTy 3)]),qVar"state"), 16430 Apply 16431 (Call 16432 ("SignalException",ATy(qTy,qTy), 16433 LC("CpU",CTy"ExceptionType")),qVar"state")))) 16434; 16435val dfn'DMTC0_def = Def 16436 ("dfn'DMTC0",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)], 16437 Close 16438 (qVar"state", 16439 ITE(Bop(Or, 16440 Dest 16441 ("CU0",bTy, 16442 Dest 16443 ("Status",CTy"StatusRegister", 16444 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 16445 Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), 16446 Apply 16447 (Call 16448 ("write'CPR",ATy(qTy,qTy), 16449 TP[Apply 16450 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), 16451 LN 0,Var("rd",FTy 5),Var("sel",FTy 3)]),qVar"state"), 16452 Apply 16453 (Call 16454 ("SignalException",ATy(qTy,qTy), 16455 LC("CpU",CTy"ExceptionType")),qVar"state")))) 16456; 16457val dfn'MFC0_def = Def 16458 ("dfn'MFC0",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)], 16459 Close 16460 (qVar"state", 16461 ITE(Bop(Or, 16462 Dest 16463 ("CU0",bTy, 16464 Dest 16465 ("Status",CTy"StatusRegister", 16466 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 16467 Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), 16468 Let(TP[Var("v",F64),qVar"s"], 16469 Apply 16470 (Call 16471 ("CPR",ATy(qTy,PTy(F64,qTy)), 16472 TP[LN 0,Var("rd",FTy 5),Var("sel",FTy 3)]),qVar"state"), 16473 Apply 16474 (Call 16475 ("write'GPR",ATy(qTy,qTy), 16476 TP[Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32)), 16477 Var("rt",FTy 5)]),qVar"s")), 16478 Apply 16479 (Call 16480 ("SignalException",ATy(qTy,qTy), 16481 LC("CpU",CTy"ExceptionType")),qVar"state")))) 16482; 16483val dfn'DMFC0_def = Def 16484 ("dfn'DMFC0",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)], 16485 Close 16486 (qVar"state", 16487 ITE(Bop(Or, 16488 Dest 16489 ("CU0",bTy, 16490 Dest 16491 ("Status",CTy"StatusRegister", 16492 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 16493 Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), 16494 Let(TP[Var("v",F64),qVar"s"], 16495 Apply 16496 (Call 16497 ("CPR",ATy(qTy,PTy(F64,qTy)), 16498 TP[LN 0,Var("rd",FTy 5),Var("sel",FTy 3)]),qVar"state"), 16499 Apply 16500 (Call 16501 ("write'GPR",ATy(qTy,qTy), 16502 TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s")), 16503 Apply 16504 (Call 16505 ("SignalException",ATy(qTy,qTy), 16506 LC("CpU",CTy"ExceptionType")),qVar"state")))) 16507; 16508val dfn'J_def = Def 16509 ("dfn'J",Var("instr_index",FTy 26), 16510 Close 16511 (qVar"state", 16512 Apply 16513 (Call 16514 ("write'BranchTo",ATy(qTy,qTy), 16515 Mop(Some, 16516 CC[EX(Apply(Const("PC",ATy(qTy,F64)),qVar"state"),LN 63, 16517 LN 28,FTy 36),Var("instr_index",FTy 26),LW(0,2)])), 16518 qVar"state"))) 16519; 16520val dfn'JAL_def = Def 16521 ("dfn'JAL",Var("instr_index",FTy 26), 16522 Close 16523 (qVar"state", 16524 Let(TP[Var("v",F64),qVar"s"], 16525 Let(qVar"s0", 16526 Apply 16527 (Call 16528 ("write'GPR",ATy(qTy,qTy), 16529 TP[Bop(Add, 16530 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16531 LW(8,64)),LW(31,5)]),qVar"state"), 16532 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16533 Apply 16534 (Call 16535 ("write'BranchTo",ATy(qTy,qTy), 16536 Mop(Some, 16537 CC[EX(Var("v",F64),LN 63,LN 28,FTy 36), 16538 Var("instr_index",FTy 26),LW(0,2)])),qVar"s")))) 16539; 16540val dfn'JALR_def = Def 16541 ("dfn'JALR",TP[Var("rs",FTy 5),Var("rd",FTy 5)], 16542 Close 16543 (qVar"state", 16544 Apply 16545 (Call 16546 ("write'BranchTo",ATy(qTy,qTy), 16547 Mop(Some, 16548 Apply 16549 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"))), 16550 Apply 16551 (Call 16552 ("write'GPR",ATy(qTy,qTy), 16553 TP[Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16554 LW(8,64)),Var("rd",FTy 5)]),qVar"state")))) 16555; 16556val dfn'JR_def = Def 16557 ("dfn'JR",Var("rs",FTy 5), 16558 Close 16559 (qVar"state", 16560 Apply 16561 (Call 16562 ("write'BranchTo",ATy(qTy,qTy), 16563 Mop(Some, 16564 Apply 16565 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"))), 16566 qVar"state"))) 16567; 16568val dfn'BEQ_def = Def 16569 ("dfn'BEQ",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16570 Close 16571 (qVar"state", 16572 ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16573 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 16574 Apply 16575 (Call 16576 ("write'BranchTo",ATy(qTy,qTy), 16577 Mop(Some, 16578 Bop(Add, 16579 Bop(Add, 16580 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16581 LW(4,64)), 16582 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16583 qVar"state"), 16584 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state")))) 16585; 16586val dfn'BNE_def = Def 16587 ("dfn'BNE",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16588 Close 16589 (qVar"state", 16590 ITE(Mop(Not, 16591 EQ(Apply 16592 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16593 Apply 16594 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), 16595 Apply 16596 (Call 16597 ("write'BranchTo",ATy(qTy,qTy), 16598 Mop(Some, 16599 Bop(Add, 16600 Bop(Add, 16601 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16602 LW(4,64)), 16603 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16604 qVar"state"), 16605 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state")))) 16606; 16607val dfn'BLEZ_def = Def 16608 ("dfn'BLEZ",TP[Var("rs",FTy 5),Var("offset",F16)], 16609 Close 16610 (qVar"state", 16611 ITE(Bop(Le, 16612 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16613 LW(0,64)), 16614 Apply 16615 (Call 16616 ("write'BranchTo",ATy(qTy,qTy), 16617 Mop(Some, 16618 Bop(Add, 16619 Bop(Add, 16620 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16621 LW(4,64)), 16622 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16623 qVar"state"), 16624 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state")))) 16625; 16626val dfn'BGTZ_def = Def 16627 ("dfn'BGTZ",TP[Var("rs",FTy 5),Var("offset",F16)], 16628 Close 16629 (qVar"state", 16630 ITE(Bop(Gt, 16631 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16632 LW(0,64)), 16633 Apply 16634 (Call 16635 ("write'BranchTo",ATy(qTy,qTy), 16636 Mop(Some, 16637 Bop(Add, 16638 Bop(Add, 16639 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16640 LW(4,64)), 16641 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16642 qVar"state"), 16643 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state")))) 16644; 16645val dfn'BLTZ_def = Def 16646 ("dfn'BLTZ",TP[Var("rs",FTy 5),Var("offset",F16)], 16647 Close 16648 (qVar"state", 16649 ITE(Bop(Lt, 16650 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16651 LW(0,64)), 16652 Apply 16653 (Call 16654 ("write'BranchTo",ATy(qTy,qTy), 16655 Mop(Some, 16656 Bop(Add, 16657 Bop(Add, 16658 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16659 LW(4,64)), 16660 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16661 qVar"state"), 16662 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state")))) 16663; 16664val dfn'BGEZ_def = Def 16665 ("dfn'BGEZ",TP[Var("rs",FTy 5),Var("offset",F16)], 16666 Close 16667 (qVar"state", 16668 ITE(Bop(Ge, 16669 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16670 LW(0,64)), 16671 Apply 16672 (Call 16673 ("write'BranchTo",ATy(qTy,qTy), 16674 Mop(Some, 16675 Bop(Add, 16676 Bop(Add, 16677 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16678 LW(4,64)), 16679 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16680 qVar"state"), 16681 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state")))) 16682; 16683val dfn'BLTZAL_def = Def 16684 ("dfn'BLTZAL",TP[Var("rs",FTy 5),Var("offset",F16)], 16685 Close 16686 (qVar"state", 16687 Let(qVar"s", 16688 Apply 16689 (Call 16690 ("write'GPR",ATy(qTy,qTy), 16691 TP[Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16692 LW(8,64)),LW(31,5)]),qVar"state"), 16693 ITE(Bop(Lt, 16694 Apply 16695 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16696 LW(0,64)), 16697 Apply 16698 (Call 16699 ("write'BranchTo",ATy(qTy,qTy), 16700 Mop(Some, 16701 Bop(Add, 16702 Bop(Add, 16703 Apply(Const("PC",ATy(qTy,F64)),qVar"s"), 16704 LW(4,64)), 16705 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16706 qVar"s"),Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"s"))))) 16707; 16708val dfn'BGEZAL_def = Def 16709 ("dfn'BGEZAL",TP[Var("rs",FTy 5),Var("offset",F16)], 16710 Close 16711 (qVar"state", 16712 Let(qVar"s", 16713 Apply 16714 (Call 16715 ("write'GPR",ATy(qTy,qTy), 16716 TP[Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16717 LW(8,64)),LW(31,5)]),qVar"state"), 16718 ITE(Bop(Ge, 16719 Apply 16720 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16721 LW(0,64)), 16722 Apply 16723 (Call 16724 ("write'BranchTo",ATy(qTy,qTy), 16725 Mop(Some, 16726 Bop(Add, 16727 Bop(Add, 16728 Apply(Const("PC",ATy(qTy,F64)),qVar"s"), 16729 LW(4,64)), 16730 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16731 qVar"s"),Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"s"))))) 16732; 16733val dfn'BEQL_def = Def 16734 ("dfn'BEQL",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16735 Close 16736 (qVar"state", 16737 ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16738 Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), 16739 Apply 16740 (Call 16741 ("write'BranchTo",ATy(qTy,qTy), 16742 Mop(Some, 16743 Bop(Add, 16744 Bop(Add, 16745 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16746 LW(4,64)), 16747 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16748 qVar"state"), 16749 Let(TP[Var("v",F64),qVar"s"], 16750 Let(qVar"s0", 16751 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 16752 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16753 Apply 16754 (Call 16755 ("write'PC",ATy(qTy,qTy),Bop(Add,Var("v",F64),LW(4,64))), 16756 qVar"s"))))) 16757; 16758val dfn'BNEL_def = Def 16759 ("dfn'BNEL",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("offset",F16)], 16760 Close 16761 (qVar"state", 16762 ITE(Mop(Not, 16763 EQ(Apply 16764 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16765 Apply 16766 (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), 16767 Apply 16768 (Call 16769 ("write'BranchTo",ATy(qTy,qTy), 16770 Mop(Some, 16771 Bop(Add, 16772 Bop(Add, 16773 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16774 LW(4,64)), 16775 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16776 qVar"state"), 16777 Let(TP[Var("v",F64),qVar"s"], 16778 Let(qVar"s0", 16779 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 16780 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16781 Apply 16782 (Call 16783 ("write'PC",ATy(qTy,qTy),Bop(Add,Var("v",F64),LW(4,64))), 16784 qVar"s"))))) 16785; 16786val dfn'BLEZL_def = Def 16787 ("dfn'BLEZL",TP[Var("rs",FTy 5),Var("offset",F16)], 16788 Close 16789 (qVar"state", 16790 ITE(Bop(Le, 16791 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16792 LW(0,64)), 16793 Apply 16794 (Call 16795 ("write'BranchTo",ATy(qTy,qTy), 16796 Mop(Some, 16797 Bop(Add, 16798 Bop(Add, 16799 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16800 LW(4,64)), 16801 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16802 qVar"state"), 16803 Let(TP[Var("v",F64),qVar"s"], 16804 Let(qVar"s0", 16805 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 16806 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16807 Apply 16808 (Call 16809 ("write'PC",ATy(qTy,qTy),Bop(Add,Var("v",F64),LW(4,64))), 16810 qVar"s"))))) 16811; 16812val dfn'BGTZL_def = Def 16813 ("dfn'BGTZL",TP[Var("rs",FTy 5),Var("offset",F16)], 16814 Close 16815 (qVar"state", 16816 ITE(Bop(Gt, 16817 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16818 LW(0,64)), 16819 Apply 16820 (Call 16821 ("write'BranchTo",ATy(qTy,qTy), 16822 Mop(Some, 16823 Bop(Add, 16824 Bop(Add, 16825 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16826 LW(4,64)), 16827 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16828 qVar"state"), 16829 Let(TP[Var("v",F64),qVar"s"], 16830 Let(qVar"s0", 16831 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 16832 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16833 Apply 16834 (Call 16835 ("write'PC",ATy(qTy,qTy),Bop(Add,Var("v",F64),LW(4,64))), 16836 qVar"s"))))) 16837; 16838val dfn'BLTZL_def = Def 16839 ("dfn'BLTZL",TP[Var("rs",FTy 5),Var("offset",F16)], 16840 Close 16841 (qVar"state", 16842 ITE(Bop(Lt, 16843 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16844 LW(0,64)), 16845 Apply 16846 (Call 16847 ("write'BranchTo",ATy(qTy,qTy), 16848 Mop(Some, 16849 Bop(Add, 16850 Bop(Add, 16851 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16852 LW(4,64)), 16853 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16854 qVar"state"), 16855 Let(TP[Var("v",F64),qVar"s"], 16856 Let(qVar"s0", 16857 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 16858 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16859 Apply 16860 (Call 16861 ("write'PC",ATy(qTy,qTy),Bop(Add,Var("v",F64),LW(4,64))), 16862 qVar"s"))))) 16863; 16864val dfn'BGEZL_def = Def 16865 ("dfn'BGEZL",TP[Var("rs",FTy 5),Var("offset",F16)], 16866 Close 16867 (qVar"state", 16868 ITE(Bop(Ge, 16869 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16870 LW(0,64)), 16871 Apply 16872 (Call 16873 ("write'BranchTo",ATy(qTy,qTy), 16874 Mop(Some, 16875 Bop(Add, 16876 Bop(Add, 16877 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16878 LW(4,64)), 16879 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16880 qVar"state"), 16881 Let(TP[Var("v",F64),qVar"s"], 16882 Let(qVar"s0", 16883 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"state"), 16884 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16885 Apply 16886 (Call 16887 ("write'PC",ATy(qTy,qTy),Bop(Add,Var("v",F64),LW(4,64))), 16888 qVar"s"))))) 16889; 16890val dfn'BLTZALL_def = Def 16891 ("dfn'BLTZALL",TP[Var("rs",FTy 5),Var("offset",F16)], 16892 Close 16893 (qVar"state", 16894 Let(qVar"s", 16895 Apply 16896 (Call 16897 ("write'GPR",ATy(qTy,qTy), 16898 TP[Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16899 LW(8,64)),LW(31,5)]),qVar"state"), 16900 ITE(Bop(Lt, 16901 Apply 16902 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16903 LW(0,64)), 16904 Apply 16905 (Call 16906 ("write'BranchTo",ATy(qTy,qTy), 16907 Mop(Some, 16908 Bop(Add, 16909 Bop(Add, 16910 Apply(Const("PC",ATy(qTy,F64)),qVar"s"), 16911 LW(4,64)), 16912 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16913 qVar"s"), 16914 Let(TP[Var("v",F64),qVar"s"], 16915 Let(qVar"s0", 16916 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"s"), 16917 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16918 Apply 16919 (Call 16920 ("write'PC",ATy(qTy,qTy), 16921 Bop(Add,Var("v",F64),LW(4,64))),qVar"s")))))) 16922; 16923val dfn'BGEZALL_def = Def 16924 ("dfn'BGEZALL",TP[Var("rs",FTy 5),Var("offset",F16)], 16925 Close 16926 (qVar"state", 16927 Let(qVar"s", 16928 Apply 16929 (Call 16930 ("write'GPR",ATy(qTy,qTy), 16931 TP[Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 16932 LW(8,64)),LW(31,5)]),qVar"state"), 16933 ITE(Bop(Ge, 16934 Apply 16935 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 16936 LW(0,64)), 16937 Apply 16938 (Call 16939 ("write'BranchTo",ATy(qTy,qTy), 16940 Mop(Some, 16941 Bop(Add, 16942 Bop(Add, 16943 Apply(Const("PC",ATy(qTy,F64)),qVar"s"), 16944 LW(4,64)), 16945 Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2)))), 16946 qVar"s"), 16947 Let(TP[Var("v",F64),qVar"s"], 16948 Let(qVar"s0", 16949 Apply(Const("CheckBranch",ATy(qTy,qTy)),qVar"s"), 16950 TP[Apply(Const("PC",ATy(qTy,F64)),qVar"s0"),qVar"s0"]), 16951 Apply 16952 (Call 16953 ("write'PC",ATy(qTy,qTy), 16954 Bop(Add,Var("v",F64),LW(4,64))),qVar"s")))))) 16955; 16956val dfn'RDHWR_def = Def 16957 ("dfn'RDHWR",TP[Var("rt",FTy 5),Var("rd",FTy 5)], 16958 Close 16959 (qVar"state", 16960 ITE(Bop(Or, 16961 Dest 16962 ("CU0",bTy, 16963 Dest 16964 ("Status",CTy"StatusRegister", 16965 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 16966 Bop(Or,Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state"), 16967 Bop(Bit, 16968 Call 16969 ("reg'HWREna",F32, 16970 Dest 16971 ("HWREna",CTy"HWREna", 16972 Apply 16973 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"state"))), 16974 Mop(Cast nTy,Var("rd",FTy 5))))), 16975 CS(Var("rd",FTy 5), 16976 [(LW(0,5), 16977 Apply 16978 (Call 16979 ("write'GPR",ATy(qTy,qTy), 16980 TP[Mop(Cast F64,Dest("procID",F8,qVar"state")), 16981 Var("rt",FTy 5)]),qVar"state")), 16982 (LW(2,5), 16983 Apply 16984 (Call 16985 ("write'GPR",ATy(qTy,qTy), 16986 TP[Mop(SE F64, 16987 Dest 16988 ("Count",F32, 16989 Apply 16990 (Const("CP0",ATy(qTy,CTy"CP0")), 16991 qVar"state"))),Var("rt",FTy 5)]), 16992 qVar"state")), 16993 (LW(3,5), 16994 Apply 16995 (Call 16996 ("write'GPR",ATy(qTy,qTy),TP[LW(1,64),Var("rt",FTy 5)]), 16997 qVar"state")), 16998 (LW(26,5),Rupd("done",TP[qVar"state",LT])), 16999 (LW(27,5), 17000 Apply(Const("resetStats",ATy(qTy,qTy)),qVar"state")), 17001 (LW(28,5),qVar"state"), 17002 (LW(29,5), 17003 Apply 17004 (Call 17005 ("write'GPR",ATy(qTy,qTy), 17006 TP[Dest 17007 ("UsrLocal",F64, 17008 Apply 17009 (Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")), 17010 Var("rt",FTy 5)]),qVar"state")), 17011 (LW(30,5), 17012 Apply 17013 (Call 17014 ("write'GPR",ATy(qTy,qTy), 17015 TP[Mop(Cast F64, 17016 Bop(Sub,Dest("totalCore",nTy,qVar"state"),LN 1)), 17017 Var("rt",FTy 5)]),qVar"state")), 17018 (AVar(FTy 5), 17019 Apply 17020 (Call 17021 ("SignalException",ATy(qTy,qTy), 17022 LC("ResI",CTy"ExceptionType")),qVar"state"))]), 17023 Apply 17024 (Call 17025 ("SignalException",ATy(qTy,qTy), 17026 LC("ResI",CTy"ExceptionType")),qVar"state")))) 17027; 17028val dfn'CACHE_def = Def 17029 ("dfn'CACHE",TP[Var("base",FTy 5),Var("opn",FTy 5),Var("offset",F16)], 17030 Close 17031 (qVar"state", 17032 ITE(Bop(And, 17033 Mop(Not, 17034 Dest 17035 ("CU0",bTy, 17036 Dest 17037 ("Status",CTy"StatusRegister", 17038 Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"state")))), 17039 Mop(Not,Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state"))), 17040 Apply 17041 (Call 17042 ("SignalException",ATy(qTy,qTy), 17043 LC("CpU",CTy"ExceptionType")),qVar"state"), 17044 Mop(Snd, 17045 Apply 17046 (Call 17047 ("AddressTranslation", 17048 ATy(qTy,PTy(PTy(FTy 40,PTy(FTy 3,PTy(bTy,bTy))),qTy)), 17049 TP[Bop(Add, 17050 Apply 17051 (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), 17052 qVar"state"),Mop(SE F64,Var("offset",F16))), 17053 LC("LOAD",CTy"AccessType")]),qVar"state"))))) 17054; 17055val dfn'WAIT_def = Def0 ("dfn'WAIT",LU) 17056; 17057val dfn'ReservedInstruction_def = Def 17058 ("dfn'ReservedInstruction",qVar"state", 17059 Apply 17060 (Call("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), 17061 qVar"state")) 17062; 17063val dfn'Unpredictable_def = Def 17064 ("dfn'Unpredictable",qVar"state", 17065 Mop(Snd, 17066 Apply 17067 (Call 17068 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 17069 Call 17070 ("UNPREDICTABLE",CTy"exception", 17071 LS"Unpredictable instruction")),qVar"state"))) 17072; 17073val Run_def = Def 17074 ("Run",Var("v0",CTy"instruction"), 17075 Close 17076 (qVar"state", 17077 CS(Var("v0",CTy"instruction"), 17078 [(Const("BREAK",CTy"instruction"), 17079 Apply(Const("dfn'BREAK",ATy(qTy,qTy)),qVar"state")), 17080 (Const("ERET",CTy"instruction"), 17081 Apply(Const("dfn'ERET",ATy(qTy,qTy)),qVar"state")), 17082 (Const("ReservedInstruction",CTy"instruction"), 17083 Apply 17084 (Const("dfn'ReservedInstruction",ATy(qTy,qTy)),qVar"state")), 17085 (Const("SYSCALL",CTy"instruction"), 17086 Apply(Const("dfn'SYSCALL",ATy(qTy,qTy)),qVar"state")), 17087 (Const("TLBP",CTy"instruction"), 17088 Apply(Const("dfn'TLBP",ATy(qTy,qTy)),qVar"state")), 17089 (Const("TLBR",CTy"instruction"), 17090 Apply(Const("dfn'TLBR",ATy(qTy,qTy)),qVar"state")), 17091 (Const("TLBWI",CTy"instruction"), 17092 Apply(Const("dfn'TLBWI",ATy(qTy,qTy)),qVar"state")), 17093 (Const("TLBWR",CTy"instruction"), 17094 Apply(Const("dfn'TLBWR",ATy(qTy,qTy)),qVar"state")), 17095 (Const("Unpredictable",CTy"instruction"), 17096 Apply(Const("dfn'Unpredictable",ATy(qTy,qTy)),qVar"state")), 17097 (Const("WAIT",CTy"instruction"),qVar"state"), 17098 (Call 17099 ("CACHE",CTy"instruction", 17100 Var("v261",PTy(FTy 5,PTy(FTy 5,F16)))), 17101 Apply 17102 (Call 17103 ("dfn'CACHE",ATy(qTy,qTy), 17104 Var("v261",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17105 (Call("RDHWR",CTy"instruction",Var("v262",PTy(FTy 5,FTy 5))), 17106 Apply 17107 (Call("dfn'RDHWR",ATy(qTy,qTy),Var("v262",PTy(FTy 5,FTy 5))), 17108 qVar"state")), 17109 (Call("SYNC",CTy"instruction",Var("v263",FTy 5)),qVar"state"), 17110 (Call("ArithI",CTy"instruction",Var("v1",CTy"ArithI")), 17111 CS(Var("v1",CTy"ArithI"), 17112 [(Call 17113 ("ADDI",CTy"ArithI",Var("v2",PTy(FTy 5,PTy(FTy 5,F16)))), 17114 Apply 17115 (Call 17116 ("dfn'ADDI",ATy(qTy,qTy), 17117 Var("v2",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17118 (Call 17119 ("ADDIU",CTy"ArithI",Var("v3",PTy(FTy 5,PTy(FTy 5,F16)))), 17120 Apply 17121 (Call 17122 ("dfn'ADDIU",ATy(qTy,qTy), 17123 Var("v3",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17124 (Call 17125 ("ANDI",CTy"ArithI",Var("v4",PTy(FTy 5,PTy(FTy 5,F16)))), 17126 Apply 17127 (Call 17128 ("dfn'ANDI",ATy(qTy,qTy), 17129 Var("v4",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17130 (Call 17131 ("DADDI",CTy"ArithI",Var("v5",PTy(FTy 5,PTy(FTy 5,F16)))), 17132 Apply 17133 (Call 17134 ("dfn'DADDI",ATy(qTy,qTy), 17135 Var("v5",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17136 (Call 17137 ("DADDIU",CTy"ArithI", 17138 Var("v6",PTy(FTy 5,PTy(FTy 5,F16)))), 17139 Apply 17140 (Call 17141 ("dfn'DADDIU",ATy(qTy,qTy), 17142 Var("v6",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17143 (Call("LUI",CTy"ArithI",Var("v7",PTy(FTy 5,F16))), 17144 Apply 17145 (Call("dfn'LUI",ATy(qTy,qTy),Var("v7",PTy(FTy 5,F16))), 17146 qVar"state")), 17147 (Call 17148 ("ORI",CTy"ArithI",Var("v8",PTy(FTy 5,PTy(FTy 5,F16)))), 17149 Apply 17150 (Call 17151 ("dfn'ORI",ATy(qTy,qTy), 17152 Var("v8",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17153 (Call 17154 ("SLTI",CTy"ArithI",Var("v9",PTy(FTy 5,PTy(FTy 5,F16)))), 17155 Apply 17156 (Call 17157 ("dfn'SLTI",ATy(qTy,qTy), 17158 Var("v9",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17159 (Call 17160 ("SLTIU",CTy"ArithI", 17161 Var("v10",PTy(FTy 5,PTy(FTy 5,F16)))), 17162 Apply 17163 (Call 17164 ("dfn'SLTIU",ATy(qTy,qTy), 17165 Var("v10",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17166 (Call 17167 ("XORI",CTy"ArithI",Var("v11",PTy(FTy 5,PTy(FTy 5,F16)))), 17168 Apply 17169 (Call 17170 ("dfn'XORI",ATy(qTy,qTy), 17171 Var("v11",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state"))])), 17172 (Call("ArithR",CTy"instruction",Var("v12",CTy"ArithR")), 17173 CS(Var("v12",CTy"ArithR"), 17174 [(Call 17175 ("ADD",CTy"ArithR", 17176 Var("v13",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17177 Apply 17178 (Call 17179 ("dfn'ADD",ATy(qTy,qTy), 17180 Var("v13",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17181 (Call 17182 ("ADDU",CTy"ArithR", 17183 Var("v14",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17184 Apply 17185 (Call 17186 ("dfn'ADDU",ATy(qTy,qTy), 17187 Var("v14",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17188 (Call 17189 ("AND",CTy"ArithR", 17190 Var("v15",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17191 Apply 17192 (Call 17193 ("dfn'AND",ATy(qTy,qTy), 17194 Var("v15",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17195 (Call 17196 ("DADD",CTy"ArithR", 17197 Var("v16",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17198 Apply 17199 (Call 17200 ("dfn'DADD",ATy(qTy,qTy), 17201 Var("v16",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17202 (Call 17203 ("DADDU",CTy"ArithR", 17204 Var("v17",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17205 Apply 17206 (Call 17207 ("dfn'DADDU",ATy(qTy,qTy), 17208 Var("v17",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17209 (Call 17210 ("DSUB",CTy"ArithR", 17211 Var("v18",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17212 Apply 17213 (Call 17214 ("dfn'DSUB",ATy(qTy,qTy), 17215 Var("v18",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17216 (Call 17217 ("DSUBU",CTy"ArithR", 17218 Var("v19",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17219 Apply 17220 (Call 17221 ("dfn'DSUBU",ATy(qTy,qTy), 17222 Var("v19",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17223 (Call 17224 ("MOVN",CTy"ArithR", 17225 Var("v20",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17226 Apply 17227 (Call 17228 ("dfn'MOVN",ATy(qTy,qTy), 17229 Var("v20",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17230 (Call 17231 ("MOVZ",CTy"ArithR", 17232 Var("v21",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17233 Apply 17234 (Call 17235 ("dfn'MOVZ",ATy(qTy,qTy), 17236 Var("v21",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17237 (Call 17238 ("NOR",CTy"ArithR", 17239 Var("v22",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17240 Apply 17241 (Call 17242 ("dfn'NOR",ATy(qTy,qTy), 17243 Var("v22",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17244 (Call 17245 ("OR",CTy"ArithR",Var("v23",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17246 Apply 17247 (Call 17248 ("dfn'OR",ATy(qTy,qTy), 17249 Var("v23",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17250 (Call 17251 ("SLT",CTy"ArithR", 17252 Var("v24",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17253 Apply 17254 (Call 17255 ("dfn'SLT",ATy(qTy,qTy), 17256 Var("v24",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17257 (Call 17258 ("SLTU",CTy"ArithR", 17259 Var("v25",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17260 Apply 17261 (Call 17262 ("dfn'SLTU",ATy(qTy,qTy), 17263 Var("v25",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17264 (Call 17265 ("SUB",CTy"ArithR", 17266 Var("v26",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17267 Apply 17268 (Call 17269 ("dfn'SUB",ATy(qTy,qTy), 17270 Var("v26",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17271 (Call 17272 ("SUBU",CTy"ArithR", 17273 Var("v27",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17274 Apply 17275 (Call 17276 ("dfn'SUBU",ATy(qTy,qTy), 17277 Var("v27",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17278 (Call 17279 ("XOR",CTy"ArithR", 17280 Var("v28",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17281 Apply 17282 (Call 17283 ("dfn'XOR",ATy(qTy,qTy), 17284 Var("v28",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state"))])), 17285 (Call("Branch",CTy"instruction",Var("v29",CTy"Branch")), 17286 CS(Var("v29",CTy"Branch"), 17287 [(Call 17288 ("BEQ",CTy"Branch",Var("v30",PTy(FTy 5,PTy(FTy 5,F16)))), 17289 Apply 17290 (Call 17291 ("dfn'BEQ",ATy(qTy,qTy), 17292 Var("v30",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17293 (Call 17294 ("BEQL",CTy"Branch",Var("v31",PTy(FTy 5,PTy(FTy 5,F16)))), 17295 Apply 17296 (Call 17297 ("dfn'BEQL",ATy(qTy,qTy), 17298 Var("v31",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17299 (Call("BGEZ",CTy"Branch",Var("v32",PTy(FTy 5,F16))), 17300 Apply 17301 (Call("dfn'BGEZ",ATy(qTy,qTy),Var("v32",PTy(FTy 5,F16))), 17302 qVar"state")), 17303 (Call("BGEZAL",CTy"Branch",Var("v33",PTy(FTy 5,F16))), 17304 Apply 17305 (Call 17306 ("dfn'BGEZAL",ATy(qTy,qTy),Var("v33",PTy(FTy 5,F16))), 17307 qVar"state")), 17308 (Call("BGEZALL",CTy"Branch",Var("v34",PTy(FTy 5,F16))), 17309 Apply 17310 (Call 17311 ("dfn'BGEZALL",ATy(qTy,qTy),Var("v34",PTy(FTy 5,F16))), 17312 qVar"state")), 17313 (Call("BGEZL",CTy"Branch",Var("v35",PTy(FTy 5,F16))), 17314 Apply 17315 (Call 17316 ("dfn'BGEZL",ATy(qTy,qTy),Var("v35",PTy(FTy 5,F16))), 17317 qVar"state")), 17318 (Call("BGTZ",CTy"Branch",Var("v36",PTy(FTy 5,F16))), 17319 Apply 17320 (Call("dfn'BGTZ",ATy(qTy,qTy),Var("v36",PTy(FTy 5,F16))), 17321 qVar"state")), 17322 (Call("BGTZL",CTy"Branch",Var("v37",PTy(FTy 5,F16))), 17323 Apply 17324 (Call 17325 ("dfn'BGTZL",ATy(qTy,qTy),Var("v37",PTy(FTy 5,F16))), 17326 qVar"state")), 17327 (Call("BLEZ",CTy"Branch",Var("v38",PTy(FTy 5,F16))), 17328 Apply 17329 (Call("dfn'BLEZ",ATy(qTy,qTy),Var("v38",PTy(FTy 5,F16))), 17330 qVar"state")), 17331 (Call("BLEZL",CTy"Branch",Var("v39",PTy(FTy 5,F16))), 17332 Apply 17333 (Call 17334 ("dfn'BLEZL",ATy(qTy,qTy),Var("v39",PTy(FTy 5,F16))), 17335 qVar"state")), 17336 (Call("BLTZ",CTy"Branch",Var("v40",PTy(FTy 5,F16))), 17337 Apply 17338 (Call("dfn'BLTZ",ATy(qTy,qTy),Var("v40",PTy(FTy 5,F16))), 17339 qVar"state")), 17340 (Call("BLTZAL",CTy"Branch",Var("v41",PTy(FTy 5,F16))), 17341 Apply 17342 (Call 17343 ("dfn'BLTZAL",ATy(qTy,qTy),Var("v41",PTy(FTy 5,F16))), 17344 qVar"state")), 17345 (Call("BLTZALL",CTy"Branch",Var("v42",PTy(FTy 5,F16))), 17346 Apply 17347 (Call 17348 ("dfn'BLTZALL",ATy(qTy,qTy),Var("v42",PTy(FTy 5,F16))), 17349 qVar"state")), 17350 (Call("BLTZL",CTy"Branch",Var("v43",PTy(FTy 5,F16))), 17351 Apply 17352 (Call 17353 ("dfn'BLTZL",ATy(qTy,qTy),Var("v43",PTy(FTy 5,F16))), 17354 qVar"state")), 17355 (Call 17356 ("BNE",CTy"Branch",Var("v44",PTy(FTy 5,PTy(FTy 5,F16)))), 17357 Apply 17358 (Call 17359 ("dfn'BNE",ATy(qTy,qTy), 17360 Var("v44",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17361 (Call 17362 ("BNEL",CTy"Branch",Var("v45",PTy(FTy 5,PTy(FTy 5,F16)))), 17363 Apply 17364 (Call 17365 ("dfn'BNEL",ATy(qTy,qTy), 17366 Var("v45",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 17367 (Call("J",CTy"Branch",Var("v46",FTy 26)), 17368 Apply 17369 (Call("dfn'J",ATy(qTy,qTy),Var("v46",FTy 26)), 17370 qVar"state")), 17371 (Call("JAL",CTy"Branch",Var("v47",FTy 26)), 17372 Apply 17373 (Call("dfn'JAL",ATy(qTy,qTy),Var("v47",FTy 26)), 17374 qVar"state")), 17375 (Call("JALR",CTy"Branch",Var("v48",PTy(FTy 5,FTy 5))), 17376 Apply 17377 (Call 17378 ("dfn'JALR",ATy(qTy,qTy),Var("v48",PTy(FTy 5,FTy 5))), 17379 qVar"state")), 17380 (Call("JR",CTy"Branch",Var("v49",FTy 5)), 17381 Apply 17382 (Call("dfn'JR",ATy(qTy,qTy),Var("v49",FTy 5)), 17383 qVar"state"))])), 17384 (Call("COP1",CTy"instruction",Var("v50",CTy"COP1")), 17385 CS(Var("v50",CTy"COP1"), 17386 [(Const("UnknownFPInstruction",CTy"COP1"), 17387 Apply 17388 (Const("dfn'UnknownFPInstruction",ATy(qTy,qTy)), 17389 qVar"state")), 17390 (Call("ABS_D",CTy"COP1",Var("v51",PTy(FTy 5,FTy 5))), 17391 Apply 17392 (Call 17393 ("dfn'ABS_D",ATy(qTy,qTy),Var("v51",PTy(FTy 5,FTy 5))), 17394 qVar"state")), 17395 (Call("ABS_S",CTy"COP1",Var("v52",PTy(FTy 5,FTy 5))), 17396 Apply 17397 (Call 17398 ("dfn'ABS_S",ATy(qTy,qTy),Var("v52",PTy(FTy 5,FTy 5))), 17399 qVar"state")), 17400 (Call 17401 ("ADD_D",CTy"COP1", 17402 Var("v53",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17403 Apply 17404 (Call 17405 ("dfn'ADD_D",ATy(qTy,qTy), 17406 Var("v53",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17407 (Call 17408 ("ADD_S",CTy"COP1", 17409 Var("v54",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17410 Apply 17411 (Call 17412 ("dfn'ADD_S",ATy(qTy,qTy), 17413 Var("v54",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17414 (Call("BC1F",CTy"COP1",Var("v55",PTy(F16,FTy 3))), 17415 Apply 17416 (Call("dfn'BC1F",ATy(qTy,qTy),Var("v55",PTy(F16,FTy 3))), 17417 qVar"state")), 17418 (Call("BC1FL",CTy"COP1",Var("v56",PTy(F16,FTy 3))), 17419 Apply 17420 (Call 17421 ("dfn'BC1FL",ATy(qTy,qTy),Var("v56",PTy(F16,FTy 3))), 17422 qVar"state")), 17423 (Call("BC1T",CTy"COP1",Var("v57",PTy(F16,FTy 3))), 17424 Apply 17425 (Call("dfn'BC1T",ATy(qTy,qTy),Var("v57",PTy(F16,FTy 3))), 17426 qVar"state")), 17427 (Call("BC1TL",CTy"COP1",Var("v58",PTy(F16,FTy 3))), 17428 Apply 17429 (Call 17430 ("dfn'BC1TL",ATy(qTy,qTy),Var("v58",PTy(F16,FTy 3))), 17431 qVar"state")), 17432 (Call("CEIL_L_D",CTy"COP1",Var("v59",PTy(FTy 5,FTy 5))), 17433 Apply 17434 (Call 17435 ("dfn'CEIL_L_D",ATy(qTy,qTy), 17436 Var("v59",PTy(FTy 5,FTy 5))),qVar"state")), 17437 (Call("CEIL_L_S",CTy"COP1",Var("v60",PTy(FTy 5,FTy 5))), 17438 Apply 17439 (Call 17440 ("dfn'CEIL_L_S",ATy(qTy,qTy), 17441 Var("v60",PTy(FTy 5,FTy 5))),qVar"state")), 17442 (Call("CEIL_W_D",CTy"COP1",Var("v61",PTy(FTy 5,FTy 5))), 17443 Apply 17444 (Call 17445 ("dfn'CEIL_W_D",ATy(qTy,qTy), 17446 Var("v61",PTy(FTy 5,FTy 5))),qVar"state")), 17447 (Call("CEIL_W_S",CTy"COP1",Var("v62",PTy(FTy 5,FTy 5))), 17448 Apply 17449 (Call 17450 ("dfn'CEIL_W_S",ATy(qTy,qTy), 17451 Var("v62",PTy(FTy 5,FTy 5))),qVar"state")), 17452 (Call("CFC1",CTy"COP1",Var("v63",PTy(FTy 5,FTy 5))), 17453 Apply 17454 (Call 17455 ("dfn'CFC1",ATy(qTy,qTy),Var("v63",PTy(FTy 5,FTy 5))), 17456 qVar"state")), 17457 (Call("CTC1",CTy"COP1",Var("v64",PTy(FTy 5,FTy 5))), 17458 Apply 17459 (Call 17460 ("dfn'CTC1",ATy(qTy,qTy),Var("v64",PTy(FTy 5,FTy 5))), 17461 qVar"state")), 17462 (Call("CVT_D_L",CTy"COP1",Var("v65",PTy(FTy 5,FTy 5))), 17463 Apply 17464 (Call 17465 ("dfn'CVT_D_L",ATy(qTy,qTy), 17466 Var("v65",PTy(FTy 5,FTy 5))),qVar"state")), 17467 (Call("CVT_D_S",CTy"COP1",Var("v66",PTy(FTy 5,FTy 5))), 17468 Apply 17469 (Call 17470 ("dfn'CVT_D_S",ATy(qTy,qTy), 17471 Var("v66",PTy(FTy 5,FTy 5))),qVar"state")), 17472 (Call("CVT_D_W",CTy"COP1",Var("v67",PTy(FTy 5,FTy 5))), 17473 Apply 17474 (Call 17475 ("dfn'CVT_D_W",ATy(qTy,qTy), 17476 Var("v67",PTy(FTy 5,FTy 5))),qVar"state")), 17477 (Call("CVT_L_D",CTy"COP1",Var("v68",PTy(FTy 5,FTy 5))), 17478 Apply 17479 (Call 17480 ("dfn'CVT_L_D",ATy(qTy,qTy), 17481 Var("v68",PTy(FTy 5,FTy 5))),qVar"state")), 17482 (Call("CVT_L_S",CTy"COP1",Var("v69",PTy(FTy 5,FTy 5))), 17483 Apply 17484 (Call 17485 ("dfn'CVT_L_S",ATy(qTy,qTy), 17486 Var("v69",PTy(FTy 5,FTy 5))),qVar"state")), 17487 (Call("CVT_S_D",CTy"COP1",Var("v70",PTy(FTy 5,FTy 5))), 17488 Apply 17489 (Call 17490 ("dfn'CVT_S_D",ATy(qTy,qTy), 17491 Var("v70",PTy(FTy 5,FTy 5))),qVar"state")), 17492 (Call("CVT_S_L",CTy"COP1",Var("v71",PTy(FTy 5,FTy 5))), 17493 Apply 17494 (Call 17495 ("dfn'CVT_S_L",ATy(qTy,qTy), 17496 Var("v71",PTy(FTy 5,FTy 5))),qVar"state")), 17497 (Call("CVT_S_W",CTy"COP1",Var("v72",PTy(FTy 5,FTy 5))), 17498 Apply 17499 (Call 17500 ("dfn'CVT_S_W",ATy(qTy,qTy), 17501 Var("v72",PTy(FTy 5,FTy 5))),qVar"state")), 17502 (Call("CVT_W_D",CTy"COP1",Var("v73",PTy(FTy 5,FTy 5))), 17503 Apply 17504 (Call 17505 ("dfn'CVT_W_D",ATy(qTy,qTy), 17506 Var("v73",PTy(FTy 5,FTy 5))),qVar"state")), 17507 (Call("CVT_W_S",CTy"COP1",Var("v74",PTy(FTy 5,FTy 5))), 17508 Apply 17509 (Call 17510 ("dfn'CVT_W_S",ATy(qTy,qTy), 17511 Var("v74",PTy(FTy 5,FTy 5))),qVar"state")), 17512 (Call 17513 ("C_cond_D",CTy"COP1", 17514 Var("v75",PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3))))), 17515 Apply 17516 (Call 17517 ("dfn'C_cond_D",ATy(qTy,qTy), 17518 Var("v75",PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3))))), 17519 qVar"state")), 17520 (Call 17521 ("C_cond_S",CTy"COP1", 17522 Var("v76",PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3))))), 17523 Apply 17524 (Call 17525 ("dfn'C_cond_S",ATy(qTy,qTy), 17526 Var("v76",PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3))))), 17527 qVar"state")), 17528 (Call 17529 ("DIV_D",CTy"COP1", 17530 Var("v77",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17531 Apply 17532 (Call 17533 ("dfn'DIV_D",ATy(qTy,qTy), 17534 Var("v77",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17535 (Call 17536 ("DIV_S",CTy"COP1", 17537 Var("v78",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17538 Apply 17539 (Call 17540 ("dfn'DIV_S",ATy(qTy,qTy), 17541 Var("v78",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17542 (Call("DMFC1",CTy"COP1",Var("v79",PTy(FTy 5,FTy 5))), 17543 Apply 17544 (Call 17545 ("dfn'DMFC1",ATy(qTy,qTy),Var("v79",PTy(FTy 5,FTy 5))), 17546 qVar"state")), 17547 (Call("DMTC1",CTy"COP1",Var("v80",PTy(FTy 5,FTy 5))), 17548 Apply 17549 (Call 17550 ("dfn'DMTC1",ATy(qTy,qTy),Var("v80",PTy(FTy 5,FTy 5))), 17551 qVar"state")), 17552 (Call("FLOOR_L_D",CTy"COP1",Var("v81",PTy(FTy 5,FTy 5))), 17553 Apply 17554 (Call 17555 ("dfn'FLOOR_L_D",ATy(qTy,qTy), 17556 Var("v81",PTy(FTy 5,FTy 5))),qVar"state")), 17557 (Call("FLOOR_L_S",CTy"COP1",Var("v82",PTy(FTy 5,FTy 5))), 17558 Apply 17559 (Call 17560 ("dfn'FLOOR_L_S",ATy(qTy,qTy), 17561 Var("v82",PTy(FTy 5,FTy 5))),qVar"state")), 17562 (Call("FLOOR_W_D",CTy"COP1",Var("v83",PTy(FTy 5,FTy 5))), 17563 Apply 17564 (Call 17565 ("dfn'FLOOR_W_D",ATy(qTy,qTy), 17566 Var("v83",PTy(FTy 5,FTy 5))),qVar"state")), 17567 (Call("FLOOR_W_S",CTy"COP1",Var("v84",PTy(FTy 5,FTy 5))), 17568 Apply 17569 (Call 17570 ("dfn'FLOOR_W_S",ATy(qTy,qTy), 17571 Var("v84",PTy(FTy 5,FTy 5))),qVar"state")), 17572 (Call 17573 ("LDC1",CTy"COP1",Var("v85",PTy(FTy 5,PTy(F16,FTy 5)))), 17574 Apply 17575 (Call 17576 ("dfn'LDC1",ATy(qTy,qTy), 17577 Var("v85",PTy(FTy 5,PTy(F16,FTy 5)))),qVar"state")), 17578 (Call 17579 ("LDXC1",CTy"COP1", 17580 Var("v86",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17581 Apply 17582 (Call 17583 ("dfn'LDXC1",ATy(qTy,qTy), 17584 Var("v86",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17585 (Call 17586 ("LWC1",CTy"COP1",Var("v87",PTy(FTy 5,PTy(F16,FTy 5)))), 17587 Apply 17588 (Call 17589 ("dfn'LWC1",ATy(qTy,qTy), 17590 Var("v87",PTy(FTy 5,PTy(F16,FTy 5)))),qVar"state")), 17591 (Call 17592 ("LWXC1",CTy"COP1", 17593 Var("v88",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17594 Apply 17595 (Call 17596 ("dfn'LWXC1",ATy(qTy,qTy), 17597 Var("v88",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17598 (Call 17599 ("MADD_D",CTy"COP1", 17600 Var("v89",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), 17601 Apply 17602 (Call 17603 ("dfn'MADD_D",ATy(qTy,qTy), 17604 Var("v89",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), 17605 qVar"state")), 17606 (Call 17607 ("MADD_S",CTy"COP1", 17608 Var("v90",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), 17609 Apply 17610 (Call 17611 ("dfn'MADD_S",ATy(qTy,qTy), 17612 Var("v90",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), 17613 qVar"state")), 17614 (Call("MFC1",CTy"COP1",Var("v91",PTy(FTy 5,FTy 5))), 17615 Apply 17616 (Call 17617 ("dfn'MFC1",ATy(qTy,qTy),Var("v91",PTy(FTy 5,FTy 5))), 17618 qVar"state")), 17619 (Call 17620 ("MOVF",CTy"COP1",Var("v92",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 17621 Apply 17622 (Call 17623 ("dfn'MOVF",ATy(qTy,qTy), 17624 Var("v92",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 17625 (Call 17626 ("MOVF_D",CTy"COP1", 17627 Var("v93",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 17628 Apply 17629 (Call 17630 ("dfn'MOVF_D",ATy(qTy,qTy), 17631 Var("v93",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 17632 (Call 17633 ("MOVF_S",CTy"COP1", 17634 Var("v94",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 17635 Apply 17636 (Call 17637 ("dfn'MOVF_S",ATy(qTy,qTy), 17638 Var("v94",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 17639 (Call 17640 ("MOVN_D",CTy"COP1", 17641 Var("v95",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17642 Apply 17643 (Call 17644 ("dfn'MOVN_D",ATy(qTy,qTy), 17645 Var("v95",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17646 (Call 17647 ("MOVN_S",CTy"COP1", 17648 Var("v96",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17649 Apply 17650 (Call 17651 ("dfn'MOVN_S",ATy(qTy,qTy), 17652 Var("v96",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17653 (Call 17654 ("MOVT",CTy"COP1",Var("v97",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 17655 Apply 17656 (Call 17657 ("dfn'MOVT",ATy(qTy,qTy), 17658 Var("v97",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 17659 (Call 17660 ("MOVT_D",CTy"COP1", 17661 Var("v98",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 17662 Apply 17663 (Call 17664 ("dfn'MOVT_D",ATy(qTy,qTy), 17665 Var("v98",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 17666 (Call 17667 ("MOVT_S",CTy"COP1", 17668 Var("v99",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 17669 Apply 17670 (Call 17671 ("dfn'MOVT_S",ATy(qTy,qTy), 17672 Var("v99",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 17673 (Call 17674 ("MOVZ_D",CTy"COP1", 17675 Var("v100",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17676 Apply 17677 (Call 17678 ("dfn'MOVZ_D",ATy(qTy,qTy), 17679 Var("v100",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17680 (Call 17681 ("MOVZ_S",CTy"COP1", 17682 Var("v101",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17683 Apply 17684 (Call 17685 ("dfn'MOVZ_S",ATy(qTy,qTy), 17686 Var("v101",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17687 (Call("MOV_D",CTy"COP1",Var("v102",PTy(FTy 5,FTy 5))), 17688 Apply 17689 (Call 17690 ("dfn'MOV_D",ATy(qTy,qTy), 17691 Var("v102",PTy(FTy 5,FTy 5))),qVar"state")), 17692 (Call("MOV_S",CTy"COP1",Var("v103",PTy(FTy 5,FTy 5))), 17693 Apply 17694 (Call 17695 ("dfn'MOV_S",ATy(qTy,qTy), 17696 Var("v103",PTy(FTy 5,FTy 5))),qVar"state")), 17697 (Call 17698 ("MSUB_D",CTy"COP1", 17699 Var("v104",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), 17700 Apply 17701 (Call 17702 ("dfn'MSUB_D",ATy(qTy,qTy), 17703 Var("v104",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), 17704 qVar"state")), 17705 (Call 17706 ("MSUB_S",CTy"COP1", 17707 Var("v105",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), 17708 Apply 17709 (Call 17710 ("dfn'MSUB_S",ATy(qTy,qTy), 17711 Var("v105",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), 17712 qVar"state")), 17713 (Call("MTC1",CTy"COP1",Var("v106",PTy(FTy 5,FTy 5))), 17714 Apply 17715 (Call 17716 ("dfn'MTC1",ATy(qTy,qTy),Var("v106",PTy(FTy 5,FTy 5))), 17717 qVar"state")), 17718 (Call 17719 ("MUL_D",CTy"COP1", 17720 Var("v107",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17721 Apply 17722 (Call 17723 ("dfn'MUL_D",ATy(qTy,qTy), 17724 Var("v107",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17725 (Call 17726 ("MUL_S",CTy"COP1", 17727 Var("v108",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17728 Apply 17729 (Call 17730 ("dfn'MUL_S",ATy(qTy,qTy), 17731 Var("v108",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17732 (Call("NEG_D",CTy"COP1",Var("v109",PTy(FTy 5,FTy 5))), 17733 Apply 17734 (Call 17735 ("dfn'NEG_D",ATy(qTy,qTy), 17736 Var("v109",PTy(FTy 5,FTy 5))),qVar"state")), 17737 (Call("NEG_S",CTy"COP1",Var("v110",PTy(FTy 5,FTy 5))), 17738 Apply 17739 (Call 17740 ("dfn'NEG_S",ATy(qTy,qTy), 17741 Var("v110",PTy(FTy 5,FTy 5))),qVar"state")), 17742 (Call("ROUND_L_D",CTy"COP1",Var("v111",PTy(FTy 5,FTy 5))), 17743 Apply 17744 (Call 17745 ("dfn'ROUND_L_D",ATy(qTy,qTy), 17746 Var("v111",PTy(FTy 5,FTy 5))),qVar"state")), 17747 (Call("ROUND_L_S",CTy"COP1",Var("v112",PTy(FTy 5,FTy 5))), 17748 Apply 17749 (Call 17750 ("dfn'ROUND_L_S",ATy(qTy,qTy), 17751 Var("v112",PTy(FTy 5,FTy 5))),qVar"state")), 17752 (Call("ROUND_W_D",CTy"COP1",Var("v113",PTy(FTy 5,FTy 5))), 17753 Apply 17754 (Call 17755 ("dfn'ROUND_W_D",ATy(qTy,qTy), 17756 Var("v113",PTy(FTy 5,FTy 5))),qVar"state")), 17757 (Call("ROUND_W_S",CTy"COP1",Var("v114",PTy(FTy 5,FTy 5))), 17758 Apply 17759 (Call 17760 ("dfn'ROUND_W_S",ATy(qTy,qTy), 17761 Var("v114",PTy(FTy 5,FTy 5))),qVar"state")), 17762 (Call 17763 ("SDC1",CTy"COP1",Var("v115",PTy(FTy 5,PTy(F16,FTy 5)))), 17764 Apply 17765 (Call 17766 ("dfn'SDC1",ATy(qTy,qTy), 17767 Var("v115",PTy(FTy 5,PTy(F16,FTy 5)))),qVar"state")), 17768 (Call 17769 ("SDXC1",CTy"COP1", 17770 Var("v116",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17771 Apply 17772 (Call 17773 ("dfn'SDXC1",ATy(qTy,qTy), 17774 Var("v116",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17775 (Call("SQRT_D",CTy"COP1",Var("v117",PTy(FTy 5,FTy 5))), 17776 Apply 17777 (Call 17778 ("dfn'SQRT_D",ATy(qTy,qTy), 17779 Var("v117",PTy(FTy 5,FTy 5))),qVar"state")), 17780 (Call("SQRT_S",CTy"COP1",Var("v118",PTy(FTy 5,FTy 5))), 17781 Apply 17782 (Call 17783 ("dfn'SQRT_S",ATy(qTy,qTy), 17784 Var("v118",PTy(FTy 5,FTy 5))),qVar"state")), 17785 (Call 17786 ("SUB_D",CTy"COP1", 17787 Var("v119",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17788 Apply 17789 (Call 17790 ("dfn'SUB_D",ATy(qTy,qTy), 17791 Var("v119",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17792 (Call 17793 ("SUB_S",CTy"COP1", 17794 Var("v120",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17795 Apply 17796 (Call 17797 ("dfn'SUB_S",ATy(qTy,qTy), 17798 Var("v120",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17799 (Call 17800 ("SWC1",CTy"COP1",Var("v121",PTy(FTy 5,PTy(F16,FTy 5)))), 17801 Apply 17802 (Call 17803 ("dfn'SWC1",ATy(qTy,qTy), 17804 Var("v121",PTy(FTy 5,PTy(F16,FTy 5)))),qVar"state")), 17805 (Call 17806 ("SWXC1",CTy"COP1", 17807 Var("v122",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17808 Apply 17809 (Call 17810 ("dfn'SWXC1",ATy(qTy,qTy), 17811 Var("v122",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 17812 (Call("TRUNC_L_D",CTy"COP1",Var("v123",PTy(FTy 5,FTy 5))), 17813 Apply 17814 (Call 17815 ("dfn'TRUNC_L_D",ATy(qTy,qTy), 17816 Var("v123",PTy(FTy 5,FTy 5))),qVar"state")), 17817 (Call("TRUNC_L_S",CTy"COP1",Var("v124",PTy(FTy 5,FTy 5))), 17818 Apply 17819 (Call 17820 ("dfn'TRUNC_L_S",ATy(qTy,qTy), 17821 Var("v124",PTy(FTy 5,FTy 5))),qVar"state")), 17822 (Call("TRUNC_W_D",CTy"COP1",Var("v125",PTy(FTy 5,FTy 5))), 17823 Apply 17824 (Call 17825 ("dfn'TRUNC_W_D",ATy(qTy,qTy), 17826 Var("v125",PTy(FTy 5,FTy 5))),qVar"state")), 17827 (Call("TRUNC_W_S",CTy"COP1",Var("v126",PTy(FTy 5,FTy 5))), 17828 Apply 17829 (Call 17830 ("dfn'TRUNC_W_S",ATy(qTy,qTy), 17831 Var("v126",PTy(FTy 5,FTy 5))),qVar"state"))])), 17832 (Call("COP2",CTy"instruction",Var("v127",CTy"COP2")), 17833 CS(Var("v127",CTy"COP2"), 17834 [(Call("CHERICOP2",CTy"COP2",Var("v128",CTy"CHERICOP2")), 17835 CS(Var("v128",CTy"CHERICOP2"), 17836 [(Const("CReturn",CTy"CHERICOP2"), 17837 Apply(Const("dfn'CReturn",ATy(qTy,qTy)),qVar"state")), 17838 (Const("DumpCapReg",CTy"CHERICOP2"),qVar"state"), 17839 (Const("UnknownCapInstruction",CTy"CHERICOP2"), 17840 Apply 17841 (Const("dfn'UnknownCapInstruction",ATy(qTy,qTy)), 17842 qVar"state")), 17843 (Call 17844 ("CBTS",CTy"CHERICOP2",Var("v156",PTy(FTy 5,F16))), 17845 Apply 17846 (Call 17847 ("dfn'CBTS",ATy(qTy,qTy), 17848 Var("v156",PTy(FTy 5,F16))),qVar"state")), 17849 (Call 17850 ("CBTU",CTy"CHERICOP2",Var("v157",PTy(FTy 5,F16))), 17851 Apply 17852 (Call 17853 ("dfn'CBTU",ATy(qTy,qTy), 17854 Var("v157",PTy(FTy 5,F16))),qVar"state")), 17855 (Call 17856 ("CCall0",CTy"CHERICOP2", 17857 Var("v158",PTy(FTy 5,FTy 5))), 17858 Apply 17859 (Call 17860 ("dfn'CCall0",ATy(qTy,qTy), 17861 Var("v158",PTy(FTy 5,FTy 5))),qVar"state")), 17862 (Call 17863 ("CCall1",CTy"CHERICOP2", 17864 Var("v159",PTy(FTy 5,FTy 5))), 17865 Apply 17866 (Call 17867 ("dfn'CCall1",ATy(qTy,qTy), 17868 Var("v159",PTy(FTy 5,FTy 5))),qVar"state")), 17869 (Call 17870 ("CJALR",CTy"CHERICOP2", 17871 Var("v160",PTy(FTy 5,FTy 5))), 17872 Apply 17873 (Call 17874 ("dfn'CJALR",ATy(qTy,qTy), 17875 Var("v160",PTy(FTy 5,FTy 5))),qVar"state")), 17876 (Call("CJR",CTy"CHERICOP2",Var("v161",FTy 5)), 17877 Apply 17878 (Call("dfn'CJR",ATy(qTy,qTy),Var("v161",FTy 5)), 17879 qVar"state")), 17880 (Call 17881 ("CLLC",CTy"CHERICOP2",Var("v162",PTy(FTy 5,FTy 5))), 17882 Apply 17883 (Call 17884 ("dfn'CLLC",ATy(qTy,qTy), 17885 Var("v162",PTy(FTy 5,FTy 5))),qVar"state")), 17886 (Call 17887 ("CLLx",CTy"CHERICOP2", 17888 Var("v163",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 17889 Apply 17890 (Call 17891 ("dfn'CLLx",ATy(qTy,qTy), 17892 Var("v163",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 17893 qVar"state")), 17894 (Call 17895 ("CMOVN",CTy"CHERICOP2", 17896 Var("v164",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17897 Apply 17898 (Call 17899 ("dfn'CMOVN",ATy(qTy,qTy), 17900 Var("v164",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17901 qVar"state")), 17902 (Call 17903 ("CMOVZ",CTy"CHERICOP2", 17904 Var("v165",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17905 Apply 17906 (Call 17907 ("dfn'CMOVZ",ATy(qTy,qTy), 17908 Var("v165",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17909 qVar"state")), 17910 (Call 17911 ("CPtrCmp",CTy"CHERICOP2", 17912 Var("v166",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 17913 Apply 17914 (Call 17915 ("dfn'CPtrCmp",ATy(qTy,qTy), 17916 Var("v166", 17917 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 17918 qVar"state")), 17919 (Call 17920 ("CSCC",CTy"CHERICOP2", 17921 Var("v167",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17922 Apply 17923 (Call 17924 ("dfn'CSCC",ATy(qTy,qTy), 17925 Var("v167",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17926 qVar"state")), 17927 (Call 17928 ("CSCx",CTy"CHERICOP2", 17929 Var("v168",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 2))))), 17930 Apply 17931 (Call 17932 ("dfn'CSCx",ATy(qTy,qTy), 17933 Var("v168", 17934 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 2))))), 17935 qVar"state")), 17936 (Call 17937 ("CSeal",CTy"CHERICOP2", 17938 Var("v169",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17939 Apply 17940 (Call 17941 ("dfn'CSeal",ATy(qTy,qTy), 17942 Var("v169",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17943 qVar"state")), 17944 (Call 17945 ("CSub",CTy"CHERICOP2", 17946 Var("v170",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17947 Apply 17948 (Call 17949 ("dfn'CSub",ATy(qTy,qTy), 17950 Var("v170",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17951 qVar"state")), 17952 (Call 17953 ("CUnseal",CTy"CHERICOP2", 17954 Var("v171",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17955 Apply 17956 (Call 17957 ("dfn'CUnseal",ATy(qTy,qTy), 17958 Var("v171",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 17959 qVar"state")), 17960 (Call("CCheck",CTy"CHERICOP2",Var("v129",CTy"CCheck")), 17961 CS(Var("v129",CTy"CCheck"), 17962 [(Call 17963 ("CCheckPerm",CTy"CCheck", 17964 Var("v130",PTy(FTy 5,FTy 5))), 17965 Apply 17966 (Call 17967 ("dfn'CCheckPerm",ATy(qTy,qTy), 17968 Var("v130",PTy(FTy 5,FTy 5))),qVar"state")), 17969 (Call 17970 ("CCheckType",CTy"CCheck", 17971 Var("v131",PTy(FTy 5,FTy 5))), 17972 Apply 17973 (Call 17974 ("dfn'CCheckType",ATy(qTy,qTy), 17975 Var("v131",PTy(FTy 5,FTy 5))),qVar"state"))])), 17976 (Call("CGet",CTy"CHERICOP2",Var("v132",CTy"CGet")), 17977 CS(Var("v132",CTy"CGet"), 17978 [(Call 17979 ("CGetBase",CTy"CGet", 17980 Var("v133",PTy(FTy 5,FTy 5))), 17981 Apply 17982 (Call 17983 ("dfn'CGetBase",ATy(qTy,qTy), 17984 Var("v133",PTy(FTy 5,FTy 5))),qVar"state")), 17985 (Call("CGetCause",CTy"CGet",Var("v134",FTy 5)), 17986 Apply 17987 (Call 17988 ("dfn'CGetCause",ATy(qTy,qTy), 17989 Var("v134",FTy 5)),qVar"state")), 17990 (Call 17991 ("CGetLen",CTy"CGet", 17992 Var("v135",PTy(FTy 5,FTy 5))), 17993 Apply 17994 (Call 17995 ("dfn'CGetLen",ATy(qTy,qTy), 17996 Var("v135",PTy(FTy 5,FTy 5))),qVar"state")), 17997 (Call 17998 ("CGetOffset",CTy"CGet", 17999 Var("v136",PTy(FTy 5,FTy 5))), 18000 Apply 18001 (Call 18002 ("dfn'CGetOffset",ATy(qTy,qTy), 18003 Var("v136",PTy(FTy 5,FTy 5))),qVar"state")), 18004 (Call("CGetPCC",CTy"CGet",Var("v137",FTy 5)), 18005 Apply 18006 (Call 18007 ("dfn'CGetPCC",ATy(qTy,qTy), 18008 Var("v137",FTy 5)),qVar"state")), 18009 (Call 18010 ("CGetPCCSetOffset",CTy"CGet", 18011 Var("v138",PTy(FTy 5,FTy 5))), 18012 Apply 18013 (Call 18014 ("dfn'CGetPCCSetOffset",ATy(qTy,qTy), 18015 Var("v138",PTy(FTy 5,FTy 5))),qVar"state")), 18016 (Call 18017 ("CGetPerm",CTy"CGet", 18018 Var("v139",PTy(FTy 5,FTy 5))), 18019 Apply 18020 (Call 18021 ("dfn'CGetPerm",ATy(qTy,qTy), 18022 Var("v139",PTy(FTy 5,FTy 5))),qVar"state")), 18023 (Call 18024 ("CGetSealed",CTy"CGet", 18025 Var("v140",PTy(FTy 5,FTy 5))), 18026 Apply 18027 (Call 18028 ("dfn'CGetSealed",ATy(qTy,qTy), 18029 Var("v140",PTy(FTy 5,FTy 5))),qVar"state")), 18030 (Call 18031 ("CGetTag",CTy"CGet", 18032 Var("v141",PTy(FTy 5,FTy 5))), 18033 Apply 18034 (Call 18035 ("dfn'CGetTag",ATy(qTy,qTy), 18036 Var("v141",PTy(FTy 5,FTy 5))),qVar"state")), 18037 (Call 18038 ("CGetType",CTy"CGet", 18039 Var("v142",PTy(FTy 5,FTy 5))), 18040 Apply 18041 (Call 18042 ("dfn'CGetType",ATy(qTy,qTy), 18043 Var("v142",PTy(FTy 5,FTy 5))),qVar"state")), 18044 (Call 18045 ("CToPtr",CTy"CGet", 18046 Var("v143",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18047 Apply 18048 (Call 18049 ("dfn'CToPtr",ATy(qTy,qTy), 18050 Var("v143",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18051 qVar"state"))])), 18052 (Call("CSet",CTy"CHERICOP2",Var("v144",CTy"CSet")), 18053 CS(Var("v144",CTy"CSet"), 18054 [(Call 18055 ("CAndPerm",CTy"CSet", 18056 Var("v145",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18057 Apply 18058 (Call 18059 ("dfn'CAndPerm",ATy(qTy,qTy), 18060 Var("v145",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18061 qVar"state")), 18062 (Call 18063 ("CClearRegs",CTy"CSet", 18064 Var("v146",PTy(FTy 5,F16))), 18065 Apply 18066 (Call 18067 ("dfn'CClearRegs",ATy(qTy,qTy), 18068 Var("v146",PTy(FTy 5,F16))),qVar"state")), 18069 (Call 18070 ("CClearTag",CTy"CSet", 18071 Var("v147",PTy(FTy 5,FTy 5))), 18072 Apply 18073 (Call 18074 ("dfn'CClearTag",ATy(qTy,qTy), 18075 Var("v147",PTy(FTy 5,FTy 5))),qVar"state")), 18076 (Call 18077 ("CFromPtr",CTy"CSet", 18078 Var("v148",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18079 Apply 18080 (Call 18081 ("dfn'CFromPtr",ATy(qTy,qTy), 18082 Var("v148",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18083 qVar"state")), 18084 (Call 18085 ("CIncOffset",CTy"CSet", 18086 Var("v149",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18087 Apply 18088 (Call 18089 ("dfn'CIncOffset",ATy(qTy,qTy), 18090 Var("v149",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18091 qVar"state")), 18092 (Call 18093 ("CIncOffsetImmediate",CTy"CSet", 18094 Var("v150",PTy(FTy 5,PTy(FTy 5,FTy 11)))), 18095 Apply 18096 (Call 18097 ("dfn'CIncOffsetImmediate",ATy(qTy,qTy), 18098 Var("v150",PTy(FTy 5,PTy(FTy 5,FTy 11)))), 18099 qVar"state")), 18100 (Call 18101 ("CSetBounds",CTy"CSet", 18102 Var("v151",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18103 Apply 18104 (Call 18105 ("dfn'CSetBounds",ATy(qTy,qTy), 18106 Var("v151",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18107 qVar"state")), 18108 (Call 18109 ("CSetBoundsExact",CTy"CSet", 18110 Var("v152",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18111 Apply 18112 (Call 18113 ("dfn'CSetBoundsExact",ATy(qTy,qTy), 18114 Var("v152",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18115 qVar"state")), 18116 (Call 18117 ("CSetBoundsImmediate",CTy"CSet", 18118 Var("v153",PTy(FTy 5,PTy(FTy 5,FTy 11)))), 18119 Apply 18120 (Call 18121 ("dfn'CSetBoundsImmediate",ATy(qTy,qTy), 18122 Var("v153",PTy(FTy 5,PTy(FTy 5,FTy 11)))), 18123 qVar"state")), 18124 (Call("CSetCause",CTy"CSet",Var("v154",FTy 5)), 18125 Apply 18126 (Call 18127 ("dfn'CSetCause",ATy(qTy,qTy), 18128 Var("v154",FTy 5)),qVar"state")), 18129 (Call 18130 ("CSetOffset",CTy"CSet", 18131 Var("v155",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18132 Apply 18133 (Call 18134 ("dfn'CSetOffset",ATy(qTy,qTy), 18135 Var("v155",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18136 qVar"state"))]))]))])), 18137 (Call("CP",CTy"instruction",Var("v172",CTy"CP")), 18138 CS(Var("v172",CTy"CP"), 18139 [(Call 18140 ("DMFC0",CTy"CP",Var("v173",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 18141 Apply 18142 (Call 18143 ("dfn'DMFC0",ATy(qTy,qTy), 18144 Var("v173",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 18145 (Call 18146 ("DMTC0",CTy"CP",Var("v174",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 18147 Apply 18148 (Call 18149 ("dfn'DMTC0",ATy(qTy,qTy), 18150 Var("v174",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 18151 (Call 18152 ("MFC0",CTy"CP",Var("v175",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 18153 Apply 18154 (Call 18155 ("dfn'MFC0",ATy(qTy,qTy), 18156 Var("v175",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 18157 (Call 18158 ("MTC0",CTy"CP",Var("v176",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 18159 Apply 18160 (Call 18161 ("dfn'MTC0",ATy(qTy,qTy), 18162 Var("v176",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state"))])), 18163 (Call("LDC2",CTy"instruction",Var("v177",CTy"LDC2")), 18164 CS(Var("v177",CTy"LDC2"), 18165 [(Call("CHERILDC2",CTy"LDC2",Var("v178",CTy"CHERILDC2")), 18166 CS(Var("v178",CTy"CHERILDC2"), 18167 [(Call 18168 ("CLC",CTy"CHERILDC2", 18169 Var("v179",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11))))), 18170 Apply 18171 (Call 18172 ("dfn'CLC",ATy(qTy,qTy), 18173 Var("v179", 18174 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11))))), 18175 qVar"state"))]))])), 18176 (Call("LWC2",CTy"instruction",Var("v180",CTy"LWC2")), 18177 CS(Var("v180",CTy"LWC2"), 18178 [(Call("CHERILWC2",CTy"LWC2",Var("v181",CTy"CHERILWC2")), 18179 CS(Var("v181",CTy"CHERILWC2"), 18180 [(Call 18181 ("CLoad",CTy"CHERILWC2", 18182 Var("v182", 18183 PTy(FTy 5, 18184 PTy(FTy 5,PTy(FTy 5,PTy(F8,PTy(F1,FTy 2))))))), 18185 Apply 18186 (Call 18187 ("dfn'CLoad",ATy(qTy,qTy), 18188 Var("v182", 18189 PTy(FTy 5, 18190 PTy(FTy 5, 18191 PTy(FTy 5,PTy(F8,PTy(F1,FTy 2))))))), 18192 qVar"state"))]))])), 18193 (Call("Load",CTy"instruction",Var("v183",CTy"Load")), 18194 CS(Var("v183",CTy"Load"), 18195 [(Call("LB",CTy"Load",Var("v184",PTy(FTy 5,PTy(FTy 5,F16)))), 18196 Apply 18197 (Call 18198 ("dfn'LB",ATy(qTy,qTy), 18199 Var("v184",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18200 (Call 18201 ("LBU",CTy"Load",Var("v185",PTy(FTy 5,PTy(FTy 5,F16)))), 18202 Apply 18203 (Call 18204 ("dfn'LBU",ATy(qTy,qTy), 18205 Var("v185",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18206 (Call("LD",CTy"Load",Var("v186",PTy(FTy 5,PTy(FTy 5,F16)))), 18207 Apply 18208 (Call 18209 ("dfn'LD",ATy(qTy,qTy), 18210 Var("v186",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18211 (Call 18212 ("LDL",CTy"Load",Var("v187",PTy(FTy 5,PTy(FTy 5,F16)))), 18213 Apply 18214 (Call 18215 ("dfn'LDL",ATy(qTy,qTy), 18216 Var("v187",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18217 (Call 18218 ("LDR",CTy"Load",Var("v188",PTy(FTy 5,PTy(FTy 5,F16)))), 18219 Apply 18220 (Call 18221 ("dfn'LDR",ATy(qTy,qTy), 18222 Var("v188",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18223 (Call("LH",CTy"Load",Var("v189",PTy(FTy 5,PTy(FTy 5,F16)))), 18224 Apply 18225 (Call 18226 ("dfn'LH",ATy(qTy,qTy), 18227 Var("v189",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18228 (Call 18229 ("LHU",CTy"Load",Var("v190",PTy(FTy 5,PTy(FTy 5,F16)))), 18230 Apply 18231 (Call 18232 ("dfn'LHU",ATy(qTy,qTy), 18233 Var("v190",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18234 (Call("LL",CTy"Load",Var("v191",PTy(FTy 5,PTy(FTy 5,F16)))), 18235 Apply 18236 (Call 18237 ("dfn'LL",ATy(qTy,qTy), 18238 Var("v191",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18239 (Call 18240 ("LLD",CTy"Load",Var("v192",PTy(FTy 5,PTy(FTy 5,F16)))), 18241 Apply 18242 (Call 18243 ("dfn'LLD",ATy(qTy,qTy), 18244 Var("v192",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18245 (Call("LW",CTy"Load",Var("v193",PTy(FTy 5,PTy(FTy 5,F16)))), 18246 Apply 18247 (Call 18248 ("dfn'LW",ATy(qTy,qTy), 18249 Var("v193",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18250 (Call 18251 ("LWL",CTy"Load",Var("v194",PTy(FTy 5,PTy(FTy 5,F16)))), 18252 Apply 18253 (Call 18254 ("dfn'LWL",ATy(qTy,qTy), 18255 Var("v194",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18256 (Call 18257 ("LWR",CTy"Load",Var("v195",PTy(FTy 5,PTy(FTy 5,F16)))), 18258 Apply 18259 (Call 18260 ("dfn'LWR",ATy(qTy,qTy), 18261 Var("v195",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18262 (Call 18263 ("LWU",CTy"Load",Var("v196",PTy(FTy 5,PTy(FTy 5,F16)))), 18264 Apply 18265 (Call 18266 ("dfn'LWU",ATy(qTy,qTy), 18267 Var("v196",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state"))])), 18268 (Call("MultDiv",CTy"instruction",Var("v197",CTy"MultDiv")), 18269 CS(Var("v197",CTy"MultDiv"), 18270 [(Call("DDIV",CTy"MultDiv",Var("v198",PTy(FTy 5,FTy 5))), 18271 Apply 18272 (Call 18273 ("dfn'DDIV",ATy(qTy,qTy),Var("v198",PTy(FTy 5,FTy 5))), 18274 qVar"state")), 18275 (Call("DDIVU",CTy"MultDiv",Var("v199",PTy(FTy 5,FTy 5))), 18276 Apply 18277 (Call 18278 ("dfn'DDIVU",ATy(qTy,qTy), 18279 Var("v199",PTy(FTy 5,FTy 5))),qVar"state")), 18280 (Call("DIV",CTy"MultDiv",Var("v200",PTy(FTy 5,FTy 5))), 18281 Apply 18282 (Call 18283 ("dfn'DIV",ATy(qTy,qTy),Var("v200",PTy(FTy 5,FTy 5))), 18284 qVar"state")), 18285 (Call("DIVU",CTy"MultDiv",Var("v201",PTy(FTy 5,FTy 5))), 18286 Apply 18287 (Call 18288 ("dfn'DIVU",ATy(qTy,qTy),Var("v201",PTy(FTy 5,FTy 5))), 18289 qVar"state")), 18290 (Call("DMULT",CTy"MultDiv",Var("v202",PTy(FTy 5,FTy 5))), 18291 Apply 18292 (Call 18293 ("dfn'DMULT",ATy(qTy,qTy), 18294 Var("v202",PTy(FTy 5,FTy 5))),qVar"state")), 18295 (Call("DMULTU",CTy"MultDiv",Var("v203",PTy(FTy 5,FTy 5))), 18296 Apply 18297 (Call 18298 ("dfn'DMULTU",ATy(qTy,qTy), 18299 Var("v203",PTy(FTy 5,FTy 5))),qVar"state")), 18300 (Call("MADD",CTy"MultDiv",Var("v204",PTy(FTy 5,FTy 5))), 18301 Apply 18302 (Call 18303 ("dfn'MADD",ATy(qTy,qTy),Var("v204",PTy(FTy 5,FTy 5))), 18304 qVar"state")), 18305 (Call("MADDU",CTy"MultDiv",Var("v205",PTy(FTy 5,FTy 5))), 18306 Apply 18307 (Call 18308 ("dfn'MADDU",ATy(qTy,qTy), 18309 Var("v205",PTy(FTy 5,FTy 5))),qVar"state")), 18310 (Call("MFHI",CTy"MultDiv",Var("v206",FTy 5)), 18311 Apply 18312 (Call("dfn'MFHI",ATy(qTy,qTy),Var("v206",FTy 5)), 18313 qVar"state")), 18314 (Call("MFLO",CTy"MultDiv",Var("v207",FTy 5)), 18315 Apply 18316 (Call("dfn'MFLO",ATy(qTy,qTy),Var("v207",FTy 5)), 18317 qVar"state")), 18318 (Call("MSUB",CTy"MultDiv",Var("v208",PTy(FTy 5,FTy 5))), 18319 Apply 18320 (Call 18321 ("dfn'MSUB",ATy(qTy,qTy),Var("v208",PTy(FTy 5,FTy 5))), 18322 qVar"state")), 18323 (Call("MSUBU",CTy"MultDiv",Var("v209",PTy(FTy 5,FTy 5))), 18324 Apply 18325 (Call 18326 ("dfn'MSUBU",ATy(qTy,qTy), 18327 Var("v209",PTy(FTy 5,FTy 5))),qVar"state")), 18328 (Call("MTHI",CTy"MultDiv",Var("v210",FTy 5)), 18329 Apply 18330 (Call("dfn'MTHI",ATy(qTy,qTy),Var("v210",FTy 5)), 18331 qVar"state")), 18332 (Call("MTLO",CTy"MultDiv",Var("v211",FTy 5)), 18333 Apply 18334 (Call("dfn'MTLO",ATy(qTy,qTy),Var("v211",FTy 5)), 18335 qVar"state")), 18336 (Call 18337 ("MUL",CTy"MultDiv", 18338 Var("v212",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18339 Apply 18340 (Call 18341 ("dfn'MUL",ATy(qTy,qTy), 18342 Var("v212",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18343 (Call("MULT",CTy"MultDiv",Var("v213",PTy(FTy 5,FTy 5))), 18344 Apply 18345 (Call 18346 ("dfn'MULT",ATy(qTy,qTy),Var("v213",PTy(FTy 5,FTy 5))), 18347 qVar"state")), 18348 (Call("MULTU",CTy"MultDiv",Var("v214",PTy(FTy 5,FTy 5))), 18349 Apply 18350 (Call 18351 ("dfn'MULTU",ATy(qTy,qTy), 18352 Var("v214",PTy(FTy 5,FTy 5))),qVar"state"))])), 18353 (Call("SDC2",CTy"instruction",Var("v215",CTy"SDC2")), 18354 CS(Var("v215",CTy"SDC2"), 18355 [(Call("CHERISDC2",CTy"SDC2",Var("v216",CTy"CHERISDC2")), 18356 CS(Var("v216",CTy"CHERISDC2"), 18357 [(Call 18358 ("CSC",CTy"CHERISDC2", 18359 Var("v217",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11))))), 18360 Apply 18361 (Call 18362 ("dfn'CSC",ATy(qTy,qTy), 18363 Var("v217", 18364 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11))))), 18365 qVar"state"))]))])), 18366 (Call("SWC2",CTy"instruction",Var("v218",CTy"SWC2")), 18367 CS(Var("v218",CTy"SWC2"), 18368 [(Call("CHERISWC2",CTy"SWC2",Var("v219",CTy"CHERISWC2")), 18369 CS(Var("v219",CTy"CHERISWC2"), 18370 [(Call 18371 ("CStore",CTy"CHERISWC2", 18372 Var("v220", 18373 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(F8,FTy 2)))))), 18374 Apply 18375 (Call 18376 ("dfn'CStore",ATy(qTy,qTy), 18377 Var("v220", 18378 PTy(FTy 5, 18379 PTy(FTy 5,PTy(FTy 5,PTy(F8,FTy 2)))))), 18380 qVar"state"))]))])), 18381 (Call("Shift",CTy"instruction",Var("v221",CTy"Shift")), 18382 CS(Var("v221",CTy"Shift"), 18383 [(Call 18384 ("DSLL",CTy"Shift", 18385 Var("v222",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18386 Apply 18387 (Call 18388 ("dfn'DSLL",ATy(qTy,qTy), 18389 Var("v222",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18390 (Call 18391 ("DSLL32",CTy"Shift", 18392 Var("v223",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18393 Apply 18394 (Call 18395 ("dfn'DSLL32",ATy(qTy,qTy), 18396 Var("v223",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18397 (Call 18398 ("DSLLV",CTy"Shift", 18399 Var("v224",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18400 Apply 18401 (Call 18402 ("dfn'DSLLV",ATy(qTy,qTy), 18403 Var("v224",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18404 (Call 18405 ("DSRA",CTy"Shift", 18406 Var("v225",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18407 Apply 18408 (Call 18409 ("dfn'DSRA",ATy(qTy,qTy), 18410 Var("v225",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18411 (Call 18412 ("DSRA32",CTy"Shift", 18413 Var("v226",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18414 Apply 18415 (Call 18416 ("dfn'DSRA32",ATy(qTy,qTy), 18417 Var("v226",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18418 (Call 18419 ("DSRAV",CTy"Shift", 18420 Var("v227",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18421 Apply 18422 (Call 18423 ("dfn'DSRAV",ATy(qTy,qTy), 18424 Var("v227",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18425 (Call 18426 ("DSRL",CTy"Shift", 18427 Var("v228",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18428 Apply 18429 (Call 18430 ("dfn'DSRL",ATy(qTy,qTy), 18431 Var("v228",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18432 (Call 18433 ("DSRL32",CTy"Shift", 18434 Var("v229",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18435 Apply 18436 (Call 18437 ("dfn'DSRL32",ATy(qTy,qTy), 18438 Var("v229",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18439 (Call 18440 ("DSRLV",CTy"Shift", 18441 Var("v230",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18442 Apply 18443 (Call 18444 ("dfn'DSRLV",ATy(qTy,qTy), 18445 Var("v230",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18446 (Call 18447 ("SLL",CTy"Shift", 18448 Var("v231",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18449 Apply 18450 (Call 18451 ("dfn'SLL",ATy(qTy,qTy), 18452 Var("v231",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18453 (Call 18454 ("SLLV",CTy"Shift", 18455 Var("v232",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18456 Apply 18457 (Call 18458 ("dfn'SLLV",ATy(qTy,qTy), 18459 Var("v232",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18460 (Call 18461 ("SRA",CTy"Shift", 18462 Var("v233",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18463 Apply 18464 (Call 18465 ("dfn'SRA",ATy(qTy,qTy), 18466 Var("v233",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18467 (Call 18468 ("SRAV",CTy"Shift", 18469 Var("v234",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18470 Apply 18471 (Call 18472 ("dfn'SRAV",ATy(qTy,qTy), 18473 Var("v234",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18474 (Call 18475 ("SRL",CTy"Shift", 18476 Var("v235",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18477 Apply 18478 (Call 18479 ("dfn'SRL",ATy(qTy,qTy), 18480 Var("v235",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 18481 (Call 18482 ("SRLV",CTy"Shift", 18483 Var("v236",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 18484 Apply 18485 (Call 18486 ("dfn'SRLV",ATy(qTy,qTy), 18487 Var("v236",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state"))])), 18488 (Call("Store",CTy"instruction",Var("v237",CTy"Store")), 18489 CS(Var("v237",CTy"Store"), 18490 [(Call 18491 ("SB",CTy"Store",Var("v238",PTy(FTy 5,PTy(FTy 5,F16)))), 18492 Apply 18493 (Call 18494 ("dfn'SB",ATy(qTy,qTy), 18495 Var("v238",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18496 (Call 18497 ("SC",CTy"Store",Var("v239",PTy(FTy 5,PTy(FTy 5,F16)))), 18498 Apply 18499 (Call 18500 ("dfn'SC",ATy(qTy,qTy), 18501 Var("v239",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18502 (Call 18503 ("SCD",CTy"Store",Var("v240",PTy(FTy 5,PTy(FTy 5,F16)))), 18504 Apply 18505 (Call 18506 ("dfn'SCD",ATy(qTy,qTy), 18507 Var("v240",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18508 (Call 18509 ("SD",CTy"Store",Var("v241",PTy(FTy 5,PTy(FTy 5,F16)))), 18510 Apply 18511 (Call 18512 ("dfn'SD",ATy(qTy,qTy), 18513 Var("v241",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18514 (Call 18515 ("SDL",CTy"Store",Var("v242",PTy(FTy 5,PTy(FTy 5,F16)))), 18516 Apply 18517 (Call 18518 ("dfn'SDL",ATy(qTy,qTy), 18519 Var("v242",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18520 (Call 18521 ("SDR",CTy"Store",Var("v243",PTy(FTy 5,PTy(FTy 5,F16)))), 18522 Apply 18523 (Call 18524 ("dfn'SDR",ATy(qTy,qTy), 18525 Var("v243",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18526 (Call 18527 ("SH",CTy"Store",Var("v244",PTy(FTy 5,PTy(FTy 5,F16)))), 18528 Apply 18529 (Call 18530 ("dfn'SH",ATy(qTy,qTy), 18531 Var("v244",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18532 (Call 18533 ("SW",CTy"Store",Var("v245",PTy(FTy 5,PTy(FTy 5,F16)))), 18534 Apply 18535 (Call 18536 ("dfn'SW",ATy(qTy,qTy), 18537 Var("v245",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18538 (Call 18539 ("SWL",CTy"Store",Var("v246",PTy(FTy 5,PTy(FTy 5,F16)))), 18540 Apply 18541 (Call 18542 ("dfn'SWL",ATy(qTy,qTy), 18543 Var("v246",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), 18544 (Call 18545 ("SWR",CTy"Store",Var("v247",PTy(FTy 5,PTy(FTy 5,F16)))), 18546 Apply 18547 (Call 18548 ("dfn'SWR",ATy(qTy,qTy), 18549 Var("v247",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state"))])), 18550 (Call("Trap",CTy"instruction",Var("v248",CTy"Trap")), 18551 CS(Var("v248",CTy"Trap"), 18552 [(Call("TEQ",CTy"Trap",Var("v249",PTy(FTy 5,FTy 5))), 18553 Apply 18554 (Call 18555 ("dfn'TEQ",ATy(qTy,qTy),Var("v249",PTy(FTy 5,FTy 5))), 18556 qVar"state")), 18557 (Call("TEQI",CTy"Trap",Var("v250",PTy(FTy 5,F16))), 18558 Apply 18559 (Call 18560 ("dfn'TEQI",ATy(qTy,qTy),Var("v250",PTy(FTy 5,F16))), 18561 qVar"state")), 18562 (Call("TGE",CTy"Trap",Var("v251",PTy(FTy 5,FTy 5))), 18563 Apply 18564 (Call 18565 ("dfn'TGE",ATy(qTy,qTy),Var("v251",PTy(FTy 5,FTy 5))), 18566 qVar"state")), 18567 (Call("TGEI",CTy"Trap",Var("v252",PTy(FTy 5,F16))), 18568 Apply 18569 (Call 18570 ("dfn'TGEI",ATy(qTy,qTy),Var("v252",PTy(FTy 5,F16))), 18571 qVar"state")), 18572 (Call("TGEIU",CTy"Trap",Var("v253",PTy(FTy 5,F16))), 18573 Apply 18574 (Call 18575 ("dfn'TGEIU",ATy(qTy,qTy),Var("v253",PTy(FTy 5,F16))), 18576 qVar"state")), 18577 (Call("TGEU",CTy"Trap",Var("v254",PTy(FTy 5,FTy 5))), 18578 Apply 18579 (Call 18580 ("dfn'TGEU",ATy(qTy,qTy),Var("v254",PTy(FTy 5,FTy 5))), 18581 qVar"state")), 18582 (Call("TLT",CTy"Trap",Var("v255",PTy(FTy 5,FTy 5))), 18583 Apply 18584 (Call 18585 ("dfn'TLT",ATy(qTy,qTy),Var("v255",PTy(FTy 5,FTy 5))), 18586 qVar"state")), 18587 (Call("TLTI",CTy"Trap",Var("v256",PTy(FTy 5,F16))), 18588 Apply 18589 (Call 18590 ("dfn'TLTI",ATy(qTy,qTy),Var("v256",PTy(FTy 5,F16))), 18591 qVar"state")), 18592 (Call("TLTIU",CTy"Trap",Var("v257",PTy(FTy 5,F16))), 18593 Apply 18594 (Call 18595 ("dfn'TLTIU",ATy(qTy,qTy),Var("v257",PTy(FTy 5,F16))), 18596 qVar"state")), 18597 (Call("TLTU",CTy"Trap",Var("v258",PTy(FTy 5,FTy 5))), 18598 Apply 18599 (Call 18600 ("dfn'TLTU",ATy(qTy,qTy),Var("v258",PTy(FTy 5,FTy 5))), 18601 qVar"state")), 18602 (Call("TNE",CTy"Trap",Var("v259",PTy(FTy 5,FTy 5))), 18603 Apply 18604 (Call 18605 ("dfn'TNE",ATy(qTy,qTy),Var("v259",PTy(FTy 5,FTy 5))), 18606 qVar"state")), 18607 (Call("TNEI",CTy"Trap",Var("v260",PTy(FTy 5,F16))), 18608 Apply 18609 (Call 18610 ("dfn'TNEI",ATy(qTy,qTy),Var("v260",PTy(FTy 5,F16))), 18611 qVar"state"))]))]))) 18612; 18613val COP1Decode_def = Def 18614 ("COP1Decode",Var("v",FTy 26), 18615 Call 18616 ("COP1",CTy"instruction", 18617 Let(TP[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22",bVar"b'21", 18618 bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17",bVar"b'16", 18619 bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12",bVar"b'11", 18620 bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6",bVar"b'5", 18621 bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], 18622 BL(26,Var("v",FTy 26)), 18623 ITB([(bVar"b'21", 18624 ITB([(bVar"b'3", 18625 ITB([(bVar"b'2", 18626 ITE(Bop(And,bVar"b'25", 18627 Bop(And,Mop(Not,bVar"b'24"), 18628 Bop(And,Mop(Not,bVar"b'23"), 18629 Bop(And,Mop(Not,bVar"b'22"), 18630 Bop(And, 18631 Mop(Not,bVar"b'20"), 18632 Bop(And, 18633 Mop(Not,bVar"b'19"), 18634 Bop(And, 18635 Mop(Not, 18636 bVar"b'18"), 18637 Bop(And, 18638 Mop(Not, 18639 bVar"b'17"), 18640 Bop(And, 18641 Mop(Not, 18642 bVar"b'16"), 18643 Bop(And, 18644 Mop(Not, 18645 bVar"b'5"), 18646 Mop(Not, 18647 bVar"b'4"))))))))))), 18648 ITB([(Bop(And,Mop(Not,bVar"b'1"), 18649 Mop(Not,bVar"b'0")), 18650 Call 18651 ("ROUND_W_D",CTy"COP1", 18652 TP[Mop(Cast(FTy 5), 18653 LL[bVar"b'10",bVar"b'9", 18654 bVar"b'8",bVar"b'7", 18655 bVar"b'6"]), 18656 Mop(Cast(FTy 5), 18657 LL[bVar"b'15",bVar"b'14", 18658 bVar"b'13",bVar"b'12", 18659 bVar"b'11"])])), 18660 (Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"), 18661 Call 18662 ("TRUNC_W_D",CTy"COP1", 18663 TP[Mop(Cast(FTy 5), 18664 LL[bVar"b'10",bVar"b'9", 18665 bVar"b'8",bVar"b'7", 18666 bVar"b'6"]), 18667 Mop(Cast(FTy 5), 18668 LL[bVar"b'15",bVar"b'14", 18669 bVar"b'13",bVar"b'12", 18670 bVar"b'11"])])), 18671 (Bop(And,bVar"b'1",Mop(Not,bVar"b'0")), 18672 Call 18673 ("CEIL_W_D",CTy"COP1", 18674 TP[Mop(Cast(FTy 5), 18675 LL[bVar"b'10",bVar"b'9", 18676 bVar"b'8",bVar"b'7", 18677 bVar"b'6"]), 18678 Mop(Cast(FTy 5), 18679 LL[bVar"b'15",bVar"b'14", 18680 bVar"b'13",bVar"b'12", 18681 bVar"b'11"])])), 18682 (Bop(And,bVar"b'1",bVar"b'0"), 18683 Call 18684 ("FLOOR_W_D",CTy"COP1", 18685 TP[Mop(Cast(FTy 5), 18686 LL[bVar"b'10",bVar"b'9", 18687 bVar"b'8",bVar"b'7", 18688 bVar"b'6"]), 18689 Mop(Cast(FTy 5), 18690 LL[bVar"b'15",bVar"b'14", 18691 bVar"b'13",bVar"b'12", 18692 bVar"b'11"])]))], 18693 Const 18694 ("UnknownFPInstruction",CTy"COP1")), 18695 Const("UnknownFPInstruction",CTy"COP1"))), 18696 (Bop(And,bVar"b'25", 18697 Bop(And,Mop(Not,bVar"b'24"), 18698 Bop(And,Mop(Not,bVar"b'23"), 18699 Bop(And,Mop(Not,bVar"b'22"), 18700 Bop(And,Mop(Not,bVar"b'20"), 18701 Bop(And, 18702 Mop(Not,bVar"b'19"), 18703 Bop(And, 18704 Mop(Not,bVar"b'18"), 18705 Bop(And, 18706 Mop(Not, 18707 bVar"b'17"), 18708 Bop(And, 18709 Mop(Not, 18710 bVar"b'16"), 18711 Bop(And, 18712 Mop(Not, 18713 bVar"b'5"), 18714 Mop(Not, 18715 bVar"b'4"))))))))))), 18716 ITB([(Bop(And,Mop(Not,bVar"b'1"), 18717 Mop(Not,bVar"b'0")), 18718 Call 18719 ("ROUND_L_D",CTy"COP1", 18720 TP[Mop(Cast(FTy 5), 18721 LL[bVar"b'10",bVar"b'9", 18722 bVar"b'8",bVar"b'7", 18723 bVar"b'6"]), 18724 Mop(Cast(FTy 5), 18725 LL[bVar"b'15",bVar"b'14", 18726 bVar"b'13",bVar"b'12", 18727 bVar"b'11"])])), 18728 (Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"), 18729 Call 18730 ("TRUNC_L_D",CTy"COP1", 18731 TP[Mop(Cast(FTy 5), 18732 LL[bVar"b'10",bVar"b'9", 18733 bVar"b'8",bVar"b'7", 18734 bVar"b'6"]), 18735 Mop(Cast(FTy 5), 18736 LL[bVar"b'15",bVar"b'14", 18737 bVar"b'13",bVar"b'12", 18738 bVar"b'11"])])), 18739 (Bop(And,bVar"b'1",Mop(Not,bVar"b'0")), 18740 Call 18741 ("CEIL_L_D",CTy"COP1", 18742 TP[Mop(Cast(FTy 5), 18743 LL[bVar"b'10",bVar"b'9", 18744 bVar"b'8",bVar"b'7", 18745 bVar"b'6"]), 18746 Mop(Cast(FTy 5), 18747 LL[bVar"b'15",bVar"b'14", 18748 bVar"b'13",bVar"b'12", 18749 bVar"b'11"])])), 18750 (Bop(And,bVar"b'1",bVar"b'0"), 18751 Call 18752 ("FLOOR_L_D",CTy"COP1", 18753 TP[Mop(Cast(FTy 5), 18754 LL[bVar"b'10",bVar"b'9", 18755 bVar"b'8",bVar"b'7", 18756 bVar"b'6"]), 18757 Mop(Cast(FTy 5), 18758 LL[bVar"b'15",bVar"b'14", 18759 bVar"b'13",bVar"b'12", 18760 bVar"b'11"])]))], 18761 Const("UnknownFPInstruction",CTy"COP1")))], 18762 Const("UnknownFPInstruction",CTy"COP1"))), 18763 (bVar"b'5", 18764 ITE(Bop(And,bVar"b'25", 18765 Bop(And,Mop(Not,bVar"b'24"), 18766 Mop(Not,bVar"b'22"))), 18767 ITB([(Bop(And,Mop(Not,bVar"b'23"), 18768 Bop(And,Mop(Not,bVar"b'7"), 18769 Bop(And,Mop(Not,bVar"b'6"), 18770 bVar"b'4"))), 18771 Call 18772 ("C_cond_D",CTy"COP1", 18773 TP[Mop(Cast(FTy 5), 18774 LL[bVar"b'15",bVar"b'14", 18775 bVar"b'13",bVar"b'12", 18776 bVar"b'11"]), 18777 Mop(Cast(FTy 5), 18778 LL[bVar"b'20",bVar"b'19", 18779 bVar"b'18",bVar"b'17", 18780 bVar"b'16"]), 18781 Mop(Cast(FTy 3), 18782 LL[bVar"b'2",bVar"b'1",bVar"b'0"]), 18783 Mop(Cast(FTy 3), 18784 LL[bVar"b'10",bVar"b'9", 18785 bVar"b'8"])])), 18786 (Bop(And,Mop(Not,bVar"b'23"), 18787 Bop(And,Mop(Not,bVar"b'20"), 18788 Bop(And,Mop(Not,bVar"b'19"), 18789 Bop(And,Mop(Not,bVar"b'18"), 18790 Bop(And, 18791 Mop(Not,bVar"b'17"), 18792 Bop(And, 18793 Mop(Not,bVar"b'16"), 18794 Bop(And, 18795 Mop(Not, 18796 bVar"b'4"), 18797 Bop(And, 18798 Mop(Not, 18799 bVar"b'2"), 18800 Bop(And, 18801 Mop(Not, 18802 bVar"b'1"), 18803 Mop(Not, 18804 bVar"b'0")))))))))), 18805 Call 18806 ("CVT_S_D",CTy"COP1", 18807 TP[Mop(Cast(FTy 5), 18808 LL[bVar"b'10",bVar"b'9", 18809 bVar"b'8",bVar"b'7",bVar"b'6"]), 18810 Mop(Cast(FTy 5), 18811 LL[bVar"b'15",bVar"b'14", 18812 bVar"b'13",bVar"b'12", 18813 bVar"b'11"])])), 18814 (Bop(And,bVar"b'23", 18815 Bop(And,Mop(Not,bVar"b'20"), 18816 Bop(And,Mop(Not,bVar"b'19"), 18817 Bop(And,Mop(Not,bVar"b'18"), 18818 Bop(And, 18819 Mop(Not,bVar"b'17"), 18820 Bop(And, 18821 Mop(Not,bVar"b'16"), 18822 Bop(And, 18823 Mop(Not, 18824 bVar"b'4"), 18825 Bop(And, 18826 Mop(Not, 18827 bVar"b'2"), 18828 Bop(And, 18829 Mop(Not, 18830 bVar"b'1"), 18831 Mop(Not, 18832 bVar"b'0")))))))))), 18833 Call 18834 ("CVT_S_L",CTy"COP1", 18835 TP[Mop(Cast(FTy 5), 18836 LL[bVar"b'10",bVar"b'9", 18837 bVar"b'8",bVar"b'7",bVar"b'6"]), 18838 Mop(Cast(FTy 5), 18839 LL[bVar"b'15",bVar"b'14", 18840 bVar"b'13",bVar"b'12", 18841 bVar"b'11"])])), 18842 (Bop(And,bVar"b'23", 18843 Bop(And,Mop(Not,bVar"b'20"), 18844 Bop(And,Mop(Not,bVar"b'19"), 18845 Bop(And,Mop(Not,bVar"b'18"), 18846 Bop(And, 18847 Mop(Not,bVar"b'17"), 18848 Bop(And, 18849 Mop(Not,bVar"b'16"), 18850 Bop(And, 18851 Mop(Not, 18852 bVar"b'4"), 18853 Bop(And, 18854 Mop(Not, 18855 bVar"b'2"), 18856 Bop(And, 18857 Mop(Not, 18858 bVar"b'1"), 18859 bVar"b'0"))))))))), 18860 Call 18861 ("CVT_D_L",CTy"COP1", 18862 TP[Mop(Cast(FTy 5), 18863 LL[bVar"b'10",bVar"b'9", 18864 bVar"b'8",bVar"b'7",bVar"b'6"]), 18865 Mop(Cast(FTy 5), 18866 LL[bVar"b'15",bVar"b'14", 18867 bVar"b'13",bVar"b'12", 18868 bVar"b'11"])])), 18869 (Bop(And,Mop(Not,bVar"b'23"), 18870 Bop(And,Mop(Not,bVar"b'20"), 18871 Bop(And,Mop(Not,bVar"b'19"), 18872 Bop(And,Mop(Not,bVar"b'18"), 18873 Bop(And, 18874 Mop(Not,bVar"b'17"), 18875 Bop(And, 18876 Mop(Not,bVar"b'16"), 18877 Bop(And, 18878 Mop(Not, 18879 bVar"b'4"), 18880 Bop(And, 18881 bVar"b'2", 18882 Bop(And, 18883 Mop(Not, 18884 bVar"b'1"), 18885 Mop(Not, 18886 bVar"b'0")))))))))), 18887 Call 18888 ("CVT_W_D",CTy"COP1", 18889 TP[Mop(Cast(FTy 5), 18890 LL[bVar"b'10",bVar"b'9", 18891 bVar"b'8",bVar"b'7",bVar"b'6"]), 18892 Mop(Cast(FTy 5), 18893 LL[bVar"b'15",bVar"b'14", 18894 bVar"b'13",bVar"b'12", 18895 bVar"b'11"])])), 18896 (Bop(And,Mop(Not,bVar"b'23"), 18897 Bop(And,Mop(Not,bVar"b'20"), 18898 Bop(And,Mop(Not,bVar"b'19"), 18899 Bop(And,Mop(Not,bVar"b'18"), 18900 Bop(And, 18901 Mop(Not,bVar"b'17"), 18902 Bop(And, 18903 Mop(Not,bVar"b'16"), 18904 Bop(And, 18905 Mop(Not, 18906 bVar"b'4"), 18907 Bop(And, 18908 bVar"b'2", 18909 Bop(And, 18910 Mop(Not, 18911 bVar"b'1"), 18912 bVar"b'0"))))))))), 18913 Call 18914 ("CVT_L_D",CTy"COP1", 18915 TP[Mop(Cast(FTy 5), 18916 LL[bVar"b'10",bVar"b'9", 18917 bVar"b'8",bVar"b'7",bVar"b'6"]), 18918 Mop(Cast(FTy 5), 18919 LL[bVar"b'15",bVar"b'14", 18920 bVar"b'13",bVar"b'12", 18921 bVar"b'11"])]))], 18922 Const("UnknownFPInstruction",CTy"COP1")), 18923 Const("UnknownFPInstruction",CTy"COP1"))), 18924 (bVar"b'0", 18925 ITE(Bop(And,bVar"b'25", 18926 Bop(And,Mop(Not,bVar"b'24"), 18927 Bop(And,Mop(Not,bVar"b'23"), 18928 Mop(Not,bVar"b'22")))), 18929 ITB([(Bop(And,Mop(Not,bVar"b'4"), 18930 Bop(And,Mop(Not,bVar"b'2"), 18931 Mop(Not,bVar"b'1"))), 18932 Call 18933 ("SUB_D",CTy"COP1", 18934 TP[Mop(Cast(FTy 5), 18935 LL[bVar"b'10",bVar"b'9", 18936 bVar"b'8",bVar"b'7",bVar"b'6"]), 18937 Mop(Cast(FTy 5), 18938 LL[bVar"b'15",bVar"b'14", 18939 bVar"b'13",bVar"b'12", 18940 bVar"b'11"]), 18941 Mop(Cast(FTy 5), 18942 LL[bVar"b'20",bVar"b'19", 18943 bVar"b'18",bVar"b'17", 18944 bVar"b'16"])])), 18945 (Bop(And,Mop(Not,bVar"b'4"), 18946 Bop(And,Mop(Not,bVar"b'2"),bVar"b'1")), 18947 Call 18948 ("DIV_D",CTy"COP1", 18949 TP[Mop(Cast(FTy 5), 18950 LL[bVar"b'10",bVar"b'9", 18951 bVar"b'8",bVar"b'7",bVar"b'6"]), 18952 Mop(Cast(FTy 5), 18953 LL[bVar"b'15",bVar"b'14", 18954 bVar"b'13",bVar"b'12", 18955 bVar"b'11"]), 18956 Mop(Cast(FTy 5), 18957 LL[bVar"b'20",bVar"b'19", 18958 bVar"b'18",bVar"b'17", 18959 bVar"b'16"])])), 18960 (Bop(And,Mop(Not,bVar"b'20"), 18961 Bop(And,Mop(Not,bVar"b'19"), 18962 Bop(And,Mop(Not,bVar"b'18"), 18963 Bop(And,Mop(Not,bVar"b'17"), 18964 Bop(And, 18965 Mop(Not,bVar"b'16"), 18966 Bop(And, 18967 Mop(Not,bVar"b'4"), 18968 Bop(And,bVar"b'2", 18969 Mop(Not, 18970 bVar"b'1")))))))), 18971 Call 18972 ("ABS_D",CTy"COP1", 18973 TP[Mop(Cast(FTy 5), 18974 LL[bVar"b'10",bVar"b'9", 18975 bVar"b'8",bVar"b'7",bVar"b'6"]), 18976 Mop(Cast(FTy 5), 18977 LL[bVar"b'15",bVar"b'14", 18978 bVar"b'13",bVar"b'12", 18979 bVar"b'11"])])), 18980 (Bop(And,Mop(Not,bVar"b'20"), 18981 Bop(And,Mop(Not,bVar"b'19"), 18982 Bop(And,Mop(Not,bVar"b'18"), 18983 Bop(And,Mop(Not,bVar"b'17"), 18984 Bop(And, 18985 Mop(Not,bVar"b'16"), 18986 Bop(And, 18987 Mop(Not,bVar"b'4"), 18988 Bop(And,bVar"b'2", 18989 bVar"b'1"))))))), 18990 Call 18991 ("NEG_D",CTy"COP1", 18992 TP[Mop(Cast(FTy 5), 18993 LL[bVar"b'10",bVar"b'9", 18994 bVar"b'8",bVar"b'7",bVar"b'6"]), 18995 Mop(Cast(FTy 5), 18996 LL[bVar"b'15",bVar"b'14", 18997 bVar"b'13",bVar"b'12", 18998 bVar"b'11"])])), 18999 (Bop(And,Mop(Not,bVar"b'17"), 19000 Bop(And,Mop(Not,bVar"b'16"), 19001 Bop(And,bVar"b'4", 19002 Bop(And,Mop(Not,bVar"b'2"), 19003 Mop(Not,bVar"b'1"))))), 19004 Call 19005 ("MOVF_D",CTy"COP1", 19006 TP[Mop(Cast(FTy 5), 19007 LL[bVar"b'10",bVar"b'9", 19008 bVar"b'8",bVar"b'7",bVar"b'6"]), 19009 Mop(Cast(FTy 5), 19010 LL[bVar"b'15",bVar"b'14", 19011 bVar"b'13",bVar"b'12", 19012 bVar"b'11"]), 19013 Mop(Cast(FTy 3), 19014 LL[bVar"b'20",bVar"b'19", 19015 bVar"b'18"])])), 19016 (Bop(And,Mop(Not,bVar"b'17"), 19017 Bop(And,bVar"b'16", 19018 Bop(And,bVar"b'4", 19019 Bop(And,Mop(Not,bVar"b'2"), 19020 Mop(Not,bVar"b'1"))))), 19021 Call 19022 ("MOVT_D",CTy"COP1", 19023 TP[Mop(Cast(FTy 5), 19024 LL[bVar"b'10",bVar"b'9", 19025 bVar"b'8",bVar"b'7",bVar"b'6"]), 19026 Mop(Cast(FTy 5), 19027 LL[bVar"b'15",bVar"b'14", 19028 bVar"b'13",bVar"b'12", 19029 bVar"b'11"]), 19030 Mop(Cast(FTy 3), 19031 LL[bVar"b'20",bVar"b'19", 19032 bVar"b'18"])])), 19033 (Bop(And,bVar"b'4", 19034 Bop(And,Mop(Not,bVar"b'2"),bVar"b'1")), 19035 Call 19036 ("MOVN_D",CTy"COP1", 19037 TP[Mop(Cast(FTy 5), 19038 LL[bVar"b'10",bVar"b'9", 19039 bVar"b'8",bVar"b'7",bVar"b'6"]), 19040 Mop(Cast(FTy 5), 19041 LL[bVar"b'15",bVar"b'14", 19042 bVar"b'13",bVar"b'12", 19043 bVar"b'11"]), 19044 Mop(Cast(FTy 5), 19045 LL[bVar"b'20",bVar"b'19", 19046 bVar"b'18",bVar"b'17", 19047 bVar"b'16"])]))], 19048 Const("UnknownFPInstruction",CTy"COP1")), 19049 Const("UnknownFPInstruction",CTy"COP1"))), 19050 (Bop(And,Mop(Not,bVar"b'24"),Mop(Not,bVar"b'22")), 19051 ITB([(Bop(And,Mop(Not,bVar"b'25"), 19052 Bop(And,Mop(Not,bVar"b'23"), 19053 Bop(And,Mop(Not,bVar"b'10"), 19054 Bop(And,Mop(Not,bVar"b'9"), 19055 Bop(And,Mop(Not,bVar"b'8"), 19056 Bop(And, 19057 Mop(Not,bVar"b'7"), 19058 Bop(And, 19059 Mop(Not,bVar"b'6"), 19060 Bop(And, 19061 Mop(Not, 19062 bVar"b'4"), 19063 Bop(And, 19064 Mop(Not, 19065 bVar"b'2"), 19066 Mop(Not, 19067 bVar"b'1")))))))))), 19068 Call 19069 ("DMFC1",CTy"COP1", 19070 TP[Mop(Cast(FTy 5), 19071 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19072 bVar"b'17",bVar"b'16"]), 19073 Mop(Cast(FTy 5), 19074 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19075 bVar"b'12",bVar"b'11"])])), 19076 (Bop(And,Mop(Not,bVar"b'25"), 19077 Bop(And,bVar"b'23", 19078 Bop(And,Mop(Not,bVar"b'10"), 19079 Bop(And,Mop(Not,bVar"b'9"), 19080 Bop(And,Mop(Not,bVar"b'8"), 19081 Bop(And, 19082 Mop(Not,bVar"b'7"), 19083 Bop(And, 19084 Mop(Not,bVar"b'6"), 19085 Bop(And, 19086 Mop(Not, 19087 bVar"b'4"), 19088 Bop(And, 19089 Mop(Not, 19090 bVar"b'2"), 19091 Mop(Not, 19092 bVar"b'1")))))))))), 19093 Call 19094 ("DMTC1",CTy"COP1", 19095 TP[Mop(Cast(FTy 5), 19096 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19097 bVar"b'17",bVar"b'16"]), 19098 Mop(Cast(FTy 5), 19099 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19100 bVar"b'12",bVar"b'11"])])), 19101 (Bop(And,bVar"b'25", 19102 Bop(And,Mop(Not,bVar"b'23"), 19103 Bop(And,Mop(Not,bVar"b'4"), 19104 Bop(And,Mop(Not,bVar"b'2"), 19105 Mop(Not,bVar"b'1"))))), 19106 Call 19107 ("ADD_D",CTy"COP1", 19108 TP[Mop(Cast(FTy 5), 19109 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19110 bVar"b'7",bVar"b'6"]), 19111 Mop(Cast(FTy 5), 19112 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19113 bVar"b'12",bVar"b'11"]), 19114 Mop(Cast(FTy 5), 19115 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19116 bVar"b'17",bVar"b'16"])])), 19117 (Bop(And,bVar"b'25", 19118 Bop(And,Mop(Not,bVar"b'23"), 19119 Bop(And,Mop(Not,bVar"b'4"), 19120 Bop(And,Mop(Not,bVar"b'2"), 19121 bVar"b'1")))), 19122 Call 19123 ("MUL_D",CTy"COP1", 19124 TP[Mop(Cast(FTy 5), 19125 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19126 bVar"b'7",bVar"b'6"]), 19127 Mop(Cast(FTy 5), 19128 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19129 bVar"b'12",bVar"b'11"]), 19130 Mop(Cast(FTy 5), 19131 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19132 bVar"b'17",bVar"b'16"])])), 19133 (Bop(And,bVar"b'25", 19134 Bop(And,Mop(Not,bVar"b'23"), 19135 Bop(And,Mop(Not,bVar"b'20"), 19136 Bop(And,Mop(Not,bVar"b'19"), 19137 Bop(And,Mop(Not,bVar"b'18"), 19138 Bop(And, 19139 Mop(Not,bVar"b'17"), 19140 Bop(And, 19141 Mop(Not,bVar"b'16"), 19142 Bop(And, 19143 Mop(Not, 19144 bVar"b'4"), 19145 Bop(And, 19146 bVar"b'2", 19147 Mop(Not, 19148 bVar"b'1")))))))))), 19149 Call 19150 ("SQRT_D",CTy"COP1", 19151 TP[Mop(Cast(FTy 5), 19152 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19153 bVar"b'7",bVar"b'6"]), 19154 Mop(Cast(FTy 5), 19155 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19156 bVar"b'12",bVar"b'11"])])), 19157 (Bop(And,bVar"b'25", 19158 Bop(And,Mop(Not,bVar"b'23"), 19159 Bop(And,Mop(Not,bVar"b'20"), 19160 Bop(And,Mop(Not,bVar"b'19"), 19161 Bop(And,Mop(Not,bVar"b'18"), 19162 Bop(And, 19163 Mop(Not,bVar"b'17"), 19164 Bop(And, 19165 Mop(Not,bVar"b'16"), 19166 Bop(And, 19167 Mop(Not, 19168 bVar"b'4"), 19169 Bop(And, 19170 bVar"b'2", 19171 bVar"b'1"))))))))), 19172 Call 19173 ("MOV_D",CTy"COP1", 19174 TP[Mop(Cast(FTy 5), 19175 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19176 bVar"b'7",bVar"b'6"]), 19177 Mop(Cast(FTy 5), 19178 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19179 bVar"b'12",bVar"b'11"])])), 19180 (Bop(And,bVar"b'25", 19181 Bop(And,Mop(Not,bVar"b'23"), 19182 Bop(And,bVar"b'4", 19183 Bop(And,Mop(Not,bVar"b'2"), 19184 bVar"b'1")))), 19185 Call 19186 ("MOVZ_D",CTy"COP1", 19187 TP[Mop(Cast(FTy 5), 19188 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19189 bVar"b'7",bVar"b'6"]), 19190 Mop(Cast(FTy 5), 19191 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19192 bVar"b'12",bVar"b'11"]), 19193 Mop(Cast(FTy 5), 19194 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19195 bVar"b'17",bVar"b'16"])]))], 19196 Const("UnknownFPInstruction",CTy"COP1")))], 19197 Const("UnknownFPInstruction",CTy"COP1"))), 19198 (bVar"b'25", 19199 ITB([(bVar"b'3", 19200 ITB([(bVar"b'2", 19201 ITE(Bop(And,Mop(Not,bVar"b'24"), 19202 Bop(And,Mop(Not,bVar"b'23"), 19203 Bop(And,Mop(Not,bVar"b'22"), 19204 Bop(And,Mop(Not,bVar"b'20"), 19205 Bop(And, 19206 Mop(Not,bVar"b'19"), 19207 Bop(And, 19208 Mop(Not,bVar"b'18"), 19209 Bop(And, 19210 Mop(Not, 19211 bVar"b'17"), 19212 Bop(And, 19213 Mop(Not, 19214 bVar"b'16"), 19215 Bop(And, 19216 Mop(Not, 19217 bVar"b'5"), 19218 Mop(Not, 19219 bVar"b'4")))))))))), 19220 ITB([(Bop(And,Mop(Not,bVar"b'1"), 19221 Mop(Not,bVar"b'0")), 19222 Call 19223 ("ROUND_W_S",CTy"COP1", 19224 TP[Mop(Cast(FTy 5), 19225 LL[bVar"b'10",bVar"b'9", 19226 bVar"b'8",bVar"b'7", 19227 bVar"b'6"]), 19228 Mop(Cast(FTy 5), 19229 LL[bVar"b'15",bVar"b'14", 19230 bVar"b'13",bVar"b'12", 19231 bVar"b'11"])])), 19232 (Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"), 19233 Call 19234 ("TRUNC_W_S",CTy"COP1", 19235 TP[Mop(Cast(FTy 5), 19236 LL[bVar"b'10",bVar"b'9", 19237 bVar"b'8",bVar"b'7", 19238 bVar"b'6"]), 19239 Mop(Cast(FTy 5), 19240 LL[bVar"b'15",bVar"b'14", 19241 bVar"b'13",bVar"b'12", 19242 bVar"b'11"])])), 19243 (Bop(And,bVar"b'1",Mop(Not,bVar"b'0")), 19244 Call 19245 ("CEIL_W_S",CTy"COP1", 19246 TP[Mop(Cast(FTy 5), 19247 LL[bVar"b'10",bVar"b'9", 19248 bVar"b'8",bVar"b'7", 19249 bVar"b'6"]), 19250 Mop(Cast(FTy 5), 19251 LL[bVar"b'15",bVar"b'14", 19252 bVar"b'13",bVar"b'12", 19253 bVar"b'11"])])), 19254 (Bop(And,bVar"b'1",bVar"b'0"), 19255 Call 19256 ("FLOOR_W_S",CTy"COP1", 19257 TP[Mop(Cast(FTy 5), 19258 LL[bVar"b'10",bVar"b'9", 19259 bVar"b'8",bVar"b'7", 19260 bVar"b'6"]), 19261 Mop(Cast(FTy 5), 19262 LL[bVar"b'15",bVar"b'14", 19263 bVar"b'13",bVar"b'12", 19264 bVar"b'11"])]))], 19265 Const 19266 ("UnknownFPInstruction",CTy"COP1")), 19267 Const("UnknownFPInstruction",CTy"COP1"))), 19268 (Bop(And,Mop(Not,bVar"b'24"), 19269 Bop(And,Mop(Not,bVar"b'23"), 19270 Bop(And,Mop(Not,bVar"b'22"), 19271 Bop(And,Mop(Not,bVar"b'20"), 19272 Bop(And,Mop(Not,bVar"b'19"), 19273 Bop(And, 19274 Mop(Not,bVar"b'18"), 19275 Bop(And, 19276 Mop(Not,bVar"b'17"), 19277 Bop(And, 19278 Mop(Not, 19279 bVar"b'16"), 19280 Bop(And, 19281 Mop(Not, 19282 bVar"b'5"), 19283 Mop(Not, 19284 bVar"b'4")))))))))), 19285 ITB([(Bop(And,Mop(Not,bVar"b'1"), 19286 Mop(Not,bVar"b'0")), 19287 Call 19288 ("ROUND_L_S",CTy"COP1", 19289 TP[Mop(Cast(FTy 5), 19290 LL[bVar"b'10",bVar"b'9", 19291 bVar"b'8",bVar"b'7", 19292 bVar"b'6"]), 19293 Mop(Cast(FTy 5), 19294 LL[bVar"b'15",bVar"b'14", 19295 bVar"b'13",bVar"b'12", 19296 bVar"b'11"])])), 19297 (Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"), 19298 Call 19299 ("TRUNC_L_S",CTy"COP1", 19300 TP[Mop(Cast(FTy 5), 19301 LL[bVar"b'10",bVar"b'9", 19302 bVar"b'8",bVar"b'7", 19303 bVar"b'6"]), 19304 Mop(Cast(FTy 5), 19305 LL[bVar"b'15",bVar"b'14", 19306 bVar"b'13",bVar"b'12", 19307 bVar"b'11"])])), 19308 (Bop(And,bVar"b'1",Mop(Not,bVar"b'0")), 19309 Call 19310 ("CEIL_L_S",CTy"COP1", 19311 TP[Mop(Cast(FTy 5), 19312 LL[bVar"b'10",bVar"b'9", 19313 bVar"b'8",bVar"b'7", 19314 bVar"b'6"]), 19315 Mop(Cast(FTy 5), 19316 LL[bVar"b'15",bVar"b'14", 19317 bVar"b'13",bVar"b'12", 19318 bVar"b'11"])])), 19319 (Bop(And,bVar"b'1",bVar"b'0"), 19320 Call 19321 ("FLOOR_L_S",CTy"COP1", 19322 TP[Mop(Cast(FTy 5), 19323 LL[bVar"b'10",bVar"b'9", 19324 bVar"b'8",bVar"b'7", 19325 bVar"b'6"]), 19326 Mop(Cast(FTy 5), 19327 LL[bVar"b'15",bVar"b'14", 19328 bVar"b'13",bVar"b'12", 19329 bVar"b'11"])]))], 19330 Const("UnknownFPInstruction",CTy"COP1")))], 19331 Const("UnknownFPInstruction",CTy"COP1"))), 19332 (bVar"b'5", 19333 ITE(Bop(And,Mop(Not,bVar"b'24"),Mop(Not,bVar"b'22")), 19334 ITB([(Bop(And,Mop(Not,bVar"b'23"), 19335 Bop(And,Mop(Not,bVar"b'7"), 19336 Bop(And,Mop(Not,bVar"b'6"), 19337 bVar"b'4"))), 19338 Call 19339 ("C_cond_S",CTy"COP1", 19340 TP[Mop(Cast(FTy 5), 19341 LL[bVar"b'15",bVar"b'14", 19342 bVar"b'13",bVar"b'12", 19343 bVar"b'11"]), 19344 Mop(Cast(FTy 5), 19345 LL[bVar"b'20",bVar"b'19", 19346 bVar"b'18",bVar"b'17", 19347 bVar"b'16"]), 19348 Mop(Cast(FTy 3), 19349 LL[bVar"b'2",bVar"b'1",bVar"b'0"]), 19350 Mop(Cast(FTy 3), 19351 LL[bVar"b'10",bVar"b'9", 19352 bVar"b'8"])])), 19353 (Bop(And,bVar"b'23", 19354 Bop(And,Mop(Not,bVar"b'20"), 19355 Bop(And,Mop(Not,bVar"b'19"), 19356 Bop(And,Mop(Not,bVar"b'18"), 19357 Bop(And, 19358 Mop(Not,bVar"b'17"), 19359 Bop(And, 19360 Mop(Not,bVar"b'16"), 19361 Bop(And, 19362 Mop(Not, 19363 bVar"b'4"), 19364 Bop(And, 19365 Mop(Not, 19366 bVar"b'2"), 19367 Bop(And, 19368 Mop(Not, 19369 bVar"b'1"), 19370 Mop(Not, 19371 bVar"b'0")))))))))), 19372 Call 19373 ("CVT_S_W",CTy"COP1", 19374 TP[Mop(Cast(FTy 5), 19375 LL[bVar"b'10",bVar"b'9", 19376 bVar"b'8",bVar"b'7",bVar"b'6"]), 19377 Mop(Cast(FTy 5), 19378 LL[bVar"b'15",bVar"b'14", 19379 bVar"b'13",bVar"b'12", 19380 bVar"b'11"])])), 19381 (Bop(And,Mop(Not,bVar"b'23"), 19382 Bop(And,Mop(Not,bVar"b'20"), 19383 Bop(And,Mop(Not,bVar"b'19"), 19384 Bop(And,Mop(Not,bVar"b'18"), 19385 Bop(And, 19386 Mop(Not,bVar"b'17"), 19387 Bop(And, 19388 Mop(Not,bVar"b'16"), 19389 Bop(And, 19390 Mop(Not, 19391 bVar"b'4"), 19392 Bop(And, 19393 Mop(Not, 19394 bVar"b'2"), 19395 Bop(And, 19396 Mop(Not, 19397 bVar"b'1"), 19398 bVar"b'0"))))))))), 19399 Call 19400 ("CVT_D_S",CTy"COP1", 19401 TP[Mop(Cast(FTy 5), 19402 LL[bVar"b'10",bVar"b'9", 19403 bVar"b'8",bVar"b'7",bVar"b'6"]), 19404 Mop(Cast(FTy 5), 19405 LL[bVar"b'15",bVar"b'14", 19406 bVar"b'13",bVar"b'12", 19407 bVar"b'11"])])), 19408 (Bop(And,bVar"b'23", 19409 Bop(And,Mop(Not,bVar"b'20"), 19410 Bop(And,Mop(Not,bVar"b'19"), 19411 Bop(And,Mop(Not,bVar"b'18"), 19412 Bop(And, 19413 Mop(Not,bVar"b'17"), 19414 Bop(And, 19415 Mop(Not,bVar"b'16"), 19416 Bop(And, 19417 Mop(Not, 19418 bVar"b'4"), 19419 Bop(And, 19420 Mop(Not, 19421 bVar"b'2"), 19422 Bop(And, 19423 Mop(Not, 19424 bVar"b'1"), 19425 bVar"b'0"))))))))), 19426 Call 19427 ("CVT_D_W",CTy"COP1", 19428 TP[Mop(Cast(FTy 5), 19429 LL[bVar"b'10",bVar"b'9", 19430 bVar"b'8",bVar"b'7",bVar"b'6"]), 19431 Mop(Cast(FTy 5), 19432 LL[bVar"b'15",bVar"b'14", 19433 bVar"b'13",bVar"b'12", 19434 bVar"b'11"])])), 19435 (Bop(And,Mop(Not,bVar"b'23"), 19436 Bop(And,Mop(Not,bVar"b'20"), 19437 Bop(And,Mop(Not,bVar"b'19"), 19438 Bop(And,Mop(Not,bVar"b'18"), 19439 Bop(And, 19440 Mop(Not,bVar"b'17"), 19441 Bop(And, 19442 Mop(Not,bVar"b'16"), 19443 Bop(And, 19444 Mop(Not, 19445 bVar"b'4"), 19446 Bop(And, 19447 bVar"b'2", 19448 Bop(And, 19449 Mop(Not, 19450 bVar"b'1"), 19451 Mop(Not, 19452 bVar"b'0")))))))))), 19453 Call 19454 ("CVT_W_S",CTy"COP1", 19455 TP[Mop(Cast(FTy 5), 19456 LL[bVar"b'10",bVar"b'9", 19457 bVar"b'8",bVar"b'7",bVar"b'6"]), 19458 Mop(Cast(FTy 5), 19459 LL[bVar"b'15",bVar"b'14", 19460 bVar"b'13",bVar"b'12", 19461 bVar"b'11"])])), 19462 (Bop(And,Mop(Not,bVar"b'23"), 19463 Bop(And,Mop(Not,bVar"b'20"), 19464 Bop(And,Mop(Not,bVar"b'19"), 19465 Bop(And,Mop(Not,bVar"b'18"), 19466 Bop(And, 19467 Mop(Not,bVar"b'17"), 19468 Bop(And, 19469 Mop(Not,bVar"b'16"), 19470 Bop(And, 19471 Mop(Not, 19472 bVar"b'4"), 19473 Bop(And, 19474 bVar"b'2", 19475 Bop(And, 19476 Mop(Not, 19477 bVar"b'1"), 19478 bVar"b'0"))))))))), 19479 Call 19480 ("CVT_L_S",CTy"COP1", 19481 TP[Mop(Cast(FTy 5), 19482 LL[bVar"b'10",bVar"b'9", 19483 bVar"b'8",bVar"b'7",bVar"b'6"]), 19484 Mop(Cast(FTy 5), 19485 LL[bVar"b'15",bVar"b'14", 19486 bVar"b'13",bVar"b'12", 19487 bVar"b'11"])]))], 19488 Const("UnknownFPInstruction",CTy"COP1")), 19489 Const("UnknownFPInstruction",CTy"COP1"))), 19490 (bVar"b'1", 19491 ITE(Bop(And,Mop(Not,bVar"b'24"), 19492 Bop(And,Mop(Not,bVar"b'23"), 19493 Mop(Not,bVar"b'22"))), 19494 ITB([(Bop(And,Mop(Not,bVar"b'4"), 19495 Bop(And,Mop(Not,bVar"b'2"), 19496 Mop(Not,bVar"b'0"))), 19497 Call 19498 ("MUL_S",CTy"COP1", 19499 TP[Mop(Cast(FTy 5), 19500 LL[bVar"b'10",bVar"b'9", 19501 bVar"b'8",bVar"b'7",bVar"b'6"]), 19502 Mop(Cast(FTy 5), 19503 LL[bVar"b'15",bVar"b'14", 19504 bVar"b'13",bVar"b'12", 19505 bVar"b'11"]), 19506 Mop(Cast(FTy 5), 19507 LL[bVar"b'20",bVar"b'19", 19508 bVar"b'18",bVar"b'17", 19509 bVar"b'16"])])), 19510 (Bop(And,Mop(Not,bVar"b'4"), 19511 Bop(And,Mop(Not,bVar"b'2"),bVar"b'0")), 19512 Call 19513 ("DIV_S",CTy"COP1", 19514 TP[Mop(Cast(FTy 5), 19515 LL[bVar"b'10",bVar"b'9", 19516 bVar"b'8",bVar"b'7",bVar"b'6"]), 19517 Mop(Cast(FTy 5), 19518 LL[bVar"b'15",bVar"b'14", 19519 bVar"b'13",bVar"b'12", 19520 bVar"b'11"]), 19521 Mop(Cast(FTy 5), 19522 LL[bVar"b'20",bVar"b'19", 19523 bVar"b'18",bVar"b'17", 19524 bVar"b'16"])])), 19525 (Bop(And,Mop(Not,bVar"b'20"), 19526 Bop(And,Mop(Not,bVar"b'19"), 19527 Bop(And,Mop(Not,bVar"b'18"), 19528 Bop(And,Mop(Not,bVar"b'17"), 19529 Bop(And, 19530 Mop(Not,bVar"b'16"), 19531 Bop(And, 19532 Mop(Not,bVar"b'4"), 19533 Bop(And,bVar"b'2", 19534 Mop(Not, 19535 bVar"b'0")))))))), 19536 Call 19537 ("MOV_S",CTy"COP1", 19538 TP[Mop(Cast(FTy 5), 19539 LL[bVar"b'10",bVar"b'9", 19540 bVar"b'8",bVar"b'7",bVar"b'6"]), 19541 Mop(Cast(FTy 5), 19542 LL[bVar"b'15",bVar"b'14", 19543 bVar"b'13",bVar"b'12", 19544 bVar"b'11"])])), 19545 (Bop(And,Mop(Not,bVar"b'20"), 19546 Bop(And,Mop(Not,bVar"b'19"), 19547 Bop(And,Mop(Not,bVar"b'18"), 19548 Bop(And,Mop(Not,bVar"b'17"), 19549 Bop(And, 19550 Mop(Not,bVar"b'16"), 19551 Bop(And, 19552 Mop(Not,bVar"b'4"), 19553 Bop(And,bVar"b'2", 19554 bVar"b'0"))))))), 19555 Call 19556 ("NEG_S",CTy"COP1", 19557 TP[Mop(Cast(FTy 5), 19558 LL[bVar"b'10",bVar"b'9", 19559 bVar"b'8",bVar"b'7",bVar"b'6"]), 19560 Mop(Cast(FTy 5), 19561 LL[bVar"b'15",bVar"b'14", 19562 bVar"b'13",bVar"b'12", 19563 bVar"b'11"])])), 19564 (Bop(And,bVar"b'4", 19565 Bop(And,Mop(Not,bVar"b'2"), 19566 Mop(Not,bVar"b'0"))), 19567 Call 19568 ("MOVZ_S",CTy"COP1", 19569 TP[Mop(Cast(FTy 5), 19570 LL[bVar"b'10",bVar"b'9", 19571 bVar"b'8",bVar"b'7",bVar"b'6"]), 19572 Mop(Cast(FTy 5), 19573 LL[bVar"b'15",bVar"b'14", 19574 bVar"b'13",bVar"b'12", 19575 bVar"b'11"]), 19576 Mop(Cast(FTy 5), 19577 LL[bVar"b'20",bVar"b'19", 19578 bVar"b'18",bVar"b'17", 19579 bVar"b'16"])])), 19580 (Bop(And,bVar"b'4", 19581 Bop(And,Mop(Not,bVar"b'2"),bVar"b'0")), 19582 Call 19583 ("MOVN_S",CTy"COP1", 19584 TP[Mop(Cast(FTy 5), 19585 LL[bVar"b'10",bVar"b'9", 19586 bVar"b'8",bVar"b'7",bVar"b'6"]), 19587 Mop(Cast(FTy 5), 19588 LL[bVar"b'15",bVar"b'14", 19589 bVar"b'13",bVar"b'12", 19590 bVar"b'11"]), 19591 Mop(Cast(FTy 5), 19592 LL[bVar"b'20",bVar"b'19", 19593 bVar"b'18",bVar"b'17", 19594 bVar"b'16"])]))], 19595 Const("UnknownFPInstruction",CTy"COP1")), 19596 Const("UnknownFPInstruction",CTy"COP1"))), 19597 (Bop(And,Mop(Not,bVar"b'24"), 19598 Bop(And,Mop(Not,bVar"b'23"),Mop(Not,bVar"b'22"))), 19599 ITB([(Bop(And,Mop(Not,bVar"b'4"), 19600 Bop(And,Mop(Not,bVar"b'2"), 19601 Mop(Not,bVar"b'0"))), 19602 Call 19603 ("ADD_S",CTy"COP1", 19604 TP[Mop(Cast(FTy 5), 19605 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19606 bVar"b'7",bVar"b'6"]), 19607 Mop(Cast(FTy 5), 19608 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19609 bVar"b'12",bVar"b'11"]), 19610 Mop(Cast(FTy 5), 19611 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19612 bVar"b'17",bVar"b'16"])])), 19613 (Bop(And,Mop(Not,bVar"b'4"), 19614 Bop(And,Mop(Not,bVar"b'2"),bVar"b'0")), 19615 Call 19616 ("SUB_S",CTy"COP1", 19617 TP[Mop(Cast(FTy 5), 19618 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19619 bVar"b'7",bVar"b'6"]), 19620 Mop(Cast(FTy 5), 19621 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19622 bVar"b'12",bVar"b'11"]), 19623 Mop(Cast(FTy 5), 19624 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19625 bVar"b'17",bVar"b'16"])])), 19626 (Bop(And,Mop(Not,bVar"b'20"), 19627 Bop(And,Mop(Not,bVar"b'19"), 19628 Bop(And,Mop(Not,bVar"b'18"), 19629 Bop(And,Mop(Not,bVar"b'17"), 19630 Bop(And,Mop(Not,bVar"b'16"), 19631 Bop(And, 19632 Mop(Not,bVar"b'4"), 19633 Bop(And,bVar"b'2", 19634 Mop(Not,bVar"b'0")))))))), 19635 Call 19636 ("SQRT_S",CTy"COP1", 19637 TP[Mop(Cast(FTy 5), 19638 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19639 bVar"b'7",bVar"b'6"]), 19640 Mop(Cast(FTy 5), 19641 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19642 bVar"b'12",bVar"b'11"])])), 19643 (Bop(And,Mop(Not,bVar"b'20"), 19644 Bop(And,Mop(Not,bVar"b'19"), 19645 Bop(And,Mop(Not,bVar"b'18"), 19646 Bop(And,Mop(Not,bVar"b'17"), 19647 Bop(And,Mop(Not,bVar"b'16"), 19648 Bop(And, 19649 Mop(Not,bVar"b'4"), 19650 Bop(And,bVar"b'2", 19651 bVar"b'0"))))))), 19652 Call 19653 ("ABS_S",CTy"COP1", 19654 TP[Mop(Cast(FTy 5), 19655 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19656 bVar"b'7",bVar"b'6"]), 19657 Mop(Cast(FTy 5), 19658 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19659 bVar"b'12",bVar"b'11"])])), 19660 (Bop(And,Mop(Not,bVar"b'17"), 19661 Bop(And,Mop(Not,bVar"b'16"), 19662 Bop(And,bVar"b'4", 19663 Bop(And,Mop(Not,bVar"b'2"), 19664 bVar"b'0")))), 19665 Call 19666 ("MOVF_S",CTy"COP1", 19667 TP[Mop(Cast(FTy 5), 19668 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19669 bVar"b'7",bVar"b'6"]), 19670 Mop(Cast(FTy 5), 19671 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19672 bVar"b'12",bVar"b'11"]), 19673 Mop(Cast(FTy 3), 19674 LL[bVar"b'20",bVar"b'19",bVar"b'18"])])), 19675 (Bop(And,Mop(Not,bVar"b'17"), 19676 Bop(And,bVar"b'16", 19677 Bop(And,bVar"b'4", 19678 Bop(And,Mop(Not,bVar"b'2"), 19679 bVar"b'0")))), 19680 Call 19681 ("MOVT_S",CTy"COP1", 19682 TP[Mop(Cast(FTy 5), 19683 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19684 bVar"b'7",bVar"b'6"]), 19685 Mop(Cast(FTy 5), 19686 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19687 bVar"b'12",bVar"b'11"]), 19688 Mop(Cast(FTy 3), 19689 LL[bVar"b'20",bVar"b'19",bVar"b'18"])]))], 19690 Const("UnknownFPInstruction",CTy"COP1")))], 19691 Const("UnknownFPInstruction",CTy"COP1"))), 19692 (bVar"b'24", 19693 ITE(Bop(And,Mop(Not,bVar"b'23"),Mop(Not,bVar"b'22")), 19694 ITB([(Bop(And,Mop(Not,bVar"b'17"),Mop(Not,bVar"b'16")), 19695 Call 19696 ("BC1F",CTy"COP1", 19697 TP[Mop(Cast F16, 19698 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19699 bVar"b'12",bVar"b'11",bVar"b'10", 19700 bVar"b'9",bVar"b'8",bVar"b'7", 19701 bVar"b'6",bVar"b'5",bVar"b'4", 19702 bVar"b'3",bVar"b'2",bVar"b'1", 19703 bVar"b'0"]), 19704 Mop(Cast(FTy 3), 19705 LL[bVar"b'20",bVar"b'19",bVar"b'18"])])), 19706 (Bop(And,Mop(Not,bVar"b'17"),bVar"b'16"), 19707 Call 19708 ("BC1T",CTy"COP1", 19709 TP[Mop(Cast F16, 19710 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19711 bVar"b'12",bVar"b'11",bVar"b'10", 19712 bVar"b'9",bVar"b'8",bVar"b'7", 19713 bVar"b'6",bVar"b'5",bVar"b'4", 19714 bVar"b'3",bVar"b'2",bVar"b'1", 19715 bVar"b'0"]), 19716 Mop(Cast(FTy 3), 19717 LL[bVar"b'20",bVar"b'19",bVar"b'18"])])), 19718 (Bop(And,bVar"b'17",Mop(Not,bVar"b'16")), 19719 Call 19720 ("BC1FL",CTy"COP1", 19721 TP[Mop(Cast F16, 19722 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19723 bVar"b'12",bVar"b'11",bVar"b'10", 19724 bVar"b'9",bVar"b'8",bVar"b'7", 19725 bVar"b'6",bVar"b'5",bVar"b'4", 19726 bVar"b'3",bVar"b'2",bVar"b'1", 19727 bVar"b'0"]), 19728 Mop(Cast(FTy 3), 19729 LL[bVar"b'20",bVar"b'19",bVar"b'18"])])), 19730 (Bop(And,bVar"b'17",bVar"b'16"), 19731 Call 19732 ("BC1TL",CTy"COP1", 19733 TP[Mop(Cast F16, 19734 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19735 bVar"b'12",bVar"b'11",bVar"b'10", 19736 bVar"b'9",bVar"b'8",bVar"b'7", 19737 bVar"b'6",bVar"b'5",bVar"b'4", 19738 bVar"b'3",bVar"b'2",bVar"b'1", 19739 bVar"b'0"]), 19740 Mop(Cast(FTy 3), 19741 LL[bVar"b'20",bVar"b'19",bVar"b'18"])]))], 19742 Const("UnknownFPInstruction",CTy"COP1")), 19743 Const("UnknownFPInstruction",CTy"COP1"))), 19744 (Bop(And,Mop(Not,bVar"b'10"), 19745 Bop(And,Mop(Not,bVar"b'9"), 19746 Bop(And,Mop(Not,bVar"b'8"), 19747 Bop(And,Mop(Not,bVar"b'7"), 19748 Bop(And,Mop(Not,bVar"b'6"), 19749 Bop(And,Mop(Not,bVar"b'5"), 19750 Bop(And,Mop(Not,bVar"b'4"), 19751 Bop(And,Mop(Not,bVar"b'3"), 19752 Bop(And, 19753 Mop(Not,bVar"b'2"), 19754 Bop(And, 19755 Mop(Not,bVar"b'1"), 19756 Mop(Not,bVar"b'0"))))))))))), 19757 ITB([(Bop(And,Mop(Not,bVar"b'23"),Mop(Not,bVar"b'22")), 19758 Call 19759 ("MFC1",CTy"COP1", 19760 TP[Mop(Cast(FTy 5), 19761 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19762 bVar"b'17",bVar"b'16"]), 19763 Mop(Cast(FTy 5), 19764 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19765 bVar"b'12",bVar"b'11"])])), 19766 (Bop(And,Mop(Not,bVar"b'23"),bVar"b'22"), 19767 Call 19768 ("CFC1",CTy"COP1", 19769 TP[Mop(Cast(FTy 5), 19770 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19771 bVar"b'17",bVar"b'16"]), 19772 Mop(Cast(FTy 5), 19773 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19774 bVar"b'12",bVar"b'11"])])), 19775 (Bop(And,bVar"b'23",Mop(Not,bVar"b'22")), 19776 Call 19777 ("MTC1",CTy"COP1", 19778 TP[Mop(Cast(FTy 5), 19779 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19780 bVar"b'17",bVar"b'16"]), 19781 Mop(Cast(FTy 5), 19782 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19783 bVar"b'12",bVar"b'11"])])), 19784 (Bop(And,bVar"b'23",bVar"b'22"), 19785 Call 19786 ("CTC1",CTy"COP1", 19787 TP[Mop(Cast(FTy 5), 19788 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19789 bVar"b'17",bVar"b'16"]), 19790 Mop(Cast(FTy 5), 19791 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19792 bVar"b'12",bVar"b'11"])]))], 19793 Const("UnknownFPInstruction",CTy"COP1")))], 19794 Const("UnknownFPInstruction",CTy"COP1"))))) 19795; 19796val LDC1Decode_def = Def 19797 ("LDC1Decode",TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)], 19798 Call 19799 ("COP1",CTy"instruction", 19800 Call 19801 ("LDC1",CTy"COP1", 19802 TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]))) 19803; 19804val LWC1Decode_def = Def 19805 ("LWC1Decode",TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)], 19806 Call 19807 ("COP1",CTy"instruction", 19808 Call 19809 ("LWC1",CTy"COP1", 19810 TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]))) 19811; 19812val SDC1Decode_def = Def 19813 ("SDC1Decode",TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)], 19814 Call 19815 ("COP1",CTy"instruction", 19816 Call 19817 ("SDC1",CTy"COP1", 19818 TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]))) 19819; 19820val SWC1Decode_def = Def 19821 ("SWC1Decode",TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)], 19822 Call 19823 ("COP1",CTy"instruction", 19824 Call 19825 ("SWC1",CTy"COP1", 19826 TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]))) 19827; 19828val MOVCIDecode_def = Def 19829 ("MOVCIDecode",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], 19830 Let(TP[bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], 19831 BL(5,Var("rt",FTy 5)), 19832 ITE(Mop(Not,bVar"b'1"), 19833 ITB([(Mop(Not,bVar"b'0"), 19834 Call 19835 ("COP1",CTy"instruction", 19836 Call 19837 ("MOVF",CTy"COP1", 19838 TP[Var("rd",FTy 5),Var("rs",FTy 5), 19839 Mop(Cast(FTy 3), 19840 LL[bVar"b'4",bVar"b'3",bVar"b'2"])]))), 19841 (bVar"b'0", 19842 Call 19843 ("COP1",CTy"instruction", 19844 Call 19845 ("MOVT",CTy"COP1", 19846 TP[Var("rd",FTy 5),Var("rs",FTy 5), 19847 Mop(Cast(FTy 3), 19848 LL[bVar"b'4",bVar"b'3",bVar"b'2"])])))], 19849 Const("ReservedInstruction",CTy"instruction")), 19850 Const("ReservedInstruction",CTy"instruction")))) 19851; 19852val COP3Decode_def = Def 19853 ("COP3Decode",Var("v",FTy 26), 19854 Call 19855 ("COP1",CTy"instruction", 19856 Let(TP[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22",bVar"b'21", 19857 bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17",bVar"b'16", 19858 bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12",bVar"b'11", 19859 bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6",bVar"b'5", 19860 bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], 19861 BL(26,Var("v",FTy 26)), 19862 ITB([(bVar"b'5", 19863 ITE(Bop(And,Mop(Not,bVar"b'4"), 19864 Bop(And,Mop(Not,bVar"b'2"),Mop(Not,bVar"b'1"))), 19865 ITB([(Bop(And,Mop(Not,bVar"b'3"),Mop(Not,bVar"b'0")), 19866 Call 19867 ("MADD_S",CTy"COP1", 19868 TP[Mop(Cast(FTy 5), 19869 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19870 bVar"b'7",bVar"b'6"]), 19871 Mop(Cast(FTy 5), 19872 LL[bVar"b'25",bVar"b'24",bVar"b'23", 19873 bVar"b'22",bVar"b'21"]), 19874 Mop(Cast(FTy 5), 19875 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19876 bVar"b'12",bVar"b'11"]), 19877 Mop(Cast(FTy 5), 19878 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19879 bVar"b'17",bVar"b'16"])])), 19880 (Bop(And,Mop(Not,bVar"b'3"),bVar"b'0"), 19881 Call 19882 ("MADD_D",CTy"COP1", 19883 TP[Mop(Cast(FTy 5), 19884 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19885 bVar"b'7",bVar"b'6"]), 19886 Mop(Cast(FTy 5), 19887 LL[bVar"b'25",bVar"b'24",bVar"b'23", 19888 bVar"b'22",bVar"b'21"]), 19889 Mop(Cast(FTy 5), 19890 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19891 bVar"b'12",bVar"b'11"]), 19892 Mop(Cast(FTy 5), 19893 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19894 bVar"b'17",bVar"b'16"])])), 19895 (Bop(And,bVar"b'3",Mop(Not,bVar"b'0")), 19896 Call 19897 ("MSUB_S",CTy"COP1", 19898 TP[Mop(Cast(FTy 5), 19899 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19900 bVar"b'7",bVar"b'6"]), 19901 Mop(Cast(FTy 5), 19902 LL[bVar"b'25",bVar"b'24",bVar"b'23", 19903 bVar"b'22",bVar"b'21"]), 19904 Mop(Cast(FTy 5), 19905 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19906 bVar"b'12",bVar"b'11"]), 19907 Mop(Cast(FTy 5), 19908 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19909 bVar"b'17",bVar"b'16"])])), 19910 (Bop(And,bVar"b'3",bVar"b'0"), 19911 Call 19912 ("MSUB_D",CTy"COP1", 19913 TP[Mop(Cast(FTy 5), 19914 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19915 bVar"b'7",bVar"b'6"]), 19916 Mop(Cast(FTy 5), 19917 LL[bVar"b'25",bVar"b'24",bVar"b'23", 19918 bVar"b'22",bVar"b'21"]), 19919 Mop(Cast(FTy 5), 19920 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19921 bVar"b'12",bVar"b'11"]), 19922 Mop(Cast(FTy 5), 19923 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19924 bVar"b'17",bVar"b'16"])]))], 19925 Const("UnknownFPInstruction",CTy"COP1")), 19926 Const("UnknownFPInstruction",CTy"COP1"))), 19927 (Bop(And,Mop(Not,bVar"b'4"), 19928 Bop(And,Mop(Not,bVar"b'2"),Mop(Not,bVar"b'1"))), 19929 ITB([(Bop(And,Mop(Not,bVar"b'15"), 19930 Bop(And,Mop(Not,bVar"b'14"), 19931 Bop(And,Mop(Not,bVar"b'13"), 19932 Bop(And,Mop(Not,bVar"b'12"), 19933 Bop(And,Mop(Not,bVar"b'11"), 19934 Bop(And,Mop(Not,bVar"b'3"), 19935 Mop(Not,bVar"b'0"))))))), 19936 Call 19937 ("LWXC1",CTy"COP1", 19938 TP[Mop(Cast(FTy 5), 19939 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19940 bVar"b'7",bVar"b'6"]), 19941 Mop(Cast(FTy 5), 19942 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19943 bVar"b'17",bVar"b'16"]), 19944 Mop(Cast(FTy 5), 19945 LL[bVar"b'25",bVar"b'24",bVar"b'23", 19946 bVar"b'22",bVar"b'21"])])), 19947 (Bop(And,Mop(Not,bVar"b'15"), 19948 Bop(And,Mop(Not,bVar"b'14"), 19949 Bop(And,Mop(Not,bVar"b'13"), 19950 Bop(And,Mop(Not,bVar"b'12"), 19951 Bop(And,Mop(Not,bVar"b'11"), 19952 Bop(And,Mop(Not,bVar"b'3"), 19953 bVar"b'0")))))), 19954 Call 19955 ("LDXC1",CTy"COP1", 19956 TP[Mop(Cast(FTy 5), 19957 LL[bVar"b'10",bVar"b'9",bVar"b'8", 19958 bVar"b'7",bVar"b'6"]), 19959 Mop(Cast(FTy 5), 19960 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19961 bVar"b'17",bVar"b'16"]), 19962 Mop(Cast(FTy 5), 19963 LL[bVar"b'25",bVar"b'24",bVar"b'23", 19964 bVar"b'22",bVar"b'21"])])), 19965 (Bop(And,Mop(Not,bVar"b'10"), 19966 Bop(And,Mop(Not,bVar"b'9"), 19967 Bop(And,Mop(Not,bVar"b'8"), 19968 Bop(And,Mop(Not,bVar"b'7"), 19969 Bop(And,Mop(Not,bVar"b'6"), 19970 Bop(And,bVar"b'3", 19971 Mop(Not,bVar"b'0"))))))), 19972 Call 19973 ("SWXC1",CTy"COP1", 19974 TP[Mop(Cast(FTy 5), 19975 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19976 bVar"b'12",bVar"b'11"]), 19977 Mop(Cast(FTy 5), 19978 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19979 bVar"b'17",bVar"b'16"]), 19980 Mop(Cast(FTy 5), 19981 LL[bVar"b'25",bVar"b'24",bVar"b'23", 19982 bVar"b'22",bVar"b'21"])])), 19983 (Bop(And,Mop(Not,bVar"b'10"), 19984 Bop(And,Mop(Not,bVar"b'9"), 19985 Bop(And,Mop(Not,bVar"b'8"), 19986 Bop(And,Mop(Not,bVar"b'7"), 19987 Bop(And,Mop(Not,bVar"b'6"), 19988 Bop(And,bVar"b'3",bVar"b'0")))))), 19989 Call 19990 ("SDXC1",CTy"COP1", 19991 TP[Mop(Cast(FTy 5), 19992 LL[bVar"b'15",bVar"b'14",bVar"b'13", 19993 bVar"b'12",bVar"b'11"]), 19994 Mop(Cast(FTy 5), 19995 LL[bVar"b'20",bVar"b'19",bVar"b'18", 19996 bVar"b'17",bVar"b'16"]), 19997 Mop(Cast(FTy 5), 19998 LL[bVar"b'25",bVar"b'24",bVar"b'23", 19999 bVar"b'22",bVar"b'21"])]))], 20000 Const("UnknownFPInstruction",CTy"COP1")))], 20001 Const("UnknownFPInstruction",CTy"COP1"))))) 20002; 20003val COP2Decode_def = Def 20004 ("COP2Decode",Var("v",FTy 26), 20005 Call 20006 ("COP2",CTy"instruction", 20007 Call 20008 ("CHERICOP2",CTy"COP2", 20009 Let(TP[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22",bVar"b'21", 20010 bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17",bVar"b'16", 20011 bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12",bVar"b'11", 20012 bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", 20013 bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1", 20014 bVar"b'0"],BL(26,Var("v",FTy 26)), 20015 ITB([(bVar"b'23", 20016 ITB([(bVar"b'21", 20017 ITE(Mop(Not,bVar"b'25"), 20018 ITB([(Bop(And,bVar"b'24", 20019 Bop(And,Mop(Not,bVar"b'22"), 20020 Bop(And,Mop(Not,bVar"b'5"), 20021 Bop(And,Mop(Not,bVar"b'4"), 20022 Bop(And, 20023 Mop(Not,bVar"b'3"), 20024 Bop(And, 20025 Mop(Not, 20026 bVar"b'2"), 20027 Bop(And, 20028 bVar"b'1", 20029 Mop(Not, 20030 bVar"b'0")))))))), 20031 Call 20032 ("CGet",CTy"CHERICOP2", 20033 Call 20034 ("CGetOffset",CTy"CGet", 20035 TP[Mop(Cast(FTy 5), 20036 LL[bVar"b'20",bVar"b'19", 20037 bVar"b'18",bVar"b'17", 20038 bVar"b'16"]), 20039 Mop(Cast(FTy 5), 20040 LL[bVar"b'15",bVar"b'14", 20041 bVar"b'13",bVar"b'12", 20042 bVar"b'11"])]))), 20043 (Bop(And,bVar"b'24", 20044 Bop(And,Mop(Not,bVar"b'22"), 20045 Bop(And,Mop(Not,bVar"b'2"), 20046 Bop(And,Mop(Not,bVar"b'1"), 20047 Mop(Not,bVar"b'0"))))), 20048 Call 20049 ("CSet",CTy"CHERICOP2", 20050 Call 20051 ("CIncOffset",CTy"CSet", 20052 TP[Mop(Cast(FTy 5), 20053 LL[bVar"b'20",bVar"b'19", 20054 bVar"b'18",bVar"b'17", 20055 bVar"b'16"]), 20056 Mop(Cast(FTy 5), 20057 LL[bVar"b'15",bVar"b'14", 20058 bVar"b'13",bVar"b'12", 20059 bVar"b'11"]), 20060 Mop(Cast(FTy 5), 20061 LL[bVar"b'10",bVar"b'9", 20062 bVar"b'8",bVar"b'7", 20063 bVar"b'6"])]))), 20064 (Bop(And,bVar"b'24",bVar"b'22"), 20065 Call 20066 ("CSet",CTy"CHERICOP2", 20067 Call 20068 ("CClearRegs",CTy"CSet", 20069 TP[Mop(Cast(FTy 5), 20070 LL[bVar"b'20",bVar"b'19", 20071 bVar"b'18",bVar"b'17", 20072 bVar"b'16"]), 20073 Mop(Cast F16, 20074 LL[bVar"b'15",bVar"b'14", 20075 bVar"b'13",bVar"b'12", 20076 bVar"b'11",bVar"b'10", 20077 bVar"b'9",bVar"b'8", 20078 bVar"b'7",bVar"b'6", 20079 bVar"b'5",bVar"b'4", 20080 bVar"b'3",bVar"b'2", 20081 bVar"b'1",bVar"b'0"])]))), 20082 (Bop(And,bVar"b'24", 20083 Bop(And,Mop(Not,bVar"b'22"), 20084 Bop(And,Mop(Not,bVar"b'2"), 20085 Bop(And,Mop(Not,bVar"b'1"), 20086 bVar"b'0")))), 20087 Call 20088 ("CSet",CTy"CHERICOP2", 20089 Call 20090 ("CSetOffset",CTy"CSet", 20091 TP[Mop(Cast(FTy 5), 20092 LL[bVar"b'20",bVar"b'19", 20093 bVar"b'18",bVar"b'17", 20094 bVar"b'16"]), 20095 Mop(Cast(FTy 5), 20096 LL[bVar"b'15",bVar"b'14", 20097 bVar"b'13",bVar"b'12", 20098 bVar"b'11"]), 20099 Mop(Cast(FTy 5), 20100 LL[bVar"b'10",bVar"b'9", 20101 bVar"b'8",bVar"b'7", 20102 bVar"b'6"])]))), 20103 (Bop(And,Mop(Not,bVar"b'24"),bVar"b'22"), 20104 Call 20105 ("CJALR",CTy"CHERICOP2", 20106 TP[Mop(Cast(FTy 5), 20107 LL[bVar"b'20",bVar"b'19", 20108 bVar"b'18",bVar"b'17", 20109 bVar"b'16"]), 20110 Mop(Cast(FTy 5), 20111 LL[bVar"b'15",bVar"b'14", 20112 bVar"b'13",bVar"b'12", 20113 bVar"b'11"])])), 20114 (Bop(And,Mop(Not,bVar"b'24"), 20115 Bop(And,Mop(Not,bVar"b'22"), 20116 Bop(And,Mop(Not,bVar"b'10"), 20117 Bop(And,Mop(Not,bVar"b'9"), 20118 Bop(And, 20119 Mop(Not,bVar"b'8"), 20120 Bop(And, 20121 Mop(Not, 20122 bVar"b'7"), 20123 Bop(And, 20124 Mop(Not, 20125 bVar"b'6"), 20126 Bop(And, 20127 Mop(Not, 20128 bVar"b'5"), 20129 Bop(And, 20130 Mop(Not, 20131 bVar"b'4"), 20132 Bop(And, 20133 Mop(Not, 20134 bVar"b'3"), 20135 Bop(And, 20136 Mop(Not, 20137 bVar"b'2"), 20138 Bop(And, 20139 Mop(Not, 20140 bVar"b'1"), 20141 Mop(Not, 20142 bVar"b'0"))))))))))))), 20143 Call 20144 ("CCall0",CTy"CHERICOP2", 20145 TP[Mop(Cast(FTy 5), 20146 LL[bVar"b'20",bVar"b'19", 20147 bVar"b'18",bVar"b'17", 20148 bVar"b'16"]), 20149 Mop(Cast(FTy 5), 20150 LL[bVar"b'15",bVar"b'14", 20151 bVar"b'13",bVar"b'12", 20152 bVar"b'11"])])), 20153 (Bop(And,Mop(Not,bVar"b'24"), 20154 Bop(And,Mop(Not,bVar"b'22"), 20155 Bop(And,Mop(Not,bVar"b'10"), 20156 Bop(And,Mop(Not,bVar"b'9"), 20157 Bop(And, 20158 Mop(Not,bVar"b'8"), 20159 Bop(And, 20160 Mop(Not, 20161 bVar"b'7"), 20162 Bop(And, 20163 Mop(Not, 20164 bVar"b'6"), 20165 Bop(And, 20166 Mop(Not, 20167 bVar"b'5"), 20168 Bop(And, 20169 Mop(Not, 20170 bVar"b'4"), 20171 Bop(And, 20172 Mop(Not, 20173 bVar"b'3"), 20174 Bop(And, 20175 Mop(Not, 20176 bVar"b'2"), 20177 Bop(And, 20178 Mop(Not, 20179 bVar"b'1"), 20180 bVar"b'0")))))))))))), 20181 Call 20182 ("CCall1",CTy"CHERICOP2", 20183 TP[Mop(Cast(FTy 5), 20184 LL[bVar"b'20",bVar"b'19", 20185 bVar"b'18",bVar"b'17", 20186 bVar"b'16"]), 20187 Mop(Cast(FTy 5), 20188 LL[bVar"b'15",bVar"b'14", 20189 bVar"b'13",bVar"b'12", 20190 bVar"b'11"])]))], 20191 Const 20192 ("UnknownCapInstruction",CTy"CHERICOP2")), 20193 Const("UnknownCapInstruction",CTy"CHERICOP2"))), 20194 (Mop(Not,bVar"b'25"), 20195 ITB([(Bop(And,Mop(Not,bVar"b'24"), 20196 Bop(And,Mop(Not,bVar"b'22"), 20197 Bop(And,bVar"b'2", 20198 Bop(And,bVar"b'1", 20199 Mop(Not,bVar"b'0"))))), 20200 Const("DumpCapReg",CTy"CHERICOP2")), 20201 (Bop(And,Mop(Not,bVar"b'24"), 20202 Bop(And,Mop(Not,bVar"b'22"), 20203 Bop(And,Mop(Not,bVar"b'20"), 20204 Bop(And,Mop(Not,bVar"b'19"), 20205 Bop(And, 20206 Mop(Not,bVar"b'18"), 20207 Bop(And, 20208 Mop(Not,bVar"b'17"), 20209 Bop(And, 20210 Mop(Not, 20211 bVar"b'16"), 20212 Bop(And, 20213 Mop(Not, 20214 bVar"b'15"), 20215 Bop(And, 20216 Mop(Not, 20217 bVar"b'14"), 20218 Bop(And, 20219 Mop(Not, 20220 bVar"b'13"), 20221 Bop(And, 20222 Mop(Not, 20223 bVar"b'12"), 20224 Bop(And, 20225 Mop(Not, 20226 bVar"b'11"), 20227 Bop(And, 20228 bVar"b'2", 20229 Bop(And, 20230 Mop(Not, 20231 bVar"b'1"), 20232 Mop(Not, 20233 bVar"b'0"))))))))))))))), 20234 Call 20235 ("CSet",CTy"CHERICOP2", 20236 Call 20237 ("CSetCause",CTy"CSet", 20238 Mop(Cast(FTy 5), 20239 LL[bVar"b'10",bVar"b'9", 20240 bVar"b'8",bVar"b'7",bVar"b'6"])))), 20241 (Bop(And,Mop(Not,bVar"b'24"), 20242 Bop(And,Mop(Not,bVar"b'22"), 20243 Bop(And,bVar"b'2", 20244 Bop(And,Mop(Not,bVar"b'1"), 20245 bVar"b'0")))), 20246 Call 20247 ("CSet",CTy"CHERICOP2", 20248 Call 20249 ("CClearTag",CTy"CSet", 20250 TP[Mop(Cast(FTy 5), 20251 LL[bVar"b'20",bVar"b'19", 20252 bVar"b'18",bVar"b'17", 20253 bVar"b'16"]), 20254 Mop(Cast(FTy 5), 20255 LL[bVar"b'15",bVar"b'14", 20256 bVar"b'13",bVar"b'12", 20257 bVar"b'11"])]))), 20258 (Bop(And,Mop(Not,bVar"b'24"), 20259 Bop(And,Mop(Not,bVar"b'22"), 20260 Bop(And,Mop(Not,bVar"b'2"), 20261 Bop(And,Mop(Not,bVar"b'1"), 20262 Mop(Not,bVar"b'0"))))), 20263 Call 20264 ("CSet",CTy"CHERICOP2", 20265 Call 20266 ("CAndPerm",CTy"CSet", 20267 TP[Mop(Cast(FTy 5), 20268 LL[bVar"b'20",bVar"b'19", 20269 bVar"b'18",bVar"b'17", 20270 bVar"b'16"]), 20271 Mop(Cast(FTy 5), 20272 LL[bVar"b'15",bVar"b'14", 20273 bVar"b'13",bVar"b'12", 20274 bVar"b'11"]), 20275 Mop(Cast(FTy 5), 20276 LL[bVar"b'10",bVar"b'9", 20277 bVar"b'8",bVar"b'7", 20278 bVar"b'6"])]))), 20279 (Bop(And,Mop(Not,bVar"b'24"), 20280 Bop(And,Mop(Not,bVar"b'22"), 20281 Bop(And,bVar"b'2", 20282 Bop(And,bVar"b'1",bVar"b'0")))), 20283 Call 20284 ("CSet",CTy"CHERICOP2", 20285 Call 20286 ("CFromPtr",CTy"CSet", 20287 TP[Mop(Cast(FTy 5), 20288 LL[bVar"b'20",bVar"b'19", 20289 bVar"b'18",bVar"b'17", 20290 bVar"b'16"]), 20291 Mop(Cast(FTy 5), 20292 LL[bVar"b'15",bVar"b'14", 20293 bVar"b'13",bVar"b'12", 20294 bVar"b'11"]), 20295 Mop(Cast(FTy 5), 20296 LL[bVar"b'10",bVar"b'9", 20297 bVar"b'8",bVar"b'7", 20298 bVar"b'6"])]))), 20299 (Bop(And,bVar"b'24",Mop(Not,bVar"b'22")), 20300 Call 20301 ("CGet",CTy"CHERICOP2", 20302 Call 20303 ("CToPtr",CTy"CGet", 20304 TP[Mop(Cast(FTy 5), 20305 LL[bVar"b'20",bVar"b'19", 20306 bVar"b'18",bVar"b'17", 20307 bVar"b'16"]), 20308 Mop(Cast(FTy 5), 20309 LL[bVar"b'15",bVar"b'14", 20310 bVar"b'13",bVar"b'12", 20311 bVar"b'11"]), 20312 Mop(Cast(FTy 5), 20313 LL[bVar"b'10",bVar"b'9", 20314 bVar"b'8",bVar"b'7", 20315 bVar"b'6"])]))), 20316 (Bop(And,bVar"b'24",bVar"b'22"), 20317 Call 20318 ("CPtrCmp",CTy"CHERICOP2", 20319 TP[Mop(Cast(FTy 5), 20320 LL[bVar"b'20",bVar"b'19", 20321 bVar"b'18",bVar"b'17", 20322 bVar"b'16"]), 20323 Mop(Cast(FTy 5), 20324 LL[bVar"b'15",bVar"b'14", 20325 bVar"b'13",bVar"b'12", 20326 bVar"b'11"]), 20327 Mop(Cast(FTy 5), 20328 LL[bVar"b'10",bVar"b'9", 20329 bVar"b'8",bVar"b'7",bVar"b'6"]), 20330 Mop(Cast(FTy 3), 20331 LL[bVar"b'2",bVar"b'1",bVar"b'0"])])), 20332 (Bop(And,Mop(Not,bVar"b'24"),bVar"b'22"), 20333 Const("CReturn",CTy"CHERICOP2"))], 20334 Const("UnknownCapInstruction",CTy"CHERICOP2")))], 20335 Const("UnknownCapInstruction",CTy"CHERICOP2"))), 20336 (bVar"b'25", 20337 ITE(Mop(Not,bVar"b'24"), 20338 ITB([(Bop(And,bVar"b'22",Mop(Not,bVar"b'21")), 20339 Call 20340 ("CSet",CTy"CHERICOP2", 20341 Call 20342 ("CSetBoundsImmediate",CTy"CSet", 20343 TP[Mop(Cast(FTy 5), 20344 LL[bVar"b'20",bVar"b'19", 20345 bVar"b'18",bVar"b'17", 20346 bVar"b'16"]), 20347 Mop(Cast(FTy 5), 20348 LL[bVar"b'15",bVar"b'14", 20349 bVar"b'13",bVar"b'12", 20350 bVar"b'11"]), 20351 Mop(Cast(FTy 11), 20352 LL[bVar"b'10",bVar"b'9", 20353 bVar"b'8",bVar"b'7", 20354 bVar"b'6",bVar"b'5", 20355 bVar"b'4",bVar"b'3", 20356 bVar"b'2",bVar"b'1",bVar"b'0"])]))), 20357 (Bop(And,Mop(Not,bVar"b'22"),bVar"b'21"), 20358 Call 20359 ("CSet",CTy"CHERICOP2", 20360 Call 20361 ("CIncOffsetImmediate",CTy"CSet", 20362 TP[Mop(Cast(FTy 5), 20363 LL[bVar"b'20",bVar"b'19", 20364 bVar"b'18",bVar"b'17", 20365 bVar"b'16"]), 20366 Mop(Cast(FTy 5), 20367 LL[bVar"b'15",bVar"b'14", 20368 bVar"b'13",bVar"b'12", 20369 bVar"b'11"]), 20370 Mop(Cast(FTy 11), 20371 LL[bVar"b'10",bVar"b'9", 20372 bVar"b'8",bVar"b'7", 20373 bVar"b'6",bVar"b'5", 20374 bVar"b'4",bVar"b'3", 20375 bVar"b'2",bVar"b'1",bVar"b'0"])]))), 20376 (Bop(And,Mop(Not,bVar"b'22"), 20377 Bop(And,Mop(Not,bVar"b'21"), 20378 Bop(And,bVar"b'3", 20379 Bop(And,Mop(Not,bVar"b'1"), 20380 Mop(Not,bVar"b'0"))))), 20381 Call 20382 ("CLLx",CTy"CHERICOP2", 20383 TP[Mop(Cast(FTy 5), 20384 LL[bVar"b'20",bVar"b'19", 20385 bVar"b'18",bVar"b'17",bVar"b'16"]), 20386 Mop(Cast(FTy 5), 20387 LL[bVar"b'15",bVar"b'14", 20388 bVar"b'13",bVar"b'12",bVar"b'11"]), 20389 CC[Mop(Cast F1,LL[bVar"b'2"]),LW(0,2)]])), 20390 (Bop(And,Mop(Not,bVar"b'22"), 20391 Bop(And,Mop(Not,bVar"b'21"), 20392 Bop(And,bVar"b'3", 20393 Bop(And,Mop(Not,bVar"b'1"), 20394 bVar"b'0")))), 20395 Call 20396 ("CLLx",CTy"CHERICOP2", 20397 TP[Mop(Cast(FTy 5), 20398 LL[bVar"b'20",bVar"b'19", 20399 bVar"b'18",bVar"b'17",bVar"b'16"]), 20400 Mop(Cast(FTy 5), 20401 LL[bVar"b'15",bVar"b'14", 20402 bVar"b'13",bVar"b'12",bVar"b'11"]), 20403 CC[Mop(Cast F1,LL[bVar"b'2"]),LW(1,2)]])), 20404 (Bop(And,Mop(Not,bVar"b'22"), 20405 Bop(And,Mop(Not,bVar"b'21"), 20406 Bop(And,bVar"b'3", 20407 Bop(And,bVar"b'1", 20408 Mop(Not,bVar"b'0"))))), 20409 Call 20410 ("CLLx",CTy"CHERICOP2", 20411 TP[Mop(Cast(FTy 5), 20412 LL[bVar"b'20",bVar"b'19", 20413 bVar"b'18",bVar"b'17",bVar"b'16"]), 20414 Mop(Cast(FTy 5), 20415 LL[bVar"b'15",bVar"b'14", 20416 bVar"b'13",bVar"b'12",bVar"b'11"]), 20417 CC[Mop(Cast F1,LL[bVar"b'2"]),LW(2,2)]])), 20418 (Bop(And,Mop(Not,bVar"b'22"), 20419 Bop(And,Mop(Not,bVar"b'21"), 20420 Bop(And,bVar"b'3", 20421 Bop(And,Mop(Not,bVar"b'2"), 20422 Bop(And,bVar"b'1",bVar"b'0"))))), 20423 Call 20424 ("CLLx",CTy"CHERICOP2", 20425 TP[Mop(Cast(FTy 5), 20426 LL[bVar"b'20",bVar"b'19", 20427 bVar"b'18",bVar"b'17",bVar"b'16"]), 20428 Mop(Cast(FTy 5), 20429 LL[bVar"b'15",bVar"b'14", 20430 bVar"b'13",bVar"b'12",bVar"b'11"]), 20431 LW(3,3)])), 20432 (Bop(And,Mop(Not,bVar"b'22"), 20433 Bop(And,Mop(Not,bVar"b'21"), 20434 Bop(And,bVar"b'3", 20435 Bop(And,bVar"b'2", 20436 Bop(And,bVar"b'1",bVar"b'0"))))), 20437 Call 20438 ("CLLC",CTy"CHERICOP2", 20439 TP[Mop(Cast(FTy 5), 20440 LL[bVar"b'20",bVar"b'19", 20441 bVar"b'18",bVar"b'17",bVar"b'16"]), 20442 Mop(Cast(FTy 5), 20443 LL[bVar"b'15",bVar"b'14", 20444 bVar"b'13",bVar"b'12",bVar"b'11"])])), 20445 (Bop(And,Mop(Not,bVar"b'22"), 20446 Bop(And,Mop(Not,bVar"b'21"), 20447 Bop(And,Mop(Not,bVar"b'3"), 20448 Mop(Not,bVar"b'2")))), 20449 Call 20450 ("CSCx",CTy"CHERICOP2", 20451 TP[Mop(Cast(FTy 5), 20452 LL[bVar"b'20",bVar"b'19", 20453 bVar"b'18",bVar"b'17",bVar"b'16"]), 20454 Mop(Cast(FTy 5), 20455 LL[bVar"b'15",bVar"b'14", 20456 bVar"b'13",bVar"b'12",bVar"b'11"]), 20457 Mop(Cast(FTy 5), 20458 LL[bVar"b'10",bVar"b'9",bVar"b'8", 20459 bVar"b'7",bVar"b'6"]), 20460 Mop(Cast(FTy 2),LL[bVar"b'1",bVar"b'0"])])), 20461 (Bop(And,Mop(Not,bVar"b'22"), 20462 Bop(And,Mop(Not,bVar"b'21"), 20463 Bop(And,Mop(Not,bVar"b'3"), 20464 Bop(And,bVar"b'2", 20465 Bop(And,bVar"b'1",bVar"b'0"))))), 20466 Call 20467 ("CSCC",CTy"CHERICOP2", 20468 TP[Mop(Cast(FTy 5), 20469 LL[bVar"b'20",bVar"b'19", 20470 bVar"b'18",bVar"b'17",bVar"b'16"]), 20471 Mop(Cast(FTy 5), 20472 LL[bVar"b'15",bVar"b'14", 20473 bVar"b'13",bVar"b'12",bVar"b'11"]), 20474 Mop(Cast(FTy 5), 20475 LL[bVar"b'10",bVar"b'9",bVar"b'8", 20476 bVar"b'7",bVar"b'6"])]))], 20477 Const("UnknownCapInstruction",CTy"CHERICOP2")), 20478 Const("UnknownCapInstruction",CTy"CHERICOP2"))), 20479 (bVar"b'24", 20480 ITB([(Bop(And,bVar"b'22", 20481 Bop(And,bVar"b'21", 20482 Bop(And,Mop(Not,bVar"b'2"), 20483 Bop(And,Mop(Not,bVar"b'1"), 20484 Mop(Not,bVar"b'0"))))), 20485 Call 20486 ("CCheck",CTy"CHERICOP2", 20487 Call 20488 ("CCheckPerm",CTy"CCheck", 20489 TP[Mop(Cast(FTy 5), 20490 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20491 bVar"b'17",bVar"b'16"]), 20492 Mop(Cast(FTy 5), 20493 LL[bVar"b'10",bVar"b'9",bVar"b'8", 20494 bVar"b'7",bVar"b'6"])]))), 20495 (Bop(And,bVar"b'22", 20496 Bop(And,bVar"b'21", 20497 Bop(And,Mop(Not,bVar"b'2"), 20498 Bop(And,Mop(Not,bVar"b'1"),bVar"b'0")))), 20499 Call 20500 ("CCheck",CTy"CHERICOP2", 20501 Call 20502 ("CCheckType",CTy"CCheck", 20503 TP[Mop(Cast(FTy 5), 20504 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20505 bVar"b'17",bVar"b'16"]), 20506 Mop(Cast(FTy 5), 20507 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20508 bVar"b'12",bVar"b'11"])]))), 20509 (Bop(And,Mop(Not,bVar"b'22"),bVar"b'21"), 20510 Call 20511 ("CBTU",CTy"CHERICOP2", 20512 TP[Mop(Cast(FTy 5), 20513 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20514 bVar"b'17",bVar"b'16"]), 20515 Mop(Cast F16, 20516 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20517 bVar"b'12",bVar"b'11",bVar"b'10", 20518 bVar"b'9",bVar"b'8",bVar"b'7", 20519 bVar"b'6",bVar"b'5",bVar"b'4", 20520 bVar"b'3",bVar"b'2",bVar"b'1", 20521 bVar"b'0"])])), 20522 (Bop(And,bVar"b'22",Mop(Not,bVar"b'21")), 20523 Call 20524 ("CBTS",CTy"CHERICOP2", 20525 TP[Mop(Cast(FTy 5), 20526 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20527 bVar"b'17",bVar"b'16"]), 20528 Mop(Cast F16, 20529 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20530 bVar"b'12",bVar"b'11",bVar"b'10", 20531 bVar"b'9",bVar"b'8",bVar"b'7", 20532 bVar"b'6",bVar"b'5",bVar"b'4", 20533 bVar"b'3",bVar"b'2",bVar"b'1", 20534 bVar"b'0"])])), 20535 (Bop(And,Mop(Not,bVar"b'22"),Mop(Not,bVar"b'21")), 20536 Call 20537 ("CJR",CTy"CHERICOP2", 20538 Mop(Cast(FTy 5), 20539 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20540 bVar"b'12",bVar"b'11"])))], 20541 Const("UnknownCapInstruction",CTy"CHERICOP2"))), 20542 (Bop(And,Mop(Not,bVar"b'22"), 20543 Bop(And,Mop(Not,bVar"b'21"), 20544 Bop(And,Mop(Not,bVar"b'5"), 20545 Bop(And,Mop(Not,bVar"b'4"), 20546 Bop(And,Mop(Not,bVar"b'3"), 20547 Bop(And,Mop(Not,bVar"b'2"), 20548 Bop(And,bVar"b'1", 20549 Mop(Not,bVar"b'0")))))))), 20550 Call 20551 ("CGet",CTy"CHERICOP2", 20552 Call 20553 ("CGetBase",CTy"CGet", 20554 TP[Mop(Cast(FTy 5), 20555 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20556 bVar"b'17",bVar"b'16"]), 20557 Mop(Cast(FTy 5), 20558 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20559 bVar"b'12",bVar"b'11"])]))), 20560 (Bop(And,Mop(Not,bVar"b'22"), 20561 Bop(And,Mop(Not,bVar"b'21"), 20562 Bop(And,Mop(Not,bVar"b'5"), 20563 Bop(And,Mop(Not,bVar"b'4"), 20564 Bop(And,Mop(Not,bVar"b'3"), 20565 Bop(And,Mop(Not,bVar"b'2"), 20566 Bop(And,bVar"b'1",bVar"b'0"))))))), 20567 Call 20568 ("CGet",CTy"CHERICOP2", 20569 Call 20570 ("CGetLen",CTy"CGet", 20571 TP[Mop(Cast(FTy 5), 20572 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20573 bVar"b'17",bVar"b'16"]), 20574 Mop(Cast(FTy 5), 20575 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20576 bVar"b'12",bVar"b'11"])]))), 20577 (Bop(And,Mop(Not,bVar"b'22"), 20578 Bop(And,Mop(Not,bVar"b'21"), 20579 Bop(And,Mop(Not,bVar"b'5"), 20580 Bop(And,Mop(Not,bVar"b'4"), 20581 Bop(And,Mop(Not,bVar"b'3"), 20582 Bop(And,bVar"b'2", 20583 Bop(And,Mop(Not,bVar"b'1"), 20584 bVar"b'0"))))))), 20585 Call 20586 ("CGet",CTy"CHERICOP2", 20587 Call 20588 ("CGetTag",CTy"CGet", 20589 TP[Mop(Cast(FTy 5), 20590 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20591 bVar"b'17",bVar"b'16"]), 20592 Mop(Cast(FTy 5), 20593 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20594 bVar"b'12",bVar"b'11"])]))), 20595 (Bop(And,Mop(Not,bVar"b'22"), 20596 Bop(And,Mop(Not,bVar"b'21"), 20597 Bop(And,Mop(Not,bVar"b'5"), 20598 Bop(And,Mop(Not,bVar"b'4"), 20599 Bop(And,Mop(Not,bVar"b'3"), 20600 Bop(And,bVar"b'2", 20601 Bop(And,bVar"b'1", 20602 Mop(Not,bVar"b'0")))))))), 20603 Call 20604 ("CGet",CTy"CHERICOP2", 20605 Call 20606 ("CGetSealed",CTy"CGet", 20607 TP[Mop(Cast(FTy 5), 20608 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20609 bVar"b'17",bVar"b'16"]), 20610 Mop(Cast(FTy 5), 20611 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20612 bVar"b'12",bVar"b'11"])]))), 20613 (Bop(And,Mop(Not,bVar"b'22"), 20614 Bop(And,Mop(Not,bVar"b'21"), 20615 Bop(And,Mop(Not,bVar"b'5"), 20616 Bop(And,Mop(Not,bVar"b'4"), 20617 Bop(And,Mop(Not,bVar"b'3"), 20618 Bop(And,Mop(Not,bVar"b'2"), 20619 Bop(And,Mop(Not,bVar"b'1"), 20620 Mop(Not,bVar"b'0")))))))), 20621 Call 20622 ("CGet",CTy"CHERICOP2", 20623 Call 20624 ("CGetPerm",CTy"CGet", 20625 TP[Mop(Cast(FTy 5), 20626 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20627 bVar"b'17",bVar"b'16"]), 20628 Mop(Cast(FTy 5), 20629 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20630 bVar"b'12",bVar"b'11"])]))), 20631 (Bop(And,Mop(Not,bVar"b'22"), 20632 Bop(And,Mop(Not,bVar"b'21"), 20633 Bop(And,Mop(Not,bVar"b'5"), 20634 Bop(And,Mop(Not,bVar"b'4"), 20635 Bop(And,Mop(Not,bVar"b'3"), 20636 Bop(And,Mop(Not,bVar"b'2"), 20637 Bop(And,Mop(Not,bVar"b'1"), 20638 bVar"b'0"))))))), 20639 Call 20640 ("CGet",CTy"CHERICOP2", 20641 Call 20642 ("CGetType",CTy"CGet", 20643 TP[Mop(Cast(FTy 5), 20644 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20645 bVar"b'17",bVar"b'16"]), 20646 Mop(Cast(FTy 5), 20647 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20648 bVar"b'12",bVar"b'11"])]))), 20649 (Bop(And,Mop(Not,bVar"b'22"), 20650 Bop(And,Mop(Not,bVar"b'21"), 20651 Bop(And,Mop(Not,bVar"b'15"), 20652 Bop(And,Mop(Not,bVar"b'14"), 20653 Bop(And,Mop(Not,bVar"b'13"), 20654 Bop(And,Mop(Not,bVar"b'12"), 20655 Bop(And,Mop(Not,bVar"b'11"), 20656 Bop(And,bVar"b'10", 20657 Bop(And,bVar"b'9", 20658 Bop(And,bVar"b'8", 20659 Bop(And, 20660 bVar"b'7", 20661 Bop(And, 20662 bVar"b'6", 20663 Bop(And, 20664 bVar"b'5", 20665 Bop(And, 20666 bVar"b'4", 20667 Bop(And, 20668 bVar"b'3", 20669 Bop(And, 20670 bVar"b'2", 20671 Bop(And, 20672 bVar"b'1", 20673 bVar"b'0"))))))))))))))))), 20674 Call 20675 ("CGet",CTy"CHERICOP2", 20676 Call 20677 ("CGetPCC",CTy"CGet", 20678 Mop(Cast(FTy 5), 20679 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20680 bVar"b'17",bVar"b'16"])))), 20681 (Bop(And,Mop(Not,bVar"b'22"), 20682 Bop(And,Mop(Not,bVar"b'21"), 20683 Bop(And,Mop(Not,bVar"b'10"), 20684 Bop(And,Mop(Not,bVar"b'9"), 20685 Bop(And,bVar"b'8", 20686 Bop(And,bVar"b'7", 20687 Bop(And,bVar"b'6", 20688 Bop(And,bVar"b'5", 20689 Bop(And,bVar"b'4", 20690 Bop(And,bVar"b'3", 20691 Bop(And, 20692 bVar"b'2", 20693 Bop(And, 20694 bVar"b'1", 20695 bVar"b'0")))))))))))), 20696 Call 20697 ("CGet",CTy"CHERICOP2", 20698 Call 20699 ("CGetPCCSetOffset",CTy"CGet", 20700 TP[Mop(Cast(FTy 5), 20701 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20702 bVar"b'17",bVar"b'16"]), 20703 Mop(Cast(FTy 5), 20704 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20705 bVar"b'12",bVar"b'11"])]))), 20706 (Bop(And,Mop(Not,bVar"b'22"), 20707 Bop(And,Mop(Not,bVar"b'21"), 20708 Bop(And,Mop(Not,bVar"b'15"), 20709 Bop(And,Mop(Not,bVar"b'14"), 20710 Bop(And,Mop(Not,bVar"b'13"), 20711 Bop(And,Mop(Not,bVar"b'12"), 20712 Bop(And,Mop(Not,bVar"b'11"), 20713 Bop(And,Mop(Not,bVar"b'5"), 20714 Bop(And, 20715 Mop(Not,bVar"b'4"), 20716 Bop(And, 20717 Mop(Not, 20718 bVar"b'3"), 20719 Bop(And, 20720 bVar"b'2", 20721 Bop(And, 20722 Mop(Not, 20723 bVar"b'1"), 20724 Mop(Not, 20725 bVar"b'0"))))))))))))), 20726 Call 20727 ("CGet",CTy"CHERICOP2", 20728 Call 20729 ("CGetCause",CTy"CGet", 20730 Mop(Cast(FTy 5), 20731 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20732 bVar"b'17",bVar"b'16"])))), 20733 (Bop(And,Mop(Not,bVar"b'22"),bVar"b'21"), 20734 Call 20735 ("CSet",CTy"CHERICOP2", 20736 Call 20737 ("CSetBounds",CTy"CSet", 20738 TP[Mop(Cast(FTy 5), 20739 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20740 bVar"b'17",bVar"b'16"]), 20741 Mop(Cast(FTy 5), 20742 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20743 bVar"b'12",bVar"b'11"]), 20744 Mop(Cast(FTy 5), 20745 LL[bVar"b'10",bVar"b'9",bVar"b'8", 20746 bVar"b'7",bVar"b'6"])]))), 20747 (Bop(And,Mop(Not,bVar"b'22"), 20748 Bop(And,Mop(Not,bVar"b'21"), 20749 Bop(And,Mop(Not,bVar"b'5"), 20750 Bop(And,Mop(Not,bVar"b'4"), 20751 Bop(And,bVar"b'3", 20752 Bop(And,Mop(Not,bVar"b'2"), 20753 Bop(And,Mop(Not,bVar"b'1"), 20754 bVar"b'0"))))))), 20755 Call 20756 ("CSet",CTy"CHERICOP2", 20757 Call 20758 ("CSetBoundsExact",CTy"CSet", 20759 TP[Mop(Cast(FTy 5), 20760 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20761 bVar"b'17",bVar"b'16"]), 20762 Mop(Cast(FTy 5), 20763 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20764 bVar"b'12",bVar"b'11"]), 20765 Mop(Cast(FTy 5), 20766 LL[bVar"b'10",bVar"b'9",bVar"b'8", 20767 bVar"b'7",bVar"b'6"])]))), 20768 (Bop(And,Mop(Not,bVar"b'22"), 20769 Bop(And,Mop(Not,bVar"b'21"), 20770 Bop(And,Mop(Not,bVar"b'5"), 20771 Bop(And,Mop(Not,bVar"b'4"), 20772 Bop(And,bVar"b'3", 20773 Bop(And,Mop(Not,bVar"b'2"), 20774 Bop(And,bVar"b'1", 20775 Mop(Not,bVar"b'0")))))))), 20776 Call 20777 ("CSub",CTy"CHERICOP2", 20778 TP[Mop(Cast(FTy 5), 20779 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20780 bVar"b'17",bVar"b'16"]), 20781 Mop(Cast(FTy 5), 20782 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20783 bVar"b'12",bVar"b'11"]), 20784 Mop(Cast(FTy 5), 20785 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 20786 bVar"b'6"])])), 20787 (Bop(And,bVar"b'22",Mop(Not,bVar"b'21")), 20788 Call 20789 ("CSeal",CTy"CHERICOP2", 20790 TP[Mop(Cast(FTy 5), 20791 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20792 bVar"b'17",bVar"b'16"]), 20793 Mop(Cast(FTy 5), 20794 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20795 bVar"b'12",bVar"b'11"]), 20796 Mop(Cast(FTy 5), 20797 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 20798 bVar"b'6"])])), 20799 (Bop(And,bVar"b'22",bVar"b'21"), 20800 Call 20801 ("CUnseal",CTy"CHERICOP2", 20802 TP[Mop(Cast(FTy 5), 20803 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20804 bVar"b'17",bVar"b'16"]), 20805 Mop(Cast(FTy 5), 20806 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20807 bVar"b'12",bVar"b'11"]), 20808 Mop(Cast(FTy 5), 20809 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 20810 bVar"b'6"])])), 20811 (Bop(And,Mop(Not,bVar"b'22"), 20812 Bop(And,Mop(Not,bVar"b'21"), 20813 Bop(And,Mop(Not,bVar"b'5"), 20814 Bop(And,bVar"b'4", 20815 Bop(And,bVar"b'3", 20816 Bop(And,bVar"b'2", 20817 Bop(And,Mop(Not,bVar"b'1"), 20818 Mop(Not,bVar"b'0")))))))), 20819 Call 20820 ("CMOVN",CTy"CHERICOP2", 20821 TP[Mop(Cast(FTy 5), 20822 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20823 bVar"b'17",bVar"b'16"]), 20824 Mop(Cast(FTy 5), 20825 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20826 bVar"b'12",bVar"b'11"]), 20827 Mop(Cast(FTy 5), 20828 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 20829 bVar"b'6"])])), 20830 (Bop(And,Mop(Not,bVar"b'22"), 20831 Bop(And,Mop(Not,bVar"b'21"), 20832 Bop(And,Mop(Not,bVar"b'5"), 20833 Bop(And,bVar"b'4", 20834 Bop(And,bVar"b'3", 20835 Bop(And,Mop(Not,bVar"b'2"), 20836 Bop(And,bVar"b'1",bVar"b'0"))))))), 20837 Call 20838 ("CMOVZ",CTy"CHERICOP2", 20839 TP[Mop(Cast(FTy 5), 20840 LL[bVar"b'20",bVar"b'19",bVar"b'18", 20841 bVar"b'17",bVar"b'16"]), 20842 Mop(Cast(FTy 5), 20843 LL[bVar"b'15",bVar"b'14",bVar"b'13", 20844 bVar"b'12",bVar"b'11"]), 20845 Mop(Cast(FTy 5), 20846 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 20847 bVar"b'6"])]))], 20848 Const("UnknownCapInstruction",CTy"CHERICOP2")))))) 20849; 20850val LWC2Decode_def = Def 20851 ("LWC2Decode", 20852 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5),Var("offset",F8), 20853 Var("v",FTy 3)], 20854 CS(BL(3,Var("v",FTy 3)), 20855 [(TP[LF,bVar"t'1",bVar"t'0"], 20856 Call 20857 ("LWC2",CTy"instruction", 20858 Call 20859 ("CHERILWC2",CTy"LWC2", 20860 Call 20861 ("CLoad",CTy"CHERILWC2", 20862 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 20863 Var("offset",F8),LW(0,1), 20864 Mop(Cast(FTy 2),LL[bVar"t'1",bVar"t'0"])])))), 20865 (TP[LT,LF,LF], 20866 Call 20867 ("LWC2",CTy"instruction", 20868 Call 20869 ("CHERILWC2",CTy"LWC2", 20870 Call 20871 ("CLoad",CTy"CHERILWC2", 20872 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 20873 Var("offset",F8),LW(1,1),LW(0,2)])))), 20874 (TP[LT,LF,LT], 20875 Call 20876 ("LWC2",CTy"instruction", 20877 Call 20878 ("CHERILWC2",CTy"LWC2", 20879 Call 20880 ("CLoad",CTy"CHERILWC2", 20881 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 20882 Var("offset",F8),LW(1,1),LW(1,2)])))), 20883 (TP[LT,LT,LF], 20884 Call 20885 ("LWC2",CTy"instruction", 20886 Call 20887 ("CHERILWC2",CTy"LWC2", 20888 Call 20889 ("CLoad",CTy"CHERILWC2", 20890 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 20891 Var("offset",F8),LW(1,1),LW(2,2)])))), 20892 (TP[AVar bTy,AVar bTy,AVar bTy], 20893 Call 20894 ("COP2",CTy"instruction", 20895 Call 20896 ("CHERICOP2",CTy"COP2", 20897 Const("UnknownCapInstruction",CTy"CHERICOP2"))))])) 20898; 20899val SWC2Decode_def = Def 20900 ("SWC2Decode", 20901 TP[Var("rs",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5),Var("offset",F8), 20902 Var("v",FTy 3)], 20903 CS(BL(3,Var("v",FTy 3)), 20904 [(TP[LF,bVar"t'1",bVar"t'0"], 20905 Call 20906 ("SWC2",CTy"instruction", 20907 Call 20908 ("CHERISWC2",CTy"SWC2", 20909 Call 20910 ("CStore",CTy"CHERISWC2", 20911 TP[Var("rs",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 20912 Var("offset",F8), 20913 Mop(Cast(FTy 2),LL[bVar"t'1",bVar"t'0"])])))), 20914 (TP[AVar bTy,AVar bTy,AVar bTy], 20915 Call 20916 ("COP2",CTy"instruction", 20917 Call 20918 ("CHERICOP2",CTy"COP2", 20919 Const("UnknownCapInstruction",CTy"CHERICOP2"))))])) 20920; 20921val LDC2Decode_def = Def 20922 ("LDC2Decode",Var("a",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11)))), 20923 Call 20924 ("LDC2",CTy"instruction", 20925 Call 20926 ("CHERILDC2",CTy"LDC2", 20927 Call 20928 ("CLC",CTy"CHERILDC2", 20929 Var("a",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11)))))))) 20930; 20931val SDC2Decode_def = Def 20932 ("SDC2Decode",Var("a",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11)))), 20933 Call 20934 ("SDC2",CTy"instruction", 20935 Call 20936 ("CHERISDC2",CTy"SDC2", 20937 Call 20938 ("CSC",CTy"CHERISDC2", 20939 Var("a",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 11)))))))) 20940; 20941val Decode_def = Def 20942 ("Decode",Var("w",F32), 20943 Let(TP[bVar"b'31",bVar"b'30",bVar"b'29",bVar"b'28",bVar"b'27", 20944 bVar"b'26",bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 20945 bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 20946 bVar"b'16",bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 20947 bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", 20948 bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], 20949 BL(32,Var("w",F32)), 20950 ITB([(bVar"b'26", 20951 ITB([(bVar"b'28", 20952 ITB([(bVar"b'31", 20953 ITB([(bVar"b'30", 20954 ITB([(Bop(And,Mop(Not,bVar"b'29"), 20955 bVar"b'27"), 20956 Call 20957 ("Load",CTy"instruction", 20958 Call 20959 ("LD",CTy"Load", 20960 TP[Mop(Cast(FTy 5), 20961 LL[bVar"b'25", 20962 bVar"b'24", 20963 bVar"b'23", 20964 bVar"b'22",bVar"b'21"]), 20965 Mop(Cast(FTy 5), 20966 LL[bVar"b'20", 20967 bVar"b'19", 20968 bVar"b'18", 20969 bVar"b'17",bVar"b'16"]), 20970 Mop(Cast F16, 20971 LL[bVar"b'15", 20972 bVar"b'14", 20973 bVar"b'13", 20974 bVar"b'12", 20975 bVar"b'11", 20976 bVar"b'10",bVar"b'9", 20977 bVar"b'8",bVar"b'7", 20978 bVar"b'6",bVar"b'5", 20979 bVar"b'4",bVar"b'3", 20980 bVar"b'2",bVar"b'1", 20981 bVar"b'0"])]))), 20982 (Bop(And,bVar"b'29",bVar"b'27"), 20983 Call 20984 ("Store",CTy"instruction", 20985 Call 20986 ("SD",CTy"Store", 20987 TP[Mop(Cast(FTy 5), 20988 LL[bVar"b'25", 20989 bVar"b'24", 20990 bVar"b'23", 20991 bVar"b'22",bVar"b'21"]), 20992 Mop(Cast(FTy 5), 20993 LL[bVar"b'20", 20994 bVar"b'19", 20995 bVar"b'18", 20996 bVar"b'17",bVar"b'16"]), 20997 Mop(Cast F16, 20998 LL[bVar"b'15", 20999 bVar"b'14", 21000 bVar"b'13", 21001 bVar"b'12", 21002 bVar"b'11", 21003 bVar"b'10",bVar"b'9", 21004 bVar"b'8",bVar"b'7", 21005 bVar"b'6",bVar"b'5", 21006 bVar"b'4",bVar"b'3", 21007 bVar"b'2",bVar"b'1", 21008 bVar"b'0"])]))), 21009 (Bop(And,Mop(Not,bVar"b'29"), 21010 Mop(Not,bVar"b'27")), 21011 Call 21012 ("LDC1Decode",CTy"instruction", 21013 TP[Mop(Cast(FTy 5), 21014 LL[bVar"b'20",bVar"b'19", 21015 bVar"b'18",bVar"b'17", 21016 bVar"b'16"]), 21017 Mop(Cast F16, 21018 LL[bVar"b'15",bVar"b'14", 21019 bVar"b'13",bVar"b'12", 21020 bVar"b'11",bVar"b'10", 21021 bVar"b'9",bVar"b'8", 21022 bVar"b'7",bVar"b'6", 21023 bVar"b'5",bVar"b'4", 21024 bVar"b'3",bVar"b'2", 21025 bVar"b'1",bVar"b'0"]), 21026 Mop(Cast(FTy 5), 21027 LL[bVar"b'25",bVar"b'24", 21028 bVar"b'23",bVar"b'22", 21029 bVar"b'21"])])), 21030 (Bop(And,bVar"b'29", 21031 Mop(Not,bVar"b'27")), 21032 Call 21033 ("SDC1Decode",CTy"instruction", 21034 TP[Mop(Cast(FTy 5), 21035 LL[bVar"b'20",bVar"b'19", 21036 bVar"b'18",bVar"b'17", 21037 bVar"b'16"]), 21038 Mop(Cast F16, 21039 LL[bVar"b'15",bVar"b'14", 21040 bVar"b'13",bVar"b'12", 21041 bVar"b'11",bVar"b'10", 21042 bVar"b'9",bVar"b'8", 21043 bVar"b'7",bVar"b'6", 21044 bVar"b'5",bVar"b'4", 21045 bVar"b'3",bVar"b'2", 21046 bVar"b'1",bVar"b'0"]), 21047 Mop(Cast(FTy 5), 21048 LL[bVar"b'25",bVar"b'24", 21049 bVar"b'23",bVar"b'22", 21050 bVar"b'21"])]))], 21051 Const 21052 ("ReservedInstruction", 21053 CTy"instruction"))), 21054 (Bop(And,Mop(Not,bVar"b'29"), 21055 Mop(Not,bVar"b'27")), 21056 Call 21057 ("Load",CTy"instruction", 21058 Call 21059 ("LHU",CTy"Load", 21060 TP[Mop(Cast(FTy 5), 21061 LL[bVar"b'25",bVar"b'24", 21062 bVar"b'23",bVar"b'22", 21063 bVar"b'21"]), 21064 Mop(Cast(FTy 5), 21065 LL[bVar"b'20",bVar"b'19", 21066 bVar"b'18",bVar"b'17", 21067 bVar"b'16"]), 21068 Mop(Cast F16, 21069 LL[bVar"b'15",bVar"b'14", 21070 bVar"b'13",bVar"b'12", 21071 bVar"b'11",bVar"b'10", 21072 bVar"b'9",bVar"b'8", 21073 bVar"b'7",bVar"b'6", 21074 bVar"b'5",bVar"b'4", 21075 bVar"b'3",bVar"b'2", 21076 bVar"b'1",bVar"b'0"])]))), 21077 (Bop(And,Mop(Not,bVar"b'29"),bVar"b'27"), 21078 Call 21079 ("Load",CTy"instruction", 21080 Call 21081 ("LWU",CTy"Load", 21082 TP[Mop(Cast(FTy 5), 21083 LL[bVar"b'25",bVar"b'24", 21084 bVar"b'23",bVar"b'22", 21085 bVar"b'21"]), 21086 Mop(Cast(FTy 5), 21087 LL[bVar"b'20",bVar"b'19", 21088 bVar"b'18",bVar"b'17", 21089 bVar"b'16"]), 21090 Mop(Cast F16, 21091 LL[bVar"b'15",bVar"b'14", 21092 bVar"b'13",bVar"b'12", 21093 bVar"b'11",bVar"b'10", 21094 bVar"b'9",bVar"b'8", 21095 bVar"b'7",bVar"b'6", 21096 bVar"b'5",bVar"b'4", 21097 bVar"b'3",bVar"b'2", 21098 bVar"b'1",bVar"b'0"])]))), 21099 (Bop(And,bVar"b'29",Mop(Not,bVar"b'27")), 21100 Call 21101 ("Store",CTy"instruction", 21102 Call 21103 ("SDR",CTy"Store", 21104 TP[Mop(Cast(FTy 5), 21105 LL[bVar"b'25",bVar"b'24", 21106 bVar"b'23",bVar"b'22", 21107 bVar"b'21"]), 21108 Mop(Cast(FTy 5), 21109 LL[bVar"b'20",bVar"b'19", 21110 bVar"b'18",bVar"b'17", 21111 bVar"b'16"]), 21112 Mop(Cast F16, 21113 LL[bVar"b'15",bVar"b'14", 21114 bVar"b'13",bVar"b'12", 21115 bVar"b'11",bVar"b'10", 21116 bVar"b'9",bVar"b'8", 21117 bVar"b'7",bVar"b'6", 21118 bVar"b'5",bVar"b'4", 21119 bVar"b'3",bVar"b'2", 21120 bVar"b'1",bVar"b'0"])]))), 21121 (Bop(And,bVar"b'29",bVar"b'27"), 21122 Call 21123 ("CACHE",CTy"instruction", 21124 TP[Mop(Cast(FTy 5), 21125 LL[bVar"b'25",bVar"b'24", 21126 bVar"b'23",bVar"b'22", 21127 bVar"b'21"]), 21128 Mop(Cast(FTy 5), 21129 LL[bVar"b'20",bVar"b'19", 21130 bVar"b'18",bVar"b'17", 21131 bVar"b'16"]), 21132 Mop(Cast F16, 21133 LL[bVar"b'15",bVar"b'14", 21134 bVar"b'13",bVar"b'12", 21135 bVar"b'11",bVar"b'10", 21136 bVar"b'9",bVar"b'8",bVar"b'7", 21137 bVar"b'6",bVar"b'5",bVar"b'4", 21138 bVar"b'3",bVar"b'2",bVar"b'1", 21139 bVar"b'0"])]))], 21140 Const("ReservedInstruction",CTy"instruction"))), 21141 (Bop(And,Mop(Not,bVar"b'30"), 21142 Bop(And,Mop(Not,bVar"b'29"), 21143 Bop(And,bVar"b'27", 21144 Bop(And,Mop(Not,bVar"b'20"), 21145 Bop(And,Mop(Not,bVar"b'19"), 21146 Bop(And,Mop(Not,bVar"b'18"), 21147 Bop(And, 21148 Mop(Not,bVar"b'17"), 21149 Mop(Not,bVar"b'16")))))))), 21150 Call 21151 ("Branch",CTy"instruction", 21152 Call 21153 ("BGTZ",CTy"Branch", 21154 TP[Mop(Cast(FTy 5), 21155 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21156 bVar"b'22",bVar"b'21"]), 21157 Mop(Cast F16, 21158 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21159 bVar"b'12",bVar"b'11",bVar"b'10", 21160 bVar"b'9",bVar"b'8",bVar"b'7", 21161 bVar"b'6",bVar"b'5",bVar"b'4", 21162 bVar"b'3",bVar"b'2",bVar"b'1", 21163 bVar"b'0"])]))), 21164 (Bop(And,Mop(Not,bVar"b'30"), 21165 Bop(And,bVar"b'29", 21166 Bop(And,bVar"b'27", 21167 Bop(And,Mop(Not,bVar"b'25"), 21168 Bop(And,Mop(Not,bVar"b'24"), 21169 Bop(And,Mop(Not,bVar"b'23"), 21170 Bop(And, 21171 Mop(Not,bVar"b'22"), 21172 Mop(Not,bVar"b'21")))))))), 21173 Call 21174 ("ArithI",CTy"instruction", 21175 Call 21176 ("LUI",CTy"ArithI", 21177 TP[Mop(Cast(FTy 5), 21178 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21179 bVar"b'17",bVar"b'16"]), 21180 Mop(Cast F16, 21181 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21182 bVar"b'12",bVar"b'11",bVar"b'10", 21183 bVar"b'9",bVar"b'8",bVar"b'7", 21184 bVar"b'6",bVar"b'5",bVar"b'4", 21185 bVar"b'3",bVar"b'2",bVar"b'1", 21186 bVar"b'0"])]))), 21187 (Bop(And,bVar"b'30", 21188 Bop(And,Mop(Not,bVar"b'29"), 21189 Bop(And,bVar"b'27", 21190 Bop(And,Mop(Not,bVar"b'20"), 21191 Bop(And,Mop(Not,bVar"b'19"), 21192 Bop(And,Mop(Not,bVar"b'18"), 21193 Bop(And, 21194 Mop(Not,bVar"b'17"), 21195 Mop(Not,bVar"b'16")))))))), 21196 Call 21197 ("Branch",CTy"instruction", 21198 Call 21199 ("BGTZL",CTy"Branch", 21200 TP[Mop(Cast(FTy 5), 21201 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21202 bVar"b'22",bVar"b'21"]), 21203 Mop(Cast F16, 21204 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21205 bVar"b'12",bVar"b'11",bVar"b'10", 21206 bVar"b'9",bVar"b'8",bVar"b'7", 21207 bVar"b'6",bVar"b'5",bVar"b'4", 21208 bVar"b'3",bVar"b'2",bVar"b'1", 21209 bVar"b'0"])]))), 21210 (Bop(And,Mop(Not,bVar"b'30"), 21211 Bop(And,Mop(Not,bVar"b'29"), 21212 Mop(Not,bVar"b'27"))), 21213 Call 21214 ("Branch",CTy"instruction", 21215 Call 21216 ("BNE",CTy"Branch", 21217 TP[Mop(Cast(FTy 5), 21218 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21219 bVar"b'22",bVar"b'21"]), 21220 Mop(Cast(FTy 5), 21221 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21222 bVar"b'17",bVar"b'16"]), 21223 Mop(Cast F16, 21224 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21225 bVar"b'12",bVar"b'11",bVar"b'10", 21226 bVar"b'9",bVar"b'8",bVar"b'7", 21227 bVar"b'6",bVar"b'5",bVar"b'4", 21228 bVar"b'3",bVar"b'2",bVar"b'1", 21229 bVar"b'0"])]))), 21230 (Bop(And,Mop(Not,bVar"b'30"), 21231 Bop(And,bVar"b'29",Mop(Not,bVar"b'27"))), 21232 Call 21233 ("ArithI",CTy"instruction", 21234 Call 21235 ("ORI",CTy"ArithI", 21236 TP[Mop(Cast(FTy 5), 21237 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21238 bVar"b'22",bVar"b'21"]), 21239 Mop(Cast(FTy 5), 21240 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21241 bVar"b'17",bVar"b'16"]), 21242 Mop(Cast F16, 21243 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21244 bVar"b'12",bVar"b'11",bVar"b'10", 21245 bVar"b'9",bVar"b'8",bVar"b'7", 21246 bVar"b'6",bVar"b'5",bVar"b'4", 21247 bVar"b'3",bVar"b'2",bVar"b'1", 21248 bVar"b'0"])]))), 21249 (Bop(And,bVar"b'30", 21250 Bop(And,Mop(Not,bVar"b'29"), 21251 Mop(Not,bVar"b'27"))), 21252 Call 21253 ("Branch",CTy"instruction", 21254 Call 21255 ("BNEL",CTy"Branch", 21256 TP[Mop(Cast(FTy 5), 21257 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21258 bVar"b'22",bVar"b'21"]), 21259 Mop(Cast(FTy 5), 21260 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21261 bVar"b'17",bVar"b'16"]), 21262 Mop(Cast F16, 21263 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21264 bVar"b'12",bVar"b'11",bVar"b'10", 21265 bVar"b'9",bVar"b'8",bVar"b'7", 21266 bVar"b'6",bVar"b'5",bVar"b'4", 21267 bVar"b'3",bVar"b'2",bVar"b'1", 21268 bVar"b'0"])]))), 21269 (Bop(And,bVar"b'30", 21270 Bop(And,bVar"b'29", 21271 Bop(And,bVar"b'27", 21272 Bop(And,Mop(Not,bVar"b'25"), 21273 Bop(And,Mop(Not,bVar"b'24"), 21274 Bop(And,Mop(Not,bVar"b'23"), 21275 Bop(And, 21276 Mop(Not,bVar"b'22"), 21277 Bop(And, 21278 Mop(Not, 21279 bVar"b'21"), 21280 Bop(And, 21281 Mop(Not, 21282 bVar"b'10"), 21283 Bop(And, 21284 Mop(Not, 21285 bVar"b'9"), 21286 Bop(And, 21287 Mop(Not, 21288 bVar"b'8"), 21289 Bop(And, 21290 Mop(Not, 21291 bVar"b'7"), 21292 Bop(And, 21293 Mop(Not, 21294 bVar"b'6"), 21295 Bop(And, 21296 bVar"b'5", 21297 Bop(And, 21298 bVar"b'4", 21299 Bop(And, 21300 bVar"b'3", 21301 Bop(And, 21302 Mop(Not, 21303 bVar"b'2"), 21304 Bop(And, 21305 bVar"b'1", 21306 bVar"b'0")))))))))))))))))), 21307 Call 21308 ("RDHWR",CTy"instruction", 21309 TP[Mop(Cast(FTy 5), 21310 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21311 bVar"b'17",bVar"b'16"]), 21312 Mop(Cast(FTy 5), 21313 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21314 bVar"b'12",bVar"b'11"])]))], 21315 Const("ReservedInstruction",CTy"instruction"))), 21316 (bVar"b'29", 21317 ITB([(Bop(And,Mop(Not,bVar"b'31"), 21318 Bop(And,Mop(Not,bVar"b'30"), 21319 Mop(Not,bVar"b'27"))), 21320 Call 21321 ("ArithI",CTy"instruction", 21322 Call 21323 ("ADDIU",CTy"ArithI", 21324 TP[Mop(Cast(FTy 5), 21325 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21326 bVar"b'22",bVar"b'21"]), 21327 Mop(Cast(FTy 5), 21328 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21329 bVar"b'17",bVar"b'16"]), 21330 Mop(Cast F16, 21331 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21332 bVar"b'12",bVar"b'11",bVar"b'10", 21333 bVar"b'9",bVar"b'8",bVar"b'7", 21334 bVar"b'6",bVar"b'5",bVar"b'4", 21335 bVar"b'3",bVar"b'2",bVar"b'1", 21336 bVar"b'0"])]))), 21337 (Bop(And,Mop(Not,bVar"b'31"), 21338 Bop(And,Mop(Not,bVar"b'30"),bVar"b'27")), 21339 Call 21340 ("ArithI",CTy"instruction", 21341 Call 21342 ("SLTIU",CTy"ArithI", 21343 TP[Mop(Cast(FTy 5), 21344 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21345 bVar"b'22",bVar"b'21"]), 21346 Mop(Cast(FTy 5), 21347 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21348 bVar"b'17",bVar"b'16"]), 21349 Mop(Cast F16, 21350 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21351 bVar"b'12",bVar"b'11",bVar"b'10", 21352 bVar"b'9",bVar"b'8",bVar"b'7", 21353 bVar"b'6",bVar"b'5",bVar"b'4", 21354 bVar"b'3",bVar"b'2",bVar"b'1", 21355 bVar"b'0"])]))), 21356 (Bop(And,Mop(Not,bVar"b'31"), 21357 Bop(And,bVar"b'30",Mop(Not,bVar"b'27"))), 21358 Call 21359 ("ArithI",CTy"instruction", 21360 Call 21361 ("DADDIU",CTy"ArithI", 21362 TP[Mop(Cast(FTy 5), 21363 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21364 bVar"b'22",bVar"b'21"]), 21365 Mop(Cast(FTy 5), 21366 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21367 bVar"b'17",bVar"b'16"]), 21368 Mop(Cast F16, 21369 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21370 bVar"b'12",bVar"b'11",bVar"b'10", 21371 bVar"b'9",bVar"b'8",bVar"b'7", 21372 bVar"b'6",bVar"b'5",bVar"b'4", 21373 bVar"b'3",bVar"b'2",bVar"b'1", 21374 bVar"b'0"])]))), 21375 (Bop(And,Mop(Not,bVar"b'31"), 21376 Bop(And,bVar"b'30",bVar"b'27")), 21377 Call 21378 ("Load",CTy"instruction", 21379 Call 21380 ("LDR",CTy"Load", 21381 TP[Mop(Cast(FTy 5), 21382 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21383 bVar"b'22",bVar"b'21"]), 21384 Mop(Cast(FTy 5), 21385 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21386 bVar"b'17",bVar"b'16"]), 21387 Mop(Cast F16, 21388 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21389 bVar"b'12",bVar"b'11",bVar"b'10", 21390 bVar"b'9",bVar"b'8",bVar"b'7", 21391 bVar"b'6",bVar"b'5",bVar"b'4", 21392 bVar"b'3",bVar"b'2",bVar"b'1", 21393 bVar"b'0"])]))), 21394 (Bop(And,bVar"b'31", 21395 Bop(And,Mop(Not,bVar"b'30"), 21396 Mop(Not,bVar"b'27"))), 21397 Call 21398 ("Store",CTy"instruction", 21399 Call 21400 ("SH",CTy"Store", 21401 TP[Mop(Cast(FTy 5), 21402 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21403 bVar"b'22",bVar"b'21"]), 21404 Mop(Cast(FTy 5), 21405 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21406 bVar"b'17",bVar"b'16"]), 21407 Mop(Cast F16, 21408 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21409 bVar"b'12",bVar"b'11",bVar"b'10", 21410 bVar"b'9",bVar"b'8",bVar"b'7", 21411 bVar"b'6",bVar"b'5",bVar"b'4", 21412 bVar"b'3",bVar"b'2",bVar"b'1", 21413 bVar"b'0"])]))), 21414 (Bop(And,bVar"b'31", 21415 Bop(And,Mop(Not,bVar"b'30"),bVar"b'27")), 21416 Call 21417 ("Store",CTy"instruction", 21418 Call 21419 ("SW",CTy"Store", 21420 TP[Mop(Cast(FTy 5), 21421 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21422 bVar"b'22",bVar"b'21"]), 21423 Mop(Cast(FTy 5), 21424 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21425 bVar"b'17",bVar"b'16"]), 21426 Mop(Cast F16, 21427 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21428 bVar"b'12",bVar"b'11",bVar"b'10", 21429 bVar"b'9",bVar"b'8",bVar"b'7", 21430 bVar"b'6",bVar"b'5",bVar"b'4", 21431 bVar"b'3",bVar"b'2",bVar"b'1", 21432 bVar"b'0"])]))), 21433 (Bop(And,bVar"b'31", 21434 Bop(And,bVar"b'30",Mop(Not,bVar"b'27"))), 21435 Call 21436 ("SWC1Decode",CTy"instruction", 21437 TP[Mop(Cast(FTy 5), 21438 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21439 bVar"b'17",bVar"b'16"]), 21440 Mop(Cast F16, 21441 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21442 bVar"b'12",bVar"b'11",bVar"b'10", 21443 bVar"b'9",bVar"b'8",bVar"b'7", 21444 bVar"b'6",bVar"b'5",bVar"b'4", 21445 bVar"b'3",bVar"b'2",bVar"b'1", 21446 bVar"b'0"]), 21447 Mop(Cast(FTy 5), 21448 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21449 bVar"b'22",bVar"b'21"])]))], 21450 Const("ReservedInstruction",CTy"instruction"))), 21451 (Bop(And,Mop(Not,bVar"b'31"), 21452 Bop(And,Mop(Not,bVar"b'30"), 21453 Bop(And,Mop(Not,bVar"b'27"), 21454 Bop(And,Mop(Not,bVar"b'20"), 21455 Bop(And,Mop(Not,bVar"b'19"), 21456 Bop(And,Mop(Not,bVar"b'18"), 21457 Bop(And,Mop(Not,bVar"b'17"), 21458 Mop(Not,bVar"b'16")))))))), 21459 Call 21460 ("Branch",CTy"instruction", 21461 Call 21462 ("BLTZ",CTy"Branch", 21463 TP[Mop(Cast(FTy 5), 21464 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21465 bVar"b'22",bVar"b'21"]), 21466 Mop(Cast F16, 21467 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21468 bVar"b'12",bVar"b'11",bVar"b'10", 21469 bVar"b'9",bVar"b'8",bVar"b'7", 21470 bVar"b'6",bVar"b'5",bVar"b'4", 21471 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21472 (Bop(And,Mop(Not,bVar"b'31"), 21473 Bop(And,Mop(Not,bVar"b'30"), 21474 Bop(And,Mop(Not,bVar"b'27"), 21475 Bop(And,Mop(Not,bVar"b'20"), 21476 Bop(And,Mop(Not,bVar"b'19"), 21477 Bop(And,Mop(Not,bVar"b'18"), 21478 Bop(And,Mop(Not,bVar"b'17"), 21479 bVar"b'16"))))))), 21480 Call 21481 ("Branch",CTy"instruction", 21482 Call 21483 ("BGEZ",CTy"Branch", 21484 TP[Mop(Cast(FTy 5), 21485 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21486 bVar"b'22",bVar"b'21"]), 21487 Mop(Cast F16, 21488 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21489 bVar"b'12",bVar"b'11",bVar"b'10", 21490 bVar"b'9",bVar"b'8",bVar"b'7", 21491 bVar"b'6",bVar"b'5",bVar"b'4", 21492 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21493 (Bop(And,Mop(Not,bVar"b'31"), 21494 Bop(And,Mop(Not,bVar"b'30"), 21495 Bop(And,Mop(Not,bVar"b'27"), 21496 Bop(And,Mop(Not,bVar"b'20"), 21497 Bop(And,Mop(Not,bVar"b'19"), 21498 Bop(And,Mop(Not,bVar"b'18"), 21499 Bop(And,bVar"b'17", 21500 Mop(Not,bVar"b'16")))))))), 21501 Call 21502 ("Branch",CTy"instruction", 21503 Call 21504 ("BLTZL",CTy"Branch", 21505 TP[Mop(Cast(FTy 5), 21506 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21507 bVar"b'22",bVar"b'21"]), 21508 Mop(Cast F16, 21509 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21510 bVar"b'12",bVar"b'11",bVar"b'10", 21511 bVar"b'9",bVar"b'8",bVar"b'7", 21512 bVar"b'6",bVar"b'5",bVar"b'4", 21513 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21514 (Bop(And,Mop(Not,bVar"b'31"), 21515 Bop(And,Mop(Not,bVar"b'30"), 21516 Bop(And,Mop(Not,bVar"b'27"), 21517 Bop(And,Mop(Not,bVar"b'20"), 21518 Bop(And,Mop(Not,bVar"b'19"), 21519 Bop(And,Mop(Not,bVar"b'18"), 21520 Bop(And,bVar"b'17",bVar"b'16"))))))), 21521 Call 21522 ("Branch",CTy"instruction", 21523 Call 21524 ("BGEZL",CTy"Branch", 21525 TP[Mop(Cast(FTy 5), 21526 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21527 bVar"b'22",bVar"b'21"]), 21528 Mop(Cast F16, 21529 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21530 bVar"b'12",bVar"b'11",bVar"b'10", 21531 bVar"b'9",bVar"b'8",bVar"b'7", 21532 bVar"b'6",bVar"b'5",bVar"b'4", 21533 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21534 (Bop(And,Mop(Not,bVar"b'31"), 21535 Bop(And,Mop(Not,bVar"b'30"), 21536 Bop(And,Mop(Not,bVar"b'27"), 21537 Bop(And,Mop(Not,bVar"b'20"), 21538 Bop(And,bVar"b'19", 21539 Bop(And,Mop(Not,bVar"b'18"), 21540 Bop(And,Mop(Not,bVar"b'17"), 21541 Mop(Not,bVar"b'16")))))))), 21542 Call 21543 ("Trap",CTy"instruction", 21544 Call 21545 ("TGEI",CTy"Trap", 21546 TP[Mop(Cast(FTy 5), 21547 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21548 bVar"b'22",bVar"b'21"]), 21549 Mop(Cast F16, 21550 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21551 bVar"b'12",bVar"b'11",bVar"b'10", 21552 bVar"b'9",bVar"b'8",bVar"b'7", 21553 bVar"b'6",bVar"b'5",bVar"b'4", 21554 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21555 (Bop(And,Mop(Not,bVar"b'31"), 21556 Bop(And,Mop(Not,bVar"b'30"), 21557 Bop(And,Mop(Not,bVar"b'27"), 21558 Bop(And,Mop(Not,bVar"b'20"), 21559 Bop(And,bVar"b'19", 21560 Bop(And,Mop(Not,bVar"b'18"), 21561 Bop(And,Mop(Not,bVar"b'17"), 21562 bVar"b'16"))))))), 21563 Call 21564 ("Trap",CTy"instruction", 21565 Call 21566 ("TGEIU",CTy"Trap", 21567 TP[Mop(Cast(FTy 5), 21568 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21569 bVar"b'22",bVar"b'21"]), 21570 Mop(Cast F16, 21571 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21572 bVar"b'12",bVar"b'11",bVar"b'10", 21573 bVar"b'9",bVar"b'8",bVar"b'7", 21574 bVar"b'6",bVar"b'5",bVar"b'4", 21575 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21576 (Bop(And,Mop(Not,bVar"b'31"), 21577 Bop(And,Mop(Not,bVar"b'30"), 21578 Bop(And,Mop(Not,bVar"b'27"), 21579 Bop(And,Mop(Not,bVar"b'20"), 21580 Bop(And,bVar"b'19", 21581 Bop(And,Mop(Not,bVar"b'18"), 21582 Bop(And,bVar"b'17", 21583 Mop(Not,bVar"b'16")))))))), 21584 Call 21585 ("Trap",CTy"instruction", 21586 Call 21587 ("TLTI",CTy"Trap", 21588 TP[Mop(Cast(FTy 5), 21589 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21590 bVar"b'22",bVar"b'21"]), 21591 Mop(Cast F16, 21592 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21593 bVar"b'12",bVar"b'11",bVar"b'10", 21594 bVar"b'9",bVar"b'8",bVar"b'7", 21595 bVar"b'6",bVar"b'5",bVar"b'4", 21596 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21597 (Bop(And,Mop(Not,bVar"b'31"), 21598 Bop(And,Mop(Not,bVar"b'30"), 21599 Bop(And,Mop(Not,bVar"b'27"), 21600 Bop(And,Mop(Not,bVar"b'20"), 21601 Bop(And,bVar"b'19", 21602 Bop(And,Mop(Not,bVar"b'18"), 21603 Bop(And,bVar"b'17",bVar"b'16"))))))), 21604 Call 21605 ("Trap",CTy"instruction", 21606 Call 21607 ("TLTIU",CTy"Trap", 21608 TP[Mop(Cast(FTy 5), 21609 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21610 bVar"b'22",bVar"b'21"]), 21611 Mop(Cast F16, 21612 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21613 bVar"b'12",bVar"b'11",bVar"b'10", 21614 bVar"b'9",bVar"b'8",bVar"b'7", 21615 bVar"b'6",bVar"b'5",bVar"b'4", 21616 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21617 (Bop(And,Mop(Not,bVar"b'31"), 21618 Bop(And,Mop(Not,bVar"b'30"), 21619 Bop(And,Mop(Not,bVar"b'27"), 21620 Bop(And,Mop(Not,bVar"b'20"), 21621 Bop(And,bVar"b'19", 21622 Bop(And,bVar"b'18", 21623 Bop(And,Mop(Not,bVar"b'17"), 21624 Mop(Not,bVar"b'16")))))))), 21625 Call 21626 ("Trap",CTy"instruction", 21627 Call 21628 ("TEQI",CTy"Trap", 21629 TP[Mop(Cast(FTy 5), 21630 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21631 bVar"b'22",bVar"b'21"]), 21632 Mop(Cast F16, 21633 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21634 bVar"b'12",bVar"b'11",bVar"b'10", 21635 bVar"b'9",bVar"b'8",bVar"b'7", 21636 bVar"b'6",bVar"b'5",bVar"b'4", 21637 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21638 (Bop(And,Mop(Not,bVar"b'31"), 21639 Bop(And,Mop(Not,bVar"b'30"), 21640 Bop(And,Mop(Not,bVar"b'27"), 21641 Bop(And,Mop(Not,bVar"b'20"), 21642 Bop(And,bVar"b'19", 21643 Bop(And,bVar"b'18", 21644 Bop(And,bVar"b'17", 21645 Mop(Not,bVar"b'16")))))))), 21646 Call 21647 ("Trap",CTy"instruction", 21648 Call 21649 ("TNEI",CTy"Trap", 21650 TP[Mop(Cast(FTy 5), 21651 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21652 bVar"b'22",bVar"b'21"]), 21653 Mop(Cast F16, 21654 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21655 bVar"b'12",bVar"b'11",bVar"b'10", 21656 bVar"b'9",bVar"b'8",bVar"b'7", 21657 bVar"b'6",bVar"b'5",bVar"b'4", 21658 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21659 (Bop(And,Mop(Not,bVar"b'31"), 21660 Bop(And,Mop(Not,bVar"b'30"), 21661 Bop(And,Mop(Not,bVar"b'27"), 21662 Bop(And,bVar"b'25", 21663 Bop(And,bVar"b'24", 21664 Bop(And,bVar"b'23", 21665 Bop(And,bVar"b'22", 21666 Bop(And,bVar"b'21", 21667 Bop(And,bVar"b'20", 21668 Bop(And, 21669 Mop(Not, 21670 bVar"b'19"), 21671 Mop(Not, 21672 bVar"b'18"))))))))))), 21673 Const("Unpredictable",CTy"instruction")), 21674 (Bop(And,Mop(Not,bVar"b'31"), 21675 Bop(And,Mop(Not,bVar"b'30"), 21676 Bop(And,Mop(Not,bVar"b'27"), 21677 Bop(And,bVar"b'20", 21678 Bop(And,Mop(Not,bVar"b'19"), 21679 Bop(And,Mop(Not,bVar"b'18"), 21680 Bop(And,Mop(Not,bVar"b'17"), 21681 Mop(Not,bVar"b'16")))))))), 21682 Call 21683 ("Branch",CTy"instruction", 21684 Call 21685 ("BLTZAL",CTy"Branch", 21686 TP[Mop(Cast(FTy 5), 21687 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21688 bVar"b'22",bVar"b'21"]), 21689 Mop(Cast F16, 21690 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21691 bVar"b'12",bVar"b'11",bVar"b'10", 21692 bVar"b'9",bVar"b'8",bVar"b'7", 21693 bVar"b'6",bVar"b'5",bVar"b'4", 21694 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21695 (Bop(And,Mop(Not,bVar"b'31"), 21696 Bop(And,Mop(Not,bVar"b'30"), 21697 Bop(And,Mop(Not,bVar"b'27"), 21698 Bop(And,bVar"b'20", 21699 Bop(And,Mop(Not,bVar"b'19"), 21700 Bop(And,Mop(Not,bVar"b'18"), 21701 Bop(And,Mop(Not,bVar"b'17"), 21702 bVar"b'16"))))))), 21703 Call 21704 ("Branch",CTy"instruction", 21705 Call 21706 ("BGEZAL",CTy"Branch", 21707 TP[Mop(Cast(FTy 5), 21708 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21709 bVar"b'22",bVar"b'21"]), 21710 Mop(Cast F16, 21711 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21712 bVar"b'12",bVar"b'11",bVar"b'10", 21713 bVar"b'9",bVar"b'8",bVar"b'7", 21714 bVar"b'6",bVar"b'5",bVar"b'4", 21715 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21716 (Bop(And,Mop(Not,bVar"b'31"), 21717 Bop(And,Mop(Not,bVar"b'30"), 21718 Bop(And,Mop(Not,bVar"b'27"), 21719 Bop(And,bVar"b'20", 21720 Bop(And,Mop(Not,bVar"b'19"), 21721 Bop(And,Mop(Not,bVar"b'18"), 21722 Bop(And,bVar"b'17", 21723 Mop(Not,bVar"b'16")))))))), 21724 Call 21725 ("Branch",CTy"instruction", 21726 Call 21727 ("BLTZALL",CTy"Branch", 21728 TP[Mop(Cast(FTy 5), 21729 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21730 bVar"b'22",bVar"b'21"]), 21731 Mop(Cast F16, 21732 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21733 bVar"b'12",bVar"b'11",bVar"b'10", 21734 bVar"b'9",bVar"b'8",bVar"b'7", 21735 bVar"b'6",bVar"b'5",bVar"b'4", 21736 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21737 (Bop(And,Mop(Not,bVar"b'31"), 21738 Bop(And,Mop(Not,bVar"b'30"), 21739 Bop(And,Mop(Not,bVar"b'27"), 21740 Bop(And,bVar"b'20", 21741 Bop(And,Mop(Not,bVar"b'19"), 21742 Bop(And,Mop(Not,bVar"b'18"), 21743 Bop(And,bVar"b'17",bVar"b'16"))))))), 21744 Call 21745 ("Branch",CTy"instruction", 21746 Call 21747 ("BGEZALL",CTy"Branch", 21748 TP[Mop(Cast(FTy 5), 21749 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21750 bVar"b'22",bVar"b'21"]), 21751 Mop(Cast F16, 21752 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21753 bVar"b'12",bVar"b'11",bVar"b'10", 21754 bVar"b'9",bVar"b'8",bVar"b'7", 21755 bVar"b'6",bVar"b'5",bVar"b'4", 21756 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21757 (Bop(And,Mop(Not,bVar"b'31"), 21758 Bop(And,Mop(Not,bVar"b'30"),bVar"b'27")), 21759 Call 21760 ("Branch",CTy"instruction", 21761 Call 21762 ("JAL",CTy"Branch", 21763 Mop(Cast(FTy 26), 21764 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21765 bVar"b'22",bVar"b'21",bVar"b'20", 21766 bVar"b'19",bVar"b'18",bVar"b'17", 21767 bVar"b'16",bVar"b'15",bVar"b'14", 21768 bVar"b'13",bVar"b'12",bVar"b'11", 21769 bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 21770 bVar"b'6",bVar"b'5",bVar"b'4",bVar"b'3", 21771 bVar"b'2",bVar"b'1",bVar"b'0"])))), 21772 (Bop(And,bVar"b'31", 21773 Bop(And,Mop(Not,bVar"b'30"),Mop(Not,bVar"b'27"))), 21774 Call 21775 ("Load",CTy"instruction", 21776 Call 21777 ("LH",CTy"Load", 21778 TP[Mop(Cast(FTy 5), 21779 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21780 bVar"b'22",bVar"b'21"]), 21781 Mop(Cast(FTy 5), 21782 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21783 bVar"b'17",bVar"b'16"]), 21784 Mop(Cast F16, 21785 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21786 bVar"b'12",bVar"b'11",bVar"b'10", 21787 bVar"b'9",bVar"b'8",bVar"b'7", 21788 bVar"b'6",bVar"b'5",bVar"b'4", 21789 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21790 (Bop(And,bVar"b'31", 21791 Bop(And,Mop(Not,bVar"b'30"),bVar"b'27")), 21792 Call 21793 ("Load",CTy"instruction", 21794 Call 21795 ("LW",CTy"Load", 21796 TP[Mop(Cast(FTy 5), 21797 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21798 bVar"b'22",bVar"b'21"]), 21799 Mop(Cast(FTy 5), 21800 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21801 bVar"b'17",bVar"b'16"]), 21802 Mop(Cast F16, 21803 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21804 bVar"b'12",bVar"b'11",bVar"b'10", 21805 bVar"b'9",bVar"b'8",bVar"b'7", 21806 bVar"b'6",bVar"b'5",bVar"b'4", 21807 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 21808 (Bop(And,Mop(Not,bVar"b'31"), 21809 Bop(And,bVar"b'30",Mop(Not,bVar"b'27"))), 21810 Call 21811 ("COP1Decode",CTy"instruction", 21812 Mop(Cast(FTy 26), 21813 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 21814 bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18", 21815 bVar"b'17",bVar"b'16",bVar"b'15",bVar"b'14", 21816 bVar"b'13",bVar"b'12",bVar"b'11",bVar"b'10", 21817 bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", 21818 bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", 21819 bVar"b'1",bVar"b'0"]))), 21820 (Bop(And,Mop(Not,bVar"b'31"), 21821 Bop(And,bVar"b'30",bVar"b'27")), 21822 Call 21823 ("COP3Decode",CTy"instruction", 21824 Mop(Cast(FTy 26), 21825 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 21826 bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18", 21827 bVar"b'17",bVar"b'16",bVar"b'15",bVar"b'14", 21828 bVar"b'13",bVar"b'12",bVar"b'11",bVar"b'10", 21829 bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", 21830 bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", 21831 bVar"b'1",bVar"b'0"]))), 21832 (Bop(And,bVar"b'31", 21833 Bop(And,bVar"b'30",Mop(Not,bVar"b'27"))), 21834 Call 21835 ("LWC1Decode",CTy"instruction", 21836 TP[Mop(Cast(FTy 5), 21837 LL[bVar"b'20",bVar"b'19",bVar"b'18", 21838 bVar"b'17",bVar"b'16"]), 21839 Mop(Cast F16, 21840 LL[bVar"b'15",bVar"b'14",bVar"b'13", 21841 bVar"b'12",bVar"b'11",bVar"b'10", 21842 bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", 21843 bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", 21844 bVar"b'1",bVar"b'0"]), 21845 Mop(Cast(FTy 5), 21846 LL[bVar"b'25",bVar"b'24",bVar"b'23", 21847 bVar"b'22",bVar"b'21"])]))], 21848 Const("ReservedInstruction",CTy"instruction"))), 21849 (bVar"b'30", 21850 ITB([(bVar"b'29", 21851 ITB([(bVar"b'28", 21852 ITB([(Bop(And,Mop(Not,bVar"b'31"), 21853 Bop(And,Mop(Not,bVar"b'27"), 21854 Bop(And,Mop(Not,bVar"b'15"), 21855 Bop(And,Mop(Not,bVar"b'14"), 21856 Bop(And, 21857 Mop(Not,bVar"b'13"), 21858 Bop(And, 21859 Mop(Not,bVar"b'12"), 21860 Bop(And, 21861 Mop(Not, 21862 bVar"b'11"), 21863 Bop(And, 21864 Mop(Not, 21865 bVar"b'10"), 21866 Bop(And, 21867 Mop(Not, 21868 bVar"b'9"), 21869 Bop(And, 21870 Mop(Not, 21871 bVar"b'8"), 21872 Bop(And, 21873 Mop(Not, 21874 bVar"b'7"), 21875 Bop(And, 21876 Mop(Not, 21877 bVar"b'6"), 21878 Bop(And, 21879 Mop(Not, 21880 bVar"b'5"), 21881 Bop(And, 21882 Mop(Not, 21883 bVar"b'4"), 21884 Bop(And, 21885 Mop(Not, 21886 bVar"b'3"), 21887 Bop(And, 21888 Mop(Not, 21889 bVar"b'2"), 21890 Bop(And, 21891 Mop(Not, 21892 bVar"b'1"), 21893 Mop(Not, 21894 bVar"b'0")))))))))))))))))), 21895 Call 21896 ("MultDiv",CTy"instruction", 21897 Call 21898 ("MADD",CTy"MultDiv", 21899 TP[Mop(Cast(FTy 5), 21900 LL[bVar"b'25",bVar"b'24", 21901 bVar"b'23",bVar"b'22", 21902 bVar"b'21"]), 21903 Mop(Cast(FTy 5), 21904 LL[bVar"b'20",bVar"b'19", 21905 bVar"b'18",bVar"b'17", 21906 bVar"b'16"])]))), 21907 (Bop(And,Mop(Not,bVar"b'31"), 21908 Bop(And,Mop(Not,bVar"b'27"), 21909 Bop(And,Mop(Not,bVar"b'15"), 21910 Bop(And,Mop(Not,bVar"b'14"), 21911 Bop(And, 21912 Mop(Not,bVar"b'13"), 21913 Bop(And, 21914 Mop(Not,bVar"b'12"), 21915 Bop(And, 21916 Mop(Not, 21917 bVar"b'11"), 21918 Bop(And, 21919 Mop(Not, 21920 bVar"b'10"), 21921 Bop(And, 21922 Mop(Not, 21923 bVar"b'9"), 21924 Bop(And, 21925 Mop(Not, 21926 bVar"b'8"), 21927 Bop(And, 21928 Mop(Not, 21929 bVar"b'7"), 21930 Bop(And, 21931 Mop(Not, 21932 bVar"b'6"), 21933 Bop(And, 21934 Mop(Not, 21935 bVar"b'5"), 21936 Bop(And, 21937 Mop(Not, 21938 bVar"b'4"), 21939 Bop(And, 21940 Mop(Not, 21941 bVar"b'3"), 21942 Bop(And, 21943 Mop(Not, 21944 bVar"b'2"), 21945 Bop(And, 21946 Mop(Not, 21947 bVar"b'1"), 21948 bVar"b'0"))))))))))))))))), 21949 Call 21950 ("MultDiv",CTy"instruction", 21951 Call 21952 ("MADDU",CTy"MultDiv", 21953 TP[Mop(Cast(FTy 5), 21954 LL[bVar"b'25",bVar"b'24", 21955 bVar"b'23",bVar"b'22", 21956 bVar"b'21"]), 21957 Mop(Cast(FTy 5), 21958 LL[bVar"b'20",bVar"b'19", 21959 bVar"b'18",bVar"b'17", 21960 bVar"b'16"])]))), 21961 (Bop(And,Mop(Not,bVar"b'31"), 21962 Bop(And,Mop(Not,bVar"b'27"), 21963 Bop(And,Mop(Not,bVar"b'15"), 21964 Bop(And,Mop(Not,bVar"b'14"), 21965 Bop(And, 21966 Mop(Not,bVar"b'13"), 21967 Bop(And, 21968 Mop(Not,bVar"b'12"), 21969 Bop(And, 21970 Mop(Not, 21971 bVar"b'11"), 21972 Bop(And, 21973 Mop(Not, 21974 bVar"b'10"), 21975 Bop(And, 21976 Mop(Not, 21977 bVar"b'9"), 21978 Bop(And, 21979 Mop(Not, 21980 bVar"b'8"), 21981 Bop(And, 21982 Mop(Not, 21983 bVar"b'7"), 21984 Bop(And, 21985 Mop(Not, 21986 bVar"b'6"), 21987 Bop(And, 21988 Mop(Not, 21989 bVar"b'5"), 21990 Bop(And, 21991 Mop(Not, 21992 bVar"b'4"), 21993 Bop(And, 21994 Mop(Not, 21995 bVar"b'3"), 21996 Bop(And, 21997 bVar"b'2", 21998 Bop(And, 21999 Mop(Not, 22000 bVar"b'1"), 22001 Mop(Not, 22002 bVar"b'0")))))))))))))))))), 22003 Call 22004 ("MultDiv",CTy"instruction", 22005 Call 22006 ("MSUB",CTy"MultDiv", 22007 TP[Mop(Cast(FTy 5), 22008 LL[bVar"b'25",bVar"b'24", 22009 bVar"b'23",bVar"b'22", 22010 bVar"b'21"]), 22011 Mop(Cast(FTy 5), 22012 LL[bVar"b'20",bVar"b'19", 22013 bVar"b'18",bVar"b'17", 22014 bVar"b'16"])]))), 22015 (Bop(And,Mop(Not,bVar"b'31"), 22016 Bop(And,Mop(Not,bVar"b'27"), 22017 Bop(And,Mop(Not,bVar"b'15"), 22018 Bop(And,Mop(Not,bVar"b'14"), 22019 Bop(And, 22020 Mop(Not,bVar"b'13"), 22021 Bop(And, 22022 Mop(Not,bVar"b'12"), 22023 Bop(And, 22024 Mop(Not, 22025 bVar"b'11"), 22026 Bop(And, 22027 Mop(Not, 22028 bVar"b'10"), 22029 Bop(And, 22030 Mop(Not, 22031 bVar"b'9"), 22032 Bop(And, 22033 Mop(Not, 22034 bVar"b'8"), 22035 Bop(And, 22036 Mop(Not, 22037 bVar"b'7"), 22038 Bop(And, 22039 Mop(Not, 22040 bVar"b'6"), 22041 Bop(And, 22042 Mop(Not, 22043 bVar"b'5"), 22044 Bop(And, 22045 Mop(Not, 22046 bVar"b'4"), 22047 Bop(And, 22048 Mop(Not, 22049 bVar"b'3"), 22050 Bop(And, 22051 bVar"b'2", 22052 Bop(And, 22053 Mop(Not, 22054 bVar"b'1"), 22055 bVar"b'0"))))))))))))))))), 22056 Call 22057 ("MultDiv",CTy"instruction", 22058 Call 22059 ("MSUBU",CTy"MultDiv", 22060 TP[Mop(Cast(FTy 5), 22061 LL[bVar"b'25",bVar"b'24", 22062 bVar"b'23",bVar"b'22", 22063 bVar"b'21"]), 22064 Mop(Cast(FTy 5), 22065 LL[bVar"b'20",bVar"b'19", 22066 bVar"b'18",bVar"b'17", 22067 bVar"b'16"])]))), 22068 (Bop(And,Mop(Not,bVar"b'31"), 22069 Bop(And,Mop(Not,bVar"b'27"), 22070 Bop(And,Mop(Not,bVar"b'10"), 22071 Bop(And,Mop(Not,bVar"b'9"), 22072 Bop(And,Mop(Not,bVar"b'8"), 22073 Bop(And, 22074 Mop(Not,bVar"b'7"), 22075 Bop(And, 22076 Mop(Not, 22077 bVar"b'6"), 22078 Bop(And, 22079 Mop(Not, 22080 bVar"b'5"), 22081 Bop(And, 22082 Mop(Not, 22083 bVar"b'4"), 22084 Bop(And, 22085 Mop(Not, 22086 bVar"b'3"), 22087 Bop(And, 22088 Mop(Not, 22089 bVar"b'2"), 22090 Bop(And, 22091 bVar"b'1", 22092 Mop(Not, 22093 bVar"b'0"))))))))))))), 22094 Call 22095 ("MultDiv",CTy"instruction", 22096 Call 22097 ("MUL",CTy"MultDiv", 22098 TP[Mop(Cast(FTy 5), 22099 LL[bVar"b'25",bVar"b'24", 22100 bVar"b'23",bVar"b'22", 22101 bVar"b'21"]), 22102 Mop(Cast(FTy 5), 22103 LL[bVar"b'20",bVar"b'19", 22104 bVar"b'18",bVar"b'17", 22105 bVar"b'16"]), 22106 Mop(Cast(FTy 5), 22107 LL[bVar"b'15",bVar"b'14", 22108 bVar"b'13",bVar"b'12", 22109 bVar"b'11"])]))), 22110 (Bop(And,bVar"b'31",Mop(Not,bVar"b'27")), 22111 Call 22112 ("Store",CTy"instruction", 22113 Call 22114 ("SCD",CTy"Store", 22115 TP[Mop(Cast(FTy 5), 22116 LL[bVar"b'25",bVar"b'24", 22117 bVar"b'23",bVar"b'22", 22118 bVar"b'21"]), 22119 Mop(Cast(FTy 5), 22120 LL[bVar"b'20",bVar"b'19", 22121 bVar"b'18",bVar"b'17", 22122 bVar"b'16"]), 22123 Mop(Cast F16, 22124 LL[bVar"b'15",bVar"b'14", 22125 bVar"b'13",bVar"b'12", 22126 bVar"b'11",bVar"b'10", 22127 bVar"b'9",bVar"b'8", 22128 bVar"b'7",bVar"b'6", 22129 bVar"b'5",bVar"b'4", 22130 bVar"b'3",bVar"b'2", 22131 bVar"b'1",bVar"b'0"])]))), 22132 (Bop(And,bVar"b'31",bVar"b'27"), 22133 Call 22134 ("SDC2Decode",CTy"instruction", 22135 TP[Mop(Cast(FTy 5), 22136 LL[bVar"b'25",bVar"b'24", 22137 bVar"b'23",bVar"b'22", 22138 bVar"b'21"]), 22139 Mop(Cast(FTy 5), 22140 LL[bVar"b'20",bVar"b'19", 22141 bVar"b'18",bVar"b'17", 22142 bVar"b'16"]), 22143 Mop(Cast(FTy 5), 22144 LL[bVar"b'15",bVar"b'14", 22145 bVar"b'13",bVar"b'12", 22146 bVar"b'11"]), 22147 Mop(Cast(FTy 11), 22148 LL[bVar"b'10",bVar"b'9", 22149 bVar"b'8",bVar"b'7",bVar"b'6", 22150 bVar"b'5",bVar"b'4",bVar"b'3", 22151 bVar"b'2",bVar"b'1",bVar"b'0"])]))], 22152 Const("ReservedInstruction",CTy"instruction"))), 22153 (Bop(And,Mop(Not,bVar"b'31"),Mop(Not,bVar"b'27")), 22154 Call 22155 ("ArithI",CTy"instruction", 22156 Call 22157 ("DADDI",CTy"ArithI", 22158 TP[Mop(Cast(FTy 5), 22159 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22160 bVar"b'22",bVar"b'21"]), 22161 Mop(Cast(FTy 5), 22162 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22163 bVar"b'17",bVar"b'16"]), 22164 Mop(Cast F16, 22165 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22166 bVar"b'12",bVar"b'11",bVar"b'10", 22167 bVar"b'9",bVar"b'8",bVar"b'7", 22168 bVar"b'6",bVar"b'5",bVar"b'4", 22169 bVar"b'3",bVar"b'2",bVar"b'1", 22170 bVar"b'0"])]))), 22171 (Bop(And,Mop(Not,bVar"b'31"),bVar"b'27"), 22172 Call 22173 ("Load",CTy"instruction", 22174 Call 22175 ("LDL",CTy"Load", 22176 TP[Mop(Cast(FTy 5), 22177 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22178 bVar"b'22",bVar"b'21"]), 22179 Mop(Cast(FTy 5), 22180 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22181 bVar"b'17",bVar"b'16"]), 22182 Mop(Cast F16, 22183 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22184 bVar"b'12",bVar"b'11",bVar"b'10", 22185 bVar"b'9",bVar"b'8",bVar"b'7", 22186 bVar"b'6",bVar"b'5",bVar"b'4", 22187 bVar"b'3",bVar"b'2",bVar"b'1", 22188 bVar"b'0"])]))), 22189 (Bop(And,bVar"b'31",Mop(Not,bVar"b'27")), 22190 Call 22191 ("Store",CTy"instruction", 22192 Call 22193 ("SC",CTy"Store", 22194 TP[Mop(Cast(FTy 5), 22195 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22196 bVar"b'22",bVar"b'21"]), 22197 Mop(Cast(FTy 5), 22198 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22199 bVar"b'17",bVar"b'16"]), 22200 Mop(Cast F16, 22201 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22202 bVar"b'12",bVar"b'11",bVar"b'10", 22203 bVar"b'9",bVar"b'8",bVar"b'7", 22204 bVar"b'6",bVar"b'5",bVar"b'4", 22205 bVar"b'3",bVar"b'2",bVar"b'1", 22206 bVar"b'0"])]))), 22207 (Bop(And,bVar"b'31",bVar"b'27"), 22208 Call 22209 ("SWC2Decode",CTy"instruction", 22210 TP[Mop(Cast(FTy 5), 22211 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22212 bVar"b'22",bVar"b'21"]), 22213 Mop(Cast(FTy 5), 22214 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22215 bVar"b'17",bVar"b'16"]), 22216 Mop(Cast(FTy 5), 22217 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22218 bVar"b'12",bVar"b'11"]), 22219 Mop(Cast F8, 22220 LL[bVar"b'10",bVar"b'9",bVar"b'8", 22221 bVar"b'7",bVar"b'6",bVar"b'5", 22222 bVar"b'4",bVar"b'3"]), 22223 Mop(Cast(FTy 3), 22224 LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))], 22225 Const("ReservedInstruction",CTy"instruction"))), 22226 (bVar"b'31", 22227 ITB([(Bop(And,Mop(Not,bVar"b'28"),Mop(Not,bVar"b'27")), 22228 Call 22229 ("Load",CTy"instruction", 22230 Call 22231 ("LL",CTy"Load", 22232 TP[Mop(Cast(FTy 5), 22233 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22234 bVar"b'22",bVar"b'21"]), 22235 Mop(Cast(FTy 5), 22236 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22237 bVar"b'17",bVar"b'16"]), 22238 Mop(Cast F16, 22239 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22240 bVar"b'12",bVar"b'11",bVar"b'10", 22241 bVar"b'9",bVar"b'8",bVar"b'7", 22242 bVar"b'6",bVar"b'5",bVar"b'4", 22243 bVar"b'3",bVar"b'2",bVar"b'1", 22244 bVar"b'0"])]))), 22245 (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), 22246 Call 22247 ("Load",CTy"instruction", 22248 Call 22249 ("LLD",CTy"Load", 22250 TP[Mop(Cast(FTy 5), 22251 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22252 bVar"b'22",bVar"b'21"]), 22253 Mop(Cast(FTy 5), 22254 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22255 bVar"b'17",bVar"b'16"]), 22256 Mop(Cast F16, 22257 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22258 bVar"b'12",bVar"b'11",bVar"b'10", 22259 bVar"b'9",bVar"b'8",bVar"b'7", 22260 bVar"b'6",bVar"b'5",bVar"b'4", 22261 bVar"b'3",bVar"b'2",bVar"b'1", 22262 bVar"b'0"])]))), 22263 (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), 22264 Call 22265 ("LWC2Decode",CTy"instruction", 22266 TP[Mop(Cast(FTy 5), 22267 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22268 bVar"b'22",bVar"b'21"]), 22269 Mop(Cast(FTy 5), 22270 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22271 bVar"b'17",bVar"b'16"]), 22272 Mop(Cast(FTy 5), 22273 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22274 bVar"b'12",bVar"b'11"]), 22275 Mop(Cast F8, 22276 LL[bVar"b'10",bVar"b'9",bVar"b'8", 22277 bVar"b'7",bVar"b'6",bVar"b'5", 22278 bVar"b'4",bVar"b'3"]), 22279 Mop(Cast(FTy 3), 22280 LL[bVar"b'2",bVar"b'1",bVar"b'0"])])), 22281 (Bop(And,bVar"b'28",bVar"b'27"), 22282 Call 22283 ("LDC2Decode",CTy"instruction", 22284 TP[Mop(Cast(FTy 5), 22285 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22286 bVar"b'22",bVar"b'21"]), 22287 Mop(Cast(FTy 5), 22288 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22289 bVar"b'17",bVar"b'16"]), 22290 Mop(Cast(FTy 5), 22291 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22292 bVar"b'12",bVar"b'11"]), 22293 Mop(Cast(FTy 11), 22294 LL[bVar"b'10",bVar"b'9",bVar"b'8", 22295 bVar"b'7",bVar"b'6",bVar"b'5", 22296 bVar"b'4",bVar"b'3",bVar"b'2", 22297 bVar"b'1",bVar"b'0"])]))], 22298 Const("ReservedInstruction",CTy"instruction"))), 22299 (Bop(And,Mop(Not,bVar"b'28"), 22300 Bop(And,Mop(Not,bVar"b'27"), 22301 Bop(And,bVar"b'25", 22302 Bop(And,Mop(Not,bVar"b'24"), 22303 Bop(And,Mop(Not,bVar"b'23"), 22304 Bop(And,Mop(Not,bVar"b'22"), 22305 Bop(And,Mop(Not,bVar"b'21"), 22306 Bop(And, 22307 Mop(Not,bVar"b'20"), 22308 Bop(And, 22309 Mop(Not,bVar"b'19"), 22310 Bop(And, 22311 Mop(Not, 22312 bVar"b'18"), 22313 Bop(And, 22314 Mop(Not, 22315 bVar"b'17"), 22316 Bop(And, 22317 Mop(Not, 22318 bVar"b'16"), 22319 Bop(And, 22320 Mop(Not, 22321 bVar"b'15"), 22322 Bop(And, 22323 Mop(Not, 22324 bVar"b'14"), 22325 Bop(And, 22326 Mop(Not, 22327 bVar"b'13"), 22328 Bop(And, 22329 Mop(Not, 22330 bVar"b'12"), 22331 Bop(And, 22332 Mop(Not, 22333 bVar"b'11"), 22334 Bop(And, 22335 Mop(Not, 22336 bVar"b'10"), 22337 Bop(And, 22338 Mop(Not, 22339 bVar"b'9"), 22340 Bop(And, 22341 Mop(Not, 22342 bVar"b'8"), 22343 Bop(And, 22344 Mop(Not, 22345 bVar"b'7"), 22346 Bop(And, 22347 Mop(Not, 22348 bVar"b'6"), 22349 Bop(And, 22350 Mop(Not, 22351 bVar"b'5"), 22352 Bop(And, 22353 Mop(Not, 22354 bVar"b'4"), 22355 Bop(And, 22356 Mop(Not, 22357 bVar"b'3"), 22358 Bop(And, 22359 Mop(Not, 22360 bVar"b'2"), 22361 Bop(And, 22362 Mop(Not, 22363 bVar"b'1"), 22364 bVar"b'0"))))))))))))))))))))))))))), 22365 Const("TLBR",CTy"instruction")), 22366 (Bop(And,Mop(Not,bVar"b'28"), 22367 Bop(And,Mop(Not,bVar"b'27"), 22368 Bop(And,bVar"b'25", 22369 Bop(And,Mop(Not,bVar"b'24"), 22370 Bop(And,Mop(Not,bVar"b'23"), 22371 Bop(And,Mop(Not,bVar"b'22"), 22372 Bop(And,Mop(Not,bVar"b'21"), 22373 Bop(And, 22374 Mop(Not,bVar"b'20"), 22375 Bop(And, 22376 Mop(Not,bVar"b'19"), 22377 Bop(And, 22378 Mop(Not, 22379 bVar"b'18"), 22380 Bop(And, 22381 Mop(Not, 22382 bVar"b'17"), 22383 Bop(And, 22384 Mop(Not, 22385 bVar"b'16"), 22386 Bop(And, 22387 Mop(Not, 22388 bVar"b'15"), 22389 Bop(And, 22390 Mop(Not, 22391 bVar"b'14"), 22392 Bop(And, 22393 Mop(Not, 22394 bVar"b'13"), 22395 Bop(And, 22396 Mop(Not, 22397 bVar"b'12"), 22398 Bop(And, 22399 Mop(Not, 22400 bVar"b'11"), 22401 Bop(And, 22402 Mop(Not, 22403 bVar"b'10"), 22404 Bop(And, 22405 Mop(Not, 22406 bVar"b'9"), 22407 Bop(And, 22408 Mop(Not, 22409 bVar"b'8"), 22410 Bop(And, 22411 Mop(Not, 22412 bVar"b'7"), 22413 Bop(And, 22414 Mop(Not, 22415 bVar"b'6"), 22416 Bop(And, 22417 Mop(Not, 22418 bVar"b'5"), 22419 Bop(And, 22420 Mop(Not, 22421 bVar"b'4"), 22422 Bop(And, 22423 Mop(Not, 22424 bVar"b'3"), 22425 Bop(And, 22426 Mop(Not, 22427 bVar"b'2"), 22428 Bop(And, 22429 bVar"b'1", 22430 Mop(Not, 22431 bVar"b'0")))))))))))))))))))))))))))), 22432 Const("TLBWI",CTy"instruction")), 22433 (Bop(And,Mop(Not,bVar"b'28"), 22434 Bop(And,Mop(Not,bVar"b'27"), 22435 Bop(And,bVar"b'25", 22436 Bop(And,Mop(Not,bVar"b'24"), 22437 Bop(And,Mop(Not,bVar"b'23"), 22438 Bop(And,Mop(Not,bVar"b'22"), 22439 Bop(And,Mop(Not,bVar"b'21"), 22440 Bop(And, 22441 Mop(Not,bVar"b'20"), 22442 Bop(And, 22443 Mop(Not,bVar"b'19"), 22444 Bop(And, 22445 Mop(Not, 22446 bVar"b'18"), 22447 Bop(And, 22448 Mop(Not, 22449 bVar"b'17"), 22450 Bop(And, 22451 Mop(Not, 22452 bVar"b'16"), 22453 Bop(And, 22454 Mop(Not, 22455 bVar"b'15"), 22456 Bop(And, 22457 Mop(Not, 22458 bVar"b'14"), 22459 Bop(And, 22460 Mop(Not, 22461 bVar"b'13"), 22462 Bop(And, 22463 Mop(Not, 22464 bVar"b'12"), 22465 Bop(And, 22466 Mop(Not, 22467 bVar"b'11"), 22468 Bop(And, 22469 Mop(Not, 22470 bVar"b'10"), 22471 Bop(And, 22472 Mop(Not, 22473 bVar"b'9"), 22474 Bop(And, 22475 Mop(Not, 22476 bVar"b'8"), 22477 Bop(And, 22478 Mop(Not, 22479 bVar"b'7"), 22480 Bop(And, 22481 Mop(Not, 22482 bVar"b'6"), 22483 Bop(And, 22484 Mop(Not, 22485 bVar"b'5"), 22486 Bop(And, 22487 Mop(Not, 22488 bVar"b'4"), 22489 Bop(And, 22490 Mop(Not, 22491 bVar"b'3"), 22492 Bop(And, 22493 bVar"b'2", 22494 Bop(And, 22495 bVar"b'1", 22496 Mop(Not, 22497 bVar"b'0")))))))))))))))))))))))))))), 22498 Const("TLBWR",CTy"instruction")), 22499 (Bop(And,Mop(Not,bVar"b'28"), 22500 Bop(And,Mop(Not,bVar"b'27"), 22501 Bop(And,bVar"b'25", 22502 Bop(And,Mop(Not,bVar"b'24"), 22503 Bop(And,Mop(Not,bVar"b'23"), 22504 Bop(And,Mop(Not,bVar"b'22"), 22505 Bop(And,Mop(Not,bVar"b'21"), 22506 Bop(And, 22507 Mop(Not,bVar"b'20"), 22508 Bop(And, 22509 Mop(Not,bVar"b'19"), 22510 Bop(And, 22511 Mop(Not, 22512 bVar"b'18"), 22513 Bop(And, 22514 Mop(Not, 22515 bVar"b'17"), 22516 Bop(And, 22517 Mop(Not, 22518 bVar"b'16"), 22519 Bop(And, 22520 Mop(Not, 22521 bVar"b'15"), 22522 Bop(And, 22523 Mop(Not, 22524 bVar"b'14"), 22525 Bop(And, 22526 Mop(Not, 22527 bVar"b'13"), 22528 Bop(And, 22529 Mop(Not, 22530 bVar"b'12"), 22531 Bop(And, 22532 Mop(Not, 22533 bVar"b'11"), 22534 Bop(And, 22535 Mop(Not, 22536 bVar"b'10"), 22537 Bop(And, 22538 Mop(Not, 22539 bVar"b'9"), 22540 Bop(And, 22541 Mop(Not, 22542 bVar"b'8"), 22543 Bop(And, 22544 Mop(Not, 22545 bVar"b'7"), 22546 Bop(And, 22547 Mop(Not, 22548 bVar"b'6"), 22549 Bop(And, 22550 Mop(Not, 22551 bVar"b'5"), 22552 Bop(And, 22553 Mop(Not, 22554 bVar"b'4"), 22555 Bop(And, 22556 bVar"b'3", 22557 Bop(And, 22558 Mop(Not, 22559 bVar"b'2"), 22560 Bop(And, 22561 Mop(Not, 22562 bVar"b'1"), 22563 Mop(Not, 22564 bVar"b'0")))))))))))))))))))))))))))), 22565 Const("TLBP",CTy"instruction")), 22566 (Bop(And,Mop(Not,bVar"b'28"), 22567 Bop(And,Mop(Not,bVar"b'27"), 22568 Bop(And,bVar"b'25", 22569 Bop(And,Mop(Not,bVar"b'24"), 22570 Bop(And,Mop(Not,bVar"b'23"), 22571 Bop(And,Mop(Not,bVar"b'22"), 22572 Bop(And,Mop(Not,bVar"b'21"), 22573 Bop(And, 22574 Mop(Not,bVar"b'20"), 22575 Bop(And, 22576 Mop(Not,bVar"b'19"), 22577 Bop(And, 22578 Mop(Not, 22579 bVar"b'18"), 22580 Bop(And, 22581 Mop(Not, 22582 bVar"b'17"), 22583 Bop(And, 22584 Mop(Not, 22585 bVar"b'16"), 22586 Bop(And, 22587 Mop(Not, 22588 bVar"b'15"), 22589 Bop(And, 22590 Mop(Not, 22591 bVar"b'14"), 22592 Bop(And, 22593 Mop(Not, 22594 bVar"b'13"), 22595 Bop(And, 22596 Mop(Not, 22597 bVar"b'12"), 22598 Bop(And, 22599 Mop(Not, 22600 bVar"b'11"), 22601 Bop(And, 22602 Mop(Not, 22603 bVar"b'10"), 22604 Bop(And, 22605 Mop(Not, 22606 bVar"b'9"), 22607 Bop(And, 22608 Mop(Not, 22609 bVar"b'8"), 22610 Bop(And, 22611 Mop(Not, 22612 bVar"b'7"), 22613 Bop(And, 22614 Mop(Not, 22615 bVar"b'6"), 22616 Bop(And, 22617 Mop(Not, 22618 bVar"b'5"), 22619 Bop(And, 22620 bVar"b'4", 22621 Bop(And, 22622 bVar"b'3", 22623 Bop(And, 22624 Mop(Not, 22625 bVar"b'2"), 22626 Bop(And, 22627 Mop(Not, 22628 bVar"b'1"), 22629 Mop(Not, 22630 bVar"b'0")))))))))))))))))))))))))))), 22631 Const("ERET",CTy"instruction")), 22632 (Bop(And,Mop(Not,bVar"b'28"), 22633 Bop(And,Mop(Not,bVar"b'27"), 22634 Bop(And,Mop(Not,bVar"b'25"), 22635 Bop(And,Mop(Not,bVar"b'24"), 22636 Bop(And,Mop(Not,bVar"b'23"), 22637 Bop(And,Mop(Not,bVar"b'22"), 22638 Bop(And,Mop(Not,bVar"b'21"), 22639 Bop(And, 22640 Mop(Not,bVar"b'10"), 22641 Bop(And, 22642 Mop(Not,bVar"b'9"), 22643 Bop(And, 22644 Mop(Not, 22645 bVar"b'8"), 22646 Bop(And, 22647 Mop(Not, 22648 bVar"b'7"), 22649 Bop(And, 22650 Mop(Not, 22651 bVar"b'6"), 22652 Bop(And, 22653 Mop(Not, 22654 bVar"b'5"), 22655 Bop(And, 22656 Mop(Not, 22657 bVar"b'4"), 22658 Mop(Not, 22659 bVar"b'3"))))))))))))))), 22660 Call 22661 ("CP",CTy"instruction", 22662 Call 22663 ("MFC0",CTy"CP", 22664 TP[Mop(Cast(FTy 5), 22665 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22666 bVar"b'17",bVar"b'16"]), 22667 Mop(Cast(FTy 5), 22668 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22669 bVar"b'12",bVar"b'11"]), 22670 Mop(Cast(FTy 3), 22671 LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))), 22672 (Bop(And,Mop(Not,bVar"b'28"), 22673 Bop(And,Mop(Not,bVar"b'27"), 22674 Bop(And,Mop(Not,bVar"b'25"), 22675 Bop(And,Mop(Not,bVar"b'24"), 22676 Bop(And,Mop(Not,bVar"b'23"), 22677 Bop(And,Mop(Not,bVar"b'22"), 22678 Bop(And,bVar"b'21", 22679 Bop(And, 22680 Mop(Not,bVar"b'10"), 22681 Bop(And, 22682 Mop(Not,bVar"b'9"), 22683 Bop(And, 22684 Mop(Not, 22685 bVar"b'8"), 22686 Bop(And, 22687 Mop(Not, 22688 bVar"b'7"), 22689 Bop(And, 22690 Mop(Not, 22691 bVar"b'6"), 22692 Bop(And, 22693 Mop(Not, 22694 bVar"b'5"), 22695 Bop(And, 22696 Mop(Not, 22697 bVar"b'4"), 22698 Mop(Not, 22699 bVar"b'3"))))))))))))))), 22700 Call 22701 ("CP",CTy"instruction", 22702 Call 22703 ("DMFC0",CTy"CP", 22704 TP[Mop(Cast(FTy 5), 22705 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22706 bVar"b'17",bVar"b'16"]), 22707 Mop(Cast(FTy 5), 22708 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22709 bVar"b'12",bVar"b'11"]), 22710 Mop(Cast(FTy 3), 22711 LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))), 22712 (Bop(And,Mop(Not,bVar"b'28"), 22713 Bop(And,Mop(Not,bVar"b'27"), 22714 Bop(And,Mop(Not,bVar"b'25"), 22715 Bop(And,Mop(Not,bVar"b'24"), 22716 Bop(And,bVar"b'23", 22717 Bop(And,Mop(Not,bVar"b'22"), 22718 Bop(And,Mop(Not,bVar"b'21"), 22719 Bop(And, 22720 Mop(Not,bVar"b'10"), 22721 Bop(And, 22722 Mop(Not,bVar"b'9"), 22723 Bop(And, 22724 Mop(Not, 22725 bVar"b'8"), 22726 Bop(And, 22727 Mop(Not, 22728 bVar"b'7"), 22729 Bop(And, 22730 Mop(Not, 22731 bVar"b'6"), 22732 Bop(And, 22733 Mop(Not, 22734 bVar"b'5"), 22735 Bop(And, 22736 Mop(Not, 22737 bVar"b'4"), 22738 Mop(Not, 22739 bVar"b'3"))))))))))))))), 22740 Call 22741 ("CP",CTy"instruction", 22742 Call 22743 ("MTC0",CTy"CP", 22744 TP[Mop(Cast(FTy 5), 22745 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22746 bVar"b'17",bVar"b'16"]), 22747 Mop(Cast(FTy 5), 22748 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22749 bVar"b'12",bVar"b'11"]), 22750 Mop(Cast(FTy 3), 22751 LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))), 22752 (Bop(And,Mop(Not,bVar"b'28"), 22753 Bop(And,Mop(Not,bVar"b'27"), 22754 Bop(And,Mop(Not,bVar"b'25"), 22755 Bop(And,Mop(Not,bVar"b'24"), 22756 Bop(And,bVar"b'23", 22757 Bop(And,Mop(Not,bVar"b'22"), 22758 Bop(And,bVar"b'21", 22759 Bop(And, 22760 Mop(Not,bVar"b'10"), 22761 Bop(And, 22762 Mop(Not,bVar"b'9"), 22763 Bop(And, 22764 Mop(Not, 22765 bVar"b'8"), 22766 Bop(And, 22767 Mop(Not, 22768 bVar"b'7"), 22769 Bop(And, 22770 Mop(Not, 22771 bVar"b'6"), 22772 Bop(And, 22773 Mop(Not, 22774 bVar"b'5"), 22775 Bop(And, 22776 Mop(Not, 22777 bVar"b'4"), 22778 Mop(Not, 22779 bVar"b'3"))))))))))))))), 22780 Call 22781 ("CP",CTy"instruction", 22782 Call 22783 ("DMTC0",CTy"CP", 22784 TP[Mop(Cast(FTy 5), 22785 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22786 bVar"b'17",bVar"b'16"]), 22787 Mop(Cast(FTy 5), 22788 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22789 bVar"b'12",bVar"b'11"]), 22790 Mop(Cast(FTy 3), 22791 LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))), 22792 (Bop(And,bVar"b'28", 22793 Bop(And,bVar"b'27", 22794 Bop(And,Mop(Not,bVar"b'20"), 22795 Bop(And,Mop(Not,bVar"b'19"), 22796 Bop(And,Mop(Not,bVar"b'18"), 22797 Bop(And,Mop(Not,bVar"b'17"), 22798 Mop(Not,bVar"b'16"))))))), 22799 Call 22800 ("Branch",CTy"instruction", 22801 Call 22802 ("BLEZL",CTy"Branch", 22803 TP[Mop(Cast(FTy 5), 22804 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22805 bVar"b'22",bVar"b'21"]), 22806 Mop(Cast F16, 22807 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22808 bVar"b'12",bVar"b'11",bVar"b'10", 22809 bVar"b'9",bVar"b'8",bVar"b'7", 22810 bVar"b'6",bVar"b'5",bVar"b'4", 22811 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 22812 (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), 22813 Call 22814 ("Branch",CTy"instruction", 22815 Call 22816 ("BEQL",CTy"Branch", 22817 TP[Mop(Cast(FTy 5), 22818 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22819 bVar"b'22",bVar"b'21"]), 22820 Mop(Cast(FTy 5), 22821 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22822 bVar"b'17",bVar"b'16"]), 22823 Mop(Cast F16, 22824 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22825 bVar"b'12",bVar"b'11",bVar"b'10", 22826 bVar"b'9",bVar"b'8",bVar"b'7", 22827 bVar"b'6",bVar"b'5",bVar"b'4", 22828 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 22829 (Bop(And,Mop(Not,bVar"b'28"), 22830 Bop(And,Mop(Not,bVar"b'27"), 22831 Bop(And,bVar"b'25", 22832 Bop(And,Mop(Not,bVar"b'24"), 22833 Bop(And,Mop(Not,bVar"b'23"), 22834 Bop(And,Mop(Not,bVar"b'22"), 22835 Bop(And,Mop(Not,bVar"b'21"), 22836 Bop(And, 22837 Mop(Not,bVar"b'20"), 22838 Bop(And, 22839 Mop(Not,bVar"b'19"), 22840 Bop(And, 22841 Mop(Not, 22842 bVar"b'18"), 22843 Bop(And, 22844 Mop(Not, 22845 bVar"b'17"), 22846 Bop(And, 22847 Mop(Not, 22848 bVar"b'16"), 22849 Bop(And, 22850 Mop(Not, 22851 bVar"b'15"), 22852 Bop(And, 22853 Mop(Not, 22854 bVar"b'14"), 22855 Bop(And, 22856 Mop(Not, 22857 bVar"b'13"), 22858 Bop(And, 22859 Mop(Not, 22860 bVar"b'12"), 22861 Bop(And, 22862 Mop(Not, 22863 bVar"b'11"), 22864 Bop(And, 22865 Mop(Not, 22866 bVar"b'10"), 22867 Bop(And, 22868 Mop(Not, 22869 bVar"b'9"), 22870 Bop(And, 22871 Mop(Not, 22872 bVar"b'8"), 22873 Bop(And, 22874 Mop(Not, 22875 bVar"b'7"), 22876 Bop(And, 22877 Mop(Not, 22878 bVar"b'6"), 22879 Bop(And, 22880 bVar"b'5", 22881 Bop(And, 22882 Mop(Not, 22883 bVar"b'4"), 22884 Bop(And, 22885 Mop(Not, 22886 bVar"b'3"), 22887 Bop(And, 22888 Mop(Not, 22889 bVar"b'2"), 22890 Bop(And, 22891 Mop(Not, 22892 bVar"b'1"), 22893 Mop(Not, 22894 bVar"b'0")))))))))))))))))))))))))))), 22895 Const("WAIT",CTy"instruction")), 22896 (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), 22897 Call 22898 ("COP2Decode",CTy"instruction", 22899 Mop(Cast(FTy 26), 22900 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 22901 bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18", 22902 bVar"b'17",bVar"b'16",bVar"b'15",bVar"b'14", 22903 bVar"b'13",bVar"b'12",bVar"b'11",bVar"b'10", 22904 bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", 22905 bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", 22906 bVar"b'1",bVar"b'0"])))], 22907 Const("ReservedInstruction",CTy"instruction"))), 22908 (bVar"b'31", 22909 ITB([(bVar"b'29", 22910 ITB([(Bop(And,Mop(Not,bVar"b'28"),Mop(Not,bVar"b'27")), 22911 Call 22912 ("Store",CTy"instruction", 22913 Call 22914 ("SB",CTy"Store", 22915 TP[Mop(Cast(FTy 5), 22916 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22917 bVar"b'22",bVar"b'21"]), 22918 Mop(Cast(FTy 5), 22919 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22920 bVar"b'17",bVar"b'16"]), 22921 Mop(Cast F16, 22922 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22923 bVar"b'12",bVar"b'11",bVar"b'10", 22924 bVar"b'9",bVar"b'8",bVar"b'7", 22925 bVar"b'6",bVar"b'5",bVar"b'4", 22926 bVar"b'3",bVar"b'2",bVar"b'1", 22927 bVar"b'0"])]))), 22928 (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), 22929 Call 22930 ("Store",CTy"instruction", 22931 Call 22932 ("SWL",CTy"Store", 22933 TP[Mop(Cast(FTy 5), 22934 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22935 bVar"b'22",bVar"b'21"]), 22936 Mop(Cast(FTy 5), 22937 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22938 bVar"b'17",bVar"b'16"]), 22939 Mop(Cast F16, 22940 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22941 bVar"b'12",bVar"b'11",bVar"b'10", 22942 bVar"b'9",bVar"b'8",bVar"b'7", 22943 bVar"b'6",bVar"b'5",bVar"b'4", 22944 bVar"b'3",bVar"b'2",bVar"b'1", 22945 bVar"b'0"])]))), 22946 (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), 22947 Call 22948 ("Store",CTy"instruction", 22949 Call 22950 ("SDL",CTy"Store", 22951 TP[Mop(Cast(FTy 5), 22952 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22953 bVar"b'22",bVar"b'21"]), 22954 Mop(Cast(FTy 5), 22955 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22956 bVar"b'17",bVar"b'16"]), 22957 Mop(Cast F16, 22958 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22959 bVar"b'12",bVar"b'11",bVar"b'10", 22960 bVar"b'9",bVar"b'8",bVar"b'7", 22961 bVar"b'6",bVar"b'5",bVar"b'4", 22962 bVar"b'3",bVar"b'2",bVar"b'1", 22963 bVar"b'0"])]))), 22964 (Bop(And,bVar"b'28",bVar"b'27"), 22965 Call 22966 ("Store",CTy"instruction", 22967 Call 22968 ("SWR",CTy"Store", 22969 TP[Mop(Cast(FTy 5), 22970 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22971 bVar"b'22",bVar"b'21"]), 22972 Mop(Cast(FTy 5), 22973 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22974 bVar"b'17",bVar"b'16"]), 22975 Mop(Cast F16, 22976 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22977 bVar"b'12",bVar"b'11",bVar"b'10", 22978 bVar"b'9",bVar"b'8",bVar"b'7", 22979 bVar"b'6",bVar"b'5",bVar"b'4", 22980 bVar"b'3",bVar"b'2",bVar"b'1", 22981 bVar"b'0"])])))], 22982 Const("ReservedInstruction",CTy"instruction"))), 22983 (Bop(And,Mop(Not,bVar"b'28"),Mop(Not,bVar"b'27")), 22984 Call 22985 ("Load",CTy"instruction", 22986 Call 22987 ("LB",CTy"Load", 22988 TP[Mop(Cast(FTy 5), 22989 LL[bVar"b'25",bVar"b'24",bVar"b'23", 22990 bVar"b'22",bVar"b'21"]), 22991 Mop(Cast(FTy 5), 22992 LL[bVar"b'20",bVar"b'19",bVar"b'18", 22993 bVar"b'17",bVar"b'16"]), 22994 Mop(Cast F16, 22995 LL[bVar"b'15",bVar"b'14",bVar"b'13", 22996 bVar"b'12",bVar"b'11",bVar"b'10", 22997 bVar"b'9",bVar"b'8",bVar"b'7", 22998 bVar"b'6",bVar"b'5",bVar"b'4", 22999 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 23000 (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), 23001 Call 23002 ("Load",CTy"instruction", 23003 Call 23004 ("LWL",CTy"Load", 23005 TP[Mop(Cast(FTy 5), 23006 LL[bVar"b'25",bVar"b'24",bVar"b'23", 23007 bVar"b'22",bVar"b'21"]), 23008 Mop(Cast(FTy 5), 23009 LL[bVar"b'20",bVar"b'19",bVar"b'18", 23010 bVar"b'17",bVar"b'16"]), 23011 Mop(Cast F16, 23012 LL[bVar"b'15",bVar"b'14",bVar"b'13", 23013 bVar"b'12",bVar"b'11",bVar"b'10", 23014 bVar"b'9",bVar"b'8",bVar"b'7", 23015 bVar"b'6",bVar"b'5",bVar"b'4", 23016 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 23017 (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), 23018 Call 23019 ("Load",CTy"instruction", 23020 Call 23021 ("LBU",CTy"Load", 23022 TP[Mop(Cast(FTy 5), 23023 LL[bVar"b'25",bVar"b'24",bVar"b'23", 23024 bVar"b'22",bVar"b'21"]), 23025 Mop(Cast(FTy 5), 23026 LL[bVar"b'20",bVar"b'19",bVar"b'18", 23027 bVar"b'17",bVar"b'16"]), 23028 Mop(Cast F16, 23029 LL[bVar"b'15",bVar"b'14",bVar"b'13", 23030 bVar"b'12",bVar"b'11",bVar"b'10", 23031 bVar"b'9",bVar"b'8",bVar"b'7", 23032 bVar"b'6",bVar"b'5",bVar"b'4", 23033 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 23034 (Bop(And,bVar"b'28",bVar"b'27"), 23035 Call 23036 ("Load",CTy"instruction", 23037 Call 23038 ("LWR",CTy"Load", 23039 TP[Mop(Cast(FTy 5), 23040 LL[bVar"b'25",bVar"b'24",bVar"b'23", 23041 bVar"b'22",bVar"b'21"]), 23042 Mop(Cast(FTy 5), 23043 LL[bVar"b'20",bVar"b'19",bVar"b'18", 23044 bVar"b'17",bVar"b'16"]), 23045 Mop(Cast F16, 23046 LL[bVar"b'15",bVar"b'14",bVar"b'13", 23047 bVar"b'12",bVar"b'11",bVar"b'10", 23048 bVar"b'9",bVar"b'8",bVar"b'7", 23049 bVar"b'6",bVar"b'5",bVar"b'4", 23050 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])])))], 23051 Const("ReservedInstruction",CTy"instruction"))), 23052 (bVar"b'29", 23053 ITB([(Bop(And,Mop(Not,bVar"b'28"),Mop(Not,bVar"b'27")), 23054 Call 23055 ("ArithI",CTy"instruction", 23056 Call 23057 ("ADDI",CTy"ArithI", 23058 TP[Mop(Cast(FTy 5), 23059 LL[bVar"b'25",bVar"b'24",bVar"b'23", 23060 bVar"b'22",bVar"b'21"]), 23061 Mop(Cast(FTy 5), 23062 LL[bVar"b'20",bVar"b'19",bVar"b'18", 23063 bVar"b'17",bVar"b'16"]), 23064 Mop(Cast F16, 23065 LL[bVar"b'15",bVar"b'14",bVar"b'13", 23066 bVar"b'12",bVar"b'11",bVar"b'10", 23067 bVar"b'9",bVar"b'8",bVar"b'7", 23068 bVar"b'6",bVar"b'5",bVar"b'4", 23069 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 23070 (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), 23071 Call 23072 ("ArithI",CTy"instruction", 23073 Call 23074 ("SLTI",CTy"ArithI", 23075 TP[Mop(Cast(FTy 5), 23076 LL[bVar"b'25",bVar"b'24",bVar"b'23", 23077 bVar"b'22",bVar"b'21"]), 23078 Mop(Cast(FTy 5), 23079 LL[bVar"b'20",bVar"b'19",bVar"b'18", 23080 bVar"b'17",bVar"b'16"]), 23081 Mop(Cast F16, 23082 LL[bVar"b'15",bVar"b'14",bVar"b'13", 23083 bVar"b'12",bVar"b'11",bVar"b'10", 23084 bVar"b'9",bVar"b'8",bVar"b'7", 23085 bVar"b'6",bVar"b'5",bVar"b'4", 23086 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 23087 (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), 23088 Call 23089 ("ArithI",CTy"instruction", 23090 Call 23091 ("ANDI",CTy"ArithI", 23092 TP[Mop(Cast(FTy 5), 23093 LL[bVar"b'25",bVar"b'24",bVar"b'23", 23094 bVar"b'22",bVar"b'21"]), 23095 Mop(Cast(FTy 5), 23096 LL[bVar"b'20",bVar"b'19",bVar"b'18", 23097 bVar"b'17",bVar"b'16"]), 23098 Mop(Cast F16, 23099 LL[bVar"b'15",bVar"b'14",bVar"b'13", 23100 bVar"b'12",bVar"b'11",bVar"b'10", 23101 bVar"b'9",bVar"b'8",bVar"b'7", 23102 bVar"b'6",bVar"b'5",bVar"b'4", 23103 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 23104 (Bop(And,bVar"b'28",bVar"b'27"), 23105 Call 23106 ("ArithI",CTy"instruction", 23107 Call 23108 ("XORI",CTy"ArithI", 23109 TP[Mop(Cast(FTy 5), 23110 LL[bVar"b'25",bVar"b'24",bVar"b'23", 23111 bVar"b'22",bVar"b'21"]), 23112 Mop(Cast(FTy 5), 23113 LL[bVar"b'20",bVar"b'19",bVar"b'18", 23114 bVar"b'17",bVar"b'16"]), 23115 Mop(Cast F16, 23116 LL[bVar"b'15",bVar"b'14",bVar"b'13", 23117 bVar"b'12",bVar"b'11",bVar"b'10", 23118 bVar"b'9",bVar"b'8",bVar"b'7", 23119 bVar"b'6",bVar"b'5",bVar"b'4", 23120 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])])))], 23121 Const("ReservedInstruction",CTy"instruction"))), 23122 (Bop(And,Mop(Not,bVar"b'28"), 23123 Bop(And,Mop(Not,bVar"b'27"), 23124 Bop(And,Mop(Not,bVar"b'10"), 23125 Bop(And,Mop(Not,bVar"b'9"), 23126 Bop(And,Mop(Not,bVar"b'8"), 23127 Bop(And,Mop(Not,bVar"b'7"), 23128 Bop(And,Mop(Not,bVar"b'6"), 23129 Bop(And,Mop(Not,bVar"b'5"), 23130 Bop(And,Mop(Not,bVar"b'4"), 23131 Bop(And, 23132 Mop(Not,bVar"b'3"), 23133 Bop(And, 23134 Mop(Not,bVar"b'2"), 23135 Bop(And, 23136 Mop(Not, 23137 bVar"b'1"), 23138 bVar"b'0")))))))))))), 23139 Call 23140 ("MOVCIDecode",CTy"instruction", 23141 TP[Mop(Cast(FTy 5), 23142 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23143 bVar"b'21"]), 23144 Mop(Cast(FTy 5), 23145 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23146 bVar"b'16"]), 23147 Mop(Cast(FTy 5), 23148 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23149 bVar"b'11"])])), 23150 (Bop(And,Mop(Not,bVar"b'28"), 23151 Bop(And,Mop(Not,bVar"b'27"), 23152 Bop(And,Mop(Not,bVar"b'25"), 23153 Bop(And,Mop(Not,bVar"b'24"), 23154 Bop(And,Mop(Not,bVar"b'23"), 23155 Bop(And,Mop(Not,bVar"b'22"), 23156 Bop(And,Mop(Not,bVar"b'21"), 23157 Bop(And,Mop(Not,bVar"b'5"), 23158 Bop(And,Mop(Not,bVar"b'4"), 23159 Bop(And, 23160 Mop(Not,bVar"b'3"), 23161 Bop(And, 23162 Mop(Not,bVar"b'2"), 23163 Bop(And, 23164 Mop(Not, 23165 bVar"b'1"), 23166 Mop(Not, 23167 bVar"b'0"))))))))))))), 23168 Call 23169 ("Shift",CTy"instruction", 23170 Call 23171 ("SLL",CTy"Shift", 23172 TP[Mop(Cast(FTy 5), 23173 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23174 bVar"b'16"]), 23175 Mop(Cast(FTy 5), 23176 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23177 bVar"b'11"]), 23178 Mop(Cast(FTy 5), 23179 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 23180 bVar"b'6"])]))), 23181 (Bop(And,Mop(Not,bVar"b'28"), 23182 Bop(And,Mop(Not,bVar"b'27"), 23183 Bop(And,Mop(Not,bVar"b'25"), 23184 Bop(And,Mop(Not,bVar"b'24"), 23185 Bop(And,Mop(Not,bVar"b'23"), 23186 Bop(And,Mop(Not,bVar"b'22"), 23187 Bop(And,Mop(Not,bVar"b'21"), 23188 Bop(And,Mop(Not,bVar"b'5"), 23189 Bop(And,Mop(Not,bVar"b'4"), 23190 Bop(And, 23191 Mop(Not,bVar"b'3"), 23192 Bop(And, 23193 Mop(Not,bVar"b'2"), 23194 Bop(And, 23195 bVar"b'1", 23196 Mop(Not, 23197 bVar"b'0"))))))))))))), 23198 Call 23199 ("Shift",CTy"instruction", 23200 Call 23201 ("SRL",CTy"Shift", 23202 TP[Mop(Cast(FTy 5), 23203 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23204 bVar"b'16"]), 23205 Mop(Cast(FTy 5), 23206 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23207 bVar"b'11"]), 23208 Mop(Cast(FTy 5), 23209 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 23210 bVar"b'6"])]))), 23211 (Bop(And,Mop(Not,bVar"b'28"), 23212 Bop(And,Mop(Not,bVar"b'27"), 23213 Bop(And,Mop(Not,bVar"b'25"), 23214 Bop(And,Mop(Not,bVar"b'24"), 23215 Bop(And,Mop(Not,bVar"b'23"), 23216 Bop(And,Mop(Not,bVar"b'22"), 23217 Bop(And,Mop(Not,bVar"b'21"), 23218 Bop(And,Mop(Not,bVar"b'5"), 23219 Bop(And,Mop(Not,bVar"b'4"), 23220 Bop(And, 23221 Mop(Not,bVar"b'3"), 23222 Bop(And, 23223 Mop(Not,bVar"b'2"), 23224 Bop(And, 23225 bVar"b'1", 23226 bVar"b'0")))))))))))), 23227 Call 23228 ("Shift",CTy"instruction", 23229 Call 23230 ("SRA",CTy"Shift", 23231 TP[Mop(Cast(FTy 5), 23232 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23233 bVar"b'16"]), 23234 Mop(Cast(FTy 5), 23235 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23236 bVar"b'11"]), 23237 Mop(Cast(FTy 5), 23238 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 23239 bVar"b'6"])]))), 23240 (Bop(And,Mop(Not,bVar"b'28"), 23241 Bop(And,Mop(Not,bVar"b'27"), 23242 Bop(And,Mop(Not,bVar"b'10"), 23243 Bop(And,Mop(Not,bVar"b'9"), 23244 Bop(And,Mop(Not,bVar"b'8"), 23245 Bop(And,Mop(Not,bVar"b'7"), 23246 Bop(And,Mop(Not,bVar"b'6"), 23247 Bop(And,Mop(Not,bVar"b'5"), 23248 Bop(And,Mop(Not,bVar"b'4"), 23249 Bop(And, 23250 Mop(Not,bVar"b'3"), 23251 Bop(And,bVar"b'2", 23252 Bop(And, 23253 Mop(Not, 23254 bVar"b'1"), 23255 Mop(Not, 23256 bVar"b'0"))))))))))))), 23257 Call 23258 ("Shift",CTy"instruction", 23259 Call 23260 ("SLLV",CTy"Shift", 23261 TP[Mop(Cast(FTy 5), 23262 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23263 bVar"b'21"]), 23264 Mop(Cast(FTy 5), 23265 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23266 bVar"b'16"]), 23267 Mop(Cast(FTy 5), 23268 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23269 bVar"b'11"])]))), 23270 (Bop(And,Mop(Not,bVar"b'28"), 23271 Bop(And,Mop(Not,bVar"b'27"), 23272 Bop(And,Mop(Not,bVar"b'10"), 23273 Bop(And,Mop(Not,bVar"b'9"), 23274 Bop(And,Mop(Not,bVar"b'8"), 23275 Bop(And,Mop(Not,bVar"b'7"), 23276 Bop(And,Mop(Not,bVar"b'6"), 23277 Bop(And,Mop(Not,bVar"b'5"), 23278 Bop(And,Mop(Not,bVar"b'4"), 23279 Bop(And, 23280 Mop(Not,bVar"b'3"), 23281 Bop(And,bVar"b'2", 23282 Bop(And, 23283 bVar"b'1", 23284 Mop(Not, 23285 bVar"b'0"))))))))))))), 23286 Call 23287 ("Shift",CTy"instruction", 23288 Call 23289 ("SRLV",CTy"Shift", 23290 TP[Mop(Cast(FTy 5), 23291 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23292 bVar"b'21"]), 23293 Mop(Cast(FTy 5), 23294 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23295 bVar"b'16"]), 23296 Mop(Cast(FTy 5), 23297 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23298 bVar"b'11"])]))), 23299 (Bop(And,Mop(Not,bVar"b'28"), 23300 Bop(And,Mop(Not,bVar"b'27"), 23301 Bop(And,Mop(Not,bVar"b'10"), 23302 Bop(And,Mop(Not,bVar"b'9"), 23303 Bop(And,Mop(Not,bVar"b'8"), 23304 Bop(And,Mop(Not,bVar"b'7"), 23305 Bop(And,Mop(Not,bVar"b'6"), 23306 Bop(And,Mop(Not,bVar"b'5"), 23307 Bop(And,Mop(Not,bVar"b'4"), 23308 Bop(And, 23309 Mop(Not,bVar"b'3"), 23310 Bop(And,bVar"b'2", 23311 Bop(And, 23312 bVar"b'1", 23313 bVar"b'0")))))))))))), 23314 Call 23315 ("Shift",CTy"instruction", 23316 Call 23317 ("SRAV",CTy"Shift", 23318 TP[Mop(Cast(FTy 5), 23319 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23320 bVar"b'21"]), 23321 Mop(Cast(FTy 5), 23322 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23323 bVar"b'16"]), 23324 Mop(Cast(FTy 5), 23325 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23326 bVar"b'11"])]))), 23327 (Bop(And,Mop(Not,bVar"b'28"), 23328 Bop(And,Mop(Not,bVar"b'27"), 23329 Bop(And,Mop(Not,bVar"b'20"), 23330 Bop(And,Mop(Not,bVar"b'19"), 23331 Bop(And,Mop(Not,bVar"b'18"), 23332 Bop(And,Mop(Not,bVar"b'17"), 23333 Bop(And,Mop(Not,bVar"b'16"), 23334 Bop(And,Mop(Not,bVar"b'15"), 23335 Bop(And,Mop(Not,bVar"b'14"), 23336 Bop(And, 23337 Mop(Not,bVar"b'13"), 23338 Bop(And, 23339 Mop(Not, 23340 bVar"b'12"), 23341 Bop(And, 23342 Mop(Not, 23343 bVar"b'11"), 23344 Bop(And, 23345 Mop(Not, 23346 bVar"b'5"), 23347 Bop(And, 23348 Mop(Not, 23349 bVar"b'4"), 23350 Bop(And, 23351 bVar"b'3", 23352 Bop(And, 23353 Mop(Not, 23354 bVar"b'2"), 23355 Bop(And, 23356 Mop(Not, 23357 bVar"b'1"), 23358 Mop(Not, 23359 bVar"b'0")))))))))))))))))), 23360 Call 23361 ("Branch",CTy"instruction", 23362 Call 23363 ("JR",CTy"Branch", 23364 Mop(Cast(FTy 5), 23365 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23366 bVar"b'21"])))), 23367 (Bop(And,Mop(Not,bVar"b'28"), 23368 Bop(And,Mop(Not,bVar"b'27"), 23369 Bop(And,Mop(Not,bVar"b'20"), 23370 Bop(And,Mop(Not,bVar"b'19"), 23371 Bop(And,Mop(Not,bVar"b'18"), 23372 Bop(And,Mop(Not,bVar"b'17"), 23373 Bop(And,Mop(Not,bVar"b'16"), 23374 Bop(And,Mop(Not,bVar"b'5"), 23375 Bop(And,Mop(Not,bVar"b'4"), 23376 Bop(And,bVar"b'3", 23377 Bop(And, 23378 Mop(Not,bVar"b'2"), 23379 Bop(And, 23380 Mop(Not, 23381 bVar"b'1"), 23382 bVar"b'0")))))))))))), 23383 Call 23384 ("Branch",CTy"instruction", 23385 Call 23386 ("JALR",CTy"Branch", 23387 TP[Mop(Cast(FTy 5), 23388 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23389 bVar"b'21"]), 23390 Mop(Cast(FTy 5), 23391 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23392 bVar"b'11"])]))), 23393 (Bop(And,Mop(Not,bVar"b'28"), 23394 Bop(And,Mop(Not,bVar"b'27"), 23395 Bop(And,Mop(Not,bVar"b'10"), 23396 Bop(And,Mop(Not,bVar"b'9"), 23397 Bop(And,Mop(Not,bVar"b'8"), 23398 Bop(And,Mop(Not,bVar"b'7"), 23399 Bop(And,Mop(Not,bVar"b'6"), 23400 Bop(And,Mop(Not,bVar"b'5"), 23401 Bop(And,Mop(Not,bVar"b'4"), 23402 Bop(And,bVar"b'3", 23403 Bop(And, 23404 Mop(Not,bVar"b'2"), 23405 Bop(And, 23406 bVar"b'1", 23407 Mop(Not, 23408 bVar"b'0"))))))))))))), 23409 Call 23410 ("ArithR",CTy"instruction", 23411 Call 23412 ("MOVZ",CTy"ArithR", 23413 TP[Mop(Cast(FTy 5), 23414 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23415 bVar"b'21"]), 23416 Mop(Cast(FTy 5), 23417 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23418 bVar"b'16"]), 23419 Mop(Cast(FTy 5), 23420 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23421 bVar"b'11"])]))), 23422 (Bop(And,Mop(Not,bVar"b'28"), 23423 Bop(And,Mop(Not,bVar"b'27"), 23424 Bop(And,Mop(Not,bVar"b'10"), 23425 Bop(And,Mop(Not,bVar"b'9"), 23426 Bop(And,Mop(Not,bVar"b'8"), 23427 Bop(And,Mop(Not,bVar"b'7"), 23428 Bop(And,Mop(Not,bVar"b'6"), 23429 Bop(And,Mop(Not,bVar"b'5"), 23430 Bop(And,Mop(Not,bVar"b'4"), 23431 Bop(And,bVar"b'3", 23432 Bop(And, 23433 Mop(Not,bVar"b'2"), 23434 Bop(And, 23435 bVar"b'1", 23436 bVar"b'0")))))))))))), 23437 Call 23438 ("ArithR",CTy"instruction", 23439 Call 23440 ("MOVN",CTy"ArithR", 23441 TP[Mop(Cast(FTy 5), 23442 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23443 bVar"b'21"]), 23444 Mop(Cast(FTy 5), 23445 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23446 bVar"b'16"]), 23447 Mop(Cast(FTy 5), 23448 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23449 bVar"b'11"])]))), 23450 (Bop(And,Mop(Not,bVar"b'28"), 23451 Bop(And,Mop(Not,bVar"b'27"), 23452 Bop(And,Mop(Not,bVar"b'25"), 23453 Bop(And,Mop(Not,bVar"b'24"), 23454 Bop(And,Mop(Not,bVar"b'23"), 23455 Bop(And,Mop(Not,bVar"b'22"), 23456 Bop(And,Mop(Not,bVar"b'21"), 23457 Bop(And,Mop(Not,bVar"b'5"), 23458 Bop(And,Mop(Not,bVar"b'4"), 23459 Bop(And,bVar"b'3", 23460 Bop(And,bVar"b'2", 23461 Bop(And, 23462 Mop(Not, 23463 bVar"b'1"), 23464 Mop(Not, 23465 bVar"b'0"))))))))))))), 23466 Const("SYSCALL",CTy"instruction")), 23467 (Bop(And,Mop(Not,bVar"b'28"), 23468 Bop(And,Mop(Not,bVar"b'27"), 23469 Bop(And,Mop(Not,bVar"b'25"), 23470 Bop(And,Mop(Not,bVar"b'24"), 23471 Bop(And,Mop(Not,bVar"b'23"), 23472 Bop(And,Mop(Not,bVar"b'22"), 23473 Bop(And,Mop(Not,bVar"b'21"), 23474 Bop(And,Mop(Not,bVar"b'5"), 23475 Bop(And,Mop(Not,bVar"b'4"), 23476 Bop(And,bVar"b'3", 23477 Bop(And,bVar"b'2", 23478 Bop(And, 23479 Mop(Not, 23480 bVar"b'1"), 23481 bVar"b'0")))))))))))), 23482 Const("BREAK",CTy"instruction")), 23483 (Bop(And,Mop(Not,bVar"b'28"), 23484 Bop(And,Mop(Not,bVar"b'27"), 23485 Bop(And,Mop(Not,bVar"b'25"), 23486 Bop(And,Mop(Not,bVar"b'24"), 23487 Bop(And,Mop(Not,bVar"b'23"), 23488 Bop(And,Mop(Not,bVar"b'22"), 23489 Bop(And,Mop(Not,bVar"b'21"), 23490 Bop(And,Mop(Not,bVar"b'20"), 23491 Bop(And,Mop(Not,bVar"b'19"), 23492 Bop(And, 23493 Mop(Not,bVar"b'18"), 23494 Bop(And, 23495 Mop(Not, 23496 bVar"b'17"), 23497 Bop(And, 23498 Mop(Not, 23499 bVar"b'16"), 23500 Bop(And, 23501 Mop(Not, 23502 bVar"b'15"), 23503 Bop(And, 23504 Mop(Not, 23505 bVar"b'14"), 23506 Bop(And, 23507 Mop(Not, 23508 bVar"b'13"), 23509 Bop(And, 23510 Mop(Not, 23511 bVar"b'12"), 23512 Bop(And, 23513 Mop(Not, 23514 bVar"b'11"), 23515 Bop(And, 23516 Mop(Not, 23517 bVar"b'5"), 23518 Bop(And, 23519 Mop(Not, 23520 bVar"b'4"), 23521 Bop(And, 23522 bVar"b'3", 23523 Bop(And, 23524 bVar"b'2", 23525 Bop(And, 23526 bVar"b'1", 23527 bVar"b'0")))))))))))))))))))))), 23528 Call 23529 ("SYNC",CTy"instruction", 23530 Mop(Cast(FTy 5), 23531 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6"]))), 23532 (Bop(And,Mop(Not,bVar"b'28"), 23533 Bop(And,Mop(Not,bVar"b'27"), 23534 Bop(And,Mop(Not,bVar"b'25"), 23535 Bop(And,Mop(Not,bVar"b'24"), 23536 Bop(And,Mop(Not,bVar"b'23"), 23537 Bop(And,Mop(Not,bVar"b'22"), 23538 Bop(And,Mop(Not,bVar"b'21"), 23539 Bop(And,Mop(Not,bVar"b'20"), 23540 Bop(And,Mop(Not,bVar"b'19"), 23541 Bop(And, 23542 Mop(Not,bVar"b'18"), 23543 Bop(And, 23544 Mop(Not, 23545 bVar"b'17"), 23546 Bop(And, 23547 Mop(Not, 23548 bVar"b'16"), 23549 Bop(And, 23550 Mop(Not, 23551 bVar"b'10"), 23552 Bop(And, 23553 Mop(Not, 23554 bVar"b'9"), 23555 Bop(And, 23556 Mop(Not, 23557 bVar"b'8"), 23558 Bop(And, 23559 Mop(Not, 23560 bVar"b'7"), 23561 Bop(And, 23562 Mop(Not, 23563 bVar"b'6"), 23564 Bop(And, 23565 Mop(Not, 23566 bVar"b'5"), 23567 Bop(And, 23568 bVar"b'4", 23569 Bop(And, 23570 Mop(Not, 23571 bVar"b'3"), 23572 Bop(And, 23573 Mop(Not, 23574 bVar"b'2"), 23575 Bop(And, 23576 Mop(Not, 23577 bVar"b'1"), 23578 Mop(Not, 23579 bVar"b'0"))))))))))))))))))))))), 23580 Call 23581 ("MultDiv",CTy"instruction", 23582 Call 23583 ("MFHI",CTy"MultDiv", 23584 Mop(Cast(FTy 5), 23585 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23586 bVar"b'11"])))), 23587 (Bop(And,Mop(Not,bVar"b'28"), 23588 Bop(And,Mop(Not,bVar"b'27"), 23589 Bop(And,Mop(Not,bVar"b'20"), 23590 Bop(And,Mop(Not,bVar"b'19"), 23591 Bop(And,Mop(Not,bVar"b'18"), 23592 Bop(And,Mop(Not,bVar"b'17"), 23593 Bop(And,Mop(Not,bVar"b'16"), 23594 Bop(And,Mop(Not,bVar"b'15"), 23595 Bop(And,Mop(Not,bVar"b'14"), 23596 Bop(And, 23597 Mop(Not,bVar"b'13"), 23598 Bop(And, 23599 Mop(Not, 23600 bVar"b'12"), 23601 Bop(And, 23602 Mop(Not, 23603 bVar"b'11"), 23604 Bop(And, 23605 Mop(Not, 23606 bVar"b'10"), 23607 Bop(And, 23608 Mop(Not, 23609 bVar"b'9"), 23610 Bop(And, 23611 Mop(Not, 23612 bVar"b'8"), 23613 Bop(And, 23614 Mop(Not, 23615 bVar"b'7"), 23616 Bop(And, 23617 Mop(Not, 23618 bVar"b'6"), 23619 Bop(And, 23620 Mop(Not, 23621 bVar"b'5"), 23622 Bop(And, 23623 bVar"b'4", 23624 Bop(And, 23625 Mop(Not, 23626 bVar"b'3"), 23627 Bop(And, 23628 Mop(Not, 23629 bVar"b'2"), 23630 Bop(And, 23631 Mop(Not, 23632 bVar"b'1"), 23633 bVar"b'0")))))))))))))))))))))), 23634 Call 23635 ("MultDiv",CTy"instruction", 23636 Call 23637 ("MTHI",CTy"MultDiv", 23638 Mop(Cast(FTy 5), 23639 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23640 bVar"b'21"])))), 23641 (Bop(And,Mop(Not,bVar"b'28"), 23642 Bop(And,Mop(Not,bVar"b'27"), 23643 Bop(And,Mop(Not,bVar"b'25"), 23644 Bop(And,Mop(Not,bVar"b'24"), 23645 Bop(And,Mop(Not,bVar"b'23"), 23646 Bop(And,Mop(Not,bVar"b'22"), 23647 Bop(And,Mop(Not,bVar"b'21"), 23648 Bop(And,Mop(Not,bVar"b'20"), 23649 Bop(And,Mop(Not,bVar"b'19"), 23650 Bop(And, 23651 Mop(Not,bVar"b'18"), 23652 Bop(And, 23653 Mop(Not, 23654 bVar"b'17"), 23655 Bop(And, 23656 Mop(Not, 23657 bVar"b'16"), 23658 Bop(And, 23659 Mop(Not, 23660 bVar"b'10"), 23661 Bop(And, 23662 Mop(Not, 23663 bVar"b'9"), 23664 Bop(And, 23665 Mop(Not, 23666 bVar"b'8"), 23667 Bop(And, 23668 Mop(Not, 23669 bVar"b'7"), 23670 Bop(And, 23671 Mop(Not, 23672 bVar"b'6"), 23673 Bop(And, 23674 Mop(Not, 23675 bVar"b'5"), 23676 Bop(And, 23677 bVar"b'4", 23678 Bop(And, 23679 Mop(Not, 23680 bVar"b'3"), 23681 Bop(And, 23682 Mop(Not, 23683 bVar"b'2"), 23684 Bop(And, 23685 bVar"b'1", 23686 Mop(Not, 23687 bVar"b'0"))))))))))))))))))))))), 23688 Call 23689 ("MultDiv",CTy"instruction", 23690 Call 23691 ("MFLO",CTy"MultDiv", 23692 Mop(Cast(FTy 5), 23693 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23694 bVar"b'11"])))), 23695 (Bop(And,Mop(Not,bVar"b'28"), 23696 Bop(And,Mop(Not,bVar"b'27"), 23697 Bop(And,Mop(Not,bVar"b'20"), 23698 Bop(And,Mop(Not,bVar"b'19"), 23699 Bop(And,Mop(Not,bVar"b'18"), 23700 Bop(And,Mop(Not,bVar"b'17"), 23701 Bop(And,Mop(Not,bVar"b'16"), 23702 Bop(And,Mop(Not,bVar"b'15"), 23703 Bop(And,Mop(Not,bVar"b'14"), 23704 Bop(And, 23705 Mop(Not,bVar"b'13"), 23706 Bop(And, 23707 Mop(Not, 23708 bVar"b'12"), 23709 Bop(And, 23710 Mop(Not, 23711 bVar"b'11"), 23712 Bop(And, 23713 Mop(Not, 23714 bVar"b'10"), 23715 Bop(And, 23716 Mop(Not, 23717 bVar"b'9"), 23718 Bop(And, 23719 Mop(Not, 23720 bVar"b'8"), 23721 Bop(And, 23722 Mop(Not, 23723 bVar"b'7"), 23724 Bop(And, 23725 Mop(Not, 23726 bVar"b'6"), 23727 Bop(And, 23728 Mop(Not, 23729 bVar"b'5"), 23730 Bop(And, 23731 bVar"b'4", 23732 Bop(And, 23733 Mop(Not, 23734 bVar"b'3"), 23735 Bop(And, 23736 Mop(Not, 23737 bVar"b'2"), 23738 Bop(And, 23739 bVar"b'1", 23740 bVar"b'0")))))))))))))))))))))), 23741 Call 23742 ("MultDiv",CTy"instruction", 23743 Call 23744 ("MTLO",CTy"MultDiv", 23745 Mop(Cast(FTy 5), 23746 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23747 bVar"b'21"])))), 23748 (Bop(And,Mop(Not,bVar"b'28"), 23749 Bop(And,Mop(Not,bVar"b'27"), 23750 Bop(And,Mop(Not,bVar"b'10"), 23751 Bop(And,Mop(Not,bVar"b'9"), 23752 Bop(And,Mop(Not,bVar"b'8"), 23753 Bop(And,Mop(Not,bVar"b'7"), 23754 Bop(And,Mop(Not,bVar"b'6"), 23755 Bop(And,Mop(Not,bVar"b'5"), 23756 Bop(And,bVar"b'4", 23757 Bop(And, 23758 Mop(Not,bVar"b'3"), 23759 Bop(And,bVar"b'2", 23760 Bop(And, 23761 Mop(Not, 23762 bVar"b'1"), 23763 Mop(Not, 23764 bVar"b'0"))))))))))))), 23765 Call 23766 ("Shift",CTy"instruction", 23767 Call 23768 ("DSLLV",CTy"Shift", 23769 TP[Mop(Cast(FTy 5), 23770 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23771 bVar"b'21"]), 23772 Mop(Cast(FTy 5), 23773 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23774 bVar"b'16"]), 23775 Mop(Cast(FTy 5), 23776 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23777 bVar"b'11"])]))), 23778 (Bop(And,Mop(Not,bVar"b'28"), 23779 Bop(And,Mop(Not,bVar"b'27"), 23780 Bop(And,Mop(Not,bVar"b'10"), 23781 Bop(And,Mop(Not,bVar"b'9"), 23782 Bop(And,Mop(Not,bVar"b'8"), 23783 Bop(And,Mop(Not,bVar"b'7"), 23784 Bop(And,Mop(Not,bVar"b'6"), 23785 Bop(And,Mop(Not,bVar"b'5"), 23786 Bop(And,bVar"b'4", 23787 Bop(And, 23788 Mop(Not,bVar"b'3"), 23789 Bop(And,bVar"b'2", 23790 Bop(And, 23791 bVar"b'1", 23792 Mop(Not, 23793 bVar"b'0"))))))))))))), 23794 Call 23795 ("Shift",CTy"instruction", 23796 Call 23797 ("DSRLV",CTy"Shift", 23798 TP[Mop(Cast(FTy 5), 23799 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23800 bVar"b'21"]), 23801 Mop(Cast(FTy 5), 23802 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23803 bVar"b'16"]), 23804 Mop(Cast(FTy 5), 23805 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23806 bVar"b'11"])]))), 23807 (Bop(And,Mop(Not,bVar"b'28"), 23808 Bop(And,Mop(Not,bVar"b'27"), 23809 Bop(And,Mop(Not,bVar"b'10"), 23810 Bop(And,Mop(Not,bVar"b'9"), 23811 Bop(And,Mop(Not,bVar"b'8"), 23812 Bop(And,Mop(Not,bVar"b'7"), 23813 Bop(And,Mop(Not,bVar"b'6"), 23814 Bop(And,Mop(Not,bVar"b'5"), 23815 Bop(And,bVar"b'4", 23816 Bop(And, 23817 Mop(Not,bVar"b'3"), 23818 Bop(And,bVar"b'2", 23819 Bop(And, 23820 bVar"b'1", 23821 bVar"b'0")))))))))))), 23822 Call 23823 ("Shift",CTy"instruction", 23824 Call 23825 ("DSRAV",CTy"Shift", 23826 TP[Mop(Cast(FTy 5), 23827 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23828 bVar"b'21"]), 23829 Mop(Cast(FTy 5), 23830 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23831 bVar"b'16"]), 23832 Mop(Cast(FTy 5), 23833 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 23834 bVar"b'11"])]))), 23835 (Bop(And,Mop(Not,bVar"b'28"), 23836 Bop(And,Mop(Not,bVar"b'27"), 23837 Bop(And,Mop(Not,bVar"b'15"), 23838 Bop(And,Mop(Not,bVar"b'14"), 23839 Bop(And,Mop(Not,bVar"b'13"), 23840 Bop(And,Mop(Not,bVar"b'12"), 23841 Bop(And,Mop(Not,bVar"b'11"), 23842 Bop(And,Mop(Not,bVar"b'10"), 23843 Bop(And,Mop(Not,bVar"b'9"), 23844 Bop(And, 23845 Mop(Not,bVar"b'8"), 23846 Bop(And, 23847 Mop(Not,bVar"b'7"), 23848 Bop(And, 23849 Mop(Not, 23850 bVar"b'6"), 23851 Bop(And, 23852 Mop(Not, 23853 bVar"b'5"), 23854 Bop(And, 23855 bVar"b'4", 23856 Bop(And, 23857 bVar"b'3", 23858 Bop(And, 23859 Mop(Not, 23860 bVar"b'2"), 23861 Bop(And, 23862 Mop(Not, 23863 bVar"b'1"), 23864 Mop(Not, 23865 bVar"b'0")))))))))))))))))), 23866 Call 23867 ("MultDiv",CTy"instruction", 23868 Call 23869 ("MULT",CTy"MultDiv", 23870 TP[Mop(Cast(FTy 5), 23871 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23872 bVar"b'21"]), 23873 Mop(Cast(FTy 5), 23874 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23875 bVar"b'16"])]))), 23876 (Bop(And,Mop(Not,bVar"b'28"), 23877 Bop(And,Mop(Not,bVar"b'27"), 23878 Bop(And,Mop(Not,bVar"b'15"), 23879 Bop(And,Mop(Not,bVar"b'14"), 23880 Bop(And,Mop(Not,bVar"b'13"), 23881 Bop(And,Mop(Not,bVar"b'12"), 23882 Bop(And,Mop(Not,bVar"b'11"), 23883 Bop(And,Mop(Not,bVar"b'10"), 23884 Bop(And,Mop(Not,bVar"b'9"), 23885 Bop(And, 23886 Mop(Not,bVar"b'8"), 23887 Bop(And, 23888 Mop(Not,bVar"b'7"), 23889 Bop(And, 23890 Mop(Not, 23891 bVar"b'6"), 23892 Bop(And, 23893 Mop(Not, 23894 bVar"b'5"), 23895 Bop(And, 23896 bVar"b'4", 23897 Bop(And, 23898 bVar"b'3", 23899 Bop(And, 23900 Mop(Not, 23901 bVar"b'2"), 23902 Bop(And, 23903 Mop(Not, 23904 bVar"b'1"), 23905 bVar"b'0"))))))))))))))))), 23906 Call 23907 ("MultDiv",CTy"instruction", 23908 Call 23909 ("MULTU",CTy"MultDiv", 23910 TP[Mop(Cast(FTy 5), 23911 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23912 bVar"b'21"]), 23913 Mop(Cast(FTy 5), 23914 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23915 bVar"b'16"])]))), 23916 (Bop(And,Mop(Not,bVar"b'28"), 23917 Bop(And,Mop(Not,bVar"b'27"), 23918 Bop(And,Mop(Not,bVar"b'15"), 23919 Bop(And,Mop(Not,bVar"b'14"), 23920 Bop(And,Mop(Not,bVar"b'13"), 23921 Bop(And,Mop(Not,bVar"b'12"), 23922 Bop(And,Mop(Not,bVar"b'11"), 23923 Bop(And,Mop(Not,bVar"b'10"), 23924 Bop(And,Mop(Not,bVar"b'9"), 23925 Bop(And, 23926 Mop(Not,bVar"b'8"), 23927 Bop(And, 23928 Mop(Not,bVar"b'7"), 23929 Bop(And, 23930 Mop(Not, 23931 bVar"b'6"), 23932 Bop(And, 23933 Mop(Not, 23934 bVar"b'5"), 23935 Bop(And, 23936 bVar"b'4", 23937 Bop(And, 23938 bVar"b'3", 23939 Bop(And, 23940 Mop(Not, 23941 bVar"b'2"), 23942 Bop(And, 23943 bVar"b'1", 23944 Mop(Not, 23945 bVar"b'0")))))))))))))))))), 23946 Call 23947 ("MultDiv",CTy"instruction", 23948 Call 23949 ("DIV",CTy"MultDiv", 23950 TP[Mop(Cast(FTy 5), 23951 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23952 bVar"b'21"]), 23953 Mop(Cast(FTy 5), 23954 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23955 bVar"b'16"])]))), 23956 (Bop(And,Mop(Not,bVar"b'28"), 23957 Bop(And,Mop(Not,bVar"b'27"), 23958 Bop(And,Mop(Not,bVar"b'15"), 23959 Bop(And,Mop(Not,bVar"b'14"), 23960 Bop(And,Mop(Not,bVar"b'13"), 23961 Bop(And,Mop(Not,bVar"b'12"), 23962 Bop(And,Mop(Not,bVar"b'11"), 23963 Bop(And,Mop(Not,bVar"b'10"), 23964 Bop(And,Mop(Not,bVar"b'9"), 23965 Bop(And, 23966 Mop(Not,bVar"b'8"), 23967 Bop(And, 23968 Mop(Not,bVar"b'7"), 23969 Bop(And, 23970 Mop(Not, 23971 bVar"b'6"), 23972 Bop(And, 23973 Mop(Not, 23974 bVar"b'5"), 23975 Bop(And, 23976 bVar"b'4", 23977 Bop(And, 23978 bVar"b'3", 23979 Bop(And, 23980 Mop(Not, 23981 bVar"b'2"), 23982 Bop(And, 23983 bVar"b'1", 23984 bVar"b'0"))))))))))))))))), 23985 Call 23986 ("MultDiv",CTy"instruction", 23987 Call 23988 ("DIVU",CTy"MultDiv", 23989 TP[Mop(Cast(FTy 5), 23990 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 23991 bVar"b'21"]), 23992 Mop(Cast(FTy 5), 23993 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 23994 bVar"b'16"])]))), 23995 (Bop(And,Mop(Not,bVar"b'28"), 23996 Bop(And,Mop(Not,bVar"b'27"), 23997 Bop(And,Mop(Not,bVar"b'15"), 23998 Bop(And,Mop(Not,bVar"b'14"), 23999 Bop(And,Mop(Not,bVar"b'13"), 24000 Bop(And,Mop(Not,bVar"b'12"), 24001 Bop(And,Mop(Not,bVar"b'11"), 24002 Bop(And,Mop(Not,bVar"b'10"), 24003 Bop(And,Mop(Not,bVar"b'9"), 24004 Bop(And, 24005 Mop(Not,bVar"b'8"), 24006 Bop(And, 24007 Mop(Not,bVar"b'7"), 24008 Bop(And, 24009 Mop(Not, 24010 bVar"b'6"), 24011 Bop(And, 24012 Mop(Not, 24013 bVar"b'5"), 24014 Bop(And, 24015 bVar"b'4", 24016 Bop(And, 24017 bVar"b'3", 24018 Bop(And, 24019 bVar"b'2", 24020 Bop(And, 24021 Mop(Not, 24022 bVar"b'1"), 24023 Mop(Not, 24024 bVar"b'0")))))))))))))))))), 24025 Call 24026 ("MultDiv",CTy"instruction", 24027 Call 24028 ("DMULT",CTy"MultDiv", 24029 TP[Mop(Cast(FTy 5), 24030 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24031 bVar"b'21"]), 24032 Mop(Cast(FTy 5), 24033 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24034 bVar"b'16"])]))), 24035 (Bop(And,Mop(Not,bVar"b'28"), 24036 Bop(And,Mop(Not,bVar"b'27"), 24037 Bop(And,Mop(Not,bVar"b'15"), 24038 Bop(And,Mop(Not,bVar"b'14"), 24039 Bop(And,Mop(Not,bVar"b'13"), 24040 Bop(And,Mop(Not,bVar"b'12"), 24041 Bop(And,Mop(Not,bVar"b'11"), 24042 Bop(And,Mop(Not,bVar"b'10"), 24043 Bop(And,Mop(Not,bVar"b'9"), 24044 Bop(And, 24045 Mop(Not,bVar"b'8"), 24046 Bop(And, 24047 Mop(Not,bVar"b'7"), 24048 Bop(And, 24049 Mop(Not, 24050 bVar"b'6"), 24051 Bop(And, 24052 Mop(Not, 24053 bVar"b'5"), 24054 Bop(And, 24055 bVar"b'4", 24056 Bop(And, 24057 bVar"b'3", 24058 Bop(And, 24059 bVar"b'2", 24060 Bop(And, 24061 Mop(Not, 24062 bVar"b'1"), 24063 bVar"b'0"))))))))))))))))), 24064 Call 24065 ("MultDiv",CTy"instruction", 24066 Call 24067 ("DMULTU",CTy"MultDiv", 24068 TP[Mop(Cast(FTy 5), 24069 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24070 bVar"b'21"]), 24071 Mop(Cast(FTy 5), 24072 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24073 bVar"b'16"])]))), 24074 (Bop(And,Mop(Not,bVar"b'28"), 24075 Bop(And,Mop(Not,bVar"b'27"), 24076 Bop(And,Mop(Not,bVar"b'15"), 24077 Bop(And,Mop(Not,bVar"b'14"), 24078 Bop(And,Mop(Not,bVar"b'13"), 24079 Bop(And,Mop(Not,bVar"b'12"), 24080 Bop(And,Mop(Not,bVar"b'11"), 24081 Bop(And,Mop(Not,bVar"b'10"), 24082 Bop(And,Mop(Not,bVar"b'9"), 24083 Bop(And, 24084 Mop(Not,bVar"b'8"), 24085 Bop(And, 24086 Mop(Not,bVar"b'7"), 24087 Bop(And, 24088 Mop(Not, 24089 bVar"b'6"), 24090 Bop(And, 24091 Mop(Not, 24092 bVar"b'5"), 24093 Bop(And, 24094 bVar"b'4", 24095 Bop(And, 24096 bVar"b'3", 24097 Bop(And, 24098 bVar"b'2", 24099 Bop(And, 24100 bVar"b'1", 24101 Mop(Not, 24102 bVar"b'0")))))))))))))))))), 24103 Call 24104 ("MultDiv",CTy"instruction", 24105 Call 24106 ("DDIV",CTy"MultDiv", 24107 TP[Mop(Cast(FTy 5), 24108 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24109 bVar"b'21"]), 24110 Mop(Cast(FTy 5), 24111 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24112 bVar"b'16"])]))), 24113 (Bop(And,Mop(Not,bVar"b'28"), 24114 Bop(And,Mop(Not,bVar"b'27"), 24115 Bop(And,Mop(Not,bVar"b'15"), 24116 Bop(And,Mop(Not,bVar"b'14"), 24117 Bop(And,Mop(Not,bVar"b'13"), 24118 Bop(And,Mop(Not,bVar"b'12"), 24119 Bop(And,Mop(Not,bVar"b'11"), 24120 Bop(And,Mop(Not,bVar"b'10"), 24121 Bop(And,Mop(Not,bVar"b'9"), 24122 Bop(And, 24123 Mop(Not,bVar"b'8"), 24124 Bop(And, 24125 Mop(Not,bVar"b'7"), 24126 Bop(And, 24127 Mop(Not, 24128 bVar"b'6"), 24129 Bop(And, 24130 Mop(Not, 24131 bVar"b'5"), 24132 Bop(And, 24133 bVar"b'4", 24134 Bop(And, 24135 bVar"b'3", 24136 Bop(And, 24137 bVar"b'2", 24138 Bop(And, 24139 bVar"b'1", 24140 bVar"b'0"))))))))))))))))), 24141 Call 24142 ("MultDiv",CTy"instruction", 24143 Call 24144 ("DDIVU",CTy"MultDiv", 24145 TP[Mop(Cast(FTy 5), 24146 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24147 bVar"b'21"]), 24148 Mop(Cast(FTy 5), 24149 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24150 bVar"b'16"])]))), 24151 (Bop(And,Mop(Not,bVar"b'28"), 24152 Bop(And,Mop(Not,bVar"b'27"), 24153 Bop(And,Mop(Not,bVar"b'10"), 24154 Bop(And,Mop(Not,bVar"b'9"), 24155 Bop(And,Mop(Not,bVar"b'8"), 24156 Bop(And,Mop(Not,bVar"b'7"), 24157 Bop(And,Mop(Not,bVar"b'6"), 24158 Bop(And,bVar"b'5", 24159 Bop(And,Mop(Not,bVar"b'4"), 24160 Bop(And, 24161 Mop(Not,bVar"b'3"), 24162 Bop(And, 24163 Mop(Not,bVar"b'2"), 24164 Bop(And, 24165 Mop(Not, 24166 bVar"b'1"), 24167 Mop(Not, 24168 bVar"b'0"))))))))))))), 24169 Call 24170 ("ArithR",CTy"instruction", 24171 Call 24172 ("ADD",CTy"ArithR", 24173 TP[Mop(Cast(FTy 5), 24174 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24175 bVar"b'21"]), 24176 Mop(Cast(FTy 5), 24177 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24178 bVar"b'16"]), 24179 Mop(Cast(FTy 5), 24180 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24181 bVar"b'11"])]))), 24182 (Bop(And,Mop(Not,bVar"b'28"), 24183 Bop(And,Mop(Not,bVar"b'27"), 24184 Bop(And,Mop(Not,bVar"b'10"), 24185 Bop(And,Mop(Not,bVar"b'9"), 24186 Bop(And,Mop(Not,bVar"b'8"), 24187 Bop(And,Mop(Not,bVar"b'7"), 24188 Bop(And,Mop(Not,bVar"b'6"), 24189 Bop(And,bVar"b'5", 24190 Bop(And,Mop(Not,bVar"b'4"), 24191 Bop(And, 24192 Mop(Not,bVar"b'3"), 24193 Bop(And, 24194 Mop(Not,bVar"b'2"), 24195 Bop(And, 24196 Mop(Not, 24197 bVar"b'1"), 24198 bVar"b'0")))))))))))), 24199 Call 24200 ("ArithR",CTy"instruction", 24201 Call 24202 ("ADDU",CTy"ArithR", 24203 TP[Mop(Cast(FTy 5), 24204 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24205 bVar"b'21"]), 24206 Mop(Cast(FTy 5), 24207 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24208 bVar"b'16"]), 24209 Mop(Cast(FTy 5), 24210 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24211 bVar"b'11"])]))), 24212 (Bop(And,Mop(Not,bVar"b'28"), 24213 Bop(And,Mop(Not,bVar"b'27"), 24214 Bop(And,Mop(Not,bVar"b'10"), 24215 Bop(And,Mop(Not,bVar"b'9"), 24216 Bop(And,Mop(Not,bVar"b'8"), 24217 Bop(And,Mop(Not,bVar"b'7"), 24218 Bop(And,Mop(Not,bVar"b'6"), 24219 Bop(And,bVar"b'5", 24220 Bop(And,Mop(Not,bVar"b'4"), 24221 Bop(And, 24222 Mop(Not,bVar"b'3"), 24223 Bop(And, 24224 Mop(Not,bVar"b'2"), 24225 Bop(And, 24226 bVar"b'1", 24227 Mop(Not, 24228 bVar"b'0"))))))))))))), 24229 Call 24230 ("ArithR",CTy"instruction", 24231 Call 24232 ("SUB",CTy"ArithR", 24233 TP[Mop(Cast(FTy 5), 24234 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24235 bVar"b'21"]), 24236 Mop(Cast(FTy 5), 24237 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24238 bVar"b'16"]), 24239 Mop(Cast(FTy 5), 24240 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24241 bVar"b'11"])]))), 24242 (Bop(And,Mop(Not,bVar"b'28"), 24243 Bop(And,Mop(Not,bVar"b'27"), 24244 Bop(And,Mop(Not,bVar"b'10"), 24245 Bop(And,Mop(Not,bVar"b'9"), 24246 Bop(And,Mop(Not,bVar"b'8"), 24247 Bop(And,Mop(Not,bVar"b'7"), 24248 Bop(And,Mop(Not,bVar"b'6"), 24249 Bop(And,bVar"b'5", 24250 Bop(And,Mop(Not,bVar"b'4"), 24251 Bop(And, 24252 Mop(Not,bVar"b'3"), 24253 Bop(And, 24254 Mop(Not,bVar"b'2"), 24255 Bop(And, 24256 bVar"b'1", 24257 bVar"b'0")))))))))))), 24258 Call 24259 ("ArithR",CTy"instruction", 24260 Call 24261 ("SUBU",CTy"ArithR", 24262 TP[Mop(Cast(FTy 5), 24263 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24264 bVar"b'21"]), 24265 Mop(Cast(FTy 5), 24266 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24267 bVar"b'16"]), 24268 Mop(Cast(FTy 5), 24269 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24270 bVar"b'11"])]))), 24271 (Bop(And,Mop(Not,bVar"b'28"), 24272 Bop(And,Mop(Not,bVar"b'27"), 24273 Bop(And,Mop(Not,bVar"b'10"), 24274 Bop(And,Mop(Not,bVar"b'9"), 24275 Bop(And,Mop(Not,bVar"b'8"), 24276 Bop(And,Mop(Not,bVar"b'7"), 24277 Bop(And,Mop(Not,bVar"b'6"), 24278 Bop(And,bVar"b'5", 24279 Bop(And,Mop(Not,bVar"b'4"), 24280 Bop(And, 24281 Mop(Not,bVar"b'3"), 24282 Bop(And,bVar"b'2", 24283 Bop(And, 24284 Mop(Not, 24285 bVar"b'1"), 24286 Mop(Not, 24287 bVar"b'0"))))))))))))), 24288 Call 24289 ("ArithR",CTy"instruction", 24290 Call 24291 ("AND",CTy"ArithR", 24292 TP[Mop(Cast(FTy 5), 24293 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24294 bVar"b'21"]), 24295 Mop(Cast(FTy 5), 24296 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24297 bVar"b'16"]), 24298 Mop(Cast(FTy 5), 24299 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24300 bVar"b'11"])]))), 24301 (Bop(And,Mop(Not,bVar"b'28"), 24302 Bop(And,Mop(Not,bVar"b'27"), 24303 Bop(And,Mop(Not,bVar"b'10"), 24304 Bop(And,Mop(Not,bVar"b'9"), 24305 Bop(And,Mop(Not,bVar"b'8"), 24306 Bop(And,Mop(Not,bVar"b'7"), 24307 Bop(And,Mop(Not,bVar"b'6"), 24308 Bop(And,bVar"b'5", 24309 Bop(And,Mop(Not,bVar"b'4"), 24310 Bop(And, 24311 Mop(Not,bVar"b'3"), 24312 Bop(And,bVar"b'2", 24313 Bop(And, 24314 Mop(Not, 24315 bVar"b'1"), 24316 bVar"b'0")))))))))))), 24317 Call 24318 ("ArithR",CTy"instruction", 24319 Call 24320 ("OR",CTy"ArithR", 24321 TP[Mop(Cast(FTy 5), 24322 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24323 bVar"b'21"]), 24324 Mop(Cast(FTy 5), 24325 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24326 bVar"b'16"]), 24327 Mop(Cast(FTy 5), 24328 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24329 bVar"b'11"])]))), 24330 (Bop(And,Mop(Not,bVar"b'28"), 24331 Bop(And,Mop(Not,bVar"b'27"), 24332 Bop(And,Mop(Not,bVar"b'10"), 24333 Bop(And,Mop(Not,bVar"b'9"), 24334 Bop(And,Mop(Not,bVar"b'8"), 24335 Bop(And,Mop(Not,bVar"b'7"), 24336 Bop(And,Mop(Not,bVar"b'6"), 24337 Bop(And,bVar"b'5", 24338 Bop(And,Mop(Not,bVar"b'4"), 24339 Bop(And, 24340 Mop(Not,bVar"b'3"), 24341 Bop(And,bVar"b'2", 24342 Bop(And, 24343 bVar"b'1", 24344 Mop(Not, 24345 bVar"b'0"))))))))))))), 24346 Call 24347 ("ArithR",CTy"instruction", 24348 Call 24349 ("XOR",CTy"ArithR", 24350 TP[Mop(Cast(FTy 5), 24351 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24352 bVar"b'21"]), 24353 Mop(Cast(FTy 5), 24354 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24355 bVar"b'16"]), 24356 Mop(Cast(FTy 5), 24357 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24358 bVar"b'11"])]))), 24359 (Bop(And,Mop(Not,bVar"b'28"), 24360 Bop(And,Mop(Not,bVar"b'27"), 24361 Bop(And,Mop(Not,bVar"b'10"), 24362 Bop(And,Mop(Not,bVar"b'9"), 24363 Bop(And,Mop(Not,bVar"b'8"), 24364 Bop(And,Mop(Not,bVar"b'7"), 24365 Bop(And,Mop(Not,bVar"b'6"), 24366 Bop(And,bVar"b'5", 24367 Bop(And,Mop(Not,bVar"b'4"), 24368 Bop(And, 24369 Mop(Not,bVar"b'3"), 24370 Bop(And,bVar"b'2", 24371 Bop(And, 24372 bVar"b'1", 24373 bVar"b'0")))))))))))), 24374 Call 24375 ("ArithR",CTy"instruction", 24376 Call 24377 ("NOR",CTy"ArithR", 24378 TP[Mop(Cast(FTy 5), 24379 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24380 bVar"b'21"]), 24381 Mop(Cast(FTy 5), 24382 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24383 bVar"b'16"]), 24384 Mop(Cast(FTy 5), 24385 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24386 bVar"b'11"])]))), 24387 (Bop(And,Mop(Not,bVar"b'28"), 24388 Bop(And,Mop(Not,bVar"b'27"), 24389 Bop(And,Mop(Not,bVar"b'10"), 24390 Bop(And,Mop(Not,bVar"b'9"), 24391 Bop(And,Mop(Not,bVar"b'8"), 24392 Bop(And,Mop(Not,bVar"b'7"), 24393 Bop(And,Mop(Not,bVar"b'6"), 24394 Bop(And,bVar"b'5", 24395 Bop(And,Mop(Not,bVar"b'4"), 24396 Bop(And,bVar"b'3", 24397 Bop(And, 24398 Mop(Not,bVar"b'2"), 24399 Bop(And, 24400 bVar"b'1", 24401 Mop(Not, 24402 bVar"b'0"))))))))))))), 24403 Call 24404 ("ArithR",CTy"instruction", 24405 Call 24406 ("SLT",CTy"ArithR", 24407 TP[Mop(Cast(FTy 5), 24408 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24409 bVar"b'21"]), 24410 Mop(Cast(FTy 5), 24411 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24412 bVar"b'16"]), 24413 Mop(Cast(FTy 5), 24414 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24415 bVar"b'11"])]))), 24416 (Bop(And,Mop(Not,bVar"b'28"), 24417 Bop(And,Mop(Not,bVar"b'27"), 24418 Bop(And,Mop(Not,bVar"b'10"), 24419 Bop(And,Mop(Not,bVar"b'9"), 24420 Bop(And,Mop(Not,bVar"b'8"), 24421 Bop(And,Mop(Not,bVar"b'7"), 24422 Bop(And,Mop(Not,bVar"b'6"), 24423 Bop(And,bVar"b'5", 24424 Bop(And,Mop(Not,bVar"b'4"), 24425 Bop(And,bVar"b'3", 24426 Bop(And, 24427 Mop(Not,bVar"b'2"), 24428 Bop(And, 24429 bVar"b'1", 24430 bVar"b'0")))))))))))), 24431 Call 24432 ("ArithR",CTy"instruction", 24433 Call 24434 ("SLTU",CTy"ArithR", 24435 TP[Mop(Cast(FTy 5), 24436 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24437 bVar"b'21"]), 24438 Mop(Cast(FTy 5), 24439 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24440 bVar"b'16"]), 24441 Mop(Cast(FTy 5), 24442 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24443 bVar"b'11"])]))), 24444 (Bop(And,Mop(Not,bVar"b'28"), 24445 Bop(And,Mop(Not,bVar"b'27"), 24446 Bop(And,Mop(Not,bVar"b'10"), 24447 Bop(And,Mop(Not,bVar"b'9"), 24448 Bop(And,Mop(Not,bVar"b'8"), 24449 Bop(And,Mop(Not,bVar"b'7"), 24450 Bop(And,Mop(Not,bVar"b'6"), 24451 Bop(And,bVar"b'5", 24452 Bop(And,Mop(Not,bVar"b'4"), 24453 Bop(And,bVar"b'3", 24454 Bop(And,bVar"b'2", 24455 Bop(And, 24456 Mop(Not, 24457 bVar"b'1"), 24458 Mop(Not, 24459 bVar"b'0"))))))))))))), 24460 Call 24461 ("ArithR",CTy"instruction", 24462 Call 24463 ("DADD",CTy"ArithR", 24464 TP[Mop(Cast(FTy 5), 24465 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24466 bVar"b'21"]), 24467 Mop(Cast(FTy 5), 24468 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24469 bVar"b'16"]), 24470 Mop(Cast(FTy 5), 24471 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24472 bVar"b'11"])]))), 24473 (Bop(And,Mop(Not,bVar"b'28"), 24474 Bop(And,Mop(Not,bVar"b'27"), 24475 Bop(And,Mop(Not,bVar"b'10"), 24476 Bop(And,Mop(Not,bVar"b'9"), 24477 Bop(And,Mop(Not,bVar"b'8"), 24478 Bop(And,Mop(Not,bVar"b'7"), 24479 Bop(And,Mop(Not,bVar"b'6"), 24480 Bop(And,bVar"b'5", 24481 Bop(And,Mop(Not,bVar"b'4"), 24482 Bop(And,bVar"b'3", 24483 Bop(And,bVar"b'2", 24484 Bop(And, 24485 Mop(Not, 24486 bVar"b'1"), 24487 bVar"b'0")))))))))))), 24488 Call 24489 ("ArithR",CTy"instruction", 24490 Call 24491 ("DADDU",CTy"ArithR", 24492 TP[Mop(Cast(FTy 5), 24493 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24494 bVar"b'21"]), 24495 Mop(Cast(FTy 5), 24496 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24497 bVar"b'16"]), 24498 Mop(Cast(FTy 5), 24499 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24500 bVar"b'11"])]))), 24501 (Bop(And,Mop(Not,bVar"b'28"), 24502 Bop(And,Mop(Not,bVar"b'27"), 24503 Bop(And,Mop(Not,bVar"b'10"), 24504 Bop(And,Mop(Not,bVar"b'9"), 24505 Bop(And,Mop(Not,bVar"b'8"), 24506 Bop(And,Mop(Not,bVar"b'7"), 24507 Bop(And,Mop(Not,bVar"b'6"), 24508 Bop(And,bVar"b'5", 24509 Bop(And,Mop(Not,bVar"b'4"), 24510 Bop(And,bVar"b'3", 24511 Bop(And,bVar"b'2", 24512 Bop(And, 24513 bVar"b'1", 24514 Mop(Not, 24515 bVar"b'0"))))))))))))), 24516 Call 24517 ("ArithR",CTy"instruction", 24518 Call 24519 ("DSUB",CTy"ArithR", 24520 TP[Mop(Cast(FTy 5), 24521 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24522 bVar"b'21"]), 24523 Mop(Cast(FTy 5), 24524 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24525 bVar"b'16"]), 24526 Mop(Cast(FTy 5), 24527 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24528 bVar"b'11"])]))), 24529 (Bop(And,Mop(Not,bVar"b'28"), 24530 Bop(And,Mop(Not,bVar"b'27"), 24531 Bop(And,Mop(Not,bVar"b'10"), 24532 Bop(And,Mop(Not,bVar"b'9"), 24533 Bop(And,Mop(Not,bVar"b'8"), 24534 Bop(And,Mop(Not,bVar"b'7"), 24535 Bop(And,Mop(Not,bVar"b'6"), 24536 Bop(And,bVar"b'5", 24537 Bop(And,Mop(Not,bVar"b'4"), 24538 Bop(And,bVar"b'3", 24539 Bop(And,bVar"b'2", 24540 Bop(And, 24541 bVar"b'1", 24542 bVar"b'0")))))))))))), 24543 Call 24544 ("ArithR",CTy"instruction", 24545 Call 24546 ("DSUBU",CTy"ArithR", 24547 TP[Mop(Cast(FTy 5), 24548 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24549 bVar"b'21"]), 24550 Mop(Cast(FTy 5), 24551 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24552 bVar"b'16"]), 24553 Mop(Cast(FTy 5), 24554 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24555 bVar"b'11"])]))), 24556 (Bop(And,Mop(Not,bVar"b'28"), 24557 Bop(And,Mop(Not,bVar"b'27"), 24558 Bop(And,bVar"b'5", 24559 Bop(And,bVar"b'4", 24560 Bop(And,Mop(Not,bVar"b'3"), 24561 Bop(And,Mop(Not,bVar"b'2"), 24562 Bop(And,Mop(Not,bVar"b'1"), 24563 Mop(Not,bVar"b'0")))))))), 24564 Call 24565 ("Trap",CTy"instruction", 24566 Call 24567 ("TGE",CTy"Trap", 24568 TP[Mop(Cast(FTy 5), 24569 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24570 bVar"b'21"]), 24571 Mop(Cast(FTy 5), 24572 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24573 bVar"b'16"])]))), 24574 (Bop(And,Mop(Not,bVar"b'28"), 24575 Bop(And,Mop(Not,bVar"b'27"), 24576 Bop(And,bVar"b'5", 24577 Bop(And,bVar"b'4", 24578 Bop(And,Mop(Not,bVar"b'3"), 24579 Bop(And,Mop(Not,bVar"b'2"), 24580 Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"))))))), 24581 Call 24582 ("Trap",CTy"instruction", 24583 Call 24584 ("TGEU",CTy"Trap", 24585 TP[Mop(Cast(FTy 5), 24586 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24587 bVar"b'21"]), 24588 Mop(Cast(FTy 5), 24589 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24590 bVar"b'16"])]))), 24591 (Bop(And,Mop(Not,bVar"b'28"), 24592 Bop(And,Mop(Not,bVar"b'27"), 24593 Bop(And,bVar"b'5", 24594 Bop(And,bVar"b'4", 24595 Bop(And,Mop(Not,bVar"b'3"), 24596 Bop(And,Mop(Not,bVar"b'2"), 24597 Bop(And,bVar"b'1",Mop(Not,bVar"b'0")))))))), 24598 Call 24599 ("Trap",CTy"instruction", 24600 Call 24601 ("TLT",CTy"Trap", 24602 TP[Mop(Cast(FTy 5), 24603 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24604 bVar"b'21"]), 24605 Mop(Cast(FTy 5), 24606 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24607 bVar"b'16"])]))), 24608 (Bop(And,Mop(Not,bVar"b'28"), 24609 Bop(And,Mop(Not,bVar"b'27"), 24610 Bop(And,bVar"b'5", 24611 Bop(And,bVar"b'4", 24612 Bop(And,Mop(Not,bVar"b'3"), 24613 Bop(And,Mop(Not,bVar"b'2"), 24614 Bop(And,bVar"b'1",bVar"b'0"))))))), 24615 Call 24616 ("Trap",CTy"instruction", 24617 Call 24618 ("TLTU",CTy"Trap", 24619 TP[Mop(Cast(FTy 5), 24620 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24621 bVar"b'21"]), 24622 Mop(Cast(FTy 5), 24623 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24624 bVar"b'16"])]))), 24625 (Bop(And,Mop(Not,bVar"b'28"), 24626 Bop(And,Mop(Not,bVar"b'27"), 24627 Bop(And,bVar"b'5", 24628 Bop(And,bVar"b'4", 24629 Bop(And,Mop(Not,bVar"b'3"), 24630 Bop(And,bVar"b'2", 24631 Bop(And,Mop(Not,bVar"b'1"), 24632 Mop(Not,bVar"b'0")))))))), 24633 Call 24634 ("Trap",CTy"instruction", 24635 Call 24636 ("TEQ",CTy"Trap", 24637 TP[Mop(Cast(FTy 5), 24638 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24639 bVar"b'21"]), 24640 Mop(Cast(FTy 5), 24641 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24642 bVar"b'16"])]))), 24643 (Bop(And,Mop(Not,bVar"b'28"), 24644 Bop(And,Mop(Not,bVar"b'27"), 24645 Bop(And,bVar"b'5", 24646 Bop(And,bVar"b'4", 24647 Bop(And,Mop(Not,bVar"b'3"), 24648 Bop(And,bVar"b'2", 24649 Bop(And,bVar"b'1",Mop(Not,bVar"b'0")))))))), 24650 Call 24651 ("Trap",CTy"instruction", 24652 Call 24653 ("TNE",CTy"Trap", 24654 TP[Mop(Cast(FTy 5), 24655 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24656 bVar"b'21"]), 24657 Mop(Cast(FTy 5), 24658 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24659 bVar"b'16"])]))), 24660 (Bop(And,Mop(Not,bVar"b'28"), 24661 Bop(And,Mop(Not,bVar"b'27"), 24662 Bop(And,Mop(Not,bVar"b'25"), 24663 Bop(And,Mop(Not,bVar"b'24"), 24664 Bop(And,Mop(Not,bVar"b'23"), 24665 Bop(And,Mop(Not,bVar"b'22"), 24666 Bop(And,Mop(Not,bVar"b'21"), 24667 Bop(And,bVar"b'5", 24668 Bop(And,bVar"b'4", 24669 Bop(And,bVar"b'3", 24670 Bop(And, 24671 Mop(Not,bVar"b'2"), 24672 Bop(And, 24673 Mop(Not, 24674 bVar"b'1"), 24675 Mop(Not, 24676 bVar"b'0"))))))))))))), 24677 Call 24678 ("Shift",CTy"instruction", 24679 Call 24680 ("DSLL",CTy"Shift", 24681 TP[Mop(Cast(FTy 5), 24682 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24683 bVar"b'16"]), 24684 Mop(Cast(FTy 5), 24685 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24686 bVar"b'11"]), 24687 Mop(Cast(FTy 5), 24688 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 24689 bVar"b'6"])]))), 24690 (Bop(And,Mop(Not,bVar"b'28"), 24691 Bop(And,Mop(Not,bVar"b'27"), 24692 Bop(And,Mop(Not,bVar"b'25"), 24693 Bop(And,Mop(Not,bVar"b'24"), 24694 Bop(And,Mop(Not,bVar"b'23"), 24695 Bop(And,Mop(Not,bVar"b'22"), 24696 Bop(And,Mop(Not,bVar"b'21"), 24697 Bop(And,bVar"b'5", 24698 Bop(And,bVar"b'4", 24699 Bop(And,bVar"b'3", 24700 Bop(And, 24701 Mop(Not,bVar"b'2"), 24702 Bop(And, 24703 bVar"b'1", 24704 Mop(Not, 24705 bVar"b'0"))))))))))))), 24706 Call 24707 ("Shift",CTy"instruction", 24708 Call 24709 ("DSRL",CTy"Shift", 24710 TP[Mop(Cast(FTy 5), 24711 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24712 bVar"b'16"]), 24713 Mop(Cast(FTy 5), 24714 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24715 bVar"b'11"]), 24716 Mop(Cast(FTy 5), 24717 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 24718 bVar"b'6"])]))), 24719 (Bop(And,Mop(Not,bVar"b'28"), 24720 Bop(And,Mop(Not,bVar"b'27"), 24721 Bop(And,Mop(Not,bVar"b'25"), 24722 Bop(And,Mop(Not,bVar"b'24"), 24723 Bop(And,Mop(Not,bVar"b'23"), 24724 Bop(And,Mop(Not,bVar"b'22"), 24725 Bop(And,Mop(Not,bVar"b'21"), 24726 Bop(And,bVar"b'5", 24727 Bop(And,bVar"b'4", 24728 Bop(And,bVar"b'3", 24729 Bop(And, 24730 Mop(Not,bVar"b'2"), 24731 Bop(And, 24732 bVar"b'1", 24733 bVar"b'0")))))))))))), 24734 Call 24735 ("Shift",CTy"instruction", 24736 Call 24737 ("DSRA",CTy"Shift", 24738 TP[Mop(Cast(FTy 5), 24739 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24740 bVar"b'16"]), 24741 Mop(Cast(FTy 5), 24742 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24743 bVar"b'11"]), 24744 Mop(Cast(FTy 5), 24745 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 24746 bVar"b'6"])]))), 24747 (Bop(And,Mop(Not,bVar"b'28"), 24748 Bop(And,Mop(Not,bVar"b'27"), 24749 Bop(And,Mop(Not,bVar"b'25"), 24750 Bop(And,Mop(Not,bVar"b'24"), 24751 Bop(And,Mop(Not,bVar"b'23"), 24752 Bop(And,Mop(Not,bVar"b'22"), 24753 Bop(And,Mop(Not,bVar"b'21"), 24754 Bop(And,bVar"b'5", 24755 Bop(And,bVar"b'4", 24756 Bop(And,bVar"b'3", 24757 Bop(And,bVar"b'2", 24758 Bop(And, 24759 Mop(Not, 24760 bVar"b'1"), 24761 Mop(Not, 24762 bVar"b'0"))))))))))))), 24763 Call 24764 ("Shift",CTy"instruction", 24765 Call 24766 ("DSLL32",CTy"Shift", 24767 TP[Mop(Cast(FTy 5), 24768 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24769 bVar"b'16"]), 24770 Mop(Cast(FTy 5), 24771 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24772 bVar"b'11"]), 24773 Mop(Cast(FTy 5), 24774 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 24775 bVar"b'6"])]))), 24776 (Bop(And,Mop(Not,bVar"b'28"), 24777 Bop(And,Mop(Not,bVar"b'27"), 24778 Bop(And,Mop(Not,bVar"b'25"), 24779 Bop(And,Mop(Not,bVar"b'24"), 24780 Bop(And,Mop(Not,bVar"b'23"), 24781 Bop(And,Mop(Not,bVar"b'22"), 24782 Bop(And,Mop(Not,bVar"b'21"), 24783 Bop(And,bVar"b'5", 24784 Bop(And,bVar"b'4", 24785 Bop(And,bVar"b'3", 24786 Bop(And,bVar"b'2", 24787 Bop(And, 24788 bVar"b'1", 24789 Mop(Not, 24790 bVar"b'0"))))))))))))), 24791 Call 24792 ("Shift",CTy"instruction", 24793 Call 24794 ("DSRL32",CTy"Shift", 24795 TP[Mop(Cast(FTy 5), 24796 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24797 bVar"b'16"]), 24798 Mop(Cast(FTy 5), 24799 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24800 bVar"b'11"]), 24801 Mop(Cast(FTy 5), 24802 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 24803 bVar"b'6"])]))), 24804 (Bop(And,Mop(Not,bVar"b'28"), 24805 Bop(And,Mop(Not,bVar"b'27"), 24806 Bop(And,Mop(Not,bVar"b'25"), 24807 Bop(And,Mop(Not,bVar"b'24"), 24808 Bop(And,Mop(Not,bVar"b'23"), 24809 Bop(And,Mop(Not,bVar"b'22"), 24810 Bop(And,Mop(Not,bVar"b'21"), 24811 Bop(And,bVar"b'5", 24812 Bop(And,bVar"b'4", 24813 Bop(And,bVar"b'3", 24814 Bop(And,bVar"b'2", 24815 Bop(And, 24816 bVar"b'1", 24817 bVar"b'0")))))))))))), 24818 Call 24819 ("Shift",CTy"instruction", 24820 Call 24821 ("DSRA32",CTy"Shift", 24822 TP[Mop(Cast(FTy 5), 24823 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24824 bVar"b'16"]), 24825 Mop(Cast(FTy 5), 24826 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24827 bVar"b'11"]), 24828 Mop(Cast(FTy 5), 24829 LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", 24830 bVar"b'6"])]))), 24831 (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), 24832 Call 24833 ("Branch",CTy"instruction", 24834 Call 24835 ("J",CTy"Branch", 24836 Mop(Cast(FTy 26), 24837 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24838 bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18", 24839 bVar"b'17",bVar"b'16",bVar"b'15",bVar"b'14", 24840 bVar"b'13",bVar"b'12",bVar"b'11",bVar"b'10", 24841 bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", 24842 bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", 24843 bVar"b'1",bVar"b'0"])))), 24844 (Bop(And,bVar"b'28", 24845 Bop(And,bVar"b'27", 24846 Bop(And,Mop(Not,bVar"b'20"), 24847 Bop(And,Mop(Not,bVar"b'19"), 24848 Bop(And,Mop(Not,bVar"b'18"), 24849 Bop(And,Mop(Not,bVar"b'17"), 24850 Mop(Not,bVar"b'16"))))))), 24851 Call 24852 ("Branch",CTy"instruction", 24853 Call 24854 ("BLEZ",CTy"Branch", 24855 TP[Mop(Cast(FTy 5), 24856 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24857 bVar"b'21"]), 24858 Mop(Cast F16, 24859 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24860 bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8", 24861 bVar"b'7",bVar"b'6",bVar"b'5",bVar"b'4", 24862 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), 24863 (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), 24864 Call 24865 ("Branch",CTy"instruction", 24866 Call 24867 ("BEQ",CTy"Branch", 24868 TP[Mop(Cast(FTy 5), 24869 LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 24870 bVar"b'21"]), 24871 Mop(Cast(FTy 5), 24872 LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 24873 bVar"b'16"]), 24874 Mop(Cast F16, 24875 LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 24876 bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8", 24877 bVar"b'7",bVar"b'6",bVar"b'5",bVar"b'4", 24878 bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])])))], 24879 Const("ReservedInstruction",CTy"instruction")))) 24880; 24881val COP1InstructionToString_def = Def 24882 ("COP1InstructionToString",Var("i",CTy"instruction"), 24883 CS(Var("i",CTy"instruction"), 24884 [(Call("COP1",CTy"instruction",Var("j",CTy"COP1")), 24885 CS(Var("j",CTy"COP1"), 24886 [(Call("ABS_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 24887 Call 24888 ("op2fpr",sTy,TP[LS"abs.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 24889 (Call("ABS_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 24890 Call 24891 ("op2fpr",sTy,TP[LS"abs.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 24892 (Call 24893 ("ADD_D",CTy"COP1", 24894 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), 24895 Call 24896 ("op3fpr",sTy, 24897 TP[LS"add.d",Var("fd",FTy 5),Var("fs",FTy 5), 24898 Var("ft",FTy 5)])), 24899 (Call 24900 ("ADD_S",CTy"COP1", 24901 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), 24902 Call 24903 ("op3fpr",sTy, 24904 TP[LS"add.s",Var("fd",FTy 5),Var("fs",FTy 5), 24905 Var("ft",FTy 5)])), 24906 (Call("BC1F",CTy"COP1",TP[Var("i",F16),Var("cc",FTy 3)]), 24907 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[LS"bc1f",LS" "]]), 24908 ITE(EQ(Var("cc",FTy 3),LW(0,3)),LS"", 24909 CC[LS"$fcc", 24910 Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3))),LS", "]), 24911 Call 24912 ("ihex",sTy, 24913 Bop(Lsl,Mop(Cast F32,Bop(Add,Var("i",F16),LW(1,16))), 24914 LN 2))]), 24915 (Call("BC1FL",CTy"COP1",TP[Var("i",F16),Var("cc",FTy 3)]), 24916 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[LS"bc1fl",LS" "]]), 24917 ITE(EQ(Var("cc",FTy 3),LW(0,3)),LS"", 24918 CC[LS"$fcc", 24919 Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3))),LS", "]), 24920 Call 24921 ("ihex",sTy, 24922 Bop(Lsl,Mop(Cast F32,Bop(Add,Var("i",F16),LW(1,16))), 24923 LN 2))]), 24924 (Call("BC1T",CTy"COP1",TP[Var("i",F16),Var("cc",FTy 3)]), 24925 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[LS"bc1t",LS" "]]), 24926 ITE(EQ(Var("cc",FTy 3),LW(0,3)),LS"", 24927 CC[LS"$fcc", 24928 Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3))),LS", "]), 24929 Call 24930 ("ihex",sTy, 24931 Bop(Lsl,Mop(Cast F32,Bop(Add,Var("i",F16),LW(1,16))), 24932 LN 2))]), 24933 (Call("BC1TL",CTy"COP1",TP[Var("i",F16),Var("cc",FTy 3)]), 24934 CC[Mop(PadRight,TP[LSC #" ",LN 12,CC[LS"bc1tl",LS" "]]), 24935 ITE(EQ(Var("cc",FTy 3),LW(0,3)),LS"", 24936 CC[LS"$fcc", 24937 Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3))),LS", "]), 24938 Call 24939 ("ihex",sTy, 24940 Bop(Lsl,Mop(Cast F32,Bop(Add,Var("i",F16),LW(1,16))), 24941 LN 2))]), 24942 (Call 24943 ("C_cond_D",CTy"COP1", 24944 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(0,3),Var("cc",FTy 3)]), 24945 Call 24946 ("op2ccfpr",sTy, 24947 TP[LS"c.f.d",Var("fs",FTy 5),Var("ft",FTy 5), 24948 Var("cc",FTy 3)])), 24949 (Call 24950 ("C_cond_D",CTy"COP1", 24951 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(1,3),Var("cc",FTy 3)]), 24952 Call 24953 ("op2ccfpr",sTy, 24954 TP[LS"c.un.d",Var("fs",FTy 5),Var("ft",FTy 5), 24955 Var("cc",FTy 3)])), 24956 (Call 24957 ("C_cond_D",CTy"COP1", 24958 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(2,3),Var("cc",FTy 3)]), 24959 Call 24960 ("op2ccfpr",sTy, 24961 TP[LS"c.eq.d",Var("fs",FTy 5),Var("ft",FTy 5), 24962 Var("cc",FTy 3)])), 24963 (Call 24964 ("C_cond_D",CTy"COP1", 24965 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(3,3),Var("cc",FTy 3)]), 24966 Call 24967 ("op2ccfpr",sTy, 24968 TP[LS"c.ueq.d",Var("fs",FTy 5),Var("ft",FTy 5), 24969 Var("cc",FTy 3)])), 24970 (Call 24971 ("C_cond_D",CTy"COP1", 24972 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(4,3),Var("cc",FTy 3)]), 24973 Call 24974 ("op2ccfpr",sTy, 24975 TP[LS"c.olt.d",Var("fs",FTy 5),Var("ft",FTy 5), 24976 Var("cc",FTy 3)])), 24977 (Call 24978 ("C_cond_D",CTy"COP1", 24979 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(5,3),Var("cc",FTy 3)]), 24980 Call 24981 ("op2ccfpr",sTy, 24982 TP[LS"c.ult.d",Var("fs",FTy 5),Var("ft",FTy 5), 24983 Var("cc",FTy 3)])), 24984 (Call 24985 ("C_cond_D",CTy"COP1", 24986 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(6,3),Var("cc",FTy 3)]), 24987 Call 24988 ("op2ccfpr",sTy, 24989 TP[LS"c.ole.d",Var("fs",FTy 5),Var("ft",FTy 5), 24990 Var("cc",FTy 3)])), 24991 (Call 24992 ("C_cond_D",CTy"COP1", 24993 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(7,3),Var("cc",FTy 3)]), 24994 Call 24995 ("op2ccfpr",sTy, 24996 TP[LS"c.ule.d",Var("fs",FTy 5),Var("ft",FTy 5), 24997 Var("cc",FTy 3)])), 24998 (Call 24999 ("C_cond_S",CTy"COP1", 25000 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(0,3),Var("cc",FTy 3)]), 25001 Call 25002 ("op2ccfpr",sTy, 25003 TP[LS"c.f.s",Var("fs",FTy 5),Var("ft",FTy 5), 25004 Var("cc",FTy 3)])), 25005 (Call 25006 ("C_cond_S",CTy"COP1", 25007 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(1,3),Var("cc",FTy 3)]), 25008 Call 25009 ("op2ccfpr",sTy, 25010 TP[LS"c.un.s",Var("fs",FTy 5),Var("ft",FTy 5), 25011 Var("cc",FTy 3)])), 25012 (Call 25013 ("C_cond_S",CTy"COP1", 25014 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(2,3),Var("cc",FTy 3)]), 25015 Call 25016 ("op2ccfpr",sTy, 25017 TP[LS"c.eq.s",Var("fs",FTy 5),Var("ft",FTy 5), 25018 Var("cc",FTy 3)])), 25019 (Call 25020 ("C_cond_S",CTy"COP1", 25021 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(3,3),Var("cc",FTy 3)]), 25022 Call 25023 ("op2ccfpr",sTy, 25024 TP[LS"c.ueq.s",Var("fs",FTy 5),Var("ft",FTy 5), 25025 Var("cc",FTy 3)])), 25026 (Call 25027 ("C_cond_S",CTy"COP1", 25028 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(4,3),Var("cc",FTy 3)]), 25029 Call 25030 ("op2ccfpr",sTy, 25031 TP[LS"c.olt.s",Var("fs",FTy 5),Var("ft",FTy 5), 25032 Var("cc",FTy 3)])), 25033 (Call 25034 ("C_cond_S",CTy"COP1", 25035 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(5,3),Var("cc",FTy 3)]), 25036 Call 25037 ("op2ccfpr",sTy, 25038 TP[LS"c.ult.s",Var("fs",FTy 5),Var("ft",FTy 5), 25039 Var("cc",FTy 3)])), 25040 (Call 25041 ("C_cond_S",CTy"COP1", 25042 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(6,3),Var("cc",FTy 3)]), 25043 Call 25044 ("op2ccfpr",sTy, 25045 TP[LS"c.ole.s",Var("fs",FTy 5),Var("ft",FTy 5), 25046 Var("cc",FTy 3)])), 25047 (Call 25048 ("C_cond_S",CTy"COP1", 25049 TP[Var("fs",FTy 5),Var("ft",FTy 5),LW(7,3),Var("cc",FTy 3)]), 25050 Call 25051 ("op2ccfpr",sTy, 25052 TP[LS"c.ule.s",Var("fs",FTy 5),Var("ft",FTy 5), 25053 Var("cc",FTy 3)])), 25054 (Call 25055 ("CEIL_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25056 Call 25057 ("op2fpr",sTy, 25058 TP[LS"ceil.l.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25059 (Call 25060 ("CEIL_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25061 Call 25062 ("op2fpr",sTy, 25063 TP[LS"ceil.l.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25064 (Call 25065 ("CEIL_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25066 Call 25067 ("op2fpr",sTy, 25068 TP[LS"ceil.w.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25069 (Call 25070 ("CEIL_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25071 Call 25072 ("op2fpr",sTy, 25073 TP[LS"ceil.w.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25074 (Call("CFC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), 25075 Call 25076 ("op2rcfpr",sTy, 25077 TP[LS"cfc1",Var("rt",FTy 5),Var("fs",FTy 5)])), 25078 (Call("CTC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), 25079 Call 25080 ("op2rcfpr",sTy, 25081 TP[LS"ctc1",Var("rt",FTy 5),Var("fs",FTy 5)])), 25082 (Call("CVT_D_L",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25083 Call 25084 ("op2fpr",sTy, 25085 TP[LS"cvt.d.l",Var("fd",FTy 5),Var("fs",FTy 5)])), 25086 (Call("CVT_D_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25087 Call 25088 ("op2fpr",sTy, 25089 TP[LS"cvt.d.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25090 (Call("CVT_D_W",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25091 Call 25092 ("op2fpr",sTy, 25093 TP[LS"cvt.d.w",Var("fd",FTy 5),Var("fs",FTy 5)])), 25094 (Call("CVT_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25095 Call 25096 ("op2fpr",sTy, 25097 TP[LS"cvt.l.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25098 (Call("CVT_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25099 Call 25100 ("op2fpr",sTy, 25101 TP[LS"cvt.l.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25102 (Call("CVT_S_L",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25103 Call 25104 ("op2fpr",sTy, 25105 TP[LS"cvt.s.l",Var("fd",FTy 5),Var("fs",FTy 5)])), 25106 (Call("CVT_S_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25107 Call 25108 ("op2fpr",sTy, 25109 TP[LS"cvt.s.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25110 (Call("CVT_S_W",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25111 Call 25112 ("op2fpr",sTy, 25113 TP[LS"cvt.s.w",Var("fd",FTy 5),Var("fs",FTy 5)])), 25114 (Call("CVT_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25115 Call 25116 ("op2fpr",sTy, 25117 TP[LS"cvt.w.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25118 (Call("CVT_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25119 Call 25120 ("op2fpr",sTy, 25121 TP[LS"cvt.w.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25122 (Call 25123 ("DIV_D",CTy"COP1", 25124 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), 25125 Call 25126 ("op3fpr",sTy, 25127 TP[LS"div.d",Var("fd",FTy 5),Var("fs",FTy 5), 25128 Var("ft",FTy 5)])), 25129 (Call 25130 ("DIV_S",CTy"COP1", 25131 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), 25132 Call 25133 ("op3fpr",sTy, 25134 TP[LS"div.s",Var("fd",FTy 5),Var("fs",FTy 5), 25135 Var("ft",FTy 5)])), 25136 (Call("DMFC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), 25137 Call 25138 ("op2rfpr",sTy, 25139 TP[LS"dmfc1",Var("rt",FTy 5),Var("fs",FTy 5)])), 25140 (Call("DMTC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), 25141 Call 25142 ("op2rfpr",sTy, 25143 TP[LS"dmtc1",Var("rt",FTy 5),Var("fs",FTy 5)])), 25144 (Call 25145 ("FLOOR_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25146 Call 25147 ("op2fpr",sTy, 25148 TP[LS"floor.l.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25149 (Call 25150 ("FLOOR_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25151 Call 25152 ("op2fpr",sTy, 25153 TP[LS"floor.l.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25154 (Call 25155 ("FLOOR_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25156 Call 25157 ("op2fpr",sTy, 25158 TP[LS"floor.w.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25159 (Call 25160 ("FLOOR_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25161 Call 25162 ("op2fpr",sTy, 25163 TP[LS"floor.w.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25164 (Call 25165 ("LDC1",CTy"COP1", 25166 TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)]), 25167 Call 25168 ("opfpmem",sTy, 25169 TP[LS"ldc1",Var("ft",FTy 5),Var("base",FTy 5), 25170 Var("offset",F16)])), 25171 (Call 25172 ("LDXC1",CTy"COP1", 25173 TP[Var("fs",FTy 5),Var("index",FTy 5),Var("base",FTy 5)]), 25174 Call 25175 ("opfpmem2",sTy, 25176 TP[LS"ldxc1",Var("fs",FTy 5),Var("base",FTy 5), 25177 Var("index",FTy 5)])), 25178 (Call 25179 ("LWC1",CTy"COP1", 25180 TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)]), 25181 Call 25182 ("opfpmem",sTy, 25183 TP[LS"lwc1",Var("ft",FTy 5),Var("base",FTy 5), 25184 Var("offset",F16)])), 25185 (Call 25186 ("LWXC1",CTy"COP1", 25187 TP[Var("ft",FTy 5),Var("index",FTy 5),Var("base",FTy 5)]), 25188 Call 25189 ("opfpmem2",sTy, 25190 TP[LS"lwxc1",Var("ft",FTy 5),Var("base",FTy 5), 25191 Var("index",FTy 5)])), 25192 (Call("MFC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), 25193 Call 25194 ("op2rfpr",sTy,TP[LS"mfc1",Var("rt",FTy 5),Var("fs",FTy 5)])), 25195 (Call 25196 ("MADD_D",CTy"COP1", 25197 TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5), 25198 Var("ft",FTy 5)]), 25199 Call 25200 ("op4fpr",sTy, 25201 TP[LS"madd.d",Var("fd",FTy 5),Var("fr",FTy 5), 25202 Var("fs",FTy 5),Var("ft",FTy 5)])), 25203 (Call 25204 ("MADD_S",CTy"COP1", 25205 TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5), 25206 Var("ft",FTy 5)]), 25207 Call 25208 ("op4fpr",sTy, 25209 TP[LS"madd.s",Var("fd",FTy 5),Var("fr",FTy 5), 25210 Var("fs",FTy 5),Var("ft",FTy 5)])), 25211 (Call 25212 ("MSUB_D",CTy"COP1", 25213 TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5), 25214 Var("ft",FTy 5)]), 25215 Call 25216 ("op4fpr",sTy, 25217 TP[LS"msub.d",Var("fd",FTy 5),Var("fr",FTy 5), 25218 Var("fs",FTy 5),Var("ft",FTy 5)])), 25219 (Call 25220 ("MSUB_S",CTy"COP1", 25221 TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5), 25222 Var("ft",FTy 5)]), 25223 Call 25224 ("op4fpr",sTy, 25225 TP[LS"msub.s",Var("fd",FTy 5),Var("fr",FTy 5), 25226 Var("fs",FTy 5),Var("ft",FTy 5)])), 25227 (Call("MOV_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25228 Call 25229 ("op2fpr",sTy,TP[LS"mov.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25230 (Call("MOV_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25231 Call 25232 ("op2fpr",sTy,TP[LS"mov.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25233 (Call 25234 ("MOVF",CTy"COP1", 25235 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("cc",FTy 3)]), 25236 CC[Call 25237 ("op2r",sTy,TP[LS"movf",Var("rd",FTy 5),Var("rs",FTy 5)]), 25238 LS", $fcc",Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3)))]), 25239 (Call 25240 ("MOVF_D",CTy"COP1", 25241 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)]), 25242 CC[Call 25243 ("op2fpr",sTy, 25244 TP[LS"movf.d",Var("fd",FTy 5),Var("fs",FTy 5)]), 25245 LS", $fcc",Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3)))]), 25246 (Call 25247 ("MOVF_S",CTy"COP1", 25248 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)]), 25249 CC[Call 25250 ("op2fpr",sTy, 25251 TP[LS"movf.s",Var("fd",FTy 5),Var("fs",FTy 5)]), 25252 LS", $fcc",Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3)))]), 25253 (Call 25254 ("MOVN_D",CTy"COP1", 25255 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)]), 25256 CC[Call 25257 ("op2fpr",sTy, 25258 TP[LS"movn.d",Var("fd",FTy 5),Var("fs",FTy 5)]),LS", ", 25259 Call("reg_name",sTy,Var("rt",FTy 5))]), 25260 (Call 25261 ("MOVN_S",CTy"COP1", 25262 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)]), 25263 CC[Call 25264 ("op2fpr",sTy, 25265 TP[LS"movn.s",Var("fd",FTy 5),Var("fs",FTy 5)]),LS", ", 25266 Call("reg_name",sTy,Var("rt",FTy 5))]), 25267 (Call 25268 ("MOVT",CTy"COP1", 25269 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("cc",FTy 3)]), 25270 CC[Call 25271 ("op2r",sTy,TP[LS"movt",Var("rd",FTy 5),Var("rs",FTy 5)]), 25272 LS", ",LS", $fcc", 25273 Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3)))]), 25274 (Call 25275 ("MOVT_D",CTy"COP1", 25276 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)]), 25277 CC[Call 25278 ("op2fpr",sTy, 25279 TP[LS"movt.d",Var("fd",FTy 5),Var("fs",FTy 5)]), 25280 LS", $fcc",Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3)))]), 25281 (Call 25282 ("MOVT_S",CTy"COP1", 25283 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)]), 25284 CC[Call 25285 ("op2fpr",sTy, 25286 TP[LS"movt.s",Var("fd",FTy 5),Var("fs",FTy 5)]), 25287 LS", $fcc",Mop(Cast sTy,Mop(Cast nTy,Var("cc",FTy 3)))]), 25288 (Call 25289 ("MOVZ_D",CTy"COP1", 25290 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)]), 25291 CC[Call 25292 ("op2fpr",sTy, 25293 TP[LS"movz.d",Var("fd",FTy 5),Var("fs",FTy 5)]),LS", ", 25294 Call("reg_name",sTy,Var("rt",FTy 5))]), 25295 (Call 25296 ("MOVZ_S",CTy"COP1", 25297 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)]), 25298 CC[Call 25299 ("op2fpr",sTy, 25300 TP[LS"movz.s",Var("fd",FTy 5),Var("fs",FTy 5)]),LS", ", 25301 Call("reg_name",sTy,Var("rt",FTy 5))]), 25302 (Call("MTC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), 25303 Call 25304 ("op2rfpr",sTy,TP[LS"mtc1",Var("rt",FTy 5),Var("fs",FTy 5)])), 25305 (Call 25306 ("MUL_D",CTy"COP1", 25307 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), 25308 Call 25309 ("op3fpr",sTy, 25310 TP[LS"mul.d",Var("fd",FTy 5),Var("fs",FTy 5), 25311 Var("ft",FTy 5)])), 25312 (Call 25313 ("MUL_S",CTy"COP1", 25314 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), 25315 Call 25316 ("op3fpr",sTy, 25317 TP[LS"mul.s",Var("fd",FTy 5),Var("fs",FTy 5), 25318 Var("ft",FTy 5)])), 25319 (Call("NEG_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25320 Call 25321 ("op2fpr",sTy,TP[LS"neg.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25322 (Call("NEG_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25323 Call 25324 ("op2fpr",sTy,TP[LS"neg.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25325 (Call 25326 ("ROUND_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25327 Call 25328 ("op2fpr",sTy, 25329 TP[LS"round.l.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25330 (Call 25331 ("ROUND_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25332 Call 25333 ("op2fpr",sTy, 25334 TP[LS"round.l.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25335 (Call 25336 ("ROUND_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25337 Call 25338 ("op2fpr",sTy, 25339 TP[LS"round.w.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25340 (Call 25341 ("ROUND_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25342 Call 25343 ("op2fpr",sTy, 25344 TP[LS"round.w.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25345 (Call 25346 ("SDC1",CTy"COP1", 25347 TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)]), 25348 Call 25349 ("opfpmem",sTy, 25350 TP[LS"sdc1",Var("ft",FTy 5),Var("base",FTy 5), 25351 Var("offset",F16)])), 25352 (Call 25353 ("SDXC1",CTy"COP1", 25354 TP[Var("fs",FTy 5),Var("index",FTy 5),Var("base",FTy 5)]), 25355 Call 25356 ("opfpmem2",sTy, 25357 TP[LS"sdxc1",Var("fs",FTy 5),Var("base",FTy 5), 25358 Var("index",FTy 5)])), 25359 (Call 25360 ("SWC1",CTy"COP1", 25361 TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)]), 25362 Call 25363 ("opfpmem",sTy, 25364 TP[LS"swc1",Var("ft",FTy 5),Var("base",FTy 5), 25365 Var("offset",F16)])), 25366 (Call 25367 ("SWXC1",CTy"COP1", 25368 TP[Var("ft",FTy 5),Var("offset",FTy 5),Var("base",FTy 5)]), 25369 Call 25370 ("opfpmem2",sTy, 25371 TP[LS"swxc1",Var("ft",FTy 5),Var("base",FTy 5), 25372 Var("offset",FTy 5)])), 25373 (Call 25374 ("SUB_D",CTy"COP1", 25375 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), 25376 Call 25377 ("op3fpr",sTy, 25378 TP[LS"sub.d",Var("fd",FTy 5),Var("fs",FTy 5), 25379 Var("ft",FTy 5)])), 25380 (Call 25381 ("SUB_S",CTy"COP1", 25382 TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), 25383 Call 25384 ("op3fpr",sTy, 25385 TP[LS"sub.s",Var("fd",FTy 5),Var("fs",FTy 5), 25386 Var("ft",FTy 5)])), 25387 (Call("SQRT_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25388 Call 25389 ("op2fpr",sTy, 25390 TP[LS"sqrt.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25391 (Call("SQRT_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25392 Call 25393 ("op2fpr",sTy, 25394 TP[LS"sqrt.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25395 (Call 25396 ("TRUNC_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25397 Call 25398 ("op2fpr",sTy, 25399 TP[LS"trunc.l.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25400 (Call 25401 ("TRUNC_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25402 Call 25403 ("op2fpr",sTy, 25404 TP[LS"trunc.l.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25405 (Call 25406 ("TRUNC_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25407 Call 25408 ("op2fpr",sTy, 25409 TP[LS"trunc.w.d",Var("fd",FTy 5),Var("fs",FTy 5)])), 25410 (Call 25411 ("TRUNC_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), 25412 Call 25413 ("op2fpr",sTy, 25414 TP[LS"trunc.w.s",Var("fd",FTy 5),Var("fs",FTy 5)])), 25415 (Const("UnknownFPInstruction",CTy"COP1"), 25416 LS"Unknown floating point instruction")])), 25417 (AVar(CTy"instruction"),LS"Unmatched floating point instruction")])) 25418; 25419val COP1Encode_def = Def 25420 ("COP1Encode",Var("i",CTy"instruction"),CC[LW(17,6),LW(0,26)]) 25421; 25422val gr_def = Def 25423 ("gr",Var("n",FTy 5), 25424 CC[LS"$",Mop(Cast sTy,Mop(Cast nTy,Var("n",FTy 5)))]) 25425; 25426val cr_def = Def 25427 ("cr",Var("n",FTy 5), 25428 CC[LS"c",Mop(Cast sTy,Mop(Cast nTy,Var("n",FTy 5)))]) 25429; 25430val imm_def = Def 25431 ("imm",Var("n",BTy"N"), 25432 ITE(Bop(Ult,Var("n",BTy"N"),LY(10,"N")),Mop(Cast sTy,Var("n",BTy"N")), 25433 CC[LS"0x",Mop(ToLower,Mop(Cast sTy,Var("n",BTy"N")))])) 25434; 25435val op_cr_def = Def 25436 ("op_cr",TP[sVar"op",Var("cr1",FTy 5)], 25437 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25438 Call("cr",sTy,Var("cr1",FTy 5))]) 25439; 25440val op_gr_def = Def 25441 ("op_gr",TP[sVar"op",Var("r1",FTy 5)], 25442 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25443 Call("gr",sTy,Var("r1",FTy 5))]) 25444; 25445val op_gr_imm_def = Def 25446 ("op_gr_imm",TP[sVar"op",Var("gr1",FTy 5),Var("i",BTy"N")], 25447 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25448 Call("gr",sTy,Var("gr1",FTy 5)),LS", ", 25449 Call("imm",sTy,Var("i",BTy"N"))]) 25450; 25451val op_cr_imm_def = Def 25452 ("op_cr_imm",TP[sVar"op",Var("cr1",FTy 5),Var("i",BTy"N")], 25453 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25454 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25455 Call("imm",sTy,Var("i",BTy"N"))]) 25456; 25457val op_cr_gr_def = Def 25458 ("op_cr_gr",TP[sVar"op",Var("cr1",FTy 5),Var("r1",FTy 5)], 25459 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25460 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25461 Call("gr",sTy,Var("r1",FTy 5))]) 25462; 25463val op_gr_cr_def = Def 25464 ("op_gr_cr",TP[sVar"op",Var("r1",FTy 5),Var("cr1",FTy 5)], 25465 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25466 Call("gr",sTy,Var("r1",FTy 5)),LS", ", 25467 Call("cr",sTy,Var("cr1",FTy 5))]) 25468; 25469val op_cr_cr_def = Def 25470 ("op_cr_cr",TP[sVar"op",Var("cr1",FTy 5),Var("cr2",FTy 5)], 25471 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25472 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25473 Call("cr",sTy,Var("cr2",FTy 5))]) 25474; 25475val op_cr_cr_gr_def = Def 25476 ("op_cr_cr_gr", 25477 TP[sVar"op",Var("cr1",FTy 5),Var("cr2",FTy 5),Var("r1",FTy 5)], 25478 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25479 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25480 Call("cr",sTy,Var("cr2",FTy 5)),LS", ", 25481 Call("gr",sTy,Var("r1",FTy 5))]) 25482; 25483val op_cr_cr_imm_def = Def 25484 ("op_cr_cr_imm", 25485 TP[sVar"op",Var("cr1",FTy 5),Var("cr2",FTy 5),Var("i",BTy"N")], 25486 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25487 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25488 Call("cr",sTy,Var("cr2",FTy 5)),LS", ", 25489 Call("imm",sTy,Var("i",BTy"N"))]) 25490; 25491val op_cr_cr_cr_def = Def 25492 ("op_cr_cr_cr", 25493 TP[sVar"op",Var("cr1",FTy 5),Var("cr2",FTy 5),Var("cr3",FTy 5)], 25494 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25495 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25496 Call("cr",sTy,Var("cr2",FTy 5)),LS", ", 25497 Call("cr",sTy,Var("cr3",FTy 5))]) 25498; 25499val op_gr_cr_cr_def = Def 25500 ("op_gr_cr_cr", 25501 TP[sVar"op",Var("r1",FTy 5),Var("cr1",FTy 5),Var("cr2",FTy 5)], 25502 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25503 Call("gr",sTy,Var("r1",FTy 5)),LS", ", 25504 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25505 Call("cr",sTy,Var("cr2",FTy 5))]) 25506; 25507val op_gr_cr_gr_imm_def = Def 25508 ("op_gr_cr_gr_imm", 25509 TP[sVar"op",Var("r1",FTy 5),Var("cr1",FTy 5),Var("r2",FTy 5), 25510 Var("i",BTy"N")], 25511 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25512 Call("gr",sTy,Var("r1",FTy 5)),LS", ", 25513 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25514 Call("gr",sTy,Var("r2",FTy 5)),LS", ", 25515 Call("imm",sTy,Var("i",BTy"N"))]) 25516; 25517val op_cr_cr_gr_imm_def = Def 25518 ("op_cr_cr_gr_imm", 25519 TP[sVar"op",Var("cr1",FTy 5),Var("cr2",FTy 5),Var("r1",FTy 5), 25520 Var("i",BTy"N")], 25521 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25522 Call("cr",sTy,Var("cr1",FTy 5)),LS", ", 25523 Call("cr",sTy,Var("cr2",FTy 5)),LS", ", 25524 Call("gr",sTy,Var("r1",FTy 5)),LS", ", 25525 Call("imm",sTy,Var("i",BTy"N"))]) 25526; 25527val op_gr_gr_cr_def = Def 25528 ("op_gr_gr_cr", 25529 TP[sVar"op",Var("r1",FTy 5),Var("r2",FTy 5),Var("cr1",FTy 5)], 25530 CC[Mop(PadRight,TP[LSC #" ",LN 12,sVar"op"]), 25531 Call("gr",sTy,Var("r1",FTy 5)),LS", ", 25532 Call("gr",sTy,Var("r2",FTy 5)),LS", ", 25533 Call("cr",sTy,Var("cr1",FTy 5))]) 25534; 25535val COP2InstructionToString_def = Def 25536 ("COP2InstructionToString",Var("i",CTy"instruction"), 25537 CS(Var("i",CTy"instruction"), 25538 [(Call 25539 ("COP2",CTy"instruction", 25540 Call("CHERICOP2",CTy"COP2",Var("j",CTy"CHERICOP2"))), 25541 CS(Var("j",CTy"CHERICOP2"), 25542 [(Const("DumpCapReg",CTy"CHERICOP2"),LS"mtc2 ?,?,6"), 25543 (Call 25544 ("CGet",CTy"CHERICOP2", 25545 Call 25546 ("CGetBase",CTy"CGet", 25547 TP[Var("rd",FTy 5),Var("cb",FTy 5)])), 25548 Call 25549 ("op_gr_cr",sTy, 25550 TP[LS"cgetbase",Var("rd",FTy 5),Var("cb",FTy 5)])), 25551 (Call 25552 ("CGet",CTy"CHERICOP2", 25553 Call 25554 ("CGetOffset",CTy"CGet", 25555 TP[Var("rd",FTy 5),Var("cb",FTy 5)])), 25556 Call 25557 ("op_gr_cr",sTy, 25558 TP[LS"cgetoffset",Var("rd",FTy 5),Var("cb",FTy 5)])), 25559 (Call 25560 ("CGet",CTy"CHERICOP2", 25561 Call 25562 ("CGetLen",CTy"CGet",TP[Var("rd",FTy 5),Var("cb",FTy 5)])), 25563 Call 25564 ("op_gr_cr",sTy, 25565 TP[LS"cgetlen",Var("rd",FTy 5),Var("cb",FTy 5)])), 25566 (Call 25567 ("CGet",CTy"CHERICOP2", 25568 Call 25569 ("CGetTag",CTy"CGet",TP[Var("rd",FTy 5),Var("cb",FTy 5)])), 25570 Call 25571 ("op_gr_cr",sTy, 25572 TP[LS"cgettag",Var("rd",FTy 5),Var("cb",FTy 5)])), 25573 (Call 25574 ("CGet",CTy"CHERICOP2", 25575 Call 25576 ("CGetSealed",CTy"CGet", 25577 TP[Var("rd",FTy 5),Var("cb",FTy 5)])), 25578 Call 25579 ("op_gr_cr",sTy, 25580 TP[LS"cgetsealed",Var("rd",FTy 5),Var("cb",FTy 5)])), 25581 (Call 25582 ("CGet",CTy"CHERICOP2", 25583 Call 25584 ("CGetPerm",CTy"CGet", 25585 TP[Var("rd",FTy 5),Var("cb",FTy 5)])), 25586 Call 25587 ("op_gr_cr",sTy, 25588 TP[LS"cgetperm",Var("rd",FTy 5),Var("cb",FTy 5)])), 25589 (Call 25590 ("CGet",CTy"CHERICOP2", 25591 Call 25592 ("CGetType",CTy"CGet", 25593 TP[Var("rd",FTy 5),Var("cb",FTy 5)])), 25594 Call 25595 ("op_gr_cr",sTy, 25596 TP[LS"cgettype",Var("rd",FTy 5),Var("cb",FTy 5)])), 25597 (Call 25598 ("CGet",CTy"CHERICOP2", 25599 Call("CGetPCC",CTy"CGet",Var("cd",FTy 5))), 25600 Call("op_cr",sTy,TP[LS"cgetpcc",Var("cd",FTy 5)])), 25601 (Call 25602 ("CGet",CTy"CHERICOP2", 25603 Call 25604 ("CGetPCCSetOffset",CTy"CGet", 25605 TP[Var("cd",FTy 5),Var("rs",FTy 5)])), 25606 Call 25607 ("op_cr_gr",sTy, 25608 TP[LS"cgetpccsetoffset",Var("cd",FTy 5),Var("rs",FTy 5)])), 25609 (Call 25610 ("CGet",CTy"CHERICOP2", 25611 Call("CGetCause",CTy"CGet",Var("rd",FTy 5))), 25612 Call("op_gr",sTy,TP[LS"cgetcause",Var("rd",FTy 5)])), 25613 (Call 25614 ("CSet",CTy"CHERICOP2", 25615 Call("CSetCause",CTy"CSet",Var("rt",FTy 5))), 25616 Call("op_gr",sTy,TP[LS"csetcause",Var("rt",FTy 5)])), 25617 (Call 25618 ("CSet",CTy"CHERICOP2", 25619 Call 25620 ("CSetBounds",CTy"CSet", 25621 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)])), 25622 Call 25623 ("op_cr_cr_gr",sTy, 25624 TP[LS"csetbounds",Var("cd",FTy 5),Var("cb",FTy 5), 25625 Var("rt",FTy 5)])), 25626 (Call 25627 ("CSet",CTy"CHERICOP2", 25628 Call 25629 ("CSetBoundsExact",CTy"CSet", 25630 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)])), 25631 Call 25632 ("op_cr_cr_gr",sTy, 25633 TP[LS"csetboundsexact",Var("cd",FTy 5),Var("cb",FTy 5), 25634 Var("rt",FTy 5)])), 25635 (Call 25636 ("CSet",CTy"CHERICOP2", 25637 Call 25638 ("CSetBoundsImmediate",CTy"CSet", 25639 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("len",FTy 11)])), 25640 Call 25641 ("op_cr_cr_imm",sTy, 25642 TP[LS"csetboundsimmediate",Var("cd",FTy 5), 25643 Var("cb",FTy 5),Var("len",FTy 11)])), 25644 (Call 25645 ("CSet",CTy"CHERICOP2", 25646 Call 25647 ("CIncOffset",CTy"CSet", 25648 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)])), 25649 Call 25650 ("op_cr_cr_gr",sTy, 25651 TP[LS"cincoffset",Var("cd",FTy 5),Var("cb",FTy 5), 25652 Var("rt",FTy 5)])), 25653 (Call 25654 ("CSet",CTy"CHERICOP2", 25655 Call 25656 ("CIncOffsetImmediate",CTy"CSet", 25657 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("inc",FTy 11)])), 25658 Call 25659 ("op_cr_cr_imm",sTy, 25660 TP[LS"cincoffsetimmediate",Var("cd",FTy 5), 25661 Var("cb",FTy 5),Var("inc",FTy 11)])), 25662 (Call 25663 ("CSet",CTy"CHERICOP2", 25664 Call 25665 ("CClearRegs",CTy"CSet", 25666 TP[Var("regset",FTy 5),Var("mask",F16)])), 25667 Call 25668 ("op_gr_imm",sTy, 25669 TP[LS"cclearregs",Var("regset",FTy 5),Var("mask",F16)])), 25670 (Call 25671 ("CSet",CTy"CHERICOP2", 25672 Call 25673 ("CClearTag",CTy"CSet", 25674 TP[Var("cd",FTy 5),Var("cb",FTy 5)])), 25675 Call 25676 ("op_cr_cr",sTy, 25677 TP[LS"ccleartag",Var("cd",FTy 5),Var("cb",FTy 5)])), 25678 (Call 25679 ("CSet",CTy"CHERICOP2", 25680 Call 25681 ("CAndPerm",CTy"CSet", 25682 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)])), 25683 Call 25684 ("op_cr_cr_gr",sTy, 25685 TP[LS"candperm",Var("cd",FTy 5),Var("cb",FTy 5), 25686 Var("rt",FTy 5)])), 25687 (Call 25688 ("CSet",CTy"CHERICOP2", 25689 Call 25690 ("CSetOffset",CTy"CSet", 25691 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)])), 25692 Call 25693 ("op_cr_cr_gr",sTy, 25694 TP[LS"csetoffset",Var("cd",FTy 5),Var("cb",FTy 5), 25695 Var("rt",FTy 5)])), 25696 (Call 25697 ("CSub",CTy"CHERICOP2", 25698 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5)]), 25699 Call 25700 ("op_gr_cr_cr",sTy, 25701 TP[LS"csub",Var("rd",FTy 5),Var("cb",FTy 5), 25702 Var("ct",FTy 5)])), 25703 (Call 25704 ("CCheck",CTy"CHERICOP2", 25705 Call 25706 ("CCheckPerm",CTy"CCheck", 25707 TP[Var("cs",FTy 5),Var("rt",FTy 5)])), 25708 Call 25709 ("op_cr_gr",sTy, 25710 TP[LS"ccheckperm",Var("cs",FTy 5),Var("rt",FTy 5)])), 25711 (Call 25712 ("CCheck",CTy"CHERICOP2", 25713 Call 25714 ("CCheckType",CTy"CCheck", 25715 TP[Var("cs",FTy 5),Var("cb",FTy 5)])), 25716 Call 25717 ("op_cr_cr",sTy, 25718 TP[LS"cchecktype",Var("cs",FTy 5),Var("cb",FTy 5)])), 25719 (Call 25720 ("CSet",CTy"CHERICOP2", 25721 Call 25722 ("CFromPtr",CTy"CSet", 25723 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)])), 25724 Call 25725 ("op_cr_cr_gr",sTy, 25726 TP[LS"cfromptr",Var("cd",FTy 5),Var("cb",FTy 5), 25727 Var("rt",FTy 5)])), 25728 (Call 25729 ("CGet",CTy"CHERICOP2", 25730 Call 25731 ("CToPtr",CTy"CGet", 25732 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5)])), 25733 Call 25734 ("op_gr_cr_cr",sTy, 25735 TP[LS"ctoptr",Var("rd",FTy 5),Var("cb",FTy 5), 25736 Var("ct",FTy 5)])), 25737 (Call 25738 ("CPtrCmp",CTy"CHERICOP2", 25739 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5), 25740 Var("t",FTy 3)]), 25741 CS(Var("t",FTy 3), 25742 [(LW(0,3), 25743 Call 25744 ("op_gr_cr_cr",sTy, 25745 TP[LS"ceq",Var("rd",FTy 5),Var("cb",FTy 5), 25746 Var("ct",FTy 5)])), 25747 (LW(1,3), 25748 Call 25749 ("op_gr_cr_cr",sTy, 25750 TP[LS"cne",Var("rd",FTy 5),Var("cb",FTy 5), 25751 Var("ct",FTy 5)])), 25752 (LW(2,3), 25753 Call 25754 ("op_gr_cr_cr",sTy, 25755 TP[LS"clt",Var("rd",FTy 5),Var("cb",FTy 5), 25756 Var("ct",FTy 5)])), 25757 (LW(3,3), 25758 Call 25759 ("op_gr_cr_cr",sTy, 25760 TP[LS"cle",Var("rd",FTy 5),Var("cb",FTy 5), 25761 Var("ct",FTy 5)])), 25762 (LW(4,3), 25763 Call 25764 ("op_gr_cr_cr",sTy, 25765 TP[LS"cltu",Var("rd",FTy 5),Var("cb",FTy 5), 25766 Var("ct",FTy 5)])), 25767 (LW(5,3), 25768 Call 25769 ("op_gr_cr_cr",sTy, 25770 TP[LS"cleu",Var("rd",FTy 5),Var("cb",FTy 5), 25771 Var("ct",FTy 5)])), 25772 (LW(6,3), 25773 Call 25774 ("op_gr_cr_cr",sTy, 25775 TP[LS"cexeq",Var("rd",FTy 5),Var("cb",FTy 5), 25776 Var("ct",FTy 5)])), 25777 (LW(7,3), 25778 Call 25779 ("op_gr_cr_cr",sTy, 25780 TP[LS"cnexeq",Var("rd",FTy 5),Var("cb",FTy 5), 25781 Var("ct",FTy 5)])), 25782 (AVar(FTy 3),LS"unmatched_cap_inst")])), 25783 (Call 25784 ("CBTU",CTy"CHERICOP2", 25785 TP[Var("cb",FTy 5),Var("offset",F16)]), 25786 Call 25787 ("op_cr_imm",sTy, 25788 TP[LS"cbtu",Var("cb",FTy 5),Var("offset",F16)])), 25789 (Call 25790 ("CBTS",CTy"CHERICOP2", 25791 TP[Var("cb",FTy 5),Var("offset",F16)]), 25792 Call 25793 ("op_cr_imm",sTy, 25794 TP[LS"cbts",Var("cb",FTy 5),Var("offset",F16)])), 25795 (Call("CJR",CTy"CHERICOP2",Var("cb",FTy 5)), 25796 Call("op_cr",sTy,TP[LS"cjr",Var("cb",FTy 5)])), 25797 (Call 25798 ("CJALR",CTy"CHERICOP2",TP[Var("cd",FTy 5),Var("cb",FTy 5)]), 25799 Call 25800 ("op_cr_cr",sTy, 25801 TP[LS"cjalr",Var("cb",FTy 5),Var("cd",FTy 5)])), 25802 (Call 25803 ("CSeal",CTy"CHERICOP2", 25804 TP[Var("cd",FTy 5),Var("cs",FTy 5),Var("ct",FTy 5)]), 25805 Call 25806 ("op_cr_cr_cr",sTy, 25807 TP[LS"cseal",Var("cd",FTy 5),Var("cs",FTy 5), 25808 Var("ct",FTy 5)])), 25809 (Call 25810 ("CUnseal",CTy"CHERICOP2", 25811 TP[Var("cd",FTy 5),Var("cs",FTy 5),Var("ct",FTy 5)]), 25812 Call 25813 ("op_cr_cr_cr",sTy, 25814 TP[LS"cunseal",Var("cd",FTy 5),Var("cs",FTy 5), 25815 Var("ct",FTy 5)])), 25816 (Call 25817 ("CCall0",CTy"CHERICOP2", 25818 TP[Var("cs",FTy 5),Var("cb",FTy 5)]), 25819 Call 25820 ("op_cr_cr",sTy, 25821 TP[LS"ccall0",Var("cs",FTy 5),Var("cb",FTy 5)])), 25822 (Call 25823 ("CCall1",CTy"CHERICOP2", 25824 TP[Var("cs",FTy 5),Var("cb",FTy 5)]), 25825 Call 25826 ("op_cr_cr",sTy, 25827 TP[LS"ccall1",Var("cs",FTy 5),Var("cb",FTy 5)])), 25828 (Const("CReturn",CTy"CHERICOP2"),LS"creturn"), 25829 (Call 25830 ("CLLx",CTy"CHERICOP2", 25831 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("stt",FTy 3)]), 25832 CS(Var("stt",FTy 3), 25833 [(LW(0,3), 25834 Call 25835 ("op_gr_cr",sTy, 25836 TP[LS"cllbu",Var("rd",FTy 5),Var("cb",FTy 5)])), 25837 (LW(1,3), 25838 Call 25839 ("op_gr_cr",sTy, 25840 TP[LS"cllhu",Var("rd",FTy 5),Var("cb",FTy 5)])), 25841 (LW(2,3), 25842 Call 25843 ("op_gr_cr",sTy, 25844 TP[LS"cllwu",Var("rd",FTy 5),Var("cb",FTy 5)])), 25845 (LW(3,3), 25846 Call 25847 ("op_gr_cr",sTy, 25848 TP[LS"clld",Var("rd",FTy 5),Var("cb",FTy 5)])), 25849 (LW(4,3), 25850 Call 25851 ("op_gr_cr",sTy, 25852 TP[LS"cllb",Var("rd",FTy 5),Var("cb",FTy 5)])), 25853 (LW(5,3), 25854 Call 25855 ("op_gr_cr",sTy, 25856 TP[LS"cllh",Var("rd",FTy 5),Var("cb",FTy 5)])), 25857 (LW(6,3), 25858 Call 25859 ("op_gr_cr",sTy, 25860 TP[LS"cllw",Var("rd",FTy 5),Var("cb",FTy 5)])), 25861 (LW(7,3), 25862 Call 25863 ("op_gr_cr",sTy, 25864 TP[LS"cllx",Var("rd",FTy 5),Var("cb",FTy 5)]))])), 25865 (Call 25866 ("CLLC",CTy"CHERICOP2",TP[Var("cd",FTy 5),Var("cb",FTy 5)]), 25867 Call 25868 ("op_cr_cr",sTy, 25869 TP[LS"cllc",Var("cd",FTy 5),Var("cb",FTy 5)])), 25870 (Call 25871 ("CSCx",CTy"CHERICOP2", 25872 TP[Var("rs",FTy 5),Var("cb",FTy 5),Var("rd",FTy 5), 25873 Var("tt",FTy 2)]), 25874 CS(Var("tt",FTy 2), 25875 [(LW(0,2), 25876 Call 25877 ("op_gr_gr_cr",sTy, 25878 TP[LS"cscb",Var("rd",FTy 5),Var("rs",FTy 5), 25879 Var("cb",FTy 5)])), 25880 (LW(1,2), 25881 Call 25882 ("op_gr_gr_cr",sTy, 25883 TP[LS"csch",Var("rd",FTy 5),Var("rs",FTy 5), 25884 Var("cb",FTy 5)])), 25885 (LW(2,2), 25886 Call 25887 ("op_gr_gr_cr",sTy, 25888 TP[LS"cscw",Var("rd",FTy 5),Var("rs",FTy 5), 25889 Var("cb",FTy 5)])), 25890 (LW(3,2), 25891 Call 25892 ("op_gr_gr_cr",sTy, 25893 TP[LS"cscd",Var("rd",FTy 5),Var("rs",FTy 5), 25894 Var("cb",FTy 5)]))])), 25895 (Call 25896 ("CSCC",CTy"CHERICOP2", 25897 TP[Var("cs",FTy 5),Var("cb",FTy 5),Var("rd",FTy 5)]), 25898 Call 25899 ("op_gr_cr_cr",sTy, 25900 TP[LS"cscc",Var("rd",FTy 5),Var("cs",FTy 5), 25901 Var("cb",FTy 5)])), 25902 (Call 25903 ("CMOVN",CTy"CHERICOP2", 25904 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)]), 25905 Call 25906 ("op_cr_cr_gr",sTy, 25907 TP[LS"cmovn",Var("cd",FTy 5),Var("cb",FTy 5), 25908 Var("rt",FTy 5)])), 25909 (Call 25910 ("CMOVZ",CTy"CHERICOP2", 25911 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)]), 25912 Call 25913 ("op_cr_cr_gr",sTy, 25914 TP[LS"cmovz",Var("cd",FTy 5),Var("cb",FTy 5), 25915 Var("rt",FTy 5)])), 25916 (Const("UnknownCapInstruction",CTy"CHERICOP2"), 25917 LS"unknown_cap_inst")])), 25918 (AVar(CTy"instruction"),LS"unmatched_cap_inst")])) 25919; 25920val LWC2InstructionToString_def = Def 25921 ("LWC2InstructionToString",Var("i",CTy"instruction"), 25922 CS(Var("i",CTy"instruction"), 25923 [(Call 25924 ("LWC2",CTy"instruction", 25925 Call("CHERILWC2",CTy"LWC2",Var("j",CTy"CHERILWC2"))), 25926 CS(Var("j",CTy"CHERILWC2"), 25927 [(Call 25928 ("CLoad",CTy"CHERILWC2", 25929 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 25930 Var("offset",F8),LW(0,1),Var("t",FTy 2)]), 25931 CS(Var("t",FTy 2), 25932 [(LW(0,2), 25933 Call 25934 ("op_gr_cr_gr_imm",sTy, 25935 TP[LS"clbu",Var("rd",FTy 5),Var("cb",FTy 5), 25936 Var("rt",FTy 5),Var("offset",F8)])), 25937 (LW(1,2), 25938 Call 25939 ("op_gr_cr_gr_imm",sTy, 25940 TP[LS"clhu",Var("rd",FTy 5),Var("cb",FTy 5), 25941 Var("rt",FTy 5),Var("offset",F8)])), 25942 (LW(2,2), 25943 Call 25944 ("op_gr_cr_gr_imm",sTy, 25945 TP[LS"clwu",Var("rd",FTy 5),Var("cb",FTy 5), 25946 Var("rt",FTy 5),Var("offset",F8)])), 25947 (LW(3,2), 25948 Call 25949 ("op_gr_cr_gr_imm",sTy, 25950 TP[LS"cld",Var("rd",FTy 5),Var("cb",FTy 5), 25951 Var("rt",FTy 5),Var("offset",F8)]))])), 25952 (Call 25953 ("CLoad",CTy"CHERILWC2", 25954 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 25955 Var("offset",F8),LW(1,1),LW(0,2)]), 25956 Call 25957 ("op_gr_cr_gr_imm",sTy, 25958 TP[LS"clb",Var("rd",FTy 5),Var("cb",FTy 5), 25959 Var("rt",FTy 5),Var("offset",F8)])), 25960 (Call 25961 ("CLoad",CTy"CHERILWC2", 25962 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 25963 Var("offset",F8),LW(1,1),LW(1,2)]), 25964 Call 25965 ("op_gr_cr_gr_imm",sTy, 25966 TP[LS"clh",Var("rd",FTy 5),Var("cb",FTy 5), 25967 Var("rt",FTy 5),Var("offset",F8)])), 25968 (Call 25969 ("CLoad",CTy"CHERILWC2", 25970 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 25971 Var("offset",F8),LW(1,1),LW(2,2)]), 25972 Call 25973 ("op_gr_cr_gr_imm",sTy, 25974 TP[LS"clw",Var("rd",FTy 5),Var("cb",FTy 5), 25975 Var("rt",FTy 5),Var("offset",F8)])), 25976 (AVar(CTy"CHERILWC2"),LS"unmatched_cap_inst")])), 25977 (AVar(CTy"instruction"),LS"unmatched_cap_inst")])) 25978; 25979val LDC2InstructionToString_def = Def 25980 ("LDC2InstructionToString",Var("i",CTy"instruction"), 25981 CS(Var("i",CTy"instruction"), 25982 [(Call 25983 ("LDC2",CTy"instruction", 25984 Call("CHERILDC2",CTy"LDC2",Var("j",CTy"CHERILDC2"))), 25985 CS(Var("j",CTy"CHERILDC2"), 25986 [(Call 25987 ("CLC",CTy"CHERILDC2", 25988 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 25989 Var("offset",FTy 11)]), 25990 Call 25991 ("op_cr_cr_gr_imm",sTy, 25992 TP[LS"clc",Var("cd",FTy 5),Var("cb",FTy 5), 25993 Var("rt",FTy 5),Var("offset",FTy 11)]))])), 25994 (AVar(CTy"instruction"),LS"unmatched_cap_inst")])) 25995; 25996val SWC2InstructionToString_def = Def 25997 ("SWC2InstructionToString",Var("i",CTy"instruction"), 25998 CS(Var("i",CTy"instruction"), 25999 [(Call 26000 ("SWC2",CTy"instruction", 26001 Call("CHERISWC2",CTy"SWC2",Var("j",CTy"CHERISWC2"))), 26002 CS(Var("j",CTy"CHERISWC2"), 26003 [(Call 26004 ("CStore",CTy"CHERISWC2", 26005 TP[Var("rs",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26006 Var("offset",F8),Var("t",FTy 2)]), 26007 CS(Var("t",FTy 2), 26008 [(LW(0,2), 26009 Call 26010 ("op_gr_cr_gr_imm",sTy, 26011 TP[LS"csb",Var("rs",FTy 5),Var("cb",FTy 5), 26012 Var("rt",FTy 5),Var("offset",F8)])), 26013 (LW(1,2), 26014 Call 26015 ("op_gr_cr_gr_imm",sTy, 26016 TP[LS"csh",Var("rs",FTy 5),Var("cb",FTy 5), 26017 Var("rt",FTy 5),Var("offset",F8)])), 26018 (LW(2,2), 26019 Call 26020 ("op_gr_cr_gr_imm",sTy, 26021 TP[LS"csw",Var("rs",FTy 5),Var("cb",FTy 5), 26022 Var("rt",FTy 5),Var("offset",F8)])), 26023 (LW(3,2), 26024 Call 26025 ("op_gr_cr_gr_imm",sTy, 26026 TP[LS"csd",Var("rs",FTy 5),Var("cb",FTy 5), 26027 Var("rt",FTy 5),Var("offset",F8)]))]))])), 26028 (AVar(CTy"instruction"),LS"unmatched_cap_inst")])) 26029; 26030val SDC2InstructionToString_def = Def 26031 ("SDC2InstructionToString",Var("i",CTy"instruction"), 26032 CS(Var("i",CTy"instruction"), 26033 [(Call 26034 ("SDC2",CTy"instruction", 26035 Call("CHERISDC2",CTy"SDC2",Var("j",CTy"CHERISDC2"))), 26036 CS(Var("j",CTy"CHERISDC2"), 26037 [(Call 26038 ("CSC",CTy"CHERISDC2", 26039 TP[Var("cs",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26040 Var("offset",FTy 11)]), 26041 Call 26042 ("op_cr_cr_gr_imm",sTy, 26043 TP[LS"csc",Var("cs",FTy 5),Var("cb",FTy 5), 26044 Var("rt",FTy 5),Var("offset",FTy 11)]))])), 26045 (AVar(CTy"instruction"),LS"unmatched_cap_inst")])) 26046; 26047val CHERICOP2Encode_def = Def 26048 ("CHERICOP2Encode",Var("j",CTy"CHERICOP2"), 26049 Close 26050 (qVar"state", 26051 CS(Var("j",CTy"CHERICOP2"), 26052 [(Const("DumpCapReg",CTy"CHERICOP2"), 26053 TP[CC[LW(4,5),LW(0,18),LW(6,3)],qVar"state"]), 26054 (Call("CGet",CTy"CHERICOP2",Var("v#0",CTy"CGet")), 26055 CS(Var("v#0",CTy"CGet"), 26056 [(Call 26057 ("CGetBase",CTy"CGet", 26058 TP[Var("rd",FTy 5),Var("cb",FTy 5)]), 26059 TP[CC[LW(0,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,5), 26060 LW(2,6)],qVar"state"]), 26061 (Call 26062 ("CGetOffset",CTy"CGet", 26063 TP[Var("rd",FTy 5),Var("cb",FTy 5)]), 26064 TP[CC[LW(13,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,5), 26065 LW(2,6)],qVar"state"]), 26066 (Call 26067 ("CGetLen",CTy"CGet",TP[Var("rd",FTy 5),Var("cb",FTy 5)]), 26068 TP[CC[LW(0,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,5), 26069 LW(3,6)],qVar"state"]), 26070 (Call 26071 ("CGetTag",CTy"CGet",TP[Var("rd",FTy 5),Var("cb",FTy 5)]), 26072 TP[CC[LW(0,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,5), 26073 LW(5,6)],qVar"state"]), 26074 (Call 26075 ("CGetSealed",CTy"CGet", 26076 TP[Var("rd",FTy 5),Var("cb",FTy 5)]), 26077 TP[CC[LW(0,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,5), 26078 LW(6,6)],qVar"state"]), 26079 (Call 26080 ("CGetPerm",CTy"CGet", 26081 TP[Var("rd",FTy 5),Var("cb",FTy 5)]), 26082 TP[CC[LW(0,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,5), 26083 LW(0,6)],qVar"state"]), 26084 (Call 26085 ("CGetType",CTy"CGet", 26086 TP[Var("rd",FTy 5),Var("cb",FTy 5)]), 26087 TP[CC[LW(0,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,5), 26088 LW(1,6)],qVar"state"]), 26089 (Call("CGetPCC",CTy"CGet",Var("cd",FTy 5)), 26090 TP[CC[LW(0,5),Var("cd",FTy 5),LW(0,5),LW(31,5),LW(63,6)], 26091 qVar"state"]), 26092 (Call 26093 ("CGetPCCSetOffset",CTy"CGet", 26094 TP[Var("cd",FTy 5),Var("rs",FTy 5)]), 26095 TP[CC[LW(0,5),Var("cd",FTy 5),Var("rs",FTy 5),LW(7,5), 26096 LW(63,6)],qVar"state"]), 26097 (Call("CGetCause",CTy"CGet",Var("rd",FTy 5)), 26098 TP[CC[LW(0,5),Var("rd",FTy 5),LW(0,5),LW(0,6),LW(4,5)], 26099 qVar"state"]), 26100 (Call 26101 ("CToPtr",CTy"CGet", 26102 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5)]), 26103 TP[CC[LW(12,5),Var("rd",FTy 5),Var("cb",FTy 5), 26104 Var("ct",FTy 5),LW(0,6)],qVar"state"])])), 26105 (Call("CSet",CTy"CHERICOP2",Var("v#1",CTy"CSet")), 26106 CS(Var("v#1",CTy"CSet"), 26107 [(Call("CSetCause",CTy"CSet",Var("rt",FTy 5)), 26108 TP[CC[LW(4,5),LW(0,5),LW(0,5),Var("rt",FTy 5),LW(0,3), 26109 LW(4,3)],qVar"state"]), 26110 (Call 26111 ("CSetBounds",CTy"CSet", 26112 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)]), 26113 TP[CC[LW(1,5),Var("cd",FTy 5),Var("cb",FTy 5), 26114 Var("rt",FTy 5),LW(0,6)],qVar"state"]), 26115 (Call 26116 ("CSetBoundsExact",CTy"CSet", 26117 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)]), 26118 TP[CC[LW(0,5),Var("cd",FTy 5),Var("cb",FTy 5), 26119 Var("rt",FTy 5),LW(9,6)],qVar"state"]), 26120 (Call 26121 ("CSetBoundsImmediate",CTy"CSet", 26122 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("len",FTy 11)]), 26123 TP[CC[LW(20,5),Var("cd",FTy 5),Var("cb",FTy 5), 26124 Var("len",FTy 11)],qVar"state"]), 26125 (Call 26126 ("CIncOffset",CTy"CSet", 26127 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)]), 26128 TP[CC[LW(13,5),Var("cd",FTy 5),Var("cb",FTy 5), 26129 Var("rt",FTy 5),LW(0,3),LW(0,3)],qVar"state"]), 26130 (Call 26131 ("CIncOffsetImmediate",CTy"CSet", 26132 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("inc",FTy 11)]), 26133 TP[CC[LW(11,5),Var("cd",FTy 5),Var("cb",FTy 5), 26134 Var("inc",FTy 11)],qVar"state"]), 26135 (Call 26136 ("CClearRegs",CTy"CSet", 26137 TP[Var("regset",FTy 5),Var("mask",F16)]), 26138 TP[CC[LW(15,5),Var("regset",FTy 5),Var("mask",F16)], 26139 qVar"state"]), 26140 (Call 26141 ("CClearTag",CTy"CSet", 26142 TP[Var("cd",FTy 5),Var("cb",FTy 5)]), 26143 TP[CC[LW(4,5),Var("cd",FTy 5),Var("cb",FTy 5),LW(0,8), 26144 LW(5,3)],qVar"state"]), 26145 (Call 26146 ("CAndPerm",CTy"CSet", 26147 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)]), 26148 TP[CC[LW(4,5),Var("cd",FTy 5),Var("cb",FTy 5), 26149 Var("rt",FTy 5),LW(0,3),LW(0,3)],qVar"state"]), 26150 (Call 26151 ("CSetOffset",CTy"CSet", 26152 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)]), 26153 TP[CC[LW(13,5),Var("cd",FTy 5),Var("cb",FTy 5), 26154 Var("rt",FTy 5),LW(0,3),LW(1,3)],qVar"state"]), 26155 (Call 26156 ("CFromPtr",CTy"CSet", 26157 TP[Var("cd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5)]), 26158 TP[CC[LW(4,5),Var("cd",FTy 5),Var("cb",FTy 5), 26159 Var("rt",FTy 5),LW(0,3),LW(7,3)],qVar"state"])])), 26160 (Call 26161 ("CSub",CTy"CHERICOP2",Var("v#2",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 26162 CS(Var("v#2",PTy(FTy 5,PTy(FTy 5,FTy 5))), 26163 [(TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5)], 26164 TP[CC[LW(0,5),Var("rd",FTy 5),Var("cb",FTy 5), 26165 Var("ct",FTy 5),LW(10,6)],qVar"state"])])), 26166 (Call("CCheck",CTy"CHERICOP2",Var("v#3",CTy"CCheck")), 26167 CS(Var("v#3",CTy"CCheck"), 26168 [(Call 26169 ("CCheckPerm",CTy"CCheck", 26170 TP[Var("cs",FTy 5),Var("rt",FTy 5)]), 26171 TP[CC[LW(11,5),Var("cs",FTy 5),LW(0,5),Var("rt",FTy 5), 26172 LW(0,3),LW(0,3)],qVar"state"]), 26173 (Call 26174 ("CCheckType",CTy"CCheck", 26175 TP[Var("cs",FTy 5),Var("cb",FTy 5)]), 26176 TP[CC[LW(11,5),Var("cs",FTy 5),Var("cb",FTy 5),LW(0,8), 26177 LW(1,3)],qVar"state"])])), 26178 (Call 26179 ("CPtrCmp",CTy"CHERICOP2", 26180 Var("v#4",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 26181 CS(Var("v#4",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))), 26182 [(TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("ct",FTy 5), 26183 Var("t",FTy 3)], 26184 TP[CC[LW(14,5),Var("rd",FTy 5),Var("cb",FTy 5), 26185 Var("ct",FTy 5),LW(0,3),Var("t",FTy 3)],qVar"state"])])), 26186 (Call("CBTU",CTy"CHERICOP2",Var("v#5",PTy(FTy 5,F16))), 26187 CS(Var("v#5",PTy(FTy 5,F16)), 26188 [(TP[Var("cb",FTy 5),Var("offset",F16)], 26189 TP[CC[LW(9,5),Var("cb",FTy 5),Var("offset",F16)], 26190 qVar"state"])])), 26191 (Call("CBTS",CTy"CHERICOP2",Var("v#6",PTy(FTy 5,F16))), 26192 CS(Var("v#6",PTy(FTy 5,F16)), 26193 [(TP[Var("cb",FTy 5),Var("offset",F16)], 26194 TP[CC[LW(10,5),Var("cb",FTy 5),Var("offset",F16)], 26195 qVar"state"])])), 26196 (Call("CJR",CTy"CHERICOP2",Var("v#7",FTy 5)), 26197 TP[CC[LW(8,5),LW(0,5),Var("v#7",FTy 5),LW(0,11)],qVar"state"]), 26198 (Call("CJALR",CTy"CHERICOP2",Var("v#8",PTy(FTy 5,FTy 5))), 26199 CS(Var("v#8",PTy(FTy 5,FTy 5)), 26200 [(TP[Var("cd",FTy 5),Var("cb",FTy 5)], 26201 TP[CC[LW(7,5),Var("cd",FTy 5),Var("cb",FTy 5),LW(0,11)], 26202 qVar"state"])])), 26203 (Call 26204 ("CSeal",CTy"CHERICOP2", 26205 Var("v#9",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 26206 CS(Var("v#9",PTy(FTy 5,PTy(FTy 5,FTy 5))), 26207 [(TP[Var("cd",FTy 5),Var("cs",FTy 5),Var("ct",FTy 5)], 26208 TP[CC[LW(2,5),Var("cd",FTy 5),Var("cs",FTy 5), 26209 Var("ct",FTy 5),LW(0,6)],qVar"state"])])), 26210 (Call 26211 ("CUnseal",CTy"CHERICOP2", 26212 Var("v#10",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 26213 CS(Var("v#10",PTy(FTy 5,PTy(FTy 5,FTy 5))), 26214 [(TP[Var("cd",FTy 5),Var("cs",FTy 5),Var("ct",FTy 5)], 26215 TP[CC[LW(3,5),Var("cd",FTy 5),Var("cs",FTy 5), 26216 Var("ct",FTy 5),LW(0,6)],qVar"state"])])), 26217 (Call("CCall0",CTy"CHERICOP2",Var("v#11",PTy(FTy 5,FTy 5))), 26218 CS(Var("v#11",PTy(FTy 5,FTy 5)), 26219 [(TP[Var("cs",FTy 5),Var("cb",FTy 5)], 26220 TP[CC[LW(5,5),Var("cs",FTy 5),Var("cb",FTy 5),LW(0,11)], 26221 qVar"state"])])), 26222 (Call("CCall1",CTy"CHERICOP2",Var("v#12",PTy(FTy 5,FTy 5))), 26223 CS(Var("v#12",PTy(FTy 5,FTy 5)), 26224 [(TP[Var("cs",FTy 5),Var("cb",FTy 5)], 26225 TP[CC[LW(5,5),Var("cs",FTy 5),Var("cb",FTy 5),LW(1,11)], 26226 qVar"state"])])), 26227 (Const("CReturn",CTy"CHERICOP2"), 26228 TP[CC[LW(6,5),LW(0,21)],qVar"state"]), 26229 (Call 26230 ("CLLx",CTy"CHERICOP2", 26231 Var("v#13",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 26232 CS(TP[Mop(Fst,Var("v#13",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 26233 Mop(Fst,Mop(Snd,Var("v#13",PTy(FTy 5,PTy(FTy 5,FTy 3))))), 26234 BL(3, 26235 Mop(Snd, 26236 Mop(Snd,Var("v#13",PTy(FTy 5,PTy(FTy 5,FTy 3))))))], 26237 [(TP[Var("rd",FTy 5),Var("cb",FTy 5),bVar"s'0",LF,LF], 26238 TP[CC[LW(16,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,7), 26239 LW(1,1),Mop(Cast F1,LL[bVar"s'0"]),LW(0,2)], 26240 qVar"state"]), 26241 (TP[Var("rd",FTy 5),Var("cb",FTy 5),bVar"s'0",LF,LT], 26242 TP[CC[LW(16,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,7), 26243 LW(1,1),Mop(Cast F1,LL[bVar"s'0"]),LW(1,2)], 26244 qVar"state"]), 26245 (TP[Var("rd",FTy 5),Var("cb",FTy 5),bVar"s'0",LT,LF], 26246 TP[CC[LW(16,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,7), 26247 LW(1,1),Mop(Cast F1,LL[bVar"s'0"]),LW(2,2)], 26248 qVar"state"]), 26249 (TP[Var("rd",FTy 5),Var("cb",FTy 5),LF,LT,LT], 26250 TP[CC[LW(16,5),Var("rd",FTy 5),Var("cb",FTy 5),LW(0,7), 26251 LW(11,4)],qVar"state"]), 26252 (TP[Var("rd",FTy 5),Var("cb",FTy 5),LT,LT,LT], 26253 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 26254 Apply 26255 (Call 26256 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 26257 LS"instruction-encoding"),qVar"state"), 26258 TP[Apply 26259 (LX(ATy(PTy(nTy,sTy),FTy 26)), 26260 Var("v",PTy(nTy,sTy))),qVar"s"]))])), 26261 (Call("CLLC",CTy"CHERICOP2",Var("v#14",PTy(FTy 5,FTy 5))), 26262 CS(Var("v#14",PTy(FTy 5,FTy 5)), 26263 [(TP[Var("cd",FTy 5),Var("cb",FTy 5)], 26264 TP[CC[LW(16,5),Var("cd",FTy 5),Var("cb",FTy 5),LW(0,7), 26265 LW(15,4)],qVar"state"])])), 26266 (Call 26267 ("CSCx",CTy"CHERICOP2", 26268 Var("v#15",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 2))))), 26269 CS(Var("v#15",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 2)))), 26270 [(TP[Var("rs",FTy 5),Var("cb",FTy 5),Var("rd",FTy 5), 26271 Var("tt",FTy 2)], 26272 TP[CC[LW(16,5),Var("rs",FTy 5),Var("cb",FTy 5), 26273 Var("rd",FTy 5),LW(0,2),LW(0,2),Var("tt",FTy 2)], 26274 qVar"state"])])), 26275 (Call 26276 ("CSCC",CTy"CHERICOP2", 26277 Var("v#16",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 26278 CS(Var("v#16",PTy(FTy 5,PTy(FTy 5,FTy 5))), 26279 [(TP[Var("cs",FTy 5),Var("cb",FTy 5),Var("rd",FTy 5)], 26280 TP[CC[LW(16,5),Var("cs",FTy 5),Var("cb",FTy 5), 26281 Var("rd",FTy 5),LW(0,2),LW(7,4)],qVar"state"])])), 26282 (Const("UnknownCapInstruction",CTy"CHERICOP2"), 26283 TP[CC[LW(31,5),LW(0,21)],qVar"state"])]))) 26284; 26285val COP2Encode_def = Def 26286 ("COP2Encode",Var("i",CTy"instruction"), 26287 Close 26288 (qVar"state", 26289 CS(Var("i",CTy"instruction"), 26290 [(Call 26291 ("COP2",CTy"instruction", 26292 Call("CHERICOP2",CTy"COP2",Var("j",CTy"CHERICOP2"))), 26293 Let(TP[Var("v",FTy 26),qVar"s"], 26294 Apply 26295 (Call 26296 ("CHERICOP2Encode",ATy(qTy,PTy(FTy 26,qTy)), 26297 Var("j",CTy"CHERICOP2")),qVar"state"), 26298 TP[CC[LW(18,6),Var("v",FTy 26)],qVar"s"])), 26299 (AVar(CTy"instruction"), 26300 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 26301 Apply 26302 (Call 26303 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 26304 LS"instruction-encoding"),qVar"state"), 26305 TP[Apply(LX(ATy(PTy(nTy,sTy),F32)),Var("v",PTy(nTy,sTy))), 26306 qVar"s"]))]))) 26307; 26308val LWC2Encode_def = Def 26309 ("LWC2Encode",Var("i",CTy"instruction"), 26310 Close 26311 (qVar"state", 26312 CS(Var("i",CTy"instruction"), 26313 [(Call 26314 ("LWC2",CTy"instruction", 26315 Call 26316 ("CHERILWC2",CTy"LWC2", 26317 Call 26318 ("CLoad",CTy"CHERILWC2", 26319 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26320 Var("offset",F8),LW(0,1),Var("t",FTy 2)]))), 26321 TP[CC[LW(50,6),Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26322 Var("offset",F8),LW(0,1),Var("t",FTy 2)],qVar"state"]), 26323 (Call 26324 ("LWC2",CTy"instruction", 26325 Call 26326 ("CHERILWC2",CTy"LWC2", 26327 Call 26328 ("CLoad",CTy"CHERILWC2", 26329 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26330 Var("offset",F8),LW(1,1),LW(0,2)]))), 26331 TP[CC[LW(50,6),Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26332 Var("offset",F8),LW(4,3)],qVar"state"]), 26333 (Call 26334 ("LWC2",CTy"instruction", 26335 Call 26336 ("CHERILWC2",CTy"LWC2", 26337 Call 26338 ("CLoad",CTy"CHERILWC2", 26339 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26340 Var("offset",F8),LW(1,1),LW(1,2)]))), 26341 TP[CC[LW(50,6),Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26342 Var("offset",F8),LW(5,3)],qVar"state"]), 26343 (Call 26344 ("LWC2",CTy"instruction", 26345 Call 26346 ("CHERILWC2",CTy"LWC2", 26347 Call 26348 ("CLoad",CTy"CHERILWC2", 26349 TP[Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26350 Var("offset",F8),LW(1,1),LW(2,2)]))), 26351 TP[CC[LW(50,6),Var("rd",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26352 Var("offset",F8),LW(6,3)],qVar"state"]), 26353 (AVar(CTy"instruction"), 26354 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 26355 Apply 26356 (Call 26357 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 26358 LS"instruction-encoding"),qVar"state"), 26359 TP[Apply(LX(ATy(PTy(nTy,sTy),F32)),Var("v",PTy(nTy,sTy))), 26360 qVar"s"]))]))) 26361; 26362val LDC2Encode_def = Def 26363 ("LDC2Encode",Var("i",CTy"instruction"), 26364 Close 26365 (qVar"state", 26366 CS(Var("i",CTy"instruction"), 26367 [(Call 26368 ("LDC2",CTy"instruction", 26369 Call 26370 ("CHERILDC2",CTy"LDC2", 26371 Call 26372 ("CLC",CTy"CHERILDC2", 26373 TP[Var("c",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26374 Var("offset",FTy 11)]))), 26375 TP[CC[LW(54,6),Var("c",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26376 Var("offset",FTy 11)],qVar"state"]), 26377 (AVar(CTy"instruction"), 26378 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 26379 Apply 26380 (Call 26381 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 26382 LS"instruction-encoding"),qVar"state"), 26383 TP[Apply(LX(ATy(PTy(nTy,sTy),F32)),Var("v",PTy(nTy,sTy))), 26384 qVar"s"]))]))) 26385; 26386val SWC2Encode_def = Def 26387 ("SWC2Encode",Var("i",CTy"instruction"), 26388 Close 26389 (qVar"state", 26390 CS(Var("i",CTy"instruction"), 26391 [(Call 26392 ("SWC2",CTy"instruction", 26393 Call 26394 ("CHERISWC2",CTy"SWC2", 26395 Call 26396 ("CStore",CTy"CHERISWC2", 26397 TP[Var("rs",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26398 Var("offset",F8),Var("t",FTy 2)]))), 26399 TP[CC[LW(58,6),Var("rs",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26400 Var("offset",F8),LW(0,1),Var("t",FTy 2)],qVar"state"]), 26401 (AVar(CTy"instruction"), 26402 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 26403 Apply 26404 (Call 26405 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 26406 LS"instruction-encoding"),qVar"state"), 26407 TP[Apply(LX(ATy(PTy(nTy,sTy),F32)),Var("v",PTy(nTy,sTy))), 26408 qVar"s"]))]))) 26409; 26410val SDC2Encode_def = Def 26411 ("SDC2Encode",Var("i",CTy"instruction"), 26412 Close 26413 (qVar"state", 26414 CS(Var("i",CTy"instruction"), 26415 [(Call 26416 ("SDC2",CTy"instruction", 26417 Call 26418 ("CHERISDC2",CTy"SDC2", 26419 Call 26420 ("CSC",CTy"CHERISDC2", 26421 TP[Var("c",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26422 Var("offset",FTy 11)]))), 26423 TP[CC[LW(62,6),Var("c",FTy 5),Var("cb",FTy 5),Var("rt",FTy 5), 26424 Var("offset",FTy 11)],qVar"state"]), 26425 (AVar(CTy"instruction"), 26426 Let(TP[Var("v",PTy(nTy,sTy)),qVar"s"], 26427 Apply 26428 (Call 26429 ("next_unknown",ATy(qTy,PTy(PTy(nTy,sTy),qTy)), 26430 LS"instruction-encoding"),qVar"state"), 26431 TP[Apply(LX(ATy(PTy(nTy,sTy),F32)),Var("v",PTy(nTy,sTy))), 26432 qVar"s"]))]))) 26433; 26434val instructionToString_def = Def 26435 ("instructionToString",Var("i",CTy"instruction"), 26436 CS(Var("i",CTy"instruction"), 26437 [(Call 26438 ("Shift",CTy"instruction", 26439 Call("SLL",CTy"Shift",TP[LW(0,5),LW(0,5),LW(0,5)])),LS"nop"), 26440 (Call 26441 ("Shift",CTy"instruction", 26442 Call("SLL",CTy"Shift",TP[LW(0,5),LW(0,5),LW(1,5)])),LS"ssnop"), 26443 (Call 26444 ("Shift",CTy"instruction", 26445 Call 26446 ("SLL",CTy"Shift", 26447 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26448 Call 26449 ("op2ri",sTy, 26450 TP[LS"sll",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26451 (Call 26452 ("Shift",CTy"instruction", 26453 Call 26454 ("SRL",CTy"Shift", 26455 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26456 Call 26457 ("op2ri",sTy, 26458 TP[LS"srl",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26459 (Call 26460 ("Shift",CTy"instruction", 26461 Call 26462 ("SRA",CTy"Shift", 26463 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26464 Call 26465 ("op2ri",sTy, 26466 TP[LS"sra",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26467 (Call 26468 ("Shift",CTy"instruction", 26469 Call 26470 ("SLLV",CTy"Shift", 26471 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26472 Call 26473 ("op3r",sTy, 26474 TP[LS"sllv",Var("rd",FTy 5),Var("rt",FTy 5),Var("rs",FTy 5)])), 26475 (Call 26476 ("Shift",CTy"instruction", 26477 Call 26478 ("SRLV",CTy"Shift", 26479 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26480 Call 26481 ("op3r",sTy, 26482 TP[LS"srlv",Var("rd",FTy 5),Var("rt",FTy 5),Var("rs",FTy 5)])), 26483 (Call 26484 ("Shift",CTy"instruction", 26485 Call 26486 ("SRAV",CTy"Shift", 26487 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26488 Call 26489 ("op3r",sTy, 26490 TP[LS"srav",Var("rd",FTy 5),Var("rt",FTy 5),Var("rs",FTy 5)])), 26491 (Call 26492 ("Branch",CTy"instruction", 26493 Call("JR",CTy"Branch",Var("rs",FTy 5))), 26494 Call("op1r",sTy,TP[LS"jr",Var("rs",FTy 5)])), 26495 (Call 26496 ("Branch",CTy"instruction", 26497 Call("JALR",CTy"Branch",TP[Var("rs",FTy 5),Var("rd",FTy 5)])), 26498 Call("op2r",sTy,TP[LS"jalr",Var("rd",FTy 5),Var("rs",FTy 5)])), 26499 (Call 26500 ("MultDiv",CTy"instruction", 26501 Call("MFHI",CTy"MultDiv",Var("rd",FTy 5))), 26502 Call("op1r",sTy,TP[LS"mfhi",Var("rd",FTy 5)])), 26503 (Call 26504 ("MultDiv",CTy"instruction", 26505 Call("MTHI",CTy"MultDiv",Var("rd",FTy 5))), 26506 Call("op1r",sTy,TP[LS"mthi",Var("rd",FTy 5)])), 26507 (Call 26508 ("MultDiv",CTy"instruction", 26509 Call("MFLO",CTy"MultDiv",Var("rs",FTy 5))), 26510 Call("op1r",sTy,TP[LS"mflo",Var("rs",FTy 5)])), 26511 (Call 26512 ("MultDiv",CTy"instruction", 26513 Call("MTLO",CTy"MultDiv",Var("rs",FTy 5))), 26514 Call("op1r",sTy,TP[LS"mtlo",Var("rs",FTy 5)])), 26515 (Call 26516 ("Shift",CTy"instruction", 26517 Call 26518 ("DSLLV",CTy"Shift", 26519 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26520 Call 26521 ("op3r",sTy, 26522 TP[LS"dsllv",Var("rd",FTy 5),Var("rt",FTy 5),Var("rs",FTy 5)])), 26523 (Call 26524 ("Shift",CTy"instruction", 26525 Call 26526 ("DSRLV",CTy"Shift", 26527 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26528 Call 26529 ("op3r",sTy, 26530 TP[LS"dsrlv",Var("rd",FTy 5),Var("rt",FTy 5),Var("rs",FTy 5)])), 26531 (Call 26532 ("Shift",CTy"instruction", 26533 Call 26534 ("DSRAV",CTy"Shift", 26535 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26536 Call 26537 ("op3r",sTy, 26538 TP[LS"dsrav",Var("rd",FTy 5),Var("rt",FTy 5),Var("rs",FTy 5)])), 26539 (Call 26540 ("MultDiv",CTy"instruction", 26541 Call("MADD",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26542 Call("op2r",sTy,TP[LS"madd",Var("rs",FTy 5),Var("rt",FTy 5)])), 26543 (Call 26544 ("MultDiv",CTy"instruction", 26545 Call("MADDU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26546 Call("op2r",sTy,TP[LS"maddu",Var("rs",FTy 5),Var("rt",FTy 5)])), 26547 (Call 26548 ("MultDiv",CTy"instruction", 26549 Call("MSUB",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26550 Call("op2r",sTy,TP[LS"msub",Var("rs",FTy 5),Var("rt",FTy 5)])), 26551 (Call 26552 ("MultDiv",CTy"instruction", 26553 Call("MSUBU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26554 Call("op2r",sTy,TP[LS"msubu",Var("rs",FTy 5),Var("rt",FTy 5)])), 26555 (Call 26556 ("MultDiv",CTy"instruction", 26557 Call 26558 ("MUL",CTy"MultDiv", 26559 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26560 Call 26561 ("op3r",sTy, 26562 TP[LS"mul",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26563 (Call 26564 ("MultDiv",CTy"instruction", 26565 Call("MULT",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26566 Call("op2r",sTy,TP[LS"mult",Var("rs",FTy 5),Var("rt",FTy 5)])), 26567 (Call 26568 ("MultDiv",CTy"instruction", 26569 Call("MULTU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26570 Call("op2r",sTy,TP[LS"multu",Var("rs",FTy 5),Var("rt",FTy 5)])), 26571 (Call 26572 ("MultDiv",CTy"instruction", 26573 Call("DIV",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26574 Call("op2r",sTy,TP[LS"div",Var("rs",FTy 5),Var("rt",FTy 5)])), 26575 (Call 26576 ("MultDiv",CTy"instruction", 26577 Call("DIVU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26578 Call("op2r",sTy,TP[LS"divu",Var("rs",FTy 5),Var("rt",FTy 5)])), 26579 (Call 26580 ("MultDiv",CTy"instruction", 26581 Call("DMULT",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26582 Call("op2r",sTy,TP[LS"dmult",Var("rs",FTy 5),Var("rt",FTy 5)])), 26583 (Call 26584 ("MultDiv",CTy"instruction", 26585 Call("DMULTU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26586 Call("op2r",sTy,TP[LS"dmultu",Var("rs",FTy 5),Var("rt",FTy 5)])), 26587 (Call 26588 ("MultDiv",CTy"instruction", 26589 Call("DDIV",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26590 Call("op2r",sTy,TP[LS"ddiv",Var("rs",FTy 5),Var("rt",FTy 5)])), 26591 (Call 26592 ("MultDiv",CTy"instruction", 26593 Call("DDIVU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26594 Call("op2r",sTy,TP[LS"ddivu",Var("rs",FTy 5),Var("rt",FTy 5)])), 26595 (Call 26596 ("ArithR",CTy"instruction", 26597 Call 26598 ("MOVN",CTy"ArithR", 26599 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26600 Call 26601 ("op3r",sTy, 26602 TP[LS"movn",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26603 (Call 26604 ("ArithR",CTy"instruction", 26605 Call 26606 ("MOVZ",CTy"ArithR", 26607 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26608 Call 26609 ("op3r",sTy, 26610 TP[LS"movz",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26611 (Call 26612 ("ArithR",CTy"instruction", 26613 Call 26614 ("ADD",CTy"ArithR", 26615 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26616 Call 26617 ("op3r",sTy, 26618 TP[LS"add",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26619 (Call 26620 ("ArithR",CTy"instruction", 26621 Call 26622 ("ADDU",CTy"ArithR", 26623 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26624 Call 26625 ("op3r",sTy, 26626 TP[LS"addu",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26627 (Call 26628 ("ArithR",CTy"instruction", 26629 Call 26630 ("SUB",CTy"ArithR", 26631 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26632 Call 26633 ("op3r",sTy, 26634 TP[LS"sub",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26635 (Call 26636 ("ArithR",CTy"instruction", 26637 Call 26638 ("SUBU",CTy"ArithR", 26639 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26640 Call 26641 ("op3r",sTy, 26642 TP[LS"subu",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26643 (Call 26644 ("ArithR",CTy"instruction", 26645 Call 26646 ("AND",CTy"ArithR", 26647 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26648 Call 26649 ("op3r",sTy, 26650 TP[LS"and",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26651 (Call 26652 ("ArithR",CTy"instruction", 26653 Call 26654 ("OR",CTy"ArithR", 26655 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26656 Call 26657 ("op3r",sTy, 26658 TP[LS"or",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26659 (Call 26660 ("ArithR",CTy"instruction", 26661 Call 26662 ("XOR",CTy"ArithR", 26663 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26664 Call 26665 ("op3r",sTy, 26666 TP[LS"xor",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26667 (Call 26668 ("ArithR",CTy"instruction", 26669 Call 26670 ("NOR",CTy"ArithR", 26671 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26672 Call 26673 ("op3r",sTy, 26674 TP[LS"nor",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26675 (Call 26676 ("ArithR",CTy"instruction", 26677 Call 26678 ("SLT",CTy"ArithR", 26679 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26680 Call 26681 ("op3r",sTy, 26682 TP[LS"slt",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26683 (Call 26684 ("ArithR",CTy"instruction", 26685 Call 26686 ("SLTU",CTy"ArithR", 26687 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26688 Call 26689 ("op3r",sTy, 26690 TP[LS"sltu",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26691 (Call 26692 ("ArithR",CTy"instruction", 26693 Call 26694 ("DADD",CTy"ArithR", 26695 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26696 Call 26697 ("op3r",sTy, 26698 TP[LS"dadd",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26699 (Call 26700 ("ArithR",CTy"instruction", 26701 Call 26702 ("DADDU",CTy"ArithR", 26703 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26704 Call 26705 ("op3r",sTy, 26706 TP[LS"daddu",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26707 (Call 26708 ("ArithR",CTy"instruction", 26709 Call 26710 ("DSUB",CTy"ArithR", 26711 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26712 Call 26713 ("op3r",sTy, 26714 TP[LS"dsub",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26715 (Call 26716 ("ArithR",CTy"instruction", 26717 Call 26718 ("DSUBU",CTy"ArithR", 26719 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 26720 Call 26721 ("op3r",sTy, 26722 TP[LS"dsubu",Var("rd",FTy 5),Var("rs",FTy 5),Var("rt",FTy 5)])), 26723 (Call 26724 ("Trap",CTy"instruction", 26725 Call("TGE",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26726 Call("op2r",sTy,TP[LS"tge",Var("rs",FTy 5),Var("rt",FTy 5)])), 26727 (Call 26728 ("Trap",CTy"instruction", 26729 Call("TGEU",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26730 Call("op2r",sTy,TP[LS"tgeu",Var("rs",FTy 5),Var("rt",FTy 5)])), 26731 (Call 26732 ("Trap",CTy"instruction", 26733 Call("TLT",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26734 Call("op2r",sTy,TP[LS"tlt",Var("rs",FTy 5),Var("rt",FTy 5)])), 26735 (Call 26736 ("Trap",CTy"instruction", 26737 Call("TLTU",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26738 Call("op2r",sTy,TP[LS"tltu",Var("rs",FTy 5),Var("rt",FTy 5)])), 26739 (Call 26740 ("Trap",CTy"instruction", 26741 Call("TEQ",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26742 Call("op2r",sTy,TP[LS"teq",Var("rs",FTy 5),Var("rt",FTy 5)])), 26743 (Call 26744 ("Trap",CTy"instruction", 26745 Call("TNE",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 26746 Call("op2r",sTy,TP[LS"tne",Var("rs",FTy 5),Var("rt",FTy 5)])), 26747 (Call 26748 ("Shift",CTy"instruction", 26749 Call 26750 ("DSLL",CTy"Shift", 26751 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26752 Call 26753 ("op2ri",sTy, 26754 TP[LS"dsll",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26755 (Call 26756 ("Shift",CTy"instruction", 26757 Call 26758 ("DSRL",CTy"Shift", 26759 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26760 Call 26761 ("op2ri",sTy, 26762 TP[LS"dsrl",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26763 (Call 26764 ("Shift",CTy"instruction", 26765 Call 26766 ("DSRA",CTy"Shift", 26767 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26768 Call 26769 ("op2ri",sTy, 26770 TP[LS"dsra",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26771 (Call 26772 ("Shift",CTy"instruction", 26773 Call 26774 ("DSLL32",CTy"Shift", 26775 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26776 Call 26777 ("op2ri",sTy, 26778 TP[LS"dsll32",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26779 (Call 26780 ("Shift",CTy"instruction", 26781 Call 26782 ("DSRL32",CTy"Shift", 26783 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26784 Call 26785 ("op2ri",sTy, 26786 TP[LS"dsrl32",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26787 (Call 26788 ("Shift",CTy"instruction", 26789 Call 26790 ("DSRA32",CTy"Shift", 26791 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 26792 Call 26793 ("op2ri",sTy, 26794 TP[LS"dsra32",Var("rd",FTy 5),Var("rt",FTy 5),Var("imm5",FTy 5)])), 26795 (Call 26796 ("Branch",CTy"instruction", 26797 Call("BLTZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26798 Call("op1rai",sTy,TP[LS"bltz",Var("rs",FTy 5),Var("imm",F16)])), 26799 (Call 26800 ("Branch",CTy"instruction", 26801 Call("BGEZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26802 Call("op1rai",sTy,TP[LS"bgez",Var("rs",FTy 5),Var("imm",F16)])), 26803 (Call 26804 ("Branch",CTy"instruction", 26805 Call("BLTZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26806 Call("op1rlai",sTy,TP[LS"bltzl",Var("rs",FTy 5),Var("imm",F16)])), 26807 (Call 26808 ("Branch",CTy"instruction", 26809 Call("BGEZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26810 Call("op1rlai",sTy,TP[LS"bgezl",Var("rs",FTy 5),Var("imm",F16)])), 26811 (Call 26812 ("Trap",CTy"instruction", 26813 Call("TGEI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 26814 Call("op1ri",sTy,TP[LS"tgei",Var("rs",FTy 5),Var("imm",F16)])), 26815 (Call 26816 ("Trap",CTy"instruction", 26817 Call("TGEIU",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 26818 Call("op1ri",sTy,TP[LS"tgeiu",Var("rs",FTy 5),Var("imm",F16)])), 26819 (Call 26820 ("Trap",CTy"instruction", 26821 Call("TLTI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 26822 Call("op1ri",sTy,TP[LS"tlti",Var("rs",FTy 5),Var("imm",F16)])), 26823 (Call 26824 ("Trap",CTy"instruction", 26825 Call("TLTIU",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 26826 Call("op1ri",sTy,TP[LS"tltiu",Var("rs",FTy 5),Var("imm",F16)])), 26827 (Call 26828 ("Trap",CTy"instruction", 26829 Call("TEQI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 26830 Call("op1ri",sTy,TP[LS"teqi",Var("rs",FTy 5),Var("imm",F16)])), 26831 (Call 26832 ("Trap",CTy"instruction", 26833 Call("TNEI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 26834 Call("op1ri",sTy,TP[LS"tnei",Var("rs",FTy 5),Var("imm",F16)])), 26835 (Call 26836 ("Branch",CTy"instruction", 26837 Call("BLTZAL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26838 Call("op1rai",sTy,TP[LS"bltzal",Var("rs",FTy 5),Var("imm",F16)])), 26839 (Call 26840 ("Branch",CTy"instruction", 26841 Call("BGEZAL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26842 Call("op1rai",sTy,TP[LS"bgezal",Var("rs",FTy 5),Var("imm",F16)])), 26843 (Call 26844 ("Branch",CTy"instruction", 26845 Call("BLTZALL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26846 Call("op1rlai",sTy,TP[LS"bltzall",Var("rs",FTy 5),Var("imm",F16)])), 26847 (Call 26848 ("Branch",CTy"instruction", 26849 Call("BGEZALL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26850 Call("op1rlai",sTy,TP[LS"bgezall",Var("rs",FTy 5),Var("imm",F16)])), 26851 (Call 26852 ("Branch",CTy"instruction", 26853 Call("J",CTy"Branch",Var("imm",FTy 26))), 26854 Call("op1ai",sTy,TP[LS"j",Var("imm",FTy 26)])), 26855 (Call 26856 ("Branch",CTy"instruction", 26857 Call("JAL",CTy"Branch",Var("imm",FTy 26))), 26858 Call("op1ai",sTy,TP[LS"jal",Var("imm",FTy 26)])), 26859 (Call 26860 ("CP",CTy"instruction", 26861 Call 26862 ("MFC0",CTy"CP", 26863 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 26864 Call 26865 ("op2roi",sTy, 26866 TP[LS"mfc0",Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 26867 (Call 26868 ("CP",CTy"instruction", 26869 Call 26870 ("DMFC0",CTy"CP", 26871 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 26872 Call 26873 ("op2roi",sTy, 26874 TP[LS"dmfc0",Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 26875 (Call 26876 ("CP",CTy"instruction", 26877 Call 26878 ("MTC0",CTy"CP", 26879 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 26880 Call 26881 ("op2roi",sTy, 26882 TP[LS"mtc0",Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 26883 (Call 26884 ("CP",CTy"instruction", 26885 Call 26886 ("DMTC0",CTy"CP", 26887 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 26888 Call 26889 ("op2roi",sTy, 26890 TP[LS"dmtc0",Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 26891 (Call 26892 ("Branch",CTy"instruction", 26893 Call("BEQ",CTy"Branch",TP[LW(0,5),LW(0,5),Var("imm",F16)])), 26894 Call("op1ai",sTy,TP[LS"b",Var("imm",F16)])), 26895 (Call 26896 ("Branch",CTy"instruction", 26897 Call 26898 ("BEQ",CTy"Branch", 26899 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26900 Call 26901 ("op2rai",sTy, 26902 TP[LS"beq",Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26903 (Call 26904 ("Branch",CTy"instruction", 26905 Call 26906 ("BNE",CTy"Branch", 26907 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26908 Call 26909 ("op2rai",sTy, 26910 TP[LS"bne",Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26911 (Call 26912 ("Branch",CTy"instruction", 26913 Call("BLEZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26914 Call("op1rai",sTy,TP[LS"blez",Var("rs",FTy 5),Var("imm",F16)])), 26915 (Call 26916 ("Branch",CTy"instruction", 26917 Call("BGTZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26918 Call("op1rai",sTy,TP[LS"bgtz",Var("rs",FTy 5),Var("imm",F16)])), 26919 (Call 26920 ("ArithI",CTy"instruction", 26921 Call 26922 ("ADDI",CTy"ArithI", 26923 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26924 Call 26925 ("op2ri",sTy, 26926 TP[LS"addi",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 26927 (Call 26928 ("ArithI",CTy"instruction", 26929 Call 26930 ("ADDIU",CTy"ArithI", 26931 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26932 Call 26933 ("op2ri",sTy, 26934 TP[LS"addiu",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 26935 (Call 26936 ("ArithI",CTy"instruction", 26937 Call 26938 ("SLTI",CTy"ArithI", 26939 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26940 Call 26941 ("op2ri",sTy, 26942 TP[LS"slti",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 26943 (Call 26944 ("ArithI",CTy"instruction", 26945 Call 26946 ("SLTIU",CTy"ArithI", 26947 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26948 Call 26949 ("op2ri",sTy, 26950 TP[LS"sltiu",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 26951 (Call 26952 ("ArithI",CTy"instruction", 26953 Call 26954 ("ANDI",CTy"ArithI", 26955 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26956 Call 26957 ("op2ri",sTy, 26958 TP[LS"andi",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 26959 (Call 26960 ("ArithI",CTy"instruction", 26961 Call 26962 ("ORI",CTy"ArithI", 26963 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26964 Call 26965 ("op2ri",sTy, 26966 TP[LS"ori",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 26967 (Call 26968 ("ArithI",CTy"instruction", 26969 Call 26970 ("XORI",CTy"ArithI", 26971 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26972 Call 26973 ("op2ri",sTy, 26974 TP[LS"xori",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 26975 (Call 26976 ("ArithI",CTy"instruction", 26977 Call("LUI",CTy"ArithI",TP[Var("rt",FTy 5),Var("imm",F16)])), 26978 Call("op1ri",sTy,TP[LS"lui",Var("rt",FTy 5),Var("imm",F16)])), 26979 (Call 26980 ("Branch",CTy"instruction", 26981 Call 26982 ("BEQL",CTy"Branch", 26983 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26984 Call 26985 ("op2rlai",sTy, 26986 TP[LS"beql",Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26987 (Call 26988 ("Branch",CTy"instruction", 26989 Call 26990 ("BNEL",CTy"Branch", 26991 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26992 Call 26993 ("op2rlai",sTy, 26994 TP[LS"bnel",Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 26995 (Call 26996 ("Branch",CTy"instruction", 26997 Call("BLEZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 26998 Call("op1rlai",sTy,TP[LS"blezl",Var("rs",FTy 5),Var("imm",F16)])), 26999 (Call 27000 ("Branch",CTy"instruction", 27001 Call("BGTZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27002 Call("op1rlai",sTy,TP[LS"bgtzl",Var("rs",FTy 5),Var("imm",F16)])), 27003 (Call 27004 ("ArithI",CTy"instruction", 27005 Call 27006 ("DADDI",CTy"ArithI", 27007 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27008 Call 27009 ("op2ri",sTy, 27010 TP[LS"daddi",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27011 (Call 27012 ("ArithI",CTy"instruction", 27013 Call 27014 ("DADDIU",CTy"ArithI", 27015 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27016 Call 27017 ("op2ri",sTy, 27018 TP[LS"daddiu",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27019 (Call 27020 ("Load",CTy"instruction", 27021 Call 27022 ("LDL",CTy"Load", 27023 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27024 Call 27025 ("opmem",sTy, 27026 TP[LS"ldl",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27027 (Call 27028 ("Load",CTy"instruction", 27029 Call 27030 ("LDR",CTy"Load", 27031 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27032 Call 27033 ("opmem",sTy, 27034 TP[LS"ldr",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27035 (Call 27036 ("Load",CTy"instruction", 27037 Call 27038 ("LB",CTy"Load", 27039 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27040 Call 27041 ("opmem",sTy, 27042 TP[LS"lb",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27043 (Call 27044 ("Load",CTy"instruction", 27045 Call 27046 ("LH",CTy"Load", 27047 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27048 Call 27049 ("opmem",sTy, 27050 TP[LS"lh",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27051 (Call 27052 ("Load",CTy"instruction", 27053 Call 27054 ("LWL",CTy"Load", 27055 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27056 Call 27057 ("opmem",sTy, 27058 TP[LS"lwl",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27059 (Call 27060 ("Load",CTy"instruction", 27061 Call 27062 ("LW",CTy"Load", 27063 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27064 Call 27065 ("opmem",sTy, 27066 TP[LS"lw",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27067 (Call 27068 ("Load",CTy"instruction", 27069 Call 27070 ("LBU",CTy"Load", 27071 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27072 Call 27073 ("opmem",sTy, 27074 TP[LS"lbu",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27075 (Call 27076 ("Load",CTy"instruction", 27077 Call 27078 ("LHU",CTy"Load", 27079 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27080 Call 27081 ("opmem",sTy, 27082 TP[LS"lhu",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27083 (Call 27084 ("Load",CTy"instruction", 27085 Call 27086 ("LWR",CTy"Load", 27087 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27088 Call 27089 ("opmem",sTy, 27090 TP[LS"lwr",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27091 (Call 27092 ("Load",CTy"instruction", 27093 Call 27094 ("LWU",CTy"Load", 27095 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27096 Call 27097 ("opmem",sTy, 27098 TP[LS"lwu",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27099 (Call 27100 ("Store",CTy"instruction", 27101 Call 27102 ("SB",CTy"Store", 27103 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27104 Call 27105 ("opmem",sTy, 27106 TP[LS"sb",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27107 (Call 27108 ("Store",CTy"instruction", 27109 Call 27110 ("SH",CTy"Store", 27111 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27112 Call 27113 ("opmem",sTy, 27114 TP[LS"sh",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27115 (Call 27116 ("Store",CTy"instruction", 27117 Call 27118 ("SWL",CTy"Store", 27119 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27120 Call 27121 ("opmem",sTy, 27122 TP[LS"swl",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27123 (Call 27124 ("Store",CTy"instruction", 27125 Call 27126 ("SW",CTy"Store", 27127 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27128 Call 27129 ("opmem",sTy, 27130 TP[LS"sw",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27131 (Call 27132 ("Store",CTy"instruction", 27133 Call 27134 ("SDL",CTy"Store", 27135 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27136 Call 27137 ("opmem",sTy, 27138 TP[LS"sdl",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27139 (Call 27140 ("Store",CTy"instruction", 27141 Call 27142 ("SDR",CTy"Store", 27143 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27144 Call 27145 ("opmem",sTy, 27146 TP[LS"sdr",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27147 (Call 27148 ("Store",CTy"instruction", 27149 Call 27150 ("SWR",CTy"Store", 27151 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27152 Call 27153 ("opmem",sTy, 27154 TP[LS"swr",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27155 (Call 27156 ("Load",CTy"instruction", 27157 Call 27158 ("LL",CTy"Load", 27159 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27160 Call 27161 ("opmem",sTy, 27162 TP[LS"ll",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27163 (Call 27164 ("Load",CTy"instruction", 27165 Call 27166 ("LLD",CTy"Load", 27167 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27168 Call 27169 ("opmem",sTy, 27170 TP[LS"lld",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27171 (Call 27172 ("Load",CTy"instruction", 27173 Call 27174 ("LD",CTy"Load", 27175 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27176 Call 27177 ("opmem",sTy, 27178 TP[LS"ld",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27179 (Call 27180 ("Store",CTy"instruction", 27181 Call 27182 ("SC",CTy"Store", 27183 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27184 Call 27185 ("opmem",sTy, 27186 TP[LS"sc",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27187 (Call 27188 ("Store",CTy"instruction", 27189 Call 27190 ("SCD",CTy"Store", 27191 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27192 Call 27193 ("opmem",sTy, 27194 TP[LS"scd",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27195 (Call 27196 ("Store",CTy"instruction", 27197 Call 27198 ("SD",CTy"Store", 27199 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27200 Call 27201 ("opmem",sTy, 27202 TP[LS"sd",Var("rt",FTy 5),Var("rs",FTy 5),Var("imm",F16)])), 27203 (Call 27204 ("CACHE",CTy"instruction", 27205 TP[Var("rs",FTy 5),Var("opn",FTy 5),Var("imm",F16)]), 27206 CC[LS"cache ",Call("ihex",sTy,Var("opn",FTy 5)),LS", ", 27207 Call("ihex",sTy,Var("imm",F16)),LS"(", 27208 Call("reg_name",sTy,Var("rs",FTy 5)),LS")"]), 27209 (Const("SYSCALL",CTy"instruction"),LS"syscall"), 27210 (Const("BREAK",CTy"instruction"),LS"break"), 27211 (Call("SYNC",CTy"instruction",Var("imm5",FTy 5)), 27212 CC[LS"sync ",Call("ihex",sTy,Var("imm5",FTy 5))]), 27213 (Const("TLBR",CTy"instruction"),LS"tlbr"), 27214 (Const("TLBWI",CTy"instruction"),LS"tlbwi"), 27215 (Const("TLBWR",CTy"instruction"),LS"tlbwr"), 27216 (Const("TLBP",CTy"instruction"),LS"tlbp"), 27217 (Const("ERET",CTy"instruction"),LS"eret"), 27218 (Call("RDHWR",CTy"instruction",TP[Var("rt",FTy 5),Var("rd",FTy 5)]), 27219 Call("op2r",sTy,TP[LS"rdhwr",Var("rt",FTy 5),Var("rd",FTy 5)])), 27220 (Const("WAIT",CTy"instruction"),LS"wait"), 27221 (Call("COP1",CTy"instruction",AVar(CTy"COP1")), 27222 Call("COP1InstructionToString",sTy,Var("i",CTy"instruction"))), 27223 (Call("COP2",CTy"instruction",AVar(CTy"COP2")), 27224 Call("COP2InstructionToString",sTy,Var("i",CTy"instruction"))), 27225 (Call("LWC2",CTy"instruction",AVar(CTy"LWC2")), 27226 Call("LWC2InstructionToString",sTy,Var("i",CTy"instruction"))), 27227 (Call("LDC2",CTy"instruction",AVar(CTy"LDC2")), 27228 Call("LDC2InstructionToString",sTy,Var("i",CTy"instruction"))), 27229 (Call("SWC2",CTy"instruction",AVar(CTy"SWC2")), 27230 Call("SWC2InstructionToString",sTy,Var("i",CTy"instruction"))), 27231 (Call("SDC2",CTy"instruction",AVar(CTy"SDC2")), 27232 Call("SDC2InstructionToString",sTy,Var("i",CTy"instruction"))), 27233 (Const("Unpredictable",CTy"instruction"),LS"???"), 27234 (Const("ReservedInstruction",CTy"instruction"),LS"???")])) 27235; 27236val Encode_def = Def 27237 ("Encode",Var("i",CTy"instruction"), 27238 Close 27239 (qVar"state", 27240 CS(Var("i",CTy"instruction"), 27241 [(Call 27242 ("Shift",CTy"instruction", 27243 Call 27244 ("SLL",CTy"Shift", 27245 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27246 TP[Call 27247 ("form1",F32, 27248 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27249 Var("imm5",FTy 5),LW(0,6)]),qVar"state"]), 27250 (Call 27251 ("Shift",CTy"instruction", 27252 Call 27253 ("SRL",CTy"Shift", 27254 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27255 TP[Call 27256 ("form1",F32, 27257 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27258 Var("imm5",FTy 5),LW(2,6)]),qVar"state"]), 27259 (Call 27260 ("Shift",CTy"instruction", 27261 Call 27262 ("SRA",CTy"Shift", 27263 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27264 TP[Call 27265 ("form1",F32, 27266 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27267 Var("imm5",FTy 5),LW(3,6)]),qVar"state"]), 27268 (Call 27269 ("Shift",CTy"instruction", 27270 Call 27271 ("SLLV",CTy"Shift", 27272 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27273 TP[Call 27274 ("form1",F32, 27275 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27276 LW(0,5),LW(4,6)]),qVar"state"]), 27277 (Call 27278 ("Shift",CTy"instruction", 27279 Call 27280 ("SRLV",CTy"Shift", 27281 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27282 TP[Call 27283 ("form1",F32, 27284 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27285 LW(0,5),LW(6,6)]),qVar"state"]), 27286 (Call 27287 ("Shift",CTy"instruction", 27288 Call 27289 ("SRAV",CTy"Shift", 27290 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27291 TP[Call 27292 ("form1",F32, 27293 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27294 LW(0,5),LW(7,6)]),qVar"state"]), 27295 (Call 27296 ("Branch",CTy"instruction", 27297 Call("JR",CTy"Branch",Var("rs",FTy 5))), 27298 TP[Call 27299 ("form1",F32, 27300 TP[Var("rs",FTy 5),LW(0,5),LW(0,5),LW(0,5),LW(8,6)]), 27301 qVar"state"]), 27302 (Call 27303 ("Branch",CTy"instruction", 27304 Call("JALR",CTy"Branch",TP[Var("rs",FTy 5),Var("rd",FTy 5)])), 27305 TP[Call 27306 ("form1",F32, 27307 TP[Var("rs",FTy 5),LW(0,5),Var("rd",FTy 5),LW(0,5), 27308 LW(9,6)]),qVar"state"]), 27309 (Call 27310 ("MultDiv",CTy"instruction", 27311 Call("MFHI",CTy"MultDiv",Var("rd",FTy 5))), 27312 TP[Call 27313 ("form1",F32, 27314 TP[LW(0,5),LW(0,5),Var("rd",FTy 5),LW(0,5),LW(16,6)]), 27315 qVar"state"]), 27316 (Call 27317 ("MultDiv",CTy"instruction", 27318 Call("MTHI",CTy"MultDiv",Var("rs",FTy 5))), 27319 TP[Call 27320 ("form1",F32, 27321 TP[Var("rs",FTy 5),LW(0,5),LW(0,5),LW(0,5),LW(17,6)]), 27322 qVar"state"]), 27323 (Call 27324 ("MultDiv",CTy"instruction", 27325 Call("MFLO",CTy"MultDiv",Var("rd",FTy 5))), 27326 TP[Call 27327 ("form1",F32, 27328 TP[LW(0,5),LW(0,5),Var("rd",FTy 5),LW(0,5),LW(18,6)]), 27329 qVar"state"]), 27330 (Call 27331 ("MultDiv",CTy"instruction", 27332 Call("MTLO",CTy"MultDiv",Var("rs",FTy 5))), 27333 TP[Call 27334 ("form1",F32, 27335 TP[Var("rs",FTy 5),LW(0,5),LW(0,5),LW(0,5),LW(19,6)]), 27336 qVar"state"]), 27337 (Call 27338 ("Shift",CTy"instruction", 27339 Call 27340 ("DSLLV",CTy"Shift", 27341 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27342 TP[Call 27343 ("form1",F32, 27344 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27345 LW(0,5),LW(20,6)]),qVar"state"]), 27346 (Call 27347 ("Shift",CTy"instruction", 27348 Call 27349 ("DSRLV",CTy"Shift", 27350 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27351 TP[Call 27352 ("form1",F32, 27353 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27354 LW(0,5),LW(22,6)]),qVar"state"]), 27355 (Call 27356 ("Shift",CTy"instruction", 27357 Call 27358 ("DSRAV",CTy"Shift", 27359 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27360 TP[Call 27361 ("form1",F32, 27362 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27363 LW(0,5),LW(23,6)]),qVar"state"]), 27364 (Call 27365 ("MultDiv",CTy"instruction", 27366 Call 27367 ("MADD",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27368 TP[Call 27369 ("form5",F32, 27370 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,6)]), 27371 qVar"state"]), 27372 (Call 27373 ("MultDiv",CTy"instruction", 27374 Call 27375 ("MADDU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27376 TP[Call 27377 ("form5",F32, 27378 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(1,6)]), 27379 qVar"state"]), 27380 (Call 27381 ("MultDiv",CTy"instruction", 27382 Call 27383 ("MSUB",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27384 TP[Call 27385 ("form5",F32, 27386 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(4,6)]), 27387 qVar"state"]), 27388 (Call 27389 ("MultDiv",CTy"instruction", 27390 Call 27391 ("MSUBU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27392 TP[Call 27393 ("form5",F32, 27394 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(5,6)]), 27395 qVar"state"]), 27396 (Call 27397 ("MultDiv",CTy"instruction", 27398 Call 27399 ("MUL",CTy"MultDiv", 27400 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27401 TP[Call 27402 ("form5",F32, 27403 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27404 LW(2,6)]),qVar"state"]), 27405 (Call 27406 ("MultDiv",CTy"instruction", 27407 Call 27408 ("MULT",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27409 TP[Call 27410 ("form1",F32, 27411 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27412 LW(24,6)]),qVar"state"]), 27413 (Call 27414 ("MultDiv",CTy"instruction", 27415 Call 27416 ("MULTU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27417 TP[Call 27418 ("form1",F32, 27419 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27420 LW(25,6)]),qVar"state"]), 27421 (Call 27422 ("MultDiv",CTy"instruction", 27423 Call("DIV",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27424 TP[Call 27425 ("form1",F32, 27426 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27427 LW(26,6)]),qVar"state"]), 27428 (Call 27429 ("MultDiv",CTy"instruction", 27430 Call 27431 ("DIVU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27432 TP[Call 27433 ("form1",F32, 27434 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27435 LW(27,6)]),qVar"state"]), 27436 (Call 27437 ("MultDiv",CTy"instruction", 27438 Call 27439 ("DMULT",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27440 TP[Call 27441 ("form1",F32, 27442 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27443 LW(28,6)]),qVar"state"]), 27444 (Call 27445 ("MultDiv",CTy"instruction", 27446 Call 27447 ("DMULTU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27448 TP[Call 27449 ("form1",F32, 27450 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27451 LW(29,6)]),qVar"state"]), 27452 (Call 27453 ("MultDiv",CTy"instruction", 27454 Call 27455 ("DDIV",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27456 TP[Call 27457 ("form1",F32, 27458 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27459 LW(30,6)]),qVar"state"]), 27460 (Call 27461 ("MultDiv",CTy"instruction", 27462 Call 27463 ("DDIVU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27464 TP[Call 27465 ("form1",F32, 27466 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27467 LW(31,6)]),qVar"state"]), 27468 (Call 27469 ("ArithR",CTy"instruction", 27470 Call 27471 ("MOVZ",CTy"ArithR", 27472 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27473 TP[Call 27474 ("form1",F32, 27475 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27476 LW(0,5),LW(10,6)]),qVar"state"]), 27477 (Call 27478 ("ArithR",CTy"instruction", 27479 Call 27480 ("MOVN",CTy"ArithR", 27481 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27482 TP[Call 27483 ("form1",F32, 27484 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27485 LW(0,5),LW(11,6)]),qVar"state"]), 27486 (Call 27487 ("ArithR",CTy"instruction", 27488 Call 27489 ("ADD",CTy"ArithR", 27490 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27491 TP[Call 27492 ("form1",F32, 27493 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27494 LW(0,5),LW(32,6)]),qVar"state"]), 27495 (Call 27496 ("ArithR",CTy"instruction", 27497 Call 27498 ("ADDU",CTy"ArithR", 27499 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27500 TP[Call 27501 ("form1",F32, 27502 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27503 LW(0,5),LW(33,6)]),qVar"state"]), 27504 (Call 27505 ("ArithR",CTy"instruction", 27506 Call 27507 ("SUB",CTy"ArithR", 27508 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27509 TP[Call 27510 ("form1",F32, 27511 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27512 LW(0,5),LW(34,6)]),qVar"state"]), 27513 (Call 27514 ("ArithR",CTy"instruction", 27515 Call 27516 ("SUBU",CTy"ArithR", 27517 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27518 TP[Call 27519 ("form1",F32, 27520 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27521 LW(0,5),LW(35,6)]),qVar"state"]), 27522 (Call 27523 ("ArithR",CTy"instruction", 27524 Call 27525 ("AND",CTy"ArithR", 27526 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27527 TP[Call 27528 ("form1",F32, 27529 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27530 LW(0,5),LW(36,6)]),qVar"state"]), 27531 (Call 27532 ("ArithR",CTy"instruction", 27533 Call 27534 ("OR",CTy"ArithR", 27535 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27536 TP[Call 27537 ("form1",F32, 27538 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27539 LW(0,5),LW(37,6)]),qVar"state"]), 27540 (Call 27541 ("ArithR",CTy"instruction", 27542 Call 27543 ("XOR",CTy"ArithR", 27544 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27545 TP[Call 27546 ("form1",F32, 27547 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27548 LW(0,5),LW(38,6)]),qVar"state"]), 27549 (Call 27550 ("ArithR",CTy"instruction", 27551 Call 27552 ("NOR",CTy"ArithR", 27553 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27554 TP[Call 27555 ("form1",F32, 27556 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27557 LW(0,5),LW(39,6)]),qVar"state"]), 27558 (Call 27559 ("ArithR",CTy"instruction", 27560 Call 27561 ("SLT",CTy"ArithR", 27562 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27563 TP[Call 27564 ("form1",F32, 27565 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27566 LW(0,5),LW(42,6)]),qVar"state"]), 27567 (Call 27568 ("ArithR",CTy"instruction", 27569 Call 27570 ("SLTU",CTy"ArithR", 27571 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27572 TP[Call 27573 ("form1",F32, 27574 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27575 LW(0,5),LW(43,6)]),qVar"state"]), 27576 (Call 27577 ("ArithR",CTy"instruction", 27578 Call 27579 ("DADD",CTy"ArithR", 27580 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27581 TP[Call 27582 ("form1",F32, 27583 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27584 LW(0,5),LW(44,6)]),qVar"state"]), 27585 (Call 27586 ("ArithR",CTy"instruction", 27587 Call 27588 ("DADDU",CTy"ArithR", 27589 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27590 TP[Call 27591 ("form1",F32, 27592 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27593 LW(0,5),LW(45,6)]),qVar"state"]), 27594 (Call 27595 ("ArithR",CTy"instruction", 27596 Call 27597 ("DSUB",CTy"ArithR", 27598 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27599 TP[Call 27600 ("form1",F32, 27601 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27602 LW(0,5),LW(46,6)]),qVar"state"]), 27603 (Call 27604 ("ArithR",CTy"instruction", 27605 Call 27606 ("DSUBU",CTy"ArithR", 27607 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), 27608 TP[Call 27609 ("form1",F32, 27610 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), 27611 LW(0,5),LW(47,6)]),qVar"state"]), 27612 (Call 27613 ("Trap",CTy"instruction", 27614 Call("TGE",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27615 TP[Call 27616 ("form1",F32, 27617 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27618 LW(48,6)]),qVar"state"]), 27619 (Call 27620 ("Trap",CTy"instruction", 27621 Call("TGEU",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27622 TP[Call 27623 ("form1",F32, 27624 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27625 LW(49,6)]),qVar"state"]), 27626 (Call 27627 ("Trap",CTy"instruction", 27628 Call("TLT",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27629 TP[Call 27630 ("form1",F32, 27631 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27632 LW(50,6)]),qVar"state"]), 27633 (Call 27634 ("Trap",CTy"instruction", 27635 Call("TLTU",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27636 TP[Call 27637 ("form1",F32, 27638 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27639 LW(51,6)]),qVar"state"]), 27640 (Call 27641 ("Trap",CTy"instruction", 27642 Call("TEQ",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27643 TP[Call 27644 ("form1",F32, 27645 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27646 LW(52,6)]),qVar"state"]), 27647 (Call 27648 ("Trap",CTy"instruction", 27649 Call("TNE",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), 27650 TP[Call 27651 ("form1",F32, 27652 TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5), 27653 LW(54,6)]),qVar"state"]), 27654 (Call 27655 ("Shift",CTy"instruction", 27656 Call 27657 ("DSLL",CTy"Shift", 27658 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27659 TP[Call 27660 ("form1",F32, 27661 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27662 Var("imm5",FTy 5),LW(56,6)]),qVar"state"]), 27663 (Call 27664 ("Shift",CTy"instruction", 27665 Call 27666 ("DSRL",CTy"Shift", 27667 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27668 TP[Call 27669 ("form1",F32, 27670 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27671 Var("imm5",FTy 5),LW(58,6)]),qVar"state"]), 27672 (Call 27673 ("Shift",CTy"instruction", 27674 Call 27675 ("DSRA",CTy"Shift", 27676 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27677 TP[Call 27678 ("form1",F32, 27679 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27680 Var("imm5",FTy 5),LW(59,6)]),qVar"state"]), 27681 (Call 27682 ("Shift",CTy"instruction", 27683 Call 27684 ("DSLL32",CTy"Shift", 27685 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27686 TP[Call 27687 ("form1",F32, 27688 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27689 Var("imm5",FTy 5),LW(60,6)]),qVar"state"]), 27690 (Call 27691 ("Shift",CTy"instruction", 27692 Call 27693 ("DSRL32",CTy"Shift", 27694 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27695 TP[Call 27696 ("form1",F32, 27697 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27698 Var("imm5",FTy 5),LW(62,6)]),qVar"state"]), 27699 (Call 27700 ("Shift",CTy"instruction", 27701 Call 27702 ("DSRA32",CTy"Shift", 27703 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), 27704 TP[Call 27705 ("form1",F32, 27706 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27707 Var("imm5",FTy 5),LW(63,6)]),qVar"state"]), 27708 (Call 27709 ("Branch",CTy"instruction", 27710 Call("BLTZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27711 TP[Call("form2",F32,TP[Var("rs",FTy 5),LW(0,5),Var("imm",F16)]), 27712 qVar"state"]), 27713 (Call 27714 ("Branch",CTy"instruction", 27715 Call("BGEZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27716 TP[Call("form2",F32,TP[Var("rs",FTy 5),LW(1,5),Var("imm",F16)]), 27717 qVar"state"]), 27718 (Call 27719 ("Branch",CTy"instruction", 27720 Call("BLTZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27721 TP[Call("form2",F32,TP[Var("rs",FTy 5),LW(2,5),Var("imm",F16)]), 27722 qVar"state"]), 27723 (Call 27724 ("Branch",CTy"instruction", 27725 Call("BGEZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27726 TP[Call("form2",F32,TP[Var("rs",FTy 5),LW(3,5),Var("imm",F16)]), 27727 qVar"state"]), 27728 (Call 27729 ("Trap",CTy"instruction", 27730 Call("TGEI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 27731 TP[Call("form2",F32,TP[Var("rs",FTy 5),LW(8,5),Var("imm",F16)]), 27732 qVar"state"]), 27733 (Call 27734 ("Trap",CTy"instruction", 27735 Call("TGEIU",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 27736 TP[Call("form2",F32,TP[Var("rs",FTy 5),LW(9,5),Var("imm",F16)]), 27737 qVar"state"]), 27738 (Call 27739 ("Trap",CTy"instruction", 27740 Call("TLTI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 27741 TP[Call 27742 ("form2",F32,TP[Var("rs",FTy 5),LW(10,5),Var("imm",F16)]), 27743 qVar"state"]), 27744 (Call 27745 ("Trap",CTy"instruction", 27746 Call("TLTIU",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 27747 TP[Call 27748 ("form2",F32,TP[Var("rs",FTy 5),LW(11,5),Var("imm",F16)]), 27749 qVar"state"]), 27750 (Call 27751 ("Trap",CTy"instruction", 27752 Call("TEQI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 27753 TP[Call 27754 ("form2",F32,TP[Var("rs",FTy 5),LW(12,5),Var("imm",F16)]), 27755 qVar"state"]), 27756 (Call 27757 ("Trap",CTy"instruction", 27758 Call("TNEI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), 27759 TP[Call 27760 ("form2",F32,TP[Var("rs",FTy 5),LW(14,5),Var("imm",F16)]), 27761 qVar"state"]), 27762 (Call 27763 ("Branch",CTy"instruction", 27764 Call 27765 ("BLTZAL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27766 TP[Call 27767 ("form2",F32,TP[Var("rs",FTy 5),LW(16,5),Var("imm",F16)]), 27768 qVar"state"]), 27769 (Call 27770 ("Branch",CTy"instruction", 27771 Call 27772 ("BGEZAL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27773 TP[Call 27774 ("form2",F32,TP[Var("rs",FTy 5),LW(17,5),Var("imm",F16)]), 27775 qVar"state"]), 27776 (Call 27777 ("Branch",CTy"instruction", 27778 Call 27779 ("BLTZALL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27780 TP[Call 27781 ("form2",F32,TP[Var("rs",FTy 5),LW(18,5),Var("imm",F16)]), 27782 qVar"state"]), 27783 (Call 27784 ("Branch",CTy"instruction", 27785 Call 27786 ("BGEZALL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27787 TP[Call 27788 ("form2",F32,TP[Var("rs",FTy 5),LW(19,5),Var("imm",F16)]), 27789 qVar"state"]), 27790 (Call 27791 ("Branch",CTy"instruction", 27792 Call("J",CTy"Branch",Var("imm",FTy 26))), 27793 TP[CC[LW(2,6),Var("imm",FTy 26)],qVar"state"]), 27794 (Call 27795 ("Branch",CTy"instruction", 27796 Call("JAL",CTy"Branch",Var("imm",FTy 26))), 27797 TP[CC[LW(3,6),Var("imm",FTy 26)],qVar"state"]), 27798 (Call 27799 ("CP",CTy"instruction", 27800 Call 27801 ("MFC0",CTy"CP", 27802 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 27803 TP[Call 27804 ("form3",F32, 27805 TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5), 27806 Var("sel",FTy 3)]),qVar"state"]), 27807 (Call 27808 ("CP",CTy"instruction", 27809 Call 27810 ("DMFC0",CTy"CP", 27811 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 27812 TP[Call 27813 ("form3",F32, 27814 TP[LW(1,5),Var("rt",FTy 5),Var("rd",FTy 5), 27815 Var("sel",FTy 3)]),qVar"state"]), 27816 (Call 27817 ("CP",CTy"instruction", 27818 Call 27819 ("MTC0",CTy"CP", 27820 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 27821 TP[Call 27822 ("form3",F32, 27823 TP[LW(4,5),Var("rt",FTy 5),Var("rd",FTy 5), 27824 Var("sel",FTy 3)]),qVar"state"]), 27825 (Call 27826 ("CP",CTy"instruction", 27827 Call 27828 ("DMTC0",CTy"CP", 27829 TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), 27830 TP[Call 27831 ("form3",F32, 27832 TP[LW(5,5),Var("rt",FTy 5),Var("rd",FTy 5), 27833 Var("sel",FTy 3)]),qVar"state"]), 27834 (Call 27835 ("Branch",CTy"instruction", 27836 Call 27837 ("BEQ",CTy"Branch", 27838 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27839 TP[Call 27840 ("form4",F32, 27841 TP[LW(4,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)]), 27842 qVar"state"]), 27843 (Call 27844 ("Branch",CTy"instruction", 27845 Call 27846 ("BNE",CTy"Branch", 27847 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27848 TP[Call 27849 ("form4",F32, 27850 TP[LW(5,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)]), 27851 qVar"state"]), 27852 (Call 27853 ("Branch",CTy"instruction", 27854 Call("BLEZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27855 TP[Call 27856 ("form4",F32, 27857 TP[LW(6,6),Var("rs",FTy 5),LW(0,5),Var("imm",F16)]), 27858 qVar"state"]), 27859 (Call 27860 ("Branch",CTy"instruction", 27861 Call("BGTZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27862 TP[Call 27863 ("form4",F32, 27864 TP[LW(7,6),Var("rs",FTy 5),LW(0,5),Var("imm",F16)]), 27865 qVar"state"]), 27866 (Call 27867 ("ArithI",CTy"instruction", 27868 Call 27869 ("ADDI",CTy"ArithI", 27870 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27871 TP[Call 27872 ("form4",F32, 27873 TP[LW(8,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)]), 27874 qVar"state"]), 27875 (Call 27876 ("ArithI",CTy"instruction", 27877 Call 27878 ("ADDIU",CTy"ArithI", 27879 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27880 TP[Call 27881 ("form4",F32, 27882 TP[LW(9,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)]), 27883 qVar"state"]), 27884 (Call 27885 ("ArithI",CTy"instruction", 27886 Call 27887 ("SLTI",CTy"ArithI", 27888 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27889 TP[Call 27890 ("form4",F32, 27891 TP[LW(10,6),Var("rs",FTy 5),Var("rt",FTy 5), 27892 Var("imm",F16)]),qVar"state"]), 27893 (Call 27894 ("ArithI",CTy"instruction", 27895 Call 27896 ("SLTIU",CTy"ArithI", 27897 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27898 TP[Call 27899 ("form4",F32, 27900 TP[LW(11,6),Var("rs",FTy 5),Var("rt",FTy 5), 27901 Var("imm",F16)]),qVar"state"]), 27902 (Call 27903 ("ArithI",CTy"instruction", 27904 Call 27905 ("ANDI",CTy"ArithI", 27906 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27907 TP[Call 27908 ("form4",F32, 27909 TP[LW(12,6),Var("rs",FTy 5),Var("rt",FTy 5), 27910 Var("imm",F16)]),qVar"state"]), 27911 (Call 27912 ("ArithI",CTy"instruction", 27913 Call 27914 ("ORI",CTy"ArithI", 27915 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27916 TP[Call 27917 ("form4",F32, 27918 TP[LW(13,6),Var("rs",FTy 5),Var("rt",FTy 5), 27919 Var("imm",F16)]),qVar"state"]), 27920 (Call 27921 ("ArithI",CTy"instruction", 27922 Call 27923 ("XORI",CTy"ArithI", 27924 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27925 TP[Call 27926 ("form4",F32, 27927 TP[LW(14,6),Var("rs",FTy 5),Var("rt",FTy 5), 27928 Var("imm",F16)]),qVar"state"]), 27929 (Call 27930 ("ArithI",CTy"instruction", 27931 Call("LUI",CTy"ArithI",TP[Var("rt",FTy 5),Var("imm",F16)])), 27932 TP[Call 27933 ("form4",F32, 27934 TP[LW(15,6),LW(0,5),Var("rt",FTy 5),Var("imm",F16)]), 27935 qVar"state"]), 27936 (Call 27937 ("Branch",CTy"instruction", 27938 Call 27939 ("BEQL",CTy"Branch", 27940 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27941 TP[Call 27942 ("form4",F32, 27943 TP[LW(20,6),Var("rs",FTy 5),Var("rt",FTy 5), 27944 Var("imm",F16)]),qVar"state"]), 27945 (Call 27946 ("Branch",CTy"instruction", 27947 Call 27948 ("BNEL",CTy"Branch", 27949 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27950 TP[Call 27951 ("form4",F32, 27952 TP[LW(21,6),Var("rs",FTy 5),Var("rt",FTy 5), 27953 Var("imm",F16)]),qVar"state"]), 27954 (Call 27955 ("Branch",CTy"instruction", 27956 Call("BLEZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27957 TP[Call 27958 ("form4",F32, 27959 TP[LW(22,6),Var("rs",FTy 5),LW(0,5),Var("imm",F16)]), 27960 qVar"state"]), 27961 (Call 27962 ("Branch",CTy"instruction", 27963 Call("BGTZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), 27964 TP[Call 27965 ("form4",F32, 27966 TP[LW(23,6),Var("rs",FTy 5),LW(0,5),Var("imm",F16)]), 27967 qVar"state"]), 27968 (Call 27969 ("ArithI",CTy"instruction", 27970 Call 27971 ("DADDI",CTy"ArithI", 27972 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27973 TP[Call 27974 ("form4",F32, 27975 TP[LW(24,6),Var("rs",FTy 5),Var("rt",FTy 5), 27976 Var("imm",F16)]),qVar"state"]), 27977 (Call 27978 ("ArithI",CTy"instruction", 27979 Call 27980 ("DADDIU",CTy"ArithI", 27981 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27982 TP[Call 27983 ("form4",F32, 27984 TP[LW(25,6),Var("rs",FTy 5),Var("rt",FTy 5), 27985 Var("imm",F16)]),qVar"state"]), 27986 (Call 27987 ("Load",CTy"instruction", 27988 Call 27989 ("LDL",CTy"Load", 27990 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 27991 TP[Call 27992 ("form4",F32, 27993 TP[LW(26,6),Var("rs",FTy 5),Var("rt",FTy 5), 27994 Var("imm",F16)]),qVar"state"]), 27995 (Call 27996 ("Load",CTy"instruction", 27997 Call 27998 ("LDR",CTy"Load", 27999 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28000 TP[Call 28001 ("form4",F32, 28002 TP[LW(27,6),Var("rs",FTy 5),Var("rt",FTy 5), 28003 Var("imm",F16)]),qVar"state"]), 28004 (Call 28005 ("Load",CTy"instruction", 28006 Call 28007 ("LB",CTy"Load", 28008 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28009 TP[Call 28010 ("form4",F32, 28011 TP[LW(32,6),Var("rs",FTy 5),Var("rt",FTy 5), 28012 Var("imm",F16)]),qVar"state"]), 28013 (Call 28014 ("Load",CTy"instruction", 28015 Call 28016 ("LH",CTy"Load", 28017 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28018 TP[Call 28019 ("form4",F32, 28020 TP[LW(33,6),Var("rs",FTy 5),Var("rt",FTy 5), 28021 Var("imm",F16)]),qVar"state"]), 28022 (Call 28023 ("Load",CTy"instruction", 28024 Call 28025 ("LWL",CTy"Load", 28026 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28027 TP[Call 28028 ("form4",F32, 28029 TP[LW(34,6),Var("rs",FTy 5),Var("rt",FTy 5), 28030 Var("imm",F16)]),qVar"state"]), 28031 (Call 28032 ("Load",CTy"instruction", 28033 Call 28034 ("LW",CTy"Load", 28035 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28036 TP[Call 28037 ("form4",F32, 28038 TP[LW(35,6),Var("rs",FTy 5),Var("rt",FTy 5), 28039 Var("imm",F16)]),qVar"state"]), 28040 (Call 28041 ("Load",CTy"instruction", 28042 Call 28043 ("LBU",CTy"Load", 28044 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28045 TP[Call 28046 ("form4",F32, 28047 TP[LW(36,6),Var("rs",FTy 5),Var("rt",FTy 5), 28048 Var("imm",F16)]),qVar"state"]), 28049 (Call 28050 ("Load",CTy"instruction", 28051 Call 28052 ("LHU",CTy"Load", 28053 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28054 TP[Call 28055 ("form4",F32, 28056 TP[LW(37,6),Var("rs",FTy 5),Var("rt",FTy 5), 28057 Var("imm",F16)]),qVar"state"]), 28058 (Call 28059 ("Load",CTy"instruction", 28060 Call 28061 ("LWR",CTy"Load", 28062 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28063 TP[Call 28064 ("form4",F32, 28065 TP[LW(38,6),Var("rs",FTy 5),Var("rt",FTy 5), 28066 Var("imm",F16)]),qVar"state"]), 28067 (Call 28068 ("Load",CTy"instruction", 28069 Call 28070 ("LWU",CTy"Load", 28071 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28072 TP[Call 28073 ("form4",F32, 28074 TP[LW(39,6),Var("rs",FTy 5),Var("rt",FTy 5), 28075 Var("imm",F16)]),qVar"state"]), 28076 (Call 28077 ("Store",CTy"instruction", 28078 Call 28079 ("SB",CTy"Store", 28080 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28081 TP[Call 28082 ("form4",F32, 28083 TP[LW(40,6),Var("rs",FTy 5),Var("rt",FTy 5), 28084 Var("imm",F16)]),qVar"state"]), 28085 (Call 28086 ("Store",CTy"instruction", 28087 Call 28088 ("SH",CTy"Store", 28089 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28090 TP[Call 28091 ("form4",F32, 28092 TP[LW(41,6),Var("rs",FTy 5),Var("rt",FTy 5), 28093 Var("imm",F16)]),qVar"state"]), 28094 (Call 28095 ("Store",CTy"instruction", 28096 Call 28097 ("SWL",CTy"Store", 28098 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28099 TP[Call 28100 ("form4",F32, 28101 TP[LW(42,6),Var("rs",FTy 5),Var("rt",FTy 5), 28102 Var("imm",F16)]),qVar"state"]), 28103 (Call 28104 ("Store",CTy"instruction", 28105 Call 28106 ("SW",CTy"Store", 28107 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28108 TP[Call 28109 ("form4",F32, 28110 TP[LW(43,6),Var("rs",FTy 5),Var("rt",FTy 5), 28111 Var("imm",F16)]),qVar"state"]), 28112 (Call 28113 ("Store",CTy"instruction", 28114 Call 28115 ("SDL",CTy"Store", 28116 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28117 TP[Call 28118 ("form4",F32, 28119 TP[LW(44,6),Var("rs",FTy 5),Var("rt",FTy 5), 28120 Var("imm",F16)]),qVar"state"]), 28121 (Call 28122 ("Store",CTy"instruction", 28123 Call 28124 ("SDR",CTy"Store", 28125 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28126 TP[Call 28127 ("form4",F32, 28128 TP[LW(45,6),Var("rs",FTy 5),Var("rt",FTy 5), 28129 Var("imm",F16)]),qVar"state"]), 28130 (Call 28131 ("Store",CTy"instruction", 28132 Call 28133 ("SWR",CTy"Store", 28134 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28135 TP[Call 28136 ("form4",F32, 28137 TP[LW(46,6),Var("rs",FTy 5),Var("rt",FTy 5), 28138 Var("imm",F16)]),qVar"state"]), 28139 (Call 28140 ("Load",CTy"instruction", 28141 Call 28142 ("LL",CTy"Load", 28143 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28144 TP[Call 28145 ("form4",F32, 28146 TP[LW(48,6),Var("rs",FTy 5),Var("rt",FTy 5), 28147 Var("imm",F16)]),qVar"state"]), 28148 (Call 28149 ("Load",CTy"instruction", 28150 Call 28151 ("LLD",CTy"Load", 28152 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28153 TP[Call 28154 ("form4",F32, 28155 TP[LW(52,6),Var("rs",FTy 5),Var("rt",FTy 5), 28156 Var("imm",F16)]),qVar"state"]), 28157 (Call 28158 ("Load",CTy"instruction", 28159 Call 28160 ("LD",CTy"Load", 28161 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28162 TP[Call 28163 ("form4",F32, 28164 TP[LW(55,6),Var("rs",FTy 5),Var("rt",FTy 5), 28165 Var("imm",F16)]),qVar"state"]), 28166 (Call 28167 ("Store",CTy"instruction", 28168 Call 28169 ("SC",CTy"Store", 28170 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28171 TP[Call 28172 ("form4",F32, 28173 TP[LW(56,6),Var("rs",FTy 5),Var("rt",FTy 5), 28174 Var("imm",F16)]),qVar"state"]), 28175 (Call 28176 ("Store",CTy"instruction", 28177 Call 28178 ("SCD",CTy"Store", 28179 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28180 TP[Call 28181 ("form4",F32, 28182 TP[LW(60,6),Var("rs",FTy 5),Var("rt",FTy 5), 28183 Var("imm",F16)]),qVar"state"]), 28184 (Call 28185 ("Store",CTy"instruction", 28186 Call 28187 ("SD",CTy"Store", 28188 TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), 28189 TP[Call 28190 ("form4",F32, 28191 TP[LW(63,6),Var("rs",FTy 5),Var("rt",FTy 5), 28192 Var("imm",F16)]),qVar"state"]), 28193 (Call 28194 ("CACHE",CTy"instruction", 28195 TP[Var("rs",FTy 5),Var("opn",FTy 5),Var("imm",F16)]), 28196 TP[Call 28197 ("form4",F32, 28198 TP[LW(47,6),Var("rs",FTy 5),Var("opn",FTy 5), 28199 Var("imm",F16)]),qVar"state"]), 28200 (Const("SYSCALL",CTy"instruction"), 28201 TP[Mop(Cast F32,LW(12,6)),qVar"state"]), 28202 (Const("BREAK",CTy"instruction"), 28203 TP[Mop(Cast F32,LW(13,6)),qVar"state"]), 28204 (Call("SYNC",CTy"instruction",Var("imm5",FTy 5)), 28205 TP[Mop(Cast F32,CC[Var("imm5",FTy 5),LW(15,6)]),qVar"state"]), 28206 (Const("TLBR",CTy"instruction"), 28207 TP[LW(1107296257,32),qVar"state"]), 28208 (Const("TLBWI",CTy"instruction"), 28209 TP[LW(1107296258,32),qVar"state"]), 28210 (Const("TLBWR",CTy"instruction"), 28211 TP[LW(1107296262,32),qVar"state"]), 28212 (Const("TLBP",CTy"instruction"), 28213 TP[LW(1107296264,32),qVar"state"]), 28214 (Const("ERET",CTy"instruction"), 28215 TP[LW(1107296280,32),qVar"state"]), 28216 (Call 28217 ("RDHWR",CTy"instruction",TP[Var("rt",FTy 5),Var("rd",FTy 5)]), 28218 TP[Call 28219 ("form6",F32,TP[Var("rt",FTy 5),Var("rd",FTy 5),LW(59,6)]), 28220 qVar"state"]), 28221 (Const("WAIT",CTy"instruction"), 28222 TP[LW(1107296288,32),qVar"state"]), 28223 (Call("COP1",CTy"instruction",AVar(CTy"COP1")), 28224 TP[Call("COP1Encode",F32,Var("i",CTy"instruction")),qVar"state"]), 28225 (Call("COP2",CTy"instruction",AVar(CTy"COP2")), 28226 Apply 28227 (Call 28228 ("COP2Encode",ATy(qTy,PTy(F32,qTy)), 28229 Var("i",CTy"instruction")),qVar"state")), 28230 (Call("LWC2",CTy"instruction",AVar(CTy"LWC2")), 28231 Apply 28232 (Call 28233 ("LWC2Encode",ATy(qTy,PTy(F32,qTy)), 28234 Var("i",CTy"instruction")),qVar"state")), 28235 (Call("LDC2",CTy"instruction",AVar(CTy"LDC2")), 28236 Apply 28237 (Call 28238 ("LDC2Encode",ATy(qTy,PTy(F32,qTy)), 28239 Var("i",CTy"instruction")),qVar"state")), 28240 (Call("SWC2",CTy"instruction",AVar(CTy"SWC2")), 28241 Apply 28242 (Call 28243 ("SWC2Encode",ATy(qTy,PTy(F32,qTy)), 28244 Var("i",CTy"instruction")),qVar"state")), 28245 (Call("SDC2",CTy"instruction",AVar(CTy"SDC2")), 28246 Apply 28247 (Call 28248 ("SDC2Encode",ATy(qTy,PTy(F32,qTy)), 28249 Var("i",CTy"instruction")),qVar"state")), 28250 (Const("Unpredictable",CTy"instruction"), 28251 TP[LW(133169152,32),qVar"state"]), 28252 (Const("ReservedInstruction",CTy"instruction"), 28253 TP[LW(0,32),qVar"state"])]))) 28254; 28255val hasCP1_def = Def0 ("hasCP1",LT) 28256; 28257val COP1Init_def = Def 28258 ("COP1Init",AVar uTy, 28259 Close 28260 (qVar"state", 28261 Let(qVar"s", 28262 Rupd 28263 ("fcsr", 28264 TP[qVar"state", 28265 Rupd("FS",TP[Dest("fcsr",CTy"FCSR",qVar"state"),LF])]), 28266 Let(qVar"s", 28267 Rupd 28268 ("fcsr", 28269 TP[qVar"s", 28270 Rupd("FCC",TP[Dest("fcsr",CTy"FCSR",qVar"s"),LW(0,8)])]), 28271 Let(qVar"s", 28272 Rupd 28273 ("fcsr", 28274 TP[qVar"s", 28275 Rupd 28276 ("ABS2008",TP[Dest("fcsr",CTy"FCSR",qVar"s"),LF])]), 28277 Let(qVar"s", 28278 Rupd 28279 ("fcsr", 28280 TP[qVar"s", 28281 Rupd 28282 ("NAN2008", 28283 TP[Dest("fcsr",CTy"FCSR",qVar"s"),LT])]), 28284 Let(qVar"s", 28285 Rupd 28286 ("fcsr", 28287 TP[qVar"s", 28288 Rupd 28289 ("CauseE", 28290 TP[Dest("fcsr",CTy"FCSR",qVar"s"),LF])]), 28291 Let(qVar"s", 28292 Rupd 28293 ("fcsr", 28294 TP[qVar"s", 28295 Rupd 28296 ("CauseV", 28297 TP[Dest("fcsr",CTy"FCSR",qVar"s"), 28298 LF])]), 28299 Let(qVar"s", 28300 Rupd 28301 ("fcsr", 28302 TP[qVar"s", 28303 Rupd 28304 ("CauseZ", 28305 TP[Dest 28306 ("fcsr",CTy"FCSR",qVar"s"), 28307 LF])]), 28308 Let(qVar"s", 28309 Rupd 28310 ("fcsr", 28311 TP[qVar"s", 28312 Rupd 28313 ("CauseO", 28314 TP[Dest 28315 ("fcsr",CTy"FCSR", 28316 qVar"s"),LF])]), 28317 Let(qVar"s", 28318 Rupd 28319 ("fcsr", 28320 TP[qVar"s", 28321 Rupd 28322 ("CauseU", 28323 TP[Dest 28324 ("fcsr",CTy"FCSR", 28325 qVar"s"),LF])]), 28326 Let(qVar"s", 28327 Rupd 28328 ("fcsr", 28329 TP[qVar"s", 28330 Rupd 28331 ("CauseI", 28332 TP[Dest 28333 ("fcsr", 28334 CTy"FCSR", 28335 qVar"s"),LF])]), 28336 Let(qVar"s", 28337 Rupd 28338 ("fcsr", 28339 TP[qVar"s", 28340 Rupd 28341 ("EnableV", 28342 TP[Dest 28343 ("fcsr", 28344 CTy"FCSR", 28345 qVar"s"), 28346 LF])]), 28347 Let(qVar"s", 28348 Rupd 28349 ("fcsr", 28350 TP[qVar"s", 28351 Rupd 28352 ("EnableZ", 28353 TP[Dest 28354 ("fcsr", 28355 CTy"FCSR", 28356 qVar"s"), 28357 LF])]), 28358 Let(qVar"s", 28359 Rupd 28360 ("fcsr", 28361 TP[qVar"s", 28362 Rupd 28363 ("EnableO", 28364 TP[Dest 28365 ("fcsr", 28366 CTy"FCSR", 28367 qVar"s"), 28368 LF])]), 28369 Let(qVar"s", 28370 Rupd 28371 ("fcsr", 28372 TP[qVar"s", 28373 Rupd 28374 ("EnableU", 28375 TP[Dest 28376 ("fcsr", 28377 CTy"FCSR", 28378 qVar"s"), 28379 LF])]), 28380 Let(qVar"s", 28381 Rupd 28382 ("fcsr", 28383 TP[qVar"s", 28384 Rupd 28385 ("EnableI", 28386 TP[Dest 28387 ("fcsr", 28388 CTy"FCSR", 28389 qVar"s"), 28390 LF])]), 28391 Let(qVar"s", 28392 Rupd 28393 ("fcsr", 28394 TP[qVar"s", 28395 Rupd 28396 ("FlagV", 28397 TP[Dest 28398 ("fcsr", 28399 CTy"FCSR", 28400 qVar"s"), 28401 LF])]), 28402 Let(qVar"s", 28403 Rupd 28404 ("fcsr", 28405 TP[qVar"s", 28406 Rupd 28407 ("FlagZ", 28408 TP[Dest 28409 ("fcsr", 28410 CTy"FCSR", 28411 qVar"s"), 28412 LF])]), 28413 Let(qVar"s", 28414 Rupd 28415 ("fcsr", 28416 TP[qVar"s", 28417 Rupd 28418 ("FlagO", 28419 TP[Dest 28420 ("fcsr", 28421 CTy"FCSR", 28422 qVar"s"), 28423 LF])]), 28424 Let(qVar"s", 28425 Rupd 28426 ("fcsr", 28427 TP[qVar"s", 28428 Rupd 28429 ("FlagU", 28430 TP[Dest 28431 ("fcsr", 28432 CTy"FCSR", 28433 qVar"s"), 28434 LF])]), 28435 Let(qVar"s", 28436 Rupd 28437 ("fcsr", 28438 TP[qVar"s", 28439 Rupd 28440 ("FlagI", 28441 TP[Dest 28442 ("fcsr", 28443 CTy"FCSR", 28444 qVar"s"), 28445 LF])]), 28446 Let(qVar"s", 28447 Rupd 28448 ("fcsr", 28449 TP[qVar"s", 28450 Rupd 28451 ("RM", 28452 TP[Dest 28453 ("fcsr", 28454 CTy"FCSR", 28455 qVar"s"), 28456 LW(0, 28457 2)])]), 28458 Let(qVar"s", 28459 Rupd 28460 ("fir", 28461 TP[qVar"s", 28462 Rupd 28463 ("F64", 28464 TP[Dest 28465 ("fir", 28466 CTy"FIR", 28467 qVar"s"), 28468 LT])]), 28469 Let(qVar"s", 28470 Rupd 28471 ("fir", 28472 TP[qVar"s", 28473 Rupd 28474 ("L", 28475 TP[Dest 28476 ("fir", 28477 CTy"FIR", 28478 qVar"s"), 28479 LT])]), 28480 Let(qVar"s", 28481 Rupd 28482 ("fir", 28483 TP[qVar"s", 28484 Rupd 28485 ("W", 28486 TP[Dest 28487 ("fir", 28488 CTy"FIR", 28489 qVar"s"), 28490 LT])]), 28491 Let(qVar"s", 28492 Rupd 28493 ("fir", 28494 TP[qVar"s", 28495 Rupd 28496 ("ASE", 28497 TP[Dest 28498 ("fir", 28499 CTy"FIR", 28500 qVar"s"), 28501 LF])]), 28502 Let(qVar"s", 28503 Rupd 28504 ("fir", 28505 TP[qVar"s", 28506 Rupd 28507 ("PS", 28508 TP[Dest 28509 ("fir", 28510 CTy"FIR", 28511 qVar"s"), 28512 LF])]), 28513 Let(qVar"s", 28514 Rupd 28515 ("fir", 28516 TP[qVar"s", 28517 Rupd 28518 ("D", 28519 TP[Dest 28520 ("fir", 28521 CTy"FIR", 28522 qVar"s"), 28523 LT])]), 28524 Let(qVar"s", 28525 Rupd 28526 ("fir", 28527 TP[qVar"s", 28528 Rupd 28529 ("S", 28530 TP[Dest 28531 ("fir", 28532 CTy"FIR", 28533 qVar"s"), 28534 LT])]), 28535 Let(qVar"s", 28536 Rupd 28537 ("fir", 28538 TP[qVar"s", 28539 Rupd 28540 ("PrID", 28541 TP[Dest 28542 ("fir", 28543 CTy"FIR", 28544 qVar"s"), 28545 LW(0, 28546 8)])]), 28547 Rupd 28548 ("fir", 28549 TP[qVar"s", 28550 Rupd 28551 ("Rev", 28552 TP[Dest 28553 ("fir", 28554 CTy"FIR", 28555 qVar"s"), 28556 LW(0, 28557 8)])])))))))))))))))))))))))))))))))) 28558; 28559val log_instruction_def = Def 28560 ("log_instruction",TP[Var("w",F32),Var("inst",CTy"instruction")], 28561 Close 28562 (qVar"state", 28563 CC[LS"instr ",Mop(Cast sTy,Dest("procID",F8,qVar"state")),LS" ", 28564 Mop(Cast sTy,Dest("instCnt",nTy,qVar"state")),LS" ", 28565 Mop(Drop, 28566 TP[LN 2, 28567 Call 28568 ("hex",sTy, 28569 Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 28570 Call 28571 ("getBase",F64, 28572 Apply 28573 (Const("PCC",ATy(qTy,CTy"Capability")), 28574 qVar"state"))))]),LS" : ", 28575 Mop(Drop,TP[LN 2,Call("hex",sTy,Var("w",F32))]),LS" ", 28576 Call("instructionToString",sTy,Var("inst",CTy"instruction"))])) 28577; 28578val Next_def = Def 28579 ("Next",qVar"state", 28580 Let(TP[Var("v",OTy F32),qVar"s"], 28581 Apply 28582 (Const("Fetch",ATy(qTy,PTy(OTy F32,qTy))), 28583 Rupd("currentInst",TP[qVar"state",LO F32])), 28584 Let(qVar"s",Rupd("currentInst",TP[qVar"s",Var("v",OTy F32)]), 28585 Let(TP[Var("v",OTy F64),qVar"s"], 28586 Let(qVar"s0", 28587 CS(Dest("currentInst",OTy F32,qVar"s"), 28588 [(Mop(Some,Var("w",F32)), 28589 Apply 28590 (Call 28591 ("Run",ATy(qTy,qTy), 28592 Call("Decode",CTy"instruction",Var("w",F32))), 28593 qVar"s")),(LO F32,qVar"s")]), 28594 TP[Apply 28595 (Const("BranchDelay",ATy(qTy,OTy F64)),qVar"s0"), 28596 qVar"s0"]), 28597 Let(TP[Var("v",CTy"CP0"),qVar"s"], 28598 Let(qVar"s0", 28599 Apply 28600 (Call("write'exceptionSignalled",ATy(qTy,qTy),LF), 28601 CS(TP[Var("v",OTy F64), 28602 Apply 28603 (Const("BranchTo",ATy(qTy,OTy F64)), 28604 qVar"s"), 28605 Dest 28606 ("BranchDelayPCC", 28607 OTy(PTy(F64,CTy"Capability")),qVar"s"), 28608 Dest 28609 ("BranchToPCC", 28610 OTy(PTy(F64,CTy"Capability")),qVar"s")], 28611 [(TP[LO F64,LO F64, 28612 LO(PTy(F64,CTy"Capability")), 28613 LO(PTy(F64,CTy"Capability"))], 28614 ITE(Mop(Not, 28615 Apply 28616 (Const 28617 ("exceptionSignalled", 28618 ATy(qTy,bTy)),qVar"s")), 28619 Apply 28620 (Call 28621 ("write'PC",ATy(qTy,qTy), 28622 Bop(Add, 28623 Apply 28624 (Const("PC",ATy(qTy,F64)), 28625 qVar"s"),LW(4,64))), 28626 qVar"s"),qVar"s")), 28627 (TP[Mop(Some,Var("addr",F64)),LO F64, 28628 LO(PTy(F64,CTy"Capability")), 28629 LO(PTy(F64,CTy"Capability"))], 28630 Apply 28631 (Call 28632 ("write'PC",ATy(qTy,qTy), 28633 Var("addr",F64)), 28634 Rupd 28635 ("CCallBranchDelay", 28636 TP[Apply 28637 (Call 28638 ("write'BranchDelay", 28639 ATy(qTy,qTy),LO F64),qVar"s"), 28640 LF]))), 28641 (TP[LO F64,Mop(Some,Var("addr",F64)), 28642 LO(PTy(F64,CTy"Capability")), 28643 LO(PTy(F64,CTy"Capability"))], 28644 Let(qVar"s", 28645 Apply 28646 (Call 28647 ("write'BranchDelay",ATy(qTy,qTy), 28648 Mop(Some,Var("addr",F64))), 28649 qVar"s"), 28650 Let(TP[Var("v",F64),qVar"s"], 28651 Let(qVar"s0", 28652 Rupd 28653 ("CCallBranch", 28654 TP[Apply 28655 (Call 28656 ("write'BranchTo", 28657 ATy(qTy,qTy),LO F64), 28658 Rupd 28659 ("CCallBranchDelay", 28660 TP[qVar"s", 28661 Dest 28662 ("CCallBranch", 28663 bTy,qVar"s")])), 28664 LF]), 28665 TP[Apply 28666 (Const("PC",ATy(qTy,F64)), 28667 qVar"s0"),qVar"s0"]), 28668 Apply 28669 (Call 28670 ("write'PC",ATy(qTy,qTy), 28671 Bop(Add,Var("v",F64),LW(4,64))), 28672 qVar"s")))), 28673 (TP[LO F64,LO F64, 28674 Mop(Some, 28675 TP[Var("addr",F64), 28676 Var("cap",CTy"Capability")]), 28677 LO(PTy(F64,CTy"Capability"))], 28678 Apply 28679 (Call 28680 ("write'PCC",ATy(qTy,qTy), 28681 Var("cap",CTy"Capability")), 28682 Apply 28683 (Call 28684 ("write'PC",ATy(qTy,qTy), 28685 Var("addr",F64)), 28686 Rupd 28687 ("CCallBranchDelay", 28688 TP[Rupd 28689 ("BranchDelayPCC", 28690 TP[qVar"s", 28691 LO(PTy(F64, 28692 CTy"Capability"))]), 28693 LF])))), 28694 (TP[LO F64,LO F64, 28695 LO(PTy(F64,CTy"Capability")), 28696 Mop(Some, 28697 TP[Var("addr",F64), 28698 Var("cap",CTy"Capability")])], 28699 Let(qVar"s", 28700 Rupd 28701 ("BranchDelayPCC", 28702 TP[qVar"s", 28703 Mop(Some, 28704 TP[Var("addr",F64), 28705 Var("cap",CTy"Capability")])]), 28706 Let(TP[Var("v",F64),qVar"s"], 28707 Let(qVar"s0", 28708 Rupd 28709 ("CCallBranch", 28710 TP[Rupd 28711 ("BranchToPCC", 28712 TP[Rupd 28713 ("CCallBranchDelay", 28714 TP[qVar"s", 28715 Dest 28716 ("CCallBranch", 28717 bTy, 28718 qVar"s")]), 28719 LO(PTy(F64, 28720 CTy"Capability"))]), 28721 LF]), 28722 TP[Apply 28723 (Const("PC",ATy(qTy,F64)), 28724 qVar"s0"),qVar"s0"]), 28725 Apply 28726 (Call 28727 ("write'PC",ATy(qTy,qTy), 28728 Bop(Add,Var("v",F64),LW(4,64))), 28729 qVar"s")))), 28730 (AVar 28731 (PTy(OTy F64, 28732 PTy(OTy F64, 28733 PTy(OTy(PTy(F64,CTy"Capability")), 28734 OTy(PTy(F64,CTy"Capability")))))), 28735 Mop(Snd, 28736 Apply 28737 (Call 28738 ("raise'exception", 28739 ATy(qTy,PTy(uTy,qTy)), 28740 Call 28741 ("UNPREDICTABLE", 28742 CTy"exception", 28743 LS"Branch follows branch")), 28744 qVar"s")))])), 28745 TP[Apply(Const("CP0",ATy(qTy,CTy"CP0")),qVar"s0"), 28746 qVar"s0"]), 28747 Apply 28748 (Call 28749 ("write'CP0",ATy(qTy,qTy), 28750 Rupd 28751 ("Count", 28752 TP[Var("v",CTy"CP0"), 28753 Bop(Add, 28754 Dest 28755 ("Count",F32, 28756 Apply 28757 (Const("CP0",ATy(qTy,CTy"CP0")), 28758 qVar"s")),LW(1,32))])),qVar"s")))))) 28759; 28760val hasCP2_def = Def0 ("hasCP2",LT) 28761; 28762val COP2Init_def = Def 28763 ("COP2Init",AVar uTy, 28764 Close 28765 (qVar"state", 28766 Let(Var("s0",CTy"CapCause"), 28767 Rupd 28768 ("RegNum", 28769 TP[Rupd("ExcCode",TP[LX(CTy"CapCause"),LW(0,8)]),LW(0,8)]), 28770 Mop(Snd, 28771 Mop(Snd, 28772 Apply 28773 (For(TP[LN 0,LN 31, 28774 Close 28775 (nVar"i", 28776 Close 28777 (Var("state",PTy(CTy"CapCause",qTy)), 28778 TP[LU, 28779 Mop(Fst, 28780 Var("state", 28781 PTy(CTy"CapCause",qTy))), 28782 Apply 28783 (Call 28784 ("write'CAPR",ATy(qTy,qTy), 28785 TP[Const 28786 ("defaultCap", 28787 CTy"Capability"), 28788 Mop(Cast(FTy 5),nVar"i")]), 28789 Mop(Snd, 28790 Var("state", 28791 PTy(CTy"CapCause",qTy))))]))]), 28792 TP[Var("s0",CTy"CapCause"), 28793 Apply 28794 (Call 28795 ("write'PCC",ATy(qTy,qTy), 28796 Const("defaultCap",CTy"Capability")), 28797 Rupd 28798 ("capcause", 28799 TP[qVar"state",Var("s0",CTy"CapCause")]))])))))) 28800 28801val () = Import.finish 0