(* mipsScript.sml - generated by L3 - Wed Jun 21 13:20:47 2017 *) open HolKernel boolLib bossLib Import val () = Import.start "mips" val _ = Record ("Index",[("Index",F8),("P",bTy),("index'rst",FTy 23)]) ; val _ = Record ("Random",[("Random",F8),("random'rst",FTy 24)]) ; val _ = Record ("Wired",[("Wired",F8),("wired'rst",FTy 24)]) ; val _ = Record ("EntryLo", [("C",FTy 3),("D",bTy),("G",bTy),("PFN",FTy 28),("V",bTy), ("entrylo'rst",FTy 30)]) ; val _ = Record ("PageMask",[("Mask",FTy 12),("pagemask'rst",FTy 20)]) ; val _ = Record ("EntryHi", [("ASID",F8),("R",FTy 2),("VPN2",FTy 27),("entryhi'rst",FTy 27)]) ; val _ = Record ("StatusRegister", [("BEV",bTy),("CU0",bTy),("CU1",bTy),("ERL",bTy),("EXL",bTy), ("FR",bTy),("IE",bTy),("IM",F8),("KSU",FTy 2),("KX",bTy),("RE",bTy), ("SX",bTy),("UX",bTy),("statusregister'rst",FTy 11)]) ; val _ = Record ("ConfigRegister", [("AR",FTy 3),("AT",FTy 2),("BE",bTy),("K0",FTy 3),("M",bTy), ("MT",FTy 3),("configregister'rst",FTy 19)]) ; val _ = Record ("ConfigRegister1", [("C2",bTy),("CA",bTy),("DA",FTy 3),("DL",FTy 3),("DS",FTy 3), ("EP",bTy),("FP",bTy),("IA",FTy 3),("IL",FTy 3),("IS",FTy 3), ("M",bTy),("MD",bTy),("MMUSize",FTy 6),("PC",bTy),("WR",bTy)]) ; val _ = Record ("ConfigRegister2", [("M",bTy),("SA",F4),("SL",F4),("SS",F4),("SU",F4),("TA",F4),("TL",F4), ("TS",F4),("TU",FTy 3)]) ; val _ = Record ("ConfigRegister3", [("DSPP",bTy),("LPA",bTy),("M",bTy),("MT",bTy),("SM",bTy),("SP",bTy), ("TL",bTy),("ULRI",bTy),("VEIC",bTy),("VInt",bTy), ("configregister3'rst",FTy 22)]) ; val _ = Record ("ConfigRegister6", [("LTLB",bTy),("TLBSize",F16),("configregister6'rst",FTy 15)]) ; val _ = Record ("CauseRegister", [("BD",bTy),("CE",FTy 2),("ExcCode",FTy 5),("IP",F8),("TI",bTy), ("causeregister'rst",FTy 15)]) ; val _ = Record ("Context",[("BadVPN2",FTy 19),("PTEBase",FTy 41),("context'rst",F4)]) ; val _ = Record ("XContext", [("BadVPN2",FTy 27),("PTEBase",FTy 31),("R",FTy 2),("xcontext'rst",F4)]) ; val _ = Record ("HWREna", [("CC",bTy),("CCRes",bTy),("CPUNum",bTy),("UL",bTy), ("hwrena'rst",FTy 28)]) ; val _ = Record ("CP0", [("BadVAddr",F64),("Cause",CTy"CauseRegister"),("Compare",F32), ("Config",CTy"ConfigRegister"),("Config1",CTy"ConfigRegister1"), ("Config2",CTy"ConfigRegister2"),("Config3",CTy"ConfigRegister3"), ("Config6",CTy"ConfigRegister6"),("Context",CTy"Context"), ("Count",F32),("Debug",F32),("EPC",F64),("EntryHi",CTy"EntryHi"), ("EntryLo0",CTy"EntryLo"),("EntryLo1",CTy"EntryLo"),("ErrCtl",F32), ("ErrorEPC",F64),("HWREna",CTy"HWREna"),("Index",CTy"Index"), ("LLAddr",F64),("PRId",F32),("PageMask",CTy"PageMask"), ("Random",CTy"Random"),("Status",CTy"StatusRegister"), ("UsrLocal",F64),("Wired",CTy"Wired"),("XContext",CTy"XContext")]) ; val _ = Construct [("ExceptionType", [("Int",[]),("Mod",[]),("TLBL",[]),("TLBS",[]),("AdEL",[]), ("AdES",[]),("Sys",[]),("Bp",[]),("ResI",[]),("CpU",[]),("Ov",[]), ("Tr",[]),("XTLBRefillL",[]),("XTLBRefillS",[])])] ; val _ = Construct [("LorS",[("LOAD",[]),("STORE",[])])] ; val _ = Record ("FCSR", [("ABS2008",bTy),("CauseE",bTy),("CauseI",bTy),("CauseO",bTy), ("CauseU",bTy),("CauseV",bTy),("CauseZ",bTy),("EnableI",bTy), ("EnableO",bTy),("EnableU",bTy),("EnableV",bTy),("EnableZ",bTy), ("FCC",F8),("FS",bTy),("FlagI",bTy),("FlagO",bTy),("FlagU",bTy), ("FlagV",bTy),("FlagZ",bTy),("NAN2008",bTy),("RM",FTy 2), ("fcsr'rst",FTy 3)]) ; val _ = Record ("FIR", [("ASE",bTy),("D",bTy),("F64",bTy),("L",bTy),("PS",bTy),("PrID",F8), ("Rev",F8),("S",bTy),("W",bTy),("fir'rst",FTy 9)]) ; val _ = Construct [("Branch", [("BEQ",[PTy(FTy 5,PTy(FTy 5,F16))]), ("BEQL",[PTy(FTy 5,PTy(FTy 5,F16))]),("BGEZ",[PTy(FTy 5,F16)]), ("BGEZAL",[PTy(FTy 5,F16)]),("BGEZALL",[PTy(FTy 5,F16)]), ("BGEZL",[PTy(FTy 5,F16)]),("BGTZ",[PTy(FTy 5,F16)]), ("BGTZL",[PTy(FTy 5,F16)]),("BLEZ",[PTy(FTy 5,F16)]), ("BLEZL",[PTy(FTy 5,F16)]),("BLTZ",[PTy(FTy 5,F16)]), ("BLTZAL",[PTy(FTy 5,F16)]),("BLTZALL",[PTy(FTy 5,F16)]), ("BLTZL",[PTy(FTy 5,F16)]),("BNE",[PTy(FTy 5,PTy(FTy 5,F16))]), ("BNEL",[PTy(FTy 5,PTy(FTy 5,F16))]),("J",[FTy 26]),("JAL",[FTy 26]), ("JALR",[PTy(FTy 5,FTy 5)]),("JR",[FTy 5])])] ; val _ = Construct [("CP", [("DMFC0",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("DMTC0",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("MFC0",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("MTC0",[PTy(FTy 5,PTy(FTy 5,FTy 3))])])] ; val _ = Construct [("Store", [("SB",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SC",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SCD",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SD",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SDL",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SDR",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SH",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SW",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SWL",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SWR",[PTy(FTy 5,PTy(FTy 5,F16))])])] ; val _ = Construct [("Load", [("LB",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LBU",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LD",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LDL",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LDR",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LH",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LHU",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LL",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LLD",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LW",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LWL",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LWR",[PTy(FTy 5,PTy(FTy 5,F16))]), ("LWU",[PTy(FTy 5,PTy(FTy 5,F16))])])] ; val _ = Construct [("Trap", [("TEQ",[PTy(FTy 5,FTy 5)]),("TEQI",[PTy(FTy 5,F16)]), ("TGE",[PTy(FTy 5,FTy 5)]),("TGEI",[PTy(FTy 5,F16)]), ("TGEIU",[PTy(FTy 5,F16)]),("TGEU",[PTy(FTy 5,FTy 5)]), ("TLT",[PTy(FTy 5,FTy 5)]),("TLTI",[PTy(FTy 5,F16)]), ("TLTIU",[PTy(FTy 5,F16)]),("TLTU",[PTy(FTy 5,FTy 5)]), ("TNE",[PTy(FTy 5,FTy 5)]),("TNEI",[PTy(FTy 5,F16)])])] ; val _ = Construct [("Shift", [("DSLL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSLL32",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSLLV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSRA",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSRA32",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSRAV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSRL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSRL32",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSRLV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SLL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SLLV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SRA",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SRAV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SRL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SRLV",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] ; val _ = Construct [("MultDiv", [("DDIV",[PTy(FTy 5,FTy 5)]),("DDIVU",[PTy(FTy 5,FTy 5)]), ("DIV",[PTy(FTy 5,FTy 5)]),("DIVU",[PTy(FTy 5,FTy 5)]), ("DMULT",[PTy(FTy 5,FTy 5)]),("DMULTU",[PTy(FTy 5,FTy 5)]), ("MADD",[PTy(FTy 5,FTy 5)]),("MADDU",[PTy(FTy 5,FTy 5)]), ("MFHI",[FTy 5]),("MFLO",[FTy 5]),("MSUB",[PTy(FTy 5,FTy 5)]), ("MSUBU",[PTy(FTy 5,FTy 5)]),("MTHI",[FTy 5]),("MTLO",[FTy 5]), ("MUL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("MULT",[PTy(FTy 5,FTy 5)]), ("MULTU",[PTy(FTy 5,FTy 5)])])] ; val _ = Construct [("ArithR", [("ADD",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("ADDU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("AND",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DADD",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DADDU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSUB",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DSUBU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("MOVN",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("MOVZ",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("NOR",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("OR",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SLT",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SLTU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SUB",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SUBU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("XOR",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] ; val _ = Construct [("ArithI", [("ADDI",[PTy(FTy 5,PTy(FTy 5,F16))]), ("ADDIU",[PTy(FTy 5,PTy(FTy 5,F16))]), ("ANDI",[PTy(FTy 5,PTy(FTy 5,F16))]), ("DADDI",[PTy(FTy 5,PTy(FTy 5,F16))]), ("DADDIU",[PTy(FTy 5,PTy(FTy 5,F16))]),("LUI",[PTy(FTy 5,F16)]), ("ORI",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SLTI",[PTy(FTy 5,PTy(FTy 5,F16))]), ("SLTIU",[PTy(FTy 5,PTy(FTy 5,F16))]), ("XORI",[PTy(FTy 5,PTy(FTy 5,F16))])])] ; val _ = Construct [("COP1", [("ABS_D",[PTy(FTy 5,FTy 5)]),("ABS_S",[PTy(FTy 5,FTy 5)]), ("ADD_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("ADD_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("BC1F",[PTy(F16,FTy 3)]), ("BC1FL",[PTy(F16,FTy 3)]),("BC1T",[PTy(F16,FTy 3)]), ("BC1TL",[PTy(F16,FTy 3)]),("CEIL_L_D",[PTy(FTy 5,FTy 5)]), ("CEIL_L_S",[PTy(FTy 5,FTy 5)]),("CEIL_W_D",[PTy(FTy 5,FTy 5)]), ("CEIL_W_S",[PTy(FTy 5,FTy 5)]),("CFC1",[PTy(FTy 5,FTy 5)]), ("CTC1",[PTy(FTy 5,FTy 5)]),("CVT_D_L",[PTy(FTy 5,FTy 5)]), ("CVT_D_S",[PTy(FTy 5,FTy 5)]),("CVT_D_W",[PTy(FTy 5,FTy 5)]), ("CVT_L_D",[PTy(FTy 5,FTy 5)]),("CVT_L_S",[PTy(FTy 5,FTy 5)]), ("CVT_S_D",[PTy(FTy 5,FTy 5)]),("CVT_S_L",[PTy(FTy 5,FTy 5)]), ("CVT_S_W",[PTy(FTy 5,FTy 5)]),("CVT_W_D",[PTy(FTy 5,FTy 5)]), ("CVT_W_S",[PTy(FTy 5,FTy 5)]), ("C_cond_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3)))]), ("C_cond_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3)))]), ("DIV_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("DIV_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("DMFC1",[PTy(FTy 5,FTy 5)]), ("DMTC1",[PTy(FTy 5,FTy 5)]),("FLOOR_L_D",[PTy(FTy 5,FTy 5)]), ("FLOOR_L_S",[PTy(FTy 5,FTy 5)]),("FLOOR_W_D",[PTy(FTy 5,FTy 5)]), ("FLOOR_W_S",[PTy(FTy 5,FTy 5)]), ("LDC1",[PTy(FTy 5,PTy(F16,FTy 5))]), ("LDXC1",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("LWC1",[PTy(FTy 5,PTy(F16,FTy 5))]), ("LWXC1",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("MADD_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5)))]), ("MADD_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5)))]), ("MFC1",[PTy(FTy 5,FTy 5)]),("MOVF",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("MOVF_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("MOVF_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("MOVN_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("MOVN_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("MOVT",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("MOVT_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("MOVT_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), ("MOVZ_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("MOVZ_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("MOV_D",[PTy(FTy 5,FTy 5)]),("MOV_S",[PTy(FTy 5,FTy 5)]), ("MSUB_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5)))]), ("MSUB_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5)))]), ("MTC1",[PTy(FTy 5,FTy 5)]),("MUL_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("MUL_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]),("NEG_D",[PTy(FTy 5,FTy 5)]), ("NEG_S",[PTy(FTy 5,FTy 5)]),("ROUND_L_D",[PTy(FTy 5,FTy 5)]), ("ROUND_L_S",[PTy(FTy 5,FTy 5)]),("ROUND_W_D",[PTy(FTy 5,FTy 5)]), ("ROUND_W_S",[PTy(FTy 5,FTy 5)]), ("SDC1",[PTy(FTy 5,PTy(F16,FTy 5))]), ("SDXC1",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SQRT_D",[PTy(FTy 5,FTy 5)]),("SQRT_S",[PTy(FTy 5,FTy 5)]), ("SUB_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SUB_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("SWC1",[PTy(FTy 5,PTy(F16,FTy 5))]), ("SWXC1",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), ("TRUNC_L_D",[PTy(FTy 5,FTy 5)]),("TRUNC_L_S",[PTy(FTy 5,FTy 5)]), ("TRUNC_W_D",[PTy(FTy 5,FTy 5)]),("TRUNC_W_S",[PTy(FTy 5,FTy 5)]), ("UnknownFPInstruction",[])])] ; val _ = Construct [("instruction", [("ArithI",[CTy"ArithI"]),("ArithR",[CTy"ArithR"]),("BREAK",[]), ("Branch",[CTy"Branch"]),("CACHE",[PTy(FTy 5,PTy(FTy 5,F16))]), ("COP1",[CTy"COP1"]),("CP",[CTy"CP"]),("ERET",[]), ("Load",[CTy"Load"]),("MultDiv",[CTy"MultDiv"]), ("RDHWR",[PTy(FTy 5,FTy 5)]),("ReservedInstruction",[]), ("SYNC",[FTy 5]),("SYSCALL",[]),("Shift",[CTy"Shift"]), ("Store",[CTy"Store"]),("TLBP",[]),("TLBR",[]),("TLBWI",[]), ("TLBWR",[]),("Trap",[CTy"Trap"]),("Unpredictable",[]),("WAIT",[])])] ; val _ = Construct [("exception",[("NoException",[]),("UNPREDICTABLE",[sTy])])] ; val _ = Record ("mips_state", [("BranchDelay",OTy(OTy F64)),("BranchTo",OTy(PTy(bTy,F64))), ("CP0",CTy"CP0"),("FGR",ATy(FTy 5,F64)),("LLbit",OTy bTy), ("MEM",ATy(F64,F8)),("PC",F64),("exception",CTy"exception"), ("exceptionSignalled",bTy),("fcsr",CTy"FCSR"),("fir",CTy"FIR"), ("gpr",ATy(FTy 5,F64)),("hi",OTy F64),("lo",OTy F64)]) ; val qTy = CTy "mips_state"; fun qVar v = Term.mk_var (v, ParseDatatype.pretypeToType qTy); val raise'exception_def = Def ("raise'exception",Var("e",CTy"exception"), Close (qVar"state", TP[LX(VTy"a"), ITE(EQ(Dest("exception",CTy"exception",qVar"state"), Const("NoException",CTy"exception")), Rupd("exception",TP[qVar"state",Var("e",CTy"exception")]), qVar"state")])) ; val rec'Index_def = Def ("rec'Index",Var("x",F32), Rec(CTy"Index", [EX(Var("x",F32),LN 7,LN 0,F8),Bop(Bit,Var("x",F32),LN 31), EX(Var("x",F32),LN 30,LN 8,FTy 23)])) ; val reg'Index_def = Def ("reg'Index",Var("x",CTy"Index"), CS(Var("x",CTy"Index"), [(Rec(CTy"Index",[Var("Index",F8),bVar"P",Var("index'rst",FTy 23)]), CC[Mop(Cast F1,bVar"P"),Var("index'rst",FTy 23),Var("Index",F8)])])) ; val write'rec'Index_def = Def ("write'rec'Index",TP[AVar F32,Var("x",CTy"Index")], Call("reg'Index",F32,Var("x",CTy"Index"))) ; val write'reg'Index_def = Def ("write'reg'Index",TP[AVar(CTy"Index"),Var("x",F32)], Call("rec'Index",CTy"Index",Var("x",F32))) ; val rec'Random_def = Def ("rec'Random",Var("x",F32), Rec(CTy"Random", [EX(Var("x",F32),LN 7,LN 0,F8),EX(Var("x",F32),LN 31,LN 8,FTy 24)])) ; val reg'Random_def = Def ("reg'Random",Var("x",CTy"Random"), CS(Var("x",CTy"Random"), [(Rec(CTy"Random",[Var("Random",F8),Var("random'rst",FTy 24)]), CC[Var("random'rst",FTy 24),Var("Random",F8)])])) ; val write'rec'Random_def = Def ("write'rec'Random",TP[AVar F32,Var("x",CTy"Random")], Call("reg'Random",F32,Var("x",CTy"Random"))) ; val write'reg'Random_def = Def ("write'reg'Random",TP[AVar(CTy"Random"),Var("x",F32)], Call("rec'Random",CTy"Random",Var("x",F32))) ; val rec'Wired_def = Def ("rec'Wired",Var("x",F32), Rec(CTy"Wired", [EX(Var("x",F32),LN 7,LN 0,F8),EX(Var("x",F32),LN 31,LN 8,FTy 24)])) ; val reg'Wired_def = Def ("reg'Wired",Var("x",CTy"Wired"), CS(Var("x",CTy"Wired"), [(Rec(CTy"Wired",[Var("Wired",F8),Var("wired'rst",FTy 24)]), CC[Var("wired'rst",FTy 24),Var("Wired",F8)])])) ; val write'rec'Wired_def = Def ("write'rec'Wired",TP[AVar F32,Var("x",CTy"Wired")], Call("reg'Wired",F32,Var("x",CTy"Wired"))) ; val write'reg'Wired_def = Def ("write'reg'Wired",TP[AVar(CTy"Wired"),Var("x",F32)], Call("rec'Wired",CTy"Wired",Var("x",F32))) ; val rec'EntryLo_def = Def ("rec'EntryLo",Var("x",F64), Rec(CTy"EntryLo", [EX(Var("x",F64),LN 5,LN 3,FTy 3),Bop(Bit,Var("x",F64),LN 2), Bop(Bit,Var("x",F64),LN 0),EX(Var("x",F64),LN 33,LN 6,FTy 28), Bop(Bit,Var("x",F64),LN 1),EX(Var("x",F64),LN 63,LN 34,FTy 30)])) ; val reg'EntryLo_def = Def ("reg'EntryLo",Var("x",CTy"EntryLo"), CS(Var("x",CTy"EntryLo"), [(Rec(CTy"EntryLo", [Var("C",FTy 3),bVar"D",bVar"G",Var("PFN",FTy 28),bVar"V", Var("entrylo'rst",FTy 30)]), CC[Var("entrylo'rst",FTy 30),Var("PFN",FTy 28),Var("C",FTy 3), Mop(Cast F1,bVar"D"),Mop(Cast F1,bVar"V"),Mop(Cast F1,bVar"G")])])) ; val write'rec'EntryLo_def = Def ("write'rec'EntryLo",TP[AVar F64,Var("x",CTy"EntryLo")], Call("reg'EntryLo",F64,Var("x",CTy"EntryLo"))) ; val write'reg'EntryLo_def = Def ("write'reg'EntryLo",TP[AVar(CTy"EntryLo"),Var("x",F64)], Call("rec'EntryLo",CTy"EntryLo",Var("x",F64))) ; val rec'PageMask_def = Def ("rec'PageMask",Var("x",F32), Rec(CTy"PageMask", [EX(Var("x",F32),LN 24,LN 13,FTy 12), CC[EX(Var("x",F32),LN 12,LN 0,FTy 13), EX(Var("x",F32),LN 31,LN 25,FTy 7)]])) ; val reg'PageMask_def = Def ("reg'PageMask",Var("x",CTy"PageMask"), CS(Var("x",CTy"PageMask"), [(Rec(CTy"PageMask",[Var("Mask",FTy 12),Var("pagemask'rst",FTy 20)]), CC[EX(Var("pagemask'rst",FTy 20),LN 6,LN 0,FTy 7), Var("Mask",FTy 12), EX(Var("pagemask'rst",FTy 20),LN 19,LN 7,FTy 13)])])) ; val write'rec'PageMask_def = Def ("write'rec'PageMask",TP[AVar F32,Var("x",CTy"PageMask")], Call("reg'PageMask",F32,Var("x",CTy"PageMask"))) ; val write'reg'PageMask_def = Def ("write'reg'PageMask",TP[AVar(CTy"PageMask"),Var("x",F32)], Call("rec'PageMask",CTy"PageMask",Var("x",F32))) ; val rec'EntryHi_def = Def ("rec'EntryHi",Var("x",F64), Rec(CTy"EntryHi", [EX(Var("x",F64),LN 7,LN 0,F8),EX(Var("x",F64),LN 63,LN 62,FTy 2), EX(Var("x",F64),LN 39,LN 13,FTy 27), CC[EX(Var("x",F64),LN 12,LN 8,FTy 5), EX(Var("x",F64),LN 61,LN 40,FTy 22)]])) ; val reg'EntryHi_def = Def ("reg'EntryHi",Var("x",CTy"EntryHi"), CS(Var("x",CTy"EntryHi"), [(Rec(CTy"EntryHi", [Var("ASID",F8),Var("R",FTy 2),Var("VPN2",FTy 27), Var("entryhi'rst",FTy 27)]), CC[Var("R",FTy 2),EX(Var("entryhi'rst",FTy 27),LN 21,LN 0,FTy 22), Var("VPN2",FTy 27), EX(Var("entryhi'rst",FTy 27),LN 26,LN 22,FTy 5),Var("ASID",F8)])])) ; val write'rec'EntryHi_def = Def ("write'rec'EntryHi",TP[AVar F64,Var("x",CTy"EntryHi")], Call("reg'EntryHi",F64,Var("x",CTy"EntryHi"))) ; val write'reg'EntryHi_def = Def ("write'reg'EntryHi",TP[AVar(CTy"EntryHi"),Var("x",F64)], Call("rec'EntryHi",CTy"EntryHi",Var("x",F64))) ; val rec'StatusRegister_def = Def ("rec'StatusRegister",Var("x",F32), Rec(CTy"StatusRegister", [Bop(Bit,Var("x",F32),LN 22),Bop(Bit,Var("x",F32),LN 28), Bop(Bit,Var("x",F32),LN 29),Bop(Bit,Var("x",F32),LN 2), Bop(Bit,Var("x",F32),LN 1),Bop(Bit,Var("x",F32),LN 26), Bop(Bit,Var("x",F32),LN 0),EX(Var("x",F32),LN 15,LN 8,F8), EX(Var("x",F32),LN 4,LN 3,FTy 2),Bop(Bit,Var("x",F32),LN 7), Bop(Bit,Var("x",F32),LN 25),Bop(Bit,Var("x",F32),LN 6), Bop(Bit,Var("x",F32),LN 5), CC[EX(Var("x",F32),LN 21,LN 16,FTy 6), EX(Var("x",F32),LN 24,LN 23,FTy 2), EX(Var("x",F32),LN 27,LN 27,F1), EX(Var("x",F32),LN 31,LN 30,FTy 2)]])) ; val reg'StatusRegister_def = Def ("reg'StatusRegister",Var("x",CTy"StatusRegister"), CS(Var("x",CTy"StatusRegister"), [(Rec(CTy"StatusRegister", [bVar"BEV",bVar"CU0",bVar"CU1",bVar"ERL",bVar"EXL",bVar"FR", bVar"IE",Var("IM",F8),Var("KSU",FTy 2),bVar"KX",bVar"RE", bVar"SX",bVar"UX",Var("statusregister'rst",FTy 11)]), CC[EX(Var("statusregister'rst",FTy 11),LN 1,LN 0,FTy 2), Mop(Cast F1,bVar"CU1"),Mop(Cast F1,bVar"CU0"), EX(Var("statusregister'rst",FTy 11),LN 2,LN 2,F1), Mop(Cast F1,bVar"FR"),Mop(Cast F1,bVar"RE"), EX(Var("statusregister'rst",FTy 11),LN 4,LN 3,FTy 2), Mop(Cast F1,bVar"BEV"), EX(Var("statusregister'rst",FTy 11),LN 10,LN 5,FTy 6), Var("IM",F8),Mop(Cast F1,bVar"KX"),Mop(Cast F1,bVar"SX"), Mop(Cast F1,bVar"UX"),Var("KSU",FTy 2),Mop(Cast F1,bVar"ERL"), Mop(Cast F1,bVar"EXL"),Mop(Cast F1,bVar"IE")])])) ; val write'rec'StatusRegister_def = Def ("write'rec'StatusRegister",TP[AVar F32,Var("x",CTy"StatusRegister")], Call("reg'StatusRegister",F32,Var("x",CTy"StatusRegister"))) ; val write'reg'StatusRegister_def = Def ("write'reg'StatusRegister",TP[AVar(CTy"StatusRegister"),Var("x",F32)], Call("rec'StatusRegister",CTy"StatusRegister",Var("x",F32))) ; val rec'ConfigRegister_def = Def ("rec'ConfigRegister",Var("x",F32), Rec(CTy"ConfigRegister", [EX(Var("x",F32),LN 12,LN 10,FTy 3), EX(Var("x",F32),LN 14,LN 13,FTy 2),Bop(Bit,Var("x",F32),LN 15), EX(Var("x",F32),LN 2,LN 0,FTy 3),Bop(Bit,Var("x",F32),LN 31), EX(Var("x",F32),LN 9,LN 7,FTy 3), CC[EX(Var("x",F32),LN 6,LN 3,F4), EX(Var("x",F32),LN 30,LN 16,FTy 15)]])) ; val reg'ConfigRegister_def = Def ("reg'ConfigRegister",Var("x",CTy"ConfigRegister"), CS(Var("x",CTy"ConfigRegister"), [(Rec(CTy"ConfigRegister", [Var("AR",FTy 3),Var("AT",FTy 2),bVar"BE",Var("K0",FTy 3), bVar"M",Var("MT",FTy 3),Var("configregister'rst",FTy 19)]), CC[Mop(Cast F1,bVar"M"), EX(Var("configregister'rst",FTy 19),LN 14,LN 0,FTy 15), Mop(Cast F1,bVar"BE"),Var("AT",FTy 2),Var("AR",FTy 3), Var("MT",FTy 3), EX(Var("configregister'rst",FTy 19),LN 18,LN 15,F4), Var("K0",FTy 3)])])) ; val write'rec'ConfigRegister_def = Def ("write'rec'ConfigRegister",TP[AVar F32,Var("x",CTy"ConfigRegister")], Call("reg'ConfigRegister",F32,Var("x",CTy"ConfigRegister"))) ; val write'reg'ConfigRegister_def = Def ("write'reg'ConfigRegister",TP[AVar(CTy"ConfigRegister"),Var("x",F32)], Call("rec'ConfigRegister",CTy"ConfigRegister",Var("x",F32))) ; val rec'ConfigRegister1_def = Def ("rec'ConfigRegister1",Var("x",F32), Rec(CTy"ConfigRegister1", [Bop(Bit,Var("x",F32),LN 6),Bop(Bit,Var("x",F32),LN 2), EX(Var("x",F32),LN 9,LN 7,FTy 3), EX(Var("x",F32),LN 12,LN 10,FTy 3), EX(Var("x",F32),LN 15,LN 13,FTy 3),Bop(Bit,Var("x",F32),LN 1), Bop(Bit,Var("x",F32),LN 0),EX(Var("x",F32),LN 18,LN 16,FTy 3), EX(Var("x",F32),LN 21,LN 19,FTy 3), EX(Var("x",F32),LN 24,LN 22,FTy 3),Bop(Bit,Var("x",F32),LN 31), Bop(Bit,Var("x",F32),LN 5),EX(Var("x",F32),LN 30,LN 25,FTy 6), Bop(Bit,Var("x",F32),LN 4),Bop(Bit,Var("x",F32),LN 3)])) ; val reg'ConfigRegister1_def = Def ("reg'ConfigRegister1",Var("x",CTy"ConfigRegister1"), CS(Var("x",CTy"ConfigRegister1"), [(Rec(CTy"ConfigRegister1", [bVar"C2",bVar"CA",Var("DA",FTy 3),Var("DL",FTy 3), Var("DS",FTy 3),bVar"EP",bVar"FP",Var("IA",FTy 3), Var("IL",FTy 3),Var("IS",FTy 3),bVar"M",bVar"MD", Var("MMUSize",FTy 6),bVar"PC",bVar"WR"]), CC[Mop(Cast F1,bVar"M"),Var("MMUSize",FTy 6),Var("IS",FTy 3), Var("IL",FTy 3),Var("IA",FTy 3),Var("DS",FTy 3), Var("DL",FTy 3),Var("DA",FTy 3),Mop(Cast F1,bVar"C2"), Mop(Cast F1,bVar"MD"),Mop(Cast F1,bVar"PC"), Mop(Cast F1,bVar"WR"),Mop(Cast F1,bVar"CA"), Mop(Cast F1,bVar"EP"),Mop(Cast F1,bVar"FP")])])) ; val write'rec'ConfigRegister1_def = Def ("write'rec'ConfigRegister1",TP[AVar F32,Var("x",CTy"ConfigRegister1")], Call("reg'ConfigRegister1",F32,Var("x",CTy"ConfigRegister1"))) ; val write'reg'ConfigRegister1_def = Def ("write'reg'ConfigRegister1", TP[AVar(CTy"ConfigRegister1"),Var("x",F32)], Call("rec'ConfigRegister1",CTy"ConfigRegister1",Var("x",F32))) ; val rec'ConfigRegister2_def = Def ("rec'ConfigRegister2",Var("x",F32), Rec(CTy"ConfigRegister2", [Bop(Bit,Var("x",F32),LN 31),EX(Var("x",F32),LN 3,LN 0,F4), EX(Var("x",F32),LN 7,LN 4,F4),EX(Var("x",F32),LN 11,LN 8,F4), EX(Var("x",F32),LN 15,LN 12,F4),EX(Var("x",F32),LN 19,LN 16,F4), EX(Var("x",F32),LN 23,LN 20,F4),EX(Var("x",F32),LN 27,LN 24,F4), EX(Var("x",F32),LN 30,LN 28,FTy 3)])) ; val reg'ConfigRegister2_def = Def ("reg'ConfigRegister2",Var("x",CTy"ConfigRegister2"), CS(Var("x",CTy"ConfigRegister2"), [(Rec(CTy"ConfigRegister2", [bVar"M",Var("SA",F4),Var("SL",F4),Var("SS",F4),Var("SU",F4), Var("TA",F4),Var("TL",F4),Var("TS",F4),Var("TU",FTy 3)]), CC[Mop(Cast F1,bVar"M"),Var("TU",FTy 3),Var("TS",F4),Var("TL",F4), Var("TA",F4),Var("SU",F4),Var("SS",F4),Var("SL",F4), Var("SA",F4)])])) ; val write'rec'ConfigRegister2_def = Def ("write'rec'ConfigRegister2",TP[AVar F32,Var("x",CTy"ConfigRegister2")], Call("reg'ConfigRegister2",F32,Var("x",CTy"ConfigRegister2"))) ; val write'reg'ConfigRegister2_def = Def ("write'reg'ConfigRegister2", TP[AVar(CTy"ConfigRegister2"),Var("x",F32)], Call("rec'ConfigRegister2",CTy"ConfigRegister2",Var("x",F32))) ; val rec'ConfigRegister3_def = Def ("rec'ConfigRegister3",Var("x",F32), Rec(CTy"ConfigRegister3", [Bop(Bit,Var("x",F32),LN 10),Bop(Bit,Var("x",F32),LN 7), Bop(Bit,Var("x",F32),LN 31),Bop(Bit,Var("x",F32),LN 2), Bop(Bit,Var("x",F32),LN 1),Bop(Bit,Var("x",F32),LN 4), Bop(Bit,Var("x",F32),LN 0),Bop(Bit,Var("x",F32),LN 13), Bop(Bit,Var("x",F32),LN 6),Bop(Bit,Var("x",F32),LN 5), CC[EX(Var("x",F32),LN 3,LN 3,F1),EX(Var("x",F32),LN 9,LN 8,FTy 2), EX(Var("x",F32),LN 12,LN 11,FTy 2), EX(Var("x",F32),LN 30,LN 14,FTy 17)]])) ; val reg'ConfigRegister3_def = Def ("reg'ConfigRegister3",Var("x",CTy"ConfigRegister3"), CS(Var("x",CTy"ConfigRegister3"), [(Rec(CTy"ConfigRegister3", [bVar"DSPP",bVar"LPA",bVar"M",bVar"MT",bVar"SM",bVar"SP", bVar"TL",bVar"ULRI",bVar"VEIC",bVar"VInt", Var("configregister3'rst",FTy 22)]), CC[Mop(Cast F1,bVar"M"), EX(Var("configregister3'rst",FTy 22),LN 16,LN 0,FTy 17), Mop(Cast F1,bVar"ULRI"), EX(Var("configregister3'rst",FTy 22),LN 18,LN 17,FTy 2), Mop(Cast F1,bVar"DSPP"), EX(Var("configregister3'rst",FTy 22),LN 20,LN 19,FTy 2), Mop(Cast F1,bVar"LPA"),Mop(Cast F1,bVar"VEIC"), Mop(Cast F1,bVar"VInt"),Mop(Cast F1,bVar"SP"), EX(Var("configregister3'rst",FTy 22),LN 21,LN 21,F1), Mop(Cast F1,bVar"MT"),Mop(Cast F1,bVar"SM"), Mop(Cast F1,bVar"TL")])])) ; val write'rec'ConfigRegister3_def = Def ("write'rec'ConfigRegister3",TP[AVar F32,Var("x",CTy"ConfigRegister3")], Call("reg'ConfigRegister3",F32,Var("x",CTy"ConfigRegister3"))) ; val write'reg'ConfigRegister3_def = Def ("write'reg'ConfigRegister3", TP[AVar(CTy"ConfigRegister3"),Var("x",F32)], Call("rec'ConfigRegister3",CTy"ConfigRegister3",Var("x",F32))) ; val rec'ConfigRegister6_def = Def ("rec'ConfigRegister6",Var("x",F32), Rec(CTy"ConfigRegister6", [Bop(Bit,Var("x",F32),LN 2),EX(Var("x",F32),LN 31,LN 16,F16), CC[EX(Var("x",F32),LN 1,LN 0,FTy 2), EX(Var("x",F32),LN 15,LN 3,FTy 13)]])) ; val reg'ConfigRegister6_def = Def ("reg'ConfigRegister6",Var("x",CTy"ConfigRegister6"), CS(Var("x",CTy"ConfigRegister6"), [(Rec(CTy"ConfigRegister6", [bVar"LTLB",Var("TLBSize",F16), Var("configregister6'rst",FTy 15)]), CC[Var("TLBSize",F16), EX(Var("configregister6'rst",FTy 15),LN 12,LN 0,FTy 13), Mop(Cast F1,bVar"LTLB"), EX(Var("configregister6'rst",FTy 15),LN 14,LN 13,FTy 2)])])) ; val write'rec'ConfigRegister6_def = Def ("write'rec'ConfigRegister6",TP[AVar F32,Var("x",CTy"ConfigRegister6")], Call("reg'ConfigRegister6",F32,Var("x",CTy"ConfigRegister6"))) ; val write'reg'ConfigRegister6_def = Def ("write'reg'ConfigRegister6", TP[AVar(CTy"ConfigRegister6"),Var("x",F32)], Call("rec'ConfigRegister6",CTy"ConfigRegister6",Var("x",F32))) ; val rec'CauseRegister_def = Def ("rec'CauseRegister",Var("x",F32), Rec(CTy"CauseRegister", [Bop(Bit,Var("x",F32),LN 31),EX(Var("x",F32),LN 29,LN 28,FTy 2), EX(Var("x",F32),LN 6,LN 2,FTy 5),EX(Var("x",F32),LN 15,LN 8,F8), Bop(Bit,Var("x",F32),LN 30), CC[EX(Var("x",F32),LN 1,LN 0,FTy 2),EX(Var("x",F32),LN 7,LN 7,F1), EX(Var("x",F32),LN 27,LN 16,FTy 12)]])) ; val reg'CauseRegister_def = Def ("reg'CauseRegister",Var("x",CTy"CauseRegister"), CS(Var("x",CTy"CauseRegister"), [(Rec(CTy"CauseRegister", [bVar"BD",Var("CE",FTy 2),Var("ExcCode",FTy 5),Var("IP",F8), bVar"TI",Var("causeregister'rst",FTy 15)]), CC[Mop(Cast F1,bVar"BD"),Mop(Cast F1,bVar"TI"),Var("CE",FTy 2), EX(Var("causeregister'rst",FTy 15),LN 11,LN 0,FTy 12), Var("IP",F8), EX(Var("causeregister'rst",FTy 15),LN 12,LN 12,F1), Var("ExcCode",FTy 5), EX(Var("causeregister'rst",FTy 15),LN 14,LN 13,FTy 2)])])) ; val write'rec'CauseRegister_def = Def ("write'rec'CauseRegister",TP[AVar F32,Var("x",CTy"CauseRegister")], Call("reg'CauseRegister",F32,Var("x",CTy"CauseRegister"))) ; val write'reg'CauseRegister_def = Def ("write'reg'CauseRegister",TP[AVar(CTy"CauseRegister"),Var("x",F32)], Call("rec'CauseRegister",CTy"CauseRegister",Var("x",F32))) ; val rec'Context_def = Def ("rec'Context",Var("x",F64), Rec(CTy"Context", [EX(Var("x",F64),LN 22,LN 4,FTy 19), EX(Var("x",F64),LN 63,LN 23,FTy 41),EX(Var("x",F64),LN 3,LN 0,F4)])) ; val reg'Context_def = Def ("reg'Context",Var("x",CTy"Context"), CS(Var("x",CTy"Context"), [(Rec(CTy"Context", [Var("BadVPN2",FTy 19),Var("PTEBase",FTy 41), Var("context'rst",F4)]), CC[Var("PTEBase",FTy 41),Var("BadVPN2",FTy 19), Var("context'rst",F4)])])) ; val write'rec'Context_def = Def ("write'rec'Context",TP[AVar F64,Var("x",CTy"Context")], Call("reg'Context",F64,Var("x",CTy"Context"))) ; val write'reg'Context_def = Def ("write'reg'Context",TP[AVar(CTy"Context"),Var("x",F64)], Call("rec'Context",CTy"Context",Var("x",F64))) ; val rec'XContext_def = Def ("rec'XContext",Var("x",F64), Rec(CTy"XContext", [EX(Var("x",F64),LN 30,LN 4,FTy 27), EX(Var("x",F64),LN 63,LN 33,FTy 31), EX(Var("x",F64),LN 32,LN 31,FTy 2),EX(Var("x",F64),LN 3,LN 0,F4)])) ; val reg'XContext_def = Def ("reg'XContext",Var("x",CTy"XContext"), CS(Var("x",CTy"XContext"), [(Rec(CTy"XContext", [Var("BadVPN2",FTy 27),Var("PTEBase",FTy 31),Var("R",FTy 2), Var("xcontext'rst",F4)]), CC[Var("PTEBase",FTy 31),Var("R",FTy 2),Var("BadVPN2",FTy 27), Var("xcontext'rst",F4)])])) ; val write'rec'XContext_def = Def ("write'rec'XContext",TP[AVar F64,Var("x",CTy"XContext")], Call("reg'XContext",F64,Var("x",CTy"XContext"))) ; val write'reg'XContext_def = Def ("write'reg'XContext",TP[AVar(CTy"XContext"),Var("x",F64)], Call("rec'XContext",CTy"XContext",Var("x",F64))) ; val rec'HWREna_def = Def ("rec'HWREna",Var("x",F32), Rec(CTy"HWREna", [Bop(Bit,Var("x",F32),LN 2),Bop(Bit,Var("x",F32),LN 3), Bop(Bit,Var("x",F32),LN 0),Bop(Bit,Var("x",F32),LN 29), CC[EX(Var("x",F32),LN 1,LN 1,F1), EX(Var("x",F32),LN 28,LN 4,FTy 25), EX(Var("x",F32),LN 31,LN 30,FTy 2)]])) ; val reg'HWREna_def = Def ("reg'HWREna",Var("x",CTy"HWREna"), CS(Var("x",CTy"HWREna"), [(Rec(CTy"HWREna", [bVar"CC",bVar"CCRes",bVar"CPUNum",bVar"UL", Var("hwrena'rst",FTy 28)]), CC[EX(Var("hwrena'rst",FTy 28),LN 1,LN 0,FTy 2), Mop(Cast F1,bVar"UL"), EX(Var("hwrena'rst",FTy 28),LN 26,LN 2,FTy 25), Mop(Cast F1,bVar"CCRes"),Mop(Cast F1,bVar"CC"), EX(Var("hwrena'rst",FTy 28),LN 27,LN 27,F1), Mop(Cast F1,bVar"CPUNum")])])) ; val write'rec'HWREna_def = Def ("write'rec'HWREna",TP[AVar F32,Var("x",CTy"HWREna")], Call("reg'HWREna",F32,Var("x",CTy"HWREna"))) ; val write'reg'HWREna_def = Def ("write'reg'HWREna",TP[AVar(CTy"HWREna"),Var("x",F32)], Call("rec'HWREna",CTy"HWREna",Var("x",F32))) ; val ConditionalBranch_def = Def ("ConditionalBranch",TP[bVar"b",Var("offset",F16)], Close (qVar"state", Rupd ("BranchTo", TP[qVar"state", Mop(Some, ITE(bVar"b", TP[LF, Bop(Add, Bop(Add,Dest("PC",F64,qVar"state"),LW(4,64)), Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2))], TP[LT,Bop(Add,Dest("PC",F64,qVar"state"),LW(4,64))]))]))) ; val ConditionalBranchLikely_def = Def ("ConditionalBranchLikely",TP[bVar"b",Var("offset",F16)], Close (qVar"state", ITB([(bVar"b", Rupd ("BranchTo", TP[qVar"state", Mop(Some, TP[LF, Bop(Add, Bop(Add,Dest("PC",F64,qVar"state"),LW(4,64)), Bop(Lsl,Mop(SE F64,Var("offset",F16)),LN 2))])])), (Mop(IsSome,Dest("BranchDelay",OTy(OTy F64),qVar"state")), Rupd ("BranchTo", TP[qVar"state", Mop(Some, TP[LT,Bop(Add,Dest("PC",F64,qVar"state"),LW(8,64))])]))], Rupd ("PC", TP[qVar"state",Bop(Add,Dest("PC",F64,qVar"state"),LW(4,64))])))) ; val NotWordValue_def = Def ("NotWordValue",Var("value",F64), Let(Var("top",FTy 33),EX(Var("value",F64),LN 63,LN 31,FTy 33), Bop(And,Mop(Not,EQ(Var("top",FTy 33),LW(0,33))), Mop(Not,EQ(Var("top",FTy 33),LW(8589934591,33)))))) ; val ExceptionCode_def = Def ("ExceptionCode",Var("ExceptionType",CTy"ExceptionType"), Close (qVar"state", Rupd ("CP0", TP[qVar"state", Rupd ("Cause", TP[Dest("CP0",CTy"CP0",qVar"state"), Rupd ("ExcCode", TP[Dest ("Cause",CTy"CauseRegister", Dest("CP0",CTy"CP0",qVar"state")), CS(Var("ExceptionType",CTy"ExceptionType"), [(LC("Int",CTy"ExceptionType"),LW(0,5)), (LC("Mod",CTy"ExceptionType"),LW(1,5)), (LC("TLBL",CTy"ExceptionType"),LW(2,5)), (LC("TLBS",CTy"ExceptionType"),LW(3,5)), (LC("AdEL",CTy"ExceptionType"),LW(4,5)), (LC("AdES",CTy"ExceptionType"),LW(5,5)), (LC("Sys",CTy"ExceptionType"),LW(8,5)), (LC("Bp",CTy"ExceptionType"),LW(9,5)), (LC("ResI",CTy"ExceptionType"),LW(10,5)), (LC("CpU",CTy"ExceptionType"),LW(11,5)), (LC("Ov",CTy"ExceptionType"),LW(12,5)), (LC("Tr",CTy"ExceptionType"),LW(13,5)), (LC("XTLBRefillL",CTy"ExceptionType"),LW(2,5)), (LC("XTLBRefillS",CTy"ExceptionType"),LW(3,5))])])])]))) ; val SignalException_def = Def ("SignalException",Var("ExceptionType",CTy"ExceptionType"), Close (qVar"state", Let(qVar"s", ITE(Mop(Not, Dest ("EXL",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), CS(Dest("BranchDelay",OTy(OTy F64),qVar"state"), [(Mop(Some,Mop(Some,AVar F64)), Let(qVar"s", Rupd ("CP0", TP[qVar"state", Rupd ("EPC", TP[Dest("CP0",CTy"CP0",qVar"state"), Bop(Sub,Dest("PC",F64,qVar"state"), LW(4,64))])]), Rupd ("CP0", TP[qVar"s", Rupd ("Cause", TP[Dest("CP0",CTy"CP0",qVar"s"), Rupd ("BD", TP[Dest ("Cause",CTy"CauseRegister", Dest("CP0",CTy"CP0",qVar"s")), LT])])]))), (AVar(OTy(OTy F64)), Let(qVar"s", Rupd ("CP0", TP[qVar"state", Rupd ("EPC", TP[Dest("CP0",CTy"CP0",qVar"state"), Dest("PC",F64,qVar"state")])]), Rupd ("CP0", TP[qVar"s", Rupd ("Cause", TP[Dest("CP0",CTy"CP0",qVar"s"), Rupd ("BD", TP[Dest ("Cause",CTy"CauseRegister", Dest("CP0",CTy"CP0",qVar"s")), LF])])])))]),qVar"state"), Let(qVar"s0", Apply (Call ("ExceptionCode",ATy(qTy,qTy), Var("ExceptionType",CTy"ExceptionType")),qVar"s"), Let(qVar"s0", Rupd ("CP0", TP[qVar"s0", Rupd ("Status", TP[Dest("CP0",CTy"CP0",qVar"s0"), Rupd ("EXL", TP[Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"s0")),LT])])]), Let(Var("v0",F64), ITE(Dest ("BEV",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"s0"))), LW(18446744072631616000,64), LW(18446744071562067968,64)), Rupd ("exceptionSignalled", TP[Rupd ("PC", TP[Rupd ("BranchDelay", TP[qVar"s0",LO(OTy F64)]), Bop(Sub, CC[EX(Var("v0",F64),LN 63,LN 30, FTy 34), Bop(Add, EX(Var("v0",F64),LN 29,LN 0, FTy 30), ITE(Bop(And, Bop(Or, EQ(Var("ExceptionType", CTy"ExceptionType"), LC("XTLBRefillL", CTy"ExceptionType")), EQ(Var("ExceptionType", CTy"ExceptionType"), LC("XTLBRefillS", CTy"ExceptionType"))), Mop(Not, Dest ("EXL",bTy, Dest ("Status", CTy"StatusRegister", Dest ("CP0", CTy"CP0", qVar"s"))))), LW(128,30),LW(384,30)))], LW(4,64))]),LT]))))))) ; val SignalCP1UnusableException_def = Def ("SignalCP1UnusableException",qVar"state", Apply (Call("SignalException",ATy(qTy,qTy),LC("CpU",CTy"ExceptionType")), Rupd ("CP0", TP[qVar"state", Rupd ("Cause", TP[Dest("CP0",CTy"CP0",qVar"state"), Rupd ("CE", TP[Dest ("Cause",CTy"CauseRegister", Dest("CP0",CTy"CP0",qVar"state")),LW(1,2)])])]))) ; val UserMode_def = Def ("UserMode",qVar"state", Bop(And, EQ(Dest ("KSU",FTy 2, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))),LW(2,2)), Mop(Not, Bop(Or, Dest ("EXL",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Dest ("ERL",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))))))) ; val SupervisorMode_def = Def ("SupervisorMode",qVar"state", Bop(And, EQ(Dest ("KSU",FTy 2, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))),LW(1,2)), Mop(Not, Bop(Or, Dest ("EXL",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Dest ("ERL",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))))))) ; val KernelMode_def = Def ("KernelMode",qVar"state", Bop(Or, EQ(Dest ("KSU",FTy 2, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))),LW(0,2)), Bop(Or, Dest ("EXL",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Dest ("ERL",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))))) ; val GPR_def = Def ("GPR",Var("n",FTy 5), Close (qVar"state", ITE(EQ(Var("n",FTy 5),LW(0,5)),LW(0,64), Apply(Dest("gpr",ATy(FTy 5,F64),qVar"state"),Var("n",FTy 5))))) ; val write'GPR_def = Def ("write'GPR",TP[Var("value",F64),Var("n",FTy 5)], Close (qVar"state", ITE(Mop(Not,EQ(Var("n",FTy 5),LW(0,5))), Rupd ("gpr", TP[qVar"state", Fupd (Dest("gpr",ATy(FTy 5,F64),qVar"state"),Var("n",FTy 5), Var("value",F64))]),qVar"state"))) ; val HI_def = Def ("HI",qVar"state", CS(Dest("hi",OTy F64,qVar"state"), [(Mop(Some,Var("v",F64)),TP[Var("v",F64),qVar"state"]), (LO F64, Apply (Call ("raise'exception",ATy(qTy,PTy(F64,qTy)), Call("UNPREDICTABLE",CTy"exception",LS"HI")),qVar"state"))])) ; val write'HI_def = Def ("write'HI",Var("value",F64), Close (qVar"state",Rupd("hi",TP[qVar"state",Mop(Some,Var("value",F64))]))) ; val LO_def = Def ("LO",qVar"state", CS(Dest("lo",OTy F64,qVar"state"), [(Mop(Some,Var("v",F64)),TP[Var("v",F64),qVar"state"]), (LO F64, Apply (Call ("raise'exception",ATy(qTy,PTy(F64,qTy)), Call("UNPREDICTABLE",CTy"exception",LS"LO")),qVar"state"))])) ; val write'LO_def = Def ("write'LO",Var("value",F64), Close (qVar"state",Rupd("lo",TP[qVar"state",Mop(Some,Var("value",F64))]))) ; val CPR_def = Def ("CPR",TP[nVar"n",Var("reg",FTy 5),Var("sel",FTy 3)], Close (qVar"state", CS(TP[nVar"n",Var("reg",FTy 5),Var("sel",FTy 3)], [(TP[LN 0,LW(8,5),LW(0,3)], Dest("BadVAddr",F64,Dest("CP0",CTy"CP0",qVar"state"))), (TP[LN 0,LW(9,5),LW(0,3)], Mop(Cast F64,Dest("Count",F32,Dest("CP0",CTy"CP0",qVar"state")))), (TP[LN 0,LW(11,5),LW(0,3)], Mop(Cast F64, Dest("Compare",F32,Dest("CP0",CTy"CP0",qVar"state")))), (TP[LN 0,LW(12,5),LW(0,3)], Mop(Cast F64, Call ("reg'StatusRegister",F32, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))))), (TP[LN 0,LW(13,5),LW(0,3)], Mop(Cast F64, Call ("reg'CauseRegister",F32, Dest ("Cause",CTy"CauseRegister", Dest("CP0",CTy"CP0",qVar"state"))))), (TP[LN 0,LW(14,5),LW(0,3)], Dest("EPC",F64,Dest("CP0",CTy"CP0",qVar"state"))), (TP[LN 0,LW(15,5),LW(0,3)], Mop(Cast F64,Dest("PRId",F32,Dest("CP0",CTy"CP0",qVar"state")))), (TP[LN 0,LW(16,5),LW(0,3)], Mop(Cast F64, Call ("reg'ConfigRegister",F32, Dest ("Config",CTy"ConfigRegister", Dest("CP0",CTy"CP0",qVar"state"))))), (TP[LN 0,LW(17,5),LW(0,3)], Dest("LLAddr",F64,Dest("CP0",CTy"CP0",qVar"state"))), (TP[LN 0,LW(23,5),LW(0,3)], Mop(Cast F64,Dest("Debug",F32,Dest("CP0",CTy"CP0",qVar"state")))), (TP[LN 0,LW(26,5),LW(0,3)], Mop(Cast F64, Dest("ErrCtl",F32,Dest("CP0",CTy"CP0",qVar"state")))), (TP[LN 0,LW(30,5),LW(0,3)], Dest("ErrorEPC",F64,Dest("CP0",CTy"CP0",qVar"state"))), (AVar(PTy(nTy,PTy(FTy 5,FTy 3))),LX F64)]))) ; val write'CPR_def = Def ("write'CPR", TP[Var("value",F64),nVar"n",Var("reg",FTy 5),Var("sel",FTy 3)], Close (qVar"state", CS(TP[nVar"n",Var("reg",FTy 5),Var("sel",FTy 3)], [(TP[LN 0,LW(9,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("Count", TP[Dest("CP0",CTy"CP0",qVar"state"), EX(Var("value",F64),LN 31,LN 0,F32)])])), (TP[LN 0,LW(11,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("Compare", TP[Dest("CP0",CTy"CP0",qVar"state"), EX(Var("value",F64),LN 31,LN 0,F32)])])), (TP[LN 0,LW(12,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("Status", TP[Dest("CP0",CTy"CP0",qVar"state"), Call ("write'reg'StatusRegister",CTy"StatusRegister", TP[Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")), EX(Var("value",F64),LN 31,LN 0,F32)])])])), (TP[LN 0,LW(13,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("Cause", TP[Dest("CP0",CTy"CP0",qVar"state"), Call ("write'reg'CauseRegister",CTy"CauseRegister", TP[Dest ("Cause",CTy"CauseRegister", Dest("CP0",CTy"CP0",qVar"state")), EX(Var("value",F64),LN 31,LN 0,F32)])])])), (TP[LN 0,LW(14,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("EPC", TP[Dest("CP0",CTy"CP0",qVar"state"),Var("value",F64)])])), (TP[LN 0,LW(16,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("Config", TP[Dest("CP0",CTy"CP0",qVar"state"), Call ("write'reg'ConfigRegister",CTy"ConfigRegister", TP[Dest ("Config",CTy"ConfigRegister", Dest("CP0",CTy"CP0",qVar"state")), EX(Var("value",F64),LN 31,LN 0,F32)])])])), (TP[LN 0,LW(23,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("Debug", TP[Dest("CP0",CTy"CP0",qVar"state"), EX(Var("value",F64),LN 31,LN 0,F32)])])), (TP[LN 0,LW(26,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("ErrCtl", TP[Dest("CP0",CTy"CP0",qVar"state"), EX(Var("value",F64),LN 31,LN 0,F32)])])), (TP[LN 0,LW(30,5),LW(0,3)], Rupd ("CP0", TP[qVar"state", Rupd ("ErrorEPC", TP[Dest("CP0",CTy"CP0",qVar"state"),Var("value",F64)])])), (AVar(PTy(nTy,PTy(FTy 5,FTy 3))),qVar"state")]))) ; val BYTE_def = Def0 ("BYTE",LW(0,3)) ; val HALFWORD_def = Def0 ("HALFWORD",LW(1,3)) ; val WORD_def = Def0 ("WORD",LW(3,3)) ; val DOUBLEWORD_def = Def0 ("DOUBLEWORD",LW(7,3)) ; val BigEndianMem_def = Def ("BigEndianMem",qVar"state", Dest ("BE",bTy, Dest("Config",CTy"ConfigRegister",Dest("CP0",CTy"CP0",qVar"state")))) ; val ReverseEndian_def = Def ("ReverseEndian",qVar"state", Mop(Cast F1, Bop(And, Dest ("RE",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Apply(Const("UserMode",ATy(qTy,bTy)),qVar"state")))) ; val BigEndianCPU_def = Def ("BigEndianCPU",qVar"state", Bop(BXor, Mop(Cast F1,Apply(Const("BigEndianMem",ATy(qTy,bTy)),qVar"state")), Apply(Const("ReverseEndian",ATy(qTy,F1)),qVar"state"))) ; val AddressTranslation_def = Def ("AddressTranslation",TP[Var("vAddr",F64),Var("LorS",CTy"LorS")], TP[Var("vAddr",F64),LW(2,3)]) ; val Aligned_def = Def ("Aligned",TP[Var("vAddr",F64),Var("MemType",FTy 3)], EQ(Bop(BAnd,Mop(Cast(FTy 3),Var("vAddr",F64)),Var("MemType",FTy 3)), LW(0,3))) ; val AdjustEndian_def = Def ("AdjustEndian",TP[Var("MemType",FTy 3),Var("pAddr",F64)], Close (qVar"state", CS(Var("MemType",FTy 3), [(LW(0,3), TP[Bop(BXor,Var("pAddr",F64), Mop(Cast F64, REP(Apply (Const("ReverseEndian",ATy(qTy,F1)), qVar"state"),LN 3,FTy 3))),qVar"state"]), (LW(1,3), TP[Bop(BXor,Var("pAddr",F64), Mop(Cast F64, CC[REP(Apply (Const("ReverseEndian",ATy(qTy,F1)), qVar"state"),LN 2,FTy 2),LW(0,1)])), qVar"state"]), (LW(3,3), TP[Bop(BXor,Var("pAddr",F64), Mop(Cast F64, CC[Apply (Const("ReverseEndian",ATy(qTy,F1)),qVar"state"), LW(0,2)])),qVar"state"]), (LW(7,3),TP[Var("pAddr",F64),qVar"state"]), (AVar(FTy 3), Apply (Call ("raise'exception",ATy(qTy,PTy(F64,qTy)), Call ("UNPREDICTABLE",CTy"exception",LS"bad access length")), qVar"state"))]))) ; val ReadData_def = Def ("ReadData",Var("a",F64), Close (qVar"state", Let(Var("a",F64),Bop(BAnd,Var("a",F64),Mop(BNot,LW(7,64))), ITE(Apply(Const("BigEndianMem",ATy(qTy,bTy)),qVar"state"), CC[Apply(Dest("MEM",ATy(F64,F8),qVar"state"),Var("a",F64)), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(1,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(2,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(3,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(4,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(5,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(6,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(7,64)))], CC[Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(7,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(6,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(5,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(4,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(3,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(2,64))), Apply (Dest("MEM",ATy(F64,F8),qVar"state"), Bop(Add,Var("a",F64),LW(1,64))), Apply(Dest("MEM",ATy(F64,F8),qVar"state"),Var("a",F64))])))) ; val LoadMemory_def = Def ("LoadMemory", TP[Var("MemType",FTy 3),Var("AccessLength",FTy 3),bVar"needAlign", Var("vAddr",F64),Var("link",OTy bTy)], Close (qVar"state", ITE(Bop(And,bVar"needAlign", Mop(Not, Call ("Aligned",bTy, TP[Var("vAddr",F64),Var("MemType",FTy 3)]))), TP[LX F64, Apply (Call ("SignalException",ATy(qTy,qTy), LC("AdEL",CTy"ExceptionType")), Rupd ("CP0", TP[qVar"state", Rupd ("BadVAddr", TP[Dest("CP0",CTy"CP0",qVar"state"), Var("vAddr",F64)])]))], Let(TP[Var("pAddr",F64),AVar(FTy 3)], Call ("AddressTranslation",PTy(F64,FTy 3), TP[Var("vAddr",F64),LC("LOAD",CTy"LorS")]), ITE(Dest("exceptionSignalled",bTy,qVar"state"), TP[LX F64,qVar"state"], Let(TP[Var("v",F64),qVar"s"], Apply (Call ("AdjustEndian",ATy(qTy,PTy(F64,qTy)), TP[Var("MemType",FTy 3),Var("pAddr",F64)]), qVar"state"), Let(qVar"s0", CS(Var("link",OTy bTy), [(Mop(Some,LT), Let(qVar"s", Rupd("LLbit",TP[qVar"s",Mop(Some,LT)]), Rupd ("CP0", TP[qVar"s", Rupd ("LLAddr", TP[Dest ("CP0",CTy"CP0",qVar"s"), Var("v",F64)])]))), (Mop(Some,LF), Rupd("LLbit",TP[qVar"s",LO bTy])), (LO bTy,qVar"s")]), TP[Apply (Call("ReadData",ATy(qTy,F64),Var("v",F64)), qVar"s0"),qVar"s0"]))))))) ; val loadByte_def = Def ("loadByte", TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),bVar"unsigned"], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(TP[Var("v0",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("BYTE",FTy 3),Const("BYTE",FTy 3),LF, Var("v",F64),Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(Var("v1",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), REP(Apply (Const("BigEndianCPU",ATy(qTy,F1)),qVar"s"), LN 3,FTy 3)), Let(Var("membyte",F8), EX(Var("v0",F64), Bop(Add,LN 7, Bop(Mul,LN 8, Mop(Cast nTy,Var("v1",FTy 3)))), Bop(Mul,LN 8,Mop(Cast nTy,Var("v1",FTy 3))), F8), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[ITE(bVar"unsigned", Mop(Cast F64,Var("membyte",F8)), Mop(SE F64,Var("membyte",F8))), Var("rt",FTy 5)]),qVar"s"))),qVar"s"))))) ; val loadHalf_def = Def ("loadHalf", TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),bVar"unsigned"], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(TP[Var("v0",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("HALFWORD",FTy 3),Const("HALFWORD",FTy 3),LT, Var("v",F64),Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(Var("v1",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[REP(Apply (Const("BigEndianCPU",ATy(qTy,F1)), qVar"s"),LN 2,FTy 2),LW(0,1)]), Let(Var("memhalf",F16), EX(Var("v0",F64), Bop(Add,LN 15, Bop(Mul,LN 8, Mop(Cast nTy,Var("v1",FTy 3)))), Bop(Mul,LN 8,Mop(Cast nTy,Var("v1",FTy 3))), F16), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[ITE(bVar"unsigned", Mop(Cast F64,Var("memhalf",F16)), Mop(SE F64,Var("memhalf",F16))), Var("rt",FTy 5)]),qVar"s"))),qVar"s"))))) ; val loadWord_def = Def ("loadWord", TP[bVar"link",Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16), bVar"unsigned"], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(TP[Var("v0",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, Var("v",F64),Mop(Some,bVar"link")]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(Var("v1",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[Apply (Const("BigEndianCPU",ATy(qTy,F1)),qVar"s"), LW(0,2)]), Let(Var("memword",F32), EX(Var("v0",F64), Bop(Add,LN 31, Bop(Mul,LN 8, Mop(Cast nTy,Var("v1",FTy 3)))), Bop(Mul,LN 8,Mop(Cast nTy,Var("v1",FTy 3))), F32), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[ITE(bVar"unsigned", Mop(Cast F64,Var("memword",F32)), Mop(SE F64,Var("memword",F32))), Var("rt",FTy 5)]),qVar"s"))),qVar"s"))))) ; val loadDoubleword_def = Def ("loadDoubleword", TP[bVar"link",Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("DOUBLEWORD",FTy 3),Const("DOUBLEWORD",FTy 3),LT, Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")),Mop(Some,bVar"link")]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s"),qVar"s")))) ; val Fetch_def = Def ("Fetch",qVar"state", Let(Var("v",F64),Dest("PC",F64,qVar"state"), Let(TP[Var("v0",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, Var("v",F64),LO bTy]),qVar"state"), ITE(Dest("exceptionSignalled",bTy,qVar"s"),TP[LO F32,qVar"s"], Let(Var("v1",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"s"), LW(0,2)]), TP[Mop(Some, EX(Var("v0",F64), Bop(Add,LN 31, Bop(Mul,LN 8, Mop(Cast nTy,Var("v1",FTy 3)))), Bop(Mul,LN 8,Mop(Cast nTy,Var("v1",FTy 3))), F32)),qVar"s"]))))) ; val WriteData_def = Def ("WriteData",TP[Var("a",F64),Var("MemElem",F64),nVar"l",nVar"h"], Close (qVar"state", Let(Var("a",F64),Bop(BAnd,Var("a",F64),Mop(BNot,LW(7,64))), ITE(Apply(Const("BigEndianMem",ATy(qTy,bTy)),qVar"state"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 7),Bop(Le,LN 7,nVar"h")), Rupd ("MEM", TP[qVar"state", Fupd (Dest("MEM",ATy(F64,F8),qVar"state"), Var("a",F64), EX(Var("MemElem",F64),LN 63,LN 56,F8))]), qVar"state"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 6), Bop(Le,LN 6,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest("MEM",ATy(F64,F8),qVar"s"), Bop(Add,Var("a",F64),LW(1,64)), EX(Var("MemElem",F64),LN 55,LN 48,F8))]), qVar"s"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 5), Bop(Le,LN 5,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest("MEM",ATy(F64,F8),qVar"s"), Bop(Add,Var("a",F64),LW(2,64)), EX(Var("MemElem",F64),LN 47,LN 40, F8))]),qVar"s"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 4), Bop(Le,LN 4,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest("MEM",ATy(F64,F8),qVar"s"), Bop(Add,Var("a",F64),LW(3,64)), EX(Var("MemElem",F64),LN 39, LN 32,F8))]),qVar"s"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 3), Bop(Le,LN 3,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest ("MEM",ATy(F64,F8), qVar"s"), Bop(Add,Var("a",F64), LW(4,64)), EX(Var("MemElem",F64), LN 31,LN 24,F8))]), qVar"s"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 2), Bop(Le,LN 2,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest ("MEM",ATy(F64,F8), qVar"s"), Bop(Add,Var("a",F64), LW(5,64)), EX(Var("MemElem",F64), LN 23,LN 16,F8))]), qVar"s"), Let(qVar"s", ITE(Bop(And, Bop(Le,nVar"l",LN 1), Bop(Le,LN 1,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest ("MEM", ATy(F64,F8), qVar"s"), Bop(Add, Var("a",F64), LW(6,64)), EX(Var("MemElem", F64),LN 15, LN 8,F8))]), qVar"s"), ITE(EQ(nVar"l",LN 0), Rupd ("MEM", TP[qVar"s", Fupd (Dest ("MEM", ATy(F64,F8), qVar"s"), Bop(Add, Var("a",F64), LW(7,64)), EX(Var("MemElem", F64),LN 7, LN 0,F8))]), qVar"s")))))))), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 7),Bop(Le,LN 7,nVar"h")), Rupd ("MEM", TP[qVar"state", Fupd (Dest("MEM",ATy(F64,F8),qVar"state"), Var("a",F64), EX(Var("MemElem",F64),LN 7,LN 0,F8))]), qVar"state"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 6), Bop(Le,LN 6,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest("MEM",ATy(F64,F8),qVar"s"), Bop(Add,Var("a",F64),LW(1,64)), EX(Var("MemElem",F64),LN 15,LN 8,F8))]), qVar"s"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 5), Bop(Le,LN 5,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest("MEM",ATy(F64,F8),qVar"s"), Bop(Add,Var("a",F64),LW(2,64)), EX(Var("MemElem",F64),LN 23,LN 16, F8))]),qVar"s"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 4), Bop(Le,LN 4,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest("MEM",ATy(F64,F8),qVar"s"), Bop(Add,Var("a",F64),LW(3,64)), EX(Var("MemElem",F64),LN 31, LN 24,F8))]),qVar"s"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 3), Bop(Le,LN 3,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest ("MEM",ATy(F64,F8), qVar"s"), Bop(Add,Var("a",F64), LW(4,64)), EX(Var("MemElem",F64), LN 39,LN 32,F8))]), qVar"s"), Let(qVar"s", ITE(Bop(And,Bop(Le,nVar"l",LN 2), Bop(Le,LN 2,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest ("MEM",ATy(F64,F8), qVar"s"), Bop(Add,Var("a",F64), LW(5,64)), EX(Var("MemElem",F64), LN 47,LN 40,F8))]), qVar"s"), Let(qVar"s", ITE(Bop(And, Bop(Le,nVar"l",LN 1), Bop(Le,LN 1,nVar"h")), Rupd ("MEM", TP[qVar"s", Fupd (Dest ("MEM", ATy(F64,F8), qVar"s"), Bop(Add, Var("a",F64), LW(6,64)), EX(Var("MemElem", F64),LN 55, LN 48,F8))]), qVar"s"), ITE(EQ(nVar"l",LN 0), Rupd ("MEM", TP[qVar"s", Fupd (Dest ("MEM", ATy(F64,F8), qVar"s"), Bop(Add, Var("a",F64), LW(7,64)), EX(Var("MemElem", F64),LN 63, LN 56,F8))]), qVar"s")))))))))))) ; val StoreMemory_def = Def ("StoreMemory", TP[Var("MemType",FTy 3),Var("AccessLength",FTy 3),bVar"needAlign", Var("MemElem",F64),Var("vAddr",F64),bVar"cond"], Close (qVar"state", ITE(Bop(And,bVar"needAlign", Mop(Not, Call ("Aligned",bTy, TP[Var("vAddr",F64),Var("MemType",FTy 3)]))), TP[LF, Apply (Call ("SignalException",ATy(qTy,qTy), LC("AdES",CTy"ExceptionType")), Rupd ("CP0", TP[qVar"state", Rupd ("BadVAddr", TP[Dest("CP0",CTy"CP0",qVar"state"), Var("vAddr",F64)])]))], Let(TP[Var("pAddr",F64),AVar(FTy 3)], Call ("AddressTranslation",PTy(F64,FTy 3), TP[Var("vAddr",F64),LC("STORE",CTy"LorS")]), ITE(Dest("exceptionSignalled",bTy,qVar"state"), TP[LT,qVar"state"], Let(TP[Var("v",F64),qVar"s"], Apply (Call ("AdjustEndian",ATy(qTy,PTy(F64,qTy)), TP[Var("MemType",FTy 3),Var("pAddr",F64)]), qVar"state"), Let(TP[bVar"v0",qVar"s"], ITE(Mop(Not,bVar"cond"),TP[LT,qVar"s"], CS(Dest("LLbit",OTy bTy,qVar"s"), [(LO bTy, Apply (Call ("raise'exception", ATy(qTy,PTy(bTy,qTy)), Call ("UNPREDICTABLE", CTy"exception", LS "conditional store: LLbit not set")), qVar"s")), (Mop(Some,LF),TP[LF,qVar"s"]), (Mop(Some,LT), ITE(EQ(Dest ("LLAddr",F64, Dest("CP0",CTy"CP0",qVar"s")), Var("v",F64)),TP[LT,qVar"s"], Apply (Call ("raise'exception", ATy(qTy,PTy(bTy,qTy)), Call ("UNPREDICTABLE", CTy"exception", LS "conditional store: address doesn't match previous LL address")), qVar"s")))])), TP[bVar"v0", Rupd ("LLbit", TP[ITE(bVar"v0", Let(nVar"b", Bop(Add, Mop(Cast nTy, Var("AccessLength", FTy 3)),LN 1), Let(nVar"l", Bop(Sub,LN 8, Bop(Add,nVar"b", Mop(Cast nTy, EX(Var("vAddr", F64), LN 2,LN 0, FTy 3)))), Apply (Call ("WriteData", ATy(qTy,qTy), TP[Var("v",F64), Var("MemElem",F64), nVar"l", Bop(Sub, Bop(Add, nVar"l", nVar"b"), LN 1)]), qVar"s"))),qVar"s"), LO bTy])]))))))) ; val storeWord_def = Def ("storeWord", TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),bVar"cond"], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, Bop(Lsl, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"), Bop(Mul,LN 8, Mop(Cast nTy, Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[Apply (Const("BigEndianCPU",ATy(qTy,F1)), qVar"state"),LW(0,2)])))), Var("v",F64),bVar"cond"]),qVar"state")))) ; val storeDoubleword_def = Def ("storeDoubleword", TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),bVar"cond"], Close (qVar"state", Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("DOUBLEWORD",FTy 3),Const("DOUBLEWORD",FTy 3),LT, Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")),bVar"cond"]),qVar"state"))) ; val rec'FCSR_def = Def ("rec'FCSR",Var("x",F32), Rec(CTy"FCSR", [Bop(Bit,Var("x",F32),LN 19),Bop(Bit,Var("x",F32),LN 17), Bop(Bit,Var("x",F32),LN 12),Bop(Bit,Var("x",F32),LN 14), Bop(Bit,Var("x",F32),LN 13),Bop(Bit,Var("x",F32),LN 16), Bop(Bit,Var("x",F32),LN 15),Bop(Bit,Var("x",F32),LN 7), Bop(Bit,Var("x",F32),LN 9),Bop(Bit,Var("x",F32),LN 8), Bop(Bit,Var("x",F32),LN 11),Bop(Bit,Var("x",F32),LN 10), CC[EX(Var("x",F32),LN 31,LN 25,FTy 7), EX(Var("x",F32),LN 23,LN 23,F1)],Bop(Bit,Var("x",F32),LN 24), Bop(Bit,Var("x",F32),LN 2),Bop(Bit,Var("x",F32),LN 4), Bop(Bit,Var("x",F32),LN 3),Bop(Bit,Var("x",F32),LN 6), Bop(Bit,Var("x",F32),LN 5),Bop(Bit,Var("x",F32),LN 18), EX(Var("x",F32),LN 1,LN 0,FTy 2), EX(Var("x",F32),LN 22,LN 20,FTy 3)])) ; val reg'FCSR_def = Def ("reg'FCSR",Var("x",CTy"FCSR"), CS(Var("x",CTy"FCSR"), [(Rec(CTy"FCSR", [bVar"ABS2008",bVar"CauseE",bVar"CauseI",bVar"CauseO", bVar"CauseU",bVar"CauseV",bVar"CauseZ",bVar"EnableI", bVar"EnableO",bVar"EnableU",bVar"EnableV",bVar"EnableZ", Var("FCC",F8),bVar"FS",bVar"FlagI",bVar"FlagO",bVar"FlagU", bVar"FlagV",bVar"FlagZ",bVar"NAN2008",Var("RM",FTy 2), Var("fcsr'rst",FTy 3)]), CC[EX(Var("FCC",F8),LN 7,LN 1,FTy 7),Mop(Cast F1,bVar"FS"), EX(Var("FCC",F8),LN 0,LN 0,F1),Var("fcsr'rst",FTy 3), Mop(Cast F1,bVar"ABS2008"),Mop(Cast F1,bVar"NAN2008"), Mop(Cast F1,bVar"CauseE"),Mop(Cast F1,bVar"CauseV"), Mop(Cast F1,bVar"CauseZ"),Mop(Cast F1,bVar"CauseO"), Mop(Cast F1,bVar"CauseU"),Mop(Cast F1,bVar"CauseI"), Mop(Cast F1,bVar"EnableV"),Mop(Cast F1,bVar"EnableZ"), Mop(Cast F1,bVar"EnableO"),Mop(Cast F1,bVar"EnableU"), Mop(Cast F1,bVar"EnableI"),Mop(Cast F1,bVar"FlagV"), Mop(Cast F1,bVar"FlagZ"),Mop(Cast F1,bVar"FlagO"), Mop(Cast F1,bVar"FlagU"),Mop(Cast F1,bVar"FlagI"), Var("RM",FTy 2)])])) ; val write'rec'FCSR_def = Def ("write'rec'FCSR",TP[AVar F32,Var("x",CTy"FCSR")], Call("reg'FCSR",F32,Var("x",CTy"FCSR"))) ; val write'reg'FCSR_def = Def ("write'reg'FCSR",TP[AVar(CTy"FCSR"),Var("x",F32)], Call("rec'FCSR",CTy"FCSR",Var("x",F32))) ; val rec'FIR_def = Def ("rec'FIR",Var("x",F32), Rec(CTy"FIR", [Bop(Bit,Var("x",F32),LN 19),Bop(Bit,Var("x",F32),LN 17), Bop(Bit,Var("x",F32),LN 22),Bop(Bit,Var("x",F32),LN 21), Bop(Bit,Var("x",F32),LN 18),EX(Var("x",F32),LN 15,LN 8,F8), EX(Var("x",F32),LN 7,LN 0,F8),Bop(Bit,Var("x",F32),LN 16), Bop(Bit,Var("x",F32),LN 20),EX(Var("x",F32),LN 31,LN 23,FTy 9)])) ; val reg'FIR_def = Def ("reg'FIR",Var("x",CTy"FIR"), CS(Var("x",CTy"FIR"), [(Rec(CTy"FIR", [bVar"ASE",bVar"D",bVar"F64",bVar"L",bVar"PS",Var("PrID",F8), Var("Rev",F8),bVar"S",bVar"W",Var("fir'rst",FTy 9)]), CC[Var("fir'rst",FTy 9),Mop(Cast F1,bVar"F64"), Mop(Cast F1,bVar"L"),Mop(Cast F1,bVar"W"), Mop(Cast F1,bVar"ASE"),Mop(Cast F1,bVar"PS"), Mop(Cast F1,bVar"D"),Mop(Cast F1,bVar"S"),Var("PrID",F8), Var("Rev",F8)])])) ; val write'rec'FIR_def = Def ("write'rec'FIR",TP[AVar F32,Var("x",CTy"FIR")], Call("reg'FIR",F32,Var("x",CTy"FIR"))) ; val write'reg'FIR_def = Def ("write'reg'FIR",TP[AVar(CTy"FIR"),Var("x",F32)], Call("rec'FIR",CTy"FIR",Var("x",F32))) ; val IntToWordMIPS_def = Def ("IntToWordMIPS",iVar"v", ITB([(Bop(Gt,iVar"v",LI 2147483647),LW(2147483647,32)), (Bop(Lt,iVar"v",Mop(Neg,LI 2147483648)),LW(2147483647,32))], Mop(Cast F32,iVar"v"))) ; val IntToDWordMIPS_def = Def ("IntToDWordMIPS",iVar"v", ITB([(Bop(Gt,iVar"v",LI 9223372036854775807),LW(9223372036854775807,64)), (Bop(Lt,iVar"v",Mop(Neg,LI 9223372036854775808)), LW(9223372036854775807,64))],Mop(Cast F64,iVar"v"))) ; val PostOpF32_def = Def ("PostOpF32",Var("v",F32), Close (qVar"state", ITE(Bop(And,Dest("FS",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(FPIsSubnormal 32,Var("v",F32))),LW(0,32),Var("v",F32)))) ; val PostOpF64_def = Def ("PostOpF64",Var("v",F64), Close (qVar"state", ITE(Bop(And,Dest("FS",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(FPIsSubnormal 64,Var("v",F64))),LW(0,64),Var("v",F64)))) ; val FP32_Abs1985_def = Def ("FP32_Abs1985",Var("a",F32), ITE(Mop(FPIsNan 32,Var("a",F32)),Var("a",F32), Mop(FPAbs 32,Var("a",F32)))) ; val FP32_Neg1985_def = Def ("FP32_Neg1985",Var("a",F32), ITE(Mop(FPIsNan 32,Var("a",F32)),Var("a",F32), Mop(FPNeg 32,Var("a",F32)))) ; val FP64_Abs1985_def = Def ("FP64_Abs1985",Var("a",F64), ITE(Mop(FPIsNan 64,Var("a",F64)),Var("a",F64), Mop(FPAbs 64,Var("a",F64)))) ; val FP64_Neg1985_def = Def ("FP64_Neg1985",Var("a",F64), ITE(Mop(FPIsNan 64,Var("a",F64)),Var("a",F64), Mop(FPNeg 64,Var("a",F64)))) ; val FP64_Unordered_def = Def ("FP64_Unordered",TP[Var("a",F64),Var("b",F64)], Bop(Or,Mop(FPIsNan 64,Var("a",F64)),Mop(FPIsNan 64,Var("b",F64)))) ; val FP32_Unordered_def = Def ("FP32_Unordered",TP[Var("a",F32),Var("b",F32)], Bop(Or,Mop(FPIsNan 32,Var("a",F32)),Mop(FPIsNan 32,Var("b",F32)))) ; val Rounding_Mode_def = Def ("Rounding_Mode",qVar"state", CS(Dest("RM",FTy 2,Dest("fcsr",CTy"FCSR",qVar"state")), [(LW(0,2),binary_ieeeSyntax.roundTiesToEven_tm), (LW(1,2),binary_ieeeSyntax.roundTowardZero_tm), (LW(2,2),binary_ieeeSyntax.roundTowardPositive_tm), (LW(3,2),binary_ieeeSyntax.roundTowardNegative_tm)])) ; val dfn'ABS_D_def = Def ("dfn'ABS_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Dest("ABS2008",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Mop(FPAbs 64, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))))]))], Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Call ("FP64_Abs1985",F64, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))),qVar"state"))])))) ; val dfn'ABS_S_def = Def ("dfn'ABS_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Dest("ABS2008",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Mop(SE F64, Mop(FPAbs 32, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32))))]))], Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Call ("FP32_Abs1985",F32, EX(Apply (Dest ("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32))), qVar"state")))])))) ; val dfn'ADD_D_def = Def ("dfn'ADD_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPAdd 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("ft",FTy 5))])),qVar"state"))])))) ; val dfn'ADD_S_def = Def ("dfn'ADD_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPAdd 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("fs",FTy 5)), LN 31,LN 0,F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("ft",FTy 5)), LN 31,LN 0,F32)])),qVar"state")))])))) ; val dfn'BC1F_def = Def ("dfn'BC1F",TP[Var("i",F16),Var("cc",FTy 3)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Mop(Not, Bop(Bit, Dest ("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3)))),Var("i",F16)]), qVar"state")))) ; val dfn'BC1FL_def = Def ("dfn'BC1FL",TP[Var("i",F16),Var("cc",FTy 3)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Mop(Not, Bop(Bit, Dest ("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3)))),Var("i",F16)]), qVar"state")))) ; val dfn'BC1T_def = Def ("dfn'BC1T",TP[Var("i",F16),Var("cc",FTy 3)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Bop(Bit, Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3))),Var("i",F16)]), qVar"state")))) ; val dfn'BC1TL_def = Def ("dfn'BC1TL",TP[Var("i",F16),Var("cc",FTy 3)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Bop(Bit, Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3))),Var("i",F16)]), qVar"state")))) ; val dfn'C_cond_D_def = Def ("dfn'C_cond_D", TP[Var("fs",FTy 5),Var("ft",FTy 5),Var("cnd",FTy 3),Var("cc",FTy 3)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(nVar"i",Mop(Cast nTy,Var("cc",FTy 3)), Let(TP[Var("v",CTy"FCSR"),qVar"s"], Let(TP[Var("v",PTy(CTy"FCSR",F8)),qVar"s"], Let(TP[bVar"v0",qVar"s0"], CS(Var("cnd",FTy 3), [(LW(0,3),TP[LF,qVar"state"]), (LW(1,3), TP[Call ("FP64_Unordered",bTy, TP[Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("ft",FTy 5))]), qVar"state"]), (LW(2,3), TP[Mop(FPEq 64, TP[Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))]),qVar"state"]), (LW(3,3), TP[Bop(Or, Mop(FPEq 64, TP[Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))]), Call ("FP64_Unordered",bTy, TP[Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))])), qVar"state"]), (LW(4,3), TP[Mop(FPLt 64, TP[Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))]),qVar"state"]), (LW(5,3), TP[Mop(Not, Mop(FPGe 64, TP[Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))])), qVar"state"]), (LW(6,3), TP[Mop(FPLe 64, TP[Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))]),qVar"state"]), (LW(7,3), TP[Mop(Not, Mop(FPGt 64, TP[Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))])), qVar"state"])]), TP[TP[Dest("fcsr",CTy"FCSR",qVar"state"), BFI(nVar"i",nVar"i",Mop(Cast F1,bVar"v0"), Dest ("FCC",F8, Dest("fcsr",CTy"FCSR",qVar"state")))], qVar"s0"]), TP[Rupd("FCC",Var("v",PTy(CTy"FCSR",F8))),qVar"s"]), Rupd("fcsr",TP[qVar"s",Var("v",CTy"FCSR")])))))) ; val dfn'C_cond_S_def = Def ("dfn'C_cond_S", TP[Var("fs",FTy 5),Var("ft",FTy 5),Var("cnd",FTy 3),Var("cc",FTy 3)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(nVar"i",Mop(Cast nTy,Var("cc",FTy 3)), Let(TP[Var("v",CTy"FCSR"),qVar"s"], Let(TP[Var("v",PTy(CTy"FCSR",F8)),qVar"s"], Let(TP[bVar"v0",qVar"s0"], CS(Var("cnd",FTy 3), [(LW(0,3),TP[LF,qVar"state"]), (LW(1,3), TP[Call ("FP32_Unordered",bTy, TP[EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)),LN 31,LN 0, F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)),LN 31,LN 0, F32)]),qVar"state"]), (LW(2,3), TP[Mop(FPEq 32, TP[EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)),LN 31, LN 0,F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)),LN 31, LN 0,F32)]),qVar"state"]), (LW(3,3), TP[Bop(Or, Mop(FPEq 32, TP[EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)),LN 31, LN 0,F32), EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)),LN 31, LN 0,F32)]), Call ("FP32_Unordered",bTy, TP[EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)),LN 31, LN 0,F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)),LN 31, LN 0,F32)])),qVar"state"]), (LW(4,3), TP[Mop(FPLt 32, TP[EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)),LN 31, LN 0,F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)),LN 31, LN 0,F32)]),qVar"state"]), (LW(5,3), TP[Mop(Not, Mop(FPGe 32, TP[EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)),LN 31, LN 0,F32), EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)),LN 31, LN 0,F32)])),qVar"state"]), (LW(6,3), TP[Mop(FPLe 32, TP[EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)),LN 31, LN 0,F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)),LN 31, LN 0,F32)]),qVar"state"]), (LW(7,3), TP[Mop(Not, Mop(FPGt 32, TP[EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)),LN 31, LN 0,F32), EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)),LN 31, LN 0,F32)])),qVar"state"])]), TP[TP[Dest("fcsr",CTy"FCSR",qVar"state"), BFI(nVar"i",nVar"i",Mop(Cast F1,bVar"v0"), Dest ("FCC",F8, Dest("fcsr",CTy"FCSR",qVar"state")))], qVar"s0"]), TP[Rupd("FCC",Var("v",PTy(CTy"FCSR",F8))),qVar"s"]), Rupd("fcsr",TP[qVar"s",Var("v",CTy"FCSR")])))))) ; val dfn'CEIL_L_D_def = Def ("dfn'CEIL_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[binary_ieeeSyntax.roundTowardPositive_tm, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'CEIL_L_S_def = Def ("dfn'CEIL_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[binary_ieeeSyntax.roundTowardPositive_tm, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'CEIL_W_D_def = Def ("dfn'CEIL_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[binary_ieeeSyntax.roundTowardPositive_tm, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'CEIL_W_S_def = Def ("dfn'CEIL_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[binary_ieeeSyntax.roundTowardPositive_tm, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'CVT_D_L_def = Def ("dfn'CVT_D_L",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(FPFromInt 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Mop(Cast iTy, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))]))])))) ; val dfn'CVT_D_S_def = Def ("dfn'CVT_D_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(FP32To64, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)))])))) ; val dfn'CVT_D_W_def = Def ("dfn'CVT_D_W",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(qVar"s", ITE(Call ("NotWordValue",bTy, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"CVT.D.W: NotWordValue")),qVar"state")), qVar"state"), Rupd ("FGR", TP[qVar"s", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"s"),Var("fd",FTy 5), Mop(FPFromInt 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"s"), Mop(Cast iTy, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"s"), Var("fs",FTy 5)),LN 31,LN 0,F32))]))]))))) ; val dfn'CVT_L_D_def = Def ("dfn'CVT_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'CVT_L_S_def = Def ("dfn'CVT_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'CVT_S_D_def = Def ("dfn'CVT_S_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Mop(FP64To32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))])))])))) ; val dfn'CVT_S_L_def = Def ("dfn'CVT_S_L",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Mop(FPFromInt 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Mop(Cast iTy, Apply (Dest ("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))])))])))) ; val dfn'CVT_S_W_def = Def ("dfn'CVT_S_W",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(qVar"s", ITE(Call ("NotWordValue",bTy, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"CVT.S.W: NotWordValue")),qVar"state")), qVar"state"), Rupd ("FGR", TP[qVar"s", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"s"),Var("fd",FTy 5), Mop(SE F64, Mop(FPFromInt 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"s"), Mop(Cast iTy, EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"s"),Var("fs",FTy 5)), LN 31,LN 0,F32))])))]))))) ; val dfn'CVT_W_D_def = Def ("dfn'CVT_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'CVT_W_S_def = Def ("dfn'CVT_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'DIV_D_def = Def ("dfn'DIV_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPDiv 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("ft",FTy 5))])),qVar"state"))])))) ; val dfn'DIV_S_def = Def ("dfn'DIV_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPDiv 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("fs",FTy 5)), LN 31,LN 0,F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("ft",FTy 5)), LN 31,LN 0,F32)])),qVar"state")))])))) ; val dfn'FLOOR_L_D_def = Def ("dfn'FLOOR_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[binary_ieeeSyntax.roundTowardNegative_tm, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'FLOOR_L_S_def = Def ("dfn'FLOOR_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[binary_ieeeSyntax.roundTowardNegative_tm, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'FLOOR_W_D_def = Def ("dfn'FLOOR_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[binary_ieeeSyntax.roundTowardNegative_tm, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'FLOOR_W_S_def = Def ("dfn'FLOOR_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[binary_ieeeSyntax.roundTowardNegative_tm, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'LDC1_def = Def ("dfn'LDC1",TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(TP[Var("v",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("DOUBLEWORD",FTy 3), Const("DOUBLEWORD",FTy 3),LT, Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")),Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Rupd ("FGR", TP[qVar"s", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"s"), Var("ft",FTy 5),Var("v",F64))]),qVar"s"))))) ; val dfn'LDXC1_def = Def ("dfn'LDXC1",TP[Var("fd",FTy 5),Var("index",FTy 5),Var("base",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(TP[Var("v",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("DOUBLEWORD",FTy 3), Const("DOUBLEWORD",FTy 3),LT, Bop(Add, Apply (Call("GPR",ATy(qTy,F64),Var("index",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")),Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Rupd ("FGR", TP[qVar"s", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"s"), Var("fd",FTy 5),Var("v",F64))]),qVar"s"))))) ; val dfn'LWC1_def = Def ("dfn'LWC1",TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")), Let(TP[Var("v0",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, Var("v",F64),Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(Var("v1",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[Apply (Const("BigEndianCPU",ATy(qTy,F1)), qVar"s"),LW(0,2)]), Rupd ("FGR", TP[qVar"s", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"s"), Var("ft",FTy 5), Mop(SE F64, EX(Var("v0",F64), Bop(Add,LN 31, Bop(Mul,LN 8, Mop(Cast nTy, Var("v1",FTy 3)))), Bop(Mul,LN 8, Mop(Cast nTy,Var("v1",FTy 3))), F32)))])),qVar"s")))))) ; val dfn'LWXC1_def = Def ("dfn'LWXC1",TP[Var("ft",FTy 5),Var("index",FTy 5),Var("base",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(Var("v",F64), Bop(Add, Apply (Call("GPR",ATy(qTy,F64),Var("index",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")), Let(TP[Var("v0",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, Var("v",F64),Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(Var("v1",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[Apply (Const("BigEndianCPU",ATy(qTy,F1)), qVar"s"),LW(0,2)]), Rupd ("FGR", TP[qVar"s", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"s"), Var("ft",FTy 5), Mop(SE F64, EX(Var("v0",F64), Bop(Add,LN 31, Bop(Mul,LN 8, Mop(Cast nTy, Var("v1",FTy 3)))), Bop(Mul,LN 8, Mop(Cast nTy,Var("v1",FTy 3))), F32)))])),qVar"s")))))) ; val dfn'MADD_D_def = Def ("dfn'MADD_D", TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPAdd 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPMul 64, TP[Apply (Const ("Rounding_Mode", ATy(qTy,rTy)), qVar"state"), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))])), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fr",FTy 5))])),qVar"state"))])))) ; val dfn'MADD_S_def = Def ("dfn'MADD_S", TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPAdd 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPMul 32, TP[Apply (Const ("Rounding_Mode", ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), LN 31,LN 0,F32), EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)), LN 31,LN 0,F32)])), qVar"state"), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("fr",FTy 5)), LN 31,LN 0,F32)])),qVar"state")))])))) ; val dfn'MOV_D_def = Def ("dfn'MOV_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))])))) ; val dfn'MOV_S_def = Def ("dfn'MOV_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)))])))) ; val dfn'MOVF_def = Def ("dfn'MOVF",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("cc",FTy 3)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Mop(Not, Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3)))), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"),Var("rd",FTy 5)]),qVar"state"))], qVar"state"))) ; val dfn'MOVF_D_def = Def ("dfn'MOVF_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Mop(Not, Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3)))), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))]))],qVar"state"))) ; val dfn'MOVF_S_def = Def ("dfn'MOVF_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Mop(Not, Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3)))), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Mop(SE F64, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)))]))], qVar"state"))) ; val dfn'MOVN_D_def = Def ("dfn'MOVN_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Mop(Not, EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), LW(0,64))), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))]))],qVar"state"))) ; val dfn'MOVN_S_def = Def ("dfn'MOVN_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Mop(Not, EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), LW(0,64))), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Mop(SE F64, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)))]))], qVar"state"))) ; val dfn'MOVT_def = Def ("dfn'MOVT",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("cc",FTy 3)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3))), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"),Var("rd",FTy 5)]),qVar"state"))], qVar"state"))) ; val dfn'MOVT_D_def = Def ("dfn'MOVT_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3))), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))]))],qVar"state"))) ; val dfn'MOVT_S_def = Def ("dfn'MOVT_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Bop(Bit,Dest("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state")), Mop(Cast nTy,Var("cc",FTy 3))), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Mop(SE F64, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)))]))], qVar"state"))) ; val dfn'MOVZ_D_def = Def ("dfn'MOVZ_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), LW(0,64)), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))]))],qVar"state"))) ; val dfn'MOVZ_S_def = Def ("dfn'MOVZ_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), LW(0,64)), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Mop(SE F64, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)))]))], qVar"state"))) ; val dfn'MSUB_D_def = Def ("dfn'MSUB_D", TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPSub 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPMul 64, TP[Apply (Const ("Rounding_Mode", ATy(qTy,rTy)), qVar"state"), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5))])), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fr",FTy 5))])),qVar"state"))])))) ; val dfn'MSUB_S_def = Def ("dfn'MSUB_S", TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPSub 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPMul 32, TP[Apply (Const ("Rounding_Mode", ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("fs",FTy 5)), LN 31,LN 0,F32), EX(Apply (Dest ("FGR", ATy(FTy 5,F64), qVar"state"), Var("ft",FTy 5)), LN 31,LN 0,F32)])), qVar"state"), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("fr",FTy 5)), LN 31,LN 0,F32)])),qVar"state")))])))) ; val dfn'MUL_D_def = Def ("dfn'MUL_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPMul 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("ft",FTy 5))])),qVar"state"))])))) ; val dfn'MUL_S_def = Def ("dfn'MUL_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPMul 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("fs",FTy 5)), LN 31,LN 0,F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("ft",FTy 5)), LN 31,LN 0,F32)])),qVar"state")))])))) ; val dfn'NEG_D_def = Def ("dfn'NEG_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Dest("ABS2008",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Mop(FPNeg 64, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))))]))], Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Call ("FP64_Neg1985",F64, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)))),qVar"state"))])))) ; val dfn'NEG_S_def = Def ("dfn'NEG_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITB([(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)), qVar"state")), (Dest("ABS2008",bTy,Dest("fcsr",CTy"FCSR",qVar"state")), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fd",FTy 5), Mop(SE F64, Mop(FPNeg 32, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32))))]))], Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Call ("FP32_Neg1985",F32, EX(Apply (Dest ("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32))), qVar"state")))])))) ; val dfn'ROUND_L_D_def = Def ("dfn'ROUND_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[binary_ieeeSyntax.roundTiesToEven_tm, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'ROUND_L_S_def = Def ("dfn'ROUND_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[binary_ieeeSyntax.roundTiesToEven_tm, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'ROUND_W_D_def = Def ("dfn'ROUND_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[binary_ieeeSyntax.roundTiesToEven_tm, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'ROUND_W_S_def = Def ("dfn'ROUND_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[binary_ieeeSyntax.roundTiesToEven_tm, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'SDC1_def = Def ("dfn'SDC1",TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("DOUBLEWORD",FTy 3), Const("DOUBLEWORD",FTy 3),LT, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("ft",FTy 5)), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")),LF]),qVar"state"))))) ; val dfn'SDXC1_def = Def ("dfn'SDXC1",TP[Var("fs",FTy 5),Var("index",FTy 5),Var("base",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("DOUBLEWORD",FTy 3), Const("DOUBLEWORD",FTy 3),LT, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)), Bop(Add, Apply (Call("GPR",ATy(qTy,F64),Var("index",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")),LF]),qVar"state"))))) ; val dfn'SQRT_D_def = Def ("dfn'SQRT_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPSqrt 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))])),qVar"state"))])))) ; val dfn'SQRT_S_def = Def ("dfn'SQRT_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPSqrt 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("fs",FTy 5)), LN 31,LN 0,F32)])),qVar"state")))])))) ; val dfn'SUB_D_def = Def ("dfn'SUB_D",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Apply (Call ("PostOpF64",ATy(qTy,F64), Mop(FPSub 64, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)), Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("ft",FTy 5))])),qVar"state"))])))) ; val dfn'SUB_S_def = Def ("dfn'SUB_S",TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), Mop(SE F64, Apply (Call ("PostOpF32",ATy(qTy,F32), Mop(FPSub 32, TP[Apply (Const("Rounding_Mode",ATy(qTy,rTy)), qVar"state"), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("fs",FTy 5)), LN 31,LN 0,F32), EX(Apply (Dest ("FGR",ATy(FTy 5,F64), qVar"state"),Var("ft",FTy 5)), LN 31,LN 0,F32)])),qVar"state")))])))) ; val dfn'SWC1_def = Def ("dfn'SWC1",TP[Var("ft",FTy 5),Var("offset",F16),Var("base",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, Bop(Lsl, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("ft",FTy 5)), Bop(Mul,LN 8, Mop(Cast nTy, Bop(BXor, EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[Apply (Const ("BigEndianCPU", ATy(qTy,F1)), qVar"state"),LW(0,2)])))), Var("v",F64),LF]),qVar"state")))))) ; val dfn'SWXC1_def = Def ("dfn'SWXC1",TP[Var("ft",FTy 5),Var("index",FTy 5),Var("base",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(Var("v",F64), Bop(Add, Apply (Call("GPR",ATy(qTy,F64),Var("index",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)), qVar"state")), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("WORD",FTy 3),Const("WORD",FTy 3),LT, Bop(Lsl, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("ft",FTy 5)), Bop(Mul,LN 8, Mop(Cast nTy, Bop(BXor, EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[Apply (Const ("BigEndianCPU", ATy(qTy,F1)), qVar"state"),LW(0,2)])))), Var("v",F64),LF]),qVar"state")))))) ; val dfn'TRUNC_L_D_def = Def ("dfn'TRUNC_L_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[binary_ieeeSyntax.roundTowardZero_tm, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'TRUNC_L_S_def = Def ("dfn'TRUNC_L_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[binary_ieeeSyntax.roundTowardZero_tm, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Call("IntToDWordMIPS",F64,iVar"x")), (LO iTy,LW(9223372036854775807,64))]))])))) ; val dfn'TRUNC_W_D_def = Def ("dfn'TRUNC_W_D",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 64, TP[binary_ieeeSyntax.roundTowardZero_tm, Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5))]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'TRUNC_W_S_def = Def ("dfn'TRUNC_W_S",TP[Var("fd",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fd",FTy 5), CS(Mop(FPToInt 32, TP[binary_ieeeSyntax.roundTowardZero_tm, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)]), [(Mop(Some,iVar"x"), Mop(SE F64,Call("IntToWordMIPS",F32,iVar"x"))), (LO iTy,LW(2147483647,64))]))])))) ; val dfn'DMFC1_def = Def ("dfn'DMFC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),Var("rt",FTy 5)]),qVar"state")))) ; val dfn'DMTC1_def = Def ("dfn'DMTC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fs",FTy 5), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))])))) ; val dfn'MFC1_def = Def ("dfn'MFC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, EX(Apply (Dest("FGR",ATy(FTy 5,F64),qVar"state"), Var("fs",FTy 5)),LN 31,LN 0,F32)), Var("rt",FTy 5)]),qVar"state")))) ; val dfn'MTC1_def = Def ("dfn'MTC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Rupd ("FGR", TP[qVar"state", Fupd (Dest("FGR",ATy(FTy 5,F64),qVar"state"),Var("fs",FTy 5), Mop(SE F64, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 0,F32)))])))) ; val dfn'CFC1_def = Def ("dfn'CFC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Let(TP[Var("v",F64),qVar"s"], CS(Var("fs",FTy 5), [(LW(0,5), TP[Mop(SE F64, Call ("reg'FIR",F32, Dest("fir",CTy"FIR",qVar"state"))), qVar"state"]), (LW(25,5), TP[Mop(Cast F64, Dest ("FCC",F8,Dest("fcsr",CTy"FCSR",qVar"state"))), qVar"state"]), (LW(31,5), TP[Mop(SE F64, Call ("reg'FCSR",F32, Dest("fcsr",CTy"FCSR",qVar"state"))), qVar"state"]), (AVar(FTy 5), Apply (Call ("raise'exception",ATy(qTy,PTy(F64,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS "Unsupported floating point control register")), qVar"state"))]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s"))))) ; val dfn'CTC1_def = Def ("dfn'CTC1",TP[Var("rt",FTy 5),Var("fs",FTy 5)], Close (qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply (Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), CS(Var("fs",FTy 5), [(LW(0,5),qVar"state"), (LW(25,5), Rupd ("fcsr", TP[qVar"state", Rupd ("FCC", TP[Dest("fcsr",CTy"FCSR",qVar"state"), EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 7,LN 0,F8)])])), (LW(31,5), Let(qVar"s", Rupd ("fcsr", TP[qVar"state", Call ("write'reg'FCSR",CTy"FCSR", TP[Dest("fcsr",CTy"FCSR",qVar"state"), EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 0,F32)])]), Rupd ("fcsr", TP[qVar"s", Rupd ("NAN2008", TP[Dest("fcsr",CTy"FCSR",qVar"s"),LT])]))), (AVar(FTy 5), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS "Unsupported floating point control register")), qVar"state")))])))) ; val dfn'UnknownFPInstruction_def = Def ("dfn'UnknownFPInstruction",qVar"state", ITE(Mop(Not, Dest ("CU1",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state")))), Apply(Const("SignalCP1UnusableException",ATy(qTy,qTy)),qVar"state"), Apply (Call ("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), qVar"state"))) ; val dfn'ADDI_def = Def ("dfn'ADDI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"ADDI: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Let(Var("v",FTy 33), Bop(Add,EX(Var("v",F64),LN 32,LN 0,FTy 33), Mop(SE(FTy 33),Var("immediate",F16))), ITE(Mop(Not, EQ(Bop(Bit,Var("v",FTy 33),LN 32), Bop(Bit,Var("v",FTy 33),LN 31))), Apply (Call ("SignalException",ATy(qTy,qTy), LC("Ov",CTy"ExceptionType")),qVar"s"), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64,EX(Var("v",FTy 33),LN 31,LN 0,F32)), Var("rt",FTy 5)]),qVar"s")))))) ; val dfn'ADDIU_def = Def ("dfn'ADDIU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"ADDIU: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Add,EX(Var("v",F64),LN 31,LN 0,F32), Mop(SE F32,Var("immediate",F16)))), Var("rt",FTy 5)]),qVar"s")))) ; val dfn'DADDI_def = Def ("dfn'DADDI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Let(Var("v",FTy 65), Bop(Add, Mop(SE(FTy 65), Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), Mop(SE(FTy 65),Var("immediate",F16))), ITE(Mop(Not, EQ(Bop(Bit,Var("v",FTy 65),LN 64), Bop(Bit,Var("v",FTy 65),LN 63))), Apply (Call ("SignalException",ATy(qTy,qTy), LC("Ov",CTy"ExceptionType")),qVar"state"), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[EX(Var("v",FTy 65),LN 63,LN 0,F64),Var("rt",FTy 5)]), qVar"state"))))) ; val dfn'DADDIU_def = Def ("dfn'DADDIU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Add, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(SE F64,Var("immediate",F16))),Var("rt",FTy 5)]), qVar"state"))) ; val dfn'SLTI_def = Def ("dfn'SLTI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(Cast F64, Bop(Lt, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"),Mop(SE F64,Var("immediate",F16)))), Var("rt",FTy 5)]),qVar"state"))) ; val dfn'SLTIU_def = Def ("dfn'SLTIU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(Cast F64, Bop(Ult, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"),Mop(SE F64,Var("immediate",F16)))), Var("rt",FTy 5)]),qVar"state"))) ; val dfn'ANDI_def = Def ("dfn'ANDI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(BAnd, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(Cast F64,Var("immediate",F16))),Var("rt",FTy 5)]), qVar"state"))) ; val dfn'ORI_def = Def ("dfn'ORI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(BOr, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(Cast F64,Var("immediate",F16))),Var("rt",FTy 5)]), qVar"state"))) ; val dfn'XORI_def = Def ("dfn'XORI",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(BXor, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(Cast F64,Var("immediate",F16))),Var("rt",FTy 5)]), qVar"state"))) ; val dfn'LUI_def = Def ("dfn'LUI",TP[Var("rt",FTy 5),Var("immediate",F16)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64,CC[Var("immediate",F16),LW(0,16)]), Var("rt",FTy 5)]),qVar"state"))) ; val dfn'ADD_def = Def ("dfn'ADD",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"ADD: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Let(Var("v",FTy 33), Bop(Add,EX(Var("v",F64),LN 32,LN 0,FTy 33), EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"s"), LN 32,LN 0,FTy 33)), ITE(Mop(Not, EQ(Bop(Bit,Var("v",FTy 33),LN 32), Bop(Bit,Var("v",FTy 33),LN 31))), Apply (Call ("SignalException",ATy(qTy,qTy), LC("Ov",CTy"ExceptionType")),qVar"s"), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64,EX(Var("v",FTy 33),LN 31,LN 0,F32)), Var("rd",FTy 5)]),qVar"s")))))) ; val dfn'ADDU_def = Def ("dfn'ADDU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"ADDU: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Add,EX(Var("v",F64),LN 31,LN 0,F32), EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"s"),LN 31,LN 0,F32))), Var("rd",FTy 5)]),qVar"s")))) ; val dfn'SUB_def = Def ("dfn'SUB",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"SUB: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Let(Var("v",FTy 33), Bop(Sub,EX(Var("v",F64),LN 32,LN 0,FTy 33), EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"s"), LN 32,LN 0,FTy 33)), ITE(Mop(Not, EQ(Bop(Bit,Var("v",FTy 33),LN 32), Bop(Bit,Var("v",FTy 33),LN 31))), Apply (Call ("SignalException",ATy(qTy,qTy), LC("Ov",CTy"ExceptionType")),qVar"s"), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64,EX(Var("v",FTy 33),LN 31,LN 0,F32)), Var("rd",FTy 5)]),qVar"s")))))) ; val dfn'SUBU_def = Def ("dfn'SUBU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"SUBU: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Sub,EX(Var("v",F64),LN 31,LN 0,F32), EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"s"),LN 31,LN 0,F32))), Var("rd",FTy 5)]),qVar"s")))) ; val dfn'DADD_def = Def ("dfn'DADD",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(Var("v",FTy 65), Bop(Add, Mop(SE(FTy 65), Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), Mop(SE(FTy 65), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), ITE(Mop(Not, EQ(Bop(Bit,Var("v",FTy 65),LN 64), Bop(Bit,Var("v",FTy 65),LN 63))), Apply (Call ("SignalException",ATy(qTy,qTy), LC("Ov",CTy"ExceptionType")),qVar"state"), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[EX(Var("v",FTy 65),LN 63,LN 0,F64),Var("rd",FTy 5)]), qVar"state"))))) ; val dfn'DADDU_def = Def ("dfn'DADDU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Add, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'DSUB_def = Def ("dfn'DSUB",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(Var("v",FTy 65), Bop(Sub, Mop(SE(FTy 65), Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), Mop(SE(FTy 65), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), ITE(Mop(Not, EQ(Bop(Bit,Var("v",FTy 65),LN 64), Bop(Bit,Var("v",FTy 65),LN 63))), Apply (Call ("SignalException",ATy(qTy,qTy), LC("Ov",CTy"ExceptionType")),qVar"state"), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[EX(Var("v",FTy 65),LN 63,LN 0,F64),Var("rd",FTy 5)]), qVar"state"))))) ; val dfn'DSUBU_def = Def ("dfn'DSUBU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Sub, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'SLT_def = Def ("dfn'SLT",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(Cast F64, Bop(Lt, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))),Var("rd",FTy 5)]),qVar"state"))) ; val dfn'SLTU_def = Def ("dfn'SLTU",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(Cast F64, Bop(Ult, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))),Var("rd",FTy 5)]),qVar"state"))) ; val dfn'AND_def = Def ("dfn'AND",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(BAnd, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'OR_def = Def ("dfn'OR",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(BOr, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'XOR_def = Def ("dfn'XOR",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(BXor, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'NOR_def = Def ("dfn'NOR",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(BNot, Bop(BOr, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))),Var("rd",FTy 5)]),qVar"state"))) ; val dfn'MOVN_def = Def ("dfn'MOVN",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", ITE(Mop(Not, EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), LW(0,64))), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Var("rd",FTy 5)]),qVar"state"),qVar"state"))) ; val dfn'MOVZ_def = Def ("dfn'MOVZ",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), LW(0,64)), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Var("rd",FTy 5)]),qVar"state"),qVar"state"))) ; val dfn'MADD_def = Def ("dfn'MADD",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Apply (Const("HI",ATy(qTy,PTy(F64,qTy))), ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"MADD: NotWordValue")),qVar"state")), qVar"state")), Let(TP[Var("v",F64),qVar"s"], Let(TP[Var("v",F64),qVar"s"], Let(TP[Var("v0",F64),qVar"s"], Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"s"), TP[CC[EX(Var("v",F64),LN 31,LN 0,F32), EX(Var("v0",F64),LN 31,LN 0,F32)],qVar"s"]), TP[Bop(Add,Var("v",F64), Bop(Mul, Mop(SE F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rs",FTy 5)),qVar"s"),LN 31, LN 0,F32)), Mop(SE F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"),LN 31, LN 0,F32)))),qVar"s"]), Apply (Call ("write'LO",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), Apply (Call ("write'HI",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), qVar"s")))))) ; val dfn'MADDU_def = Def ("dfn'MADDU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Apply (Const("HI",ATy(qTy,PTy(F64,qTy))), ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"MADDU: NotWordValue")),qVar"state")), qVar"state")), Let(TP[Var("v",F64),qVar"s"], Let(TP[Var("v",F64),qVar"s"], Let(TP[Var("v0",F64),qVar"s"], Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"s"), TP[CC[EX(Var("v",F64),LN 31,LN 0,F32), EX(Var("v0",F64),LN 31,LN 0,F32)],qVar"s"]), TP[Bop(Add,Var("v",F64), Bop(Mul, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rs",FTy 5)),qVar"s"),LN 31, LN 0,F32)), Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"),LN 31, LN 0,F32)))),qVar"s"]), Apply (Call ("write'LO",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), Apply (Call ("write'HI",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), qVar"s")))))) ; val dfn'MSUB_def = Def ("dfn'MSUB",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Apply (Const("HI",ATy(qTy,PTy(F64,qTy))), ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"MSUB: NotWordValue")),qVar"state")), qVar"state")), Let(TP[Var("v",F64),qVar"s"], Let(TP[Var("v",F64),qVar"s"], Let(TP[Var("v0",F64),qVar"s"], Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"s"), TP[CC[EX(Var("v",F64),LN 31,LN 0,F32), EX(Var("v0",F64),LN 31,LN 0,F32)],qVar"s"]), TP[Bop(Sub,Var("v",F64), Bop(Mul, Mop(SE F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rs",FTy 5)),qVar"s"),LN 31, LN 0,F32)), Mop(SE F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"),LN 31, LN 0,F32)))),qVar"s"]), Apply (Call ("write'LO",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), Apply (Call ("write'HI",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), qVar"s")))))) ; val dfn'MSUBU_def = Def ("dfn'MSUBU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Apply (Const("HI",ATy(qTy,PTy(F64,qTy))), ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"MSUBU: NotWordValue")),qVar"state")), qVar"state")), Let(TP[Var("v",F64),qVar"s"], Let(TP[Var("v",F64),qVar"s"], Let(TP[Var("v0",F64),qVar"s"], Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"s"), TP[CC[EX(Var("v",F64),LN 31,LN 0,F32), EX(Var("v0",F64),LN 31,LN 0,F32)],qVar"s"]), TP[Bop(Sub,Var("v",F64), Bop(Mul, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rs",FTy 5)),qVar"s"),LN 31, LN 0,F32)), Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"),LN 31, LN 0,F32)))),qVar"s"]), Apply (Call ("write'LO",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), Apply (Call ("write'HI",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), qVar"s")))))) ; val dfn'MUL_def = Def ("dfn'MUL",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"MUL: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Rupd ("hi", TP[Rupd ("lo", TP[Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Mul, EX(Var("v",F64),LN 31,LN 0,F32), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 31,LN 0,F32))), Var("rd",FTy 5)]),qVar"s"),LO F64]),LO F64])))) ; val dfn'MULT_def = Def ("dfn'MULT",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"MULT: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Let(Var("v",F64), Bop(Mul,Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32)), Mop(SE F64, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"s"),LN 31,LN 0,F32))), Apply (Call ("write'HI",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), Apply (Call ("write'LO",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), qVar"s")))))) ; val dfn'MULTU_def = Def ("dfn'MULTU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Bop(Or, Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state")), Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"MULTU: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Let(Var("v",F64), Bop(Mul,Mop(Cast F64,EX(Var("v",F64),LN 31,LN 0,F32)), Mop(Cast F64, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"s"),LN 31,LN 0,F32))), Apply (Call ("write'HI",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 63,LN 32,F32))), Apply (Call ("write'LO",ATy(qTy,qTy), Mop(SE F64,EX(Var("v",F64),LN 31,LN 0,F32))), qVar"s")))))) ; val dfn'DMULT_def = Def ("dfn'DMULT",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(Var("v",FTy 128), Bop(Mul, Mop(SE(FTy 128), Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), Mop(SE(FTy 128), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), Apply (Call ("write'HI",ATy(qTy,qTy), EX(Var("v",FTy 128),LN 127,LN 64,F64)), Apply (Call ("write'LO",ATy(qTy,qTy), EX(Var("v",FTy 128),LN 63,LN 0,F64)),qVar"state"))))) ; val dfn'DMULTU_def = Def ("dfn'DMULTU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(Var("v",FTy 128), Bop(Mul, Mop(Cast(FTy 128), Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), Mop(Cast(FTy 128), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), Apply (Call ("write'HI",ATy(qTy,qTy), EX(Var("v",FTy 128),LN 127,LN 64,F64)), Apply (Call ("write'LO",ATy(qTy,qTy), EX(Var("v",FTy 128),LN 63,LN 0,F64)),qVar"state"))))) ; val dfn'DIV_def = Def ("dfn'DIV",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(Var("v",F64), Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Let(Var("v0",F64), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Let(qVar"s1", ITE(Bop(Or,Call("NotWordValue",bTy,Var("v",F64)), Call("NotWordValue",bTy,Var("v0",F64))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"DIV: NotWordValue")),qVar"state")), qVar"state"), ITE(EQ(Var("v0",F64),LW(0,64)), Rupd("hi",TP[Rupd("lo",TP[qVar"s1",LO F64]),LO F64]), Apply (Call ("write'HI",ATy(qTy,qTy), Mop(SE F64, Bop(Rem,EX(Var("v",F64),LN 31,LN 0,F32), EX(Var("v0",F64),LN 31,LN 0,F32)))), Apply (Call ("write'LO",ATy(qTy,qTy), Mop(SE F64, Bop(Quot, EX(Var("v",F64),LN 31,LN 0,F32), EX(Var("v0",F64),LN 31,LN 0,F32)))), qVar"s1")))))))) ; val dfn'DIVU_def = Def ("dfn'DIVU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(Var("v",F64), Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Let(Var("v0",F64), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Let(qVar"s1", ITE(Bop(Or,Call("NotWordValue",bTy,Var("v",F64)), Call("NotWordValue",bTy,Var("v0",F64))), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"DIVU: NotWordValue")),qVar"state")), qVar"state"), ITE(EQ(Var("v0",F64),LW(0,64)), Rupd("hi",TP[Rupd("lo",TP[qVar"s1",LO F64]),LO F64]), Apply (Call ("write'HI",ATy(qTy,qTy), Mop(SE F64, Bop(Mod,EX(Var("v",F64),LN 31,LN 0,F32), EX(Var("v0",F64),LN 31,LN 0,F32)))), Apply (Call ("write'LO",ATy(qTy,qTy), Mop(SE F64, Bop(Div, EX(Var("v",F64),LN 31,LN 0,F32), EX(Var("v0",F64),LN 31,LN 0,F32)))), qVar"s1")))))))) ; val dfn'DDIV_def = Def ("dfn'DDIV",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(Var("v",F64), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), ITE(EQ(Var("v",F64),LW(0,64)), Rupd("hi",TP[Rupd("lo",TP[qVar"state",LO F64]),LO F64]), Let(Var("v0",F64), Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call ("write'HI",ATy(qTy,qTy), Bop(Rem,Var("v0",F64),Var("v",F64))), Apply (Call ("write'LO",ATy(qTy,qTy), Bop(Quot,Var("v0",F64),Var("v",F64))), qVar"state"))))))) ; val dfn'DDIVU_def = Def ("dfn'DDIVU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", Let(Var("v",F64), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), ITE(EQ(Var("v",F64),LW(0,64)), Rupd("hi",TP[Rupd("lo",TP[qVar"state",LO F64]),LO F64]), Let(Var("v0",F64), Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call ("write'HI",ATy(qTy,qTy), Bop(Mod,Var("v0",F64),Var("v",F64))), Apply (Call ("write'LO",ATy(qTy,qTy), Bop(Div,Var("v0",F64),Var("v",F64))), qVar"state"))))))) ; val dfn'MFHI_def = Def ("dfn'MFHI",Var("rd",FTy 5), Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Apply(Const("HI",ATy(qTy,PTy(F64,qTy))),qVar"state"), Apply (Call ("write'GPR",ATy(qTy,qTy),TP[Var("v",F64),Var("rd",FTy 5)]), qVar"s")))) ; val dfn'MFLO_def = Def ("dfn'MFLO",Var("rd",FTy 5), Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Apply(Const("LO",ATy(qTy,PTy(F64,qTy))),qVar"state"), Apply (Call ("write'GPR",ATy(qTy,qTy),TP[Var("v",F64),Var("rd",FTy 5)]), qVar"s")))) ; val dfn'MTHI_def = Def ("dfn'MTHI",Var("rs",FTy 5), Close (qVar"state", Apply (Call ("write'HI",ATy(qTy,qTy), Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), qVar"state"))) ; val dfn'MTLO_def = Def ("dfn'MTLO",Var("rs",FTy 5), Close (qVar"state", Apply (Call ("write'LO",ATy(qTy,qTy), Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")), qVar"state"))) ; val dfn'SLL_def = Def ("dfn'SLL",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Lsl, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 0,F32), Mop(Cast nTy,Var("sa",FTy 5)))),Var("rd",FTy 5)]), qVar"state"))) ; val dfn'SRL_def = Def ("dfn'SRL",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state")), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"SRL: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"s0"), qVar"s0"]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Lsr,EX(Var("v",F64),LN 31,LN 0,F32), Mop(Cast nTy,Var("sa",FTy 5)))),Var("rd",FTy 5)]), qVar"s")))) ; val dfn'SRA_def = Def ("dfn'SRA",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state")), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"SRA: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"s0"), qVar"s0"]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Asr,EX(Var("v",F64),LN 31,LN 0,F32), Mop(Cast nTy,Var("sa",FTy 5)))),Var("rd",FTy 5)]), qVar"s")))) ; val dfn'SLLV_def = Def ("dfn'SLLV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Lsl, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 0,F32), Mop(Cast nTy, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"),LN 4,LN 0,FTy 5)))), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'SRLV_def = Def ("dfn'SRLV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state")), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"SRLV: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Lsr, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"s"),LN 31,LN 0,F32), Mop(Cast nTy,EX(Var("v",F64),LN 4,LN 0,FTy 5)))), Var("rd",FTy 5)]),qVar"s")))) ; val dfn'SRAV_def = Def ("dfn'SRAV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Let(TP[Var("v",F64),qVar"s"], Let(qVar"s0", ITE(Call ("NotWordValue",bTy, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state")), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"SRAV: NotWordValue")),qVar"state")), qVar"state"), TP[Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"s0"), qVar"s0"]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, Bop(Asr, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"s"),LN 31,LN 0,F32), Mop(Cast nTy,EX(Var("v",F64),LN 4,LN 0,FTy 5)))), Var("rd",FTy 5)]),qVar"s")))) ; val dfn'DSLL_def = Def ("dfn'DSLL",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Lsl, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Mop(Cast nTy,Var("sa",FTy 5))),Var("rd",FTy 5)]), qVar"state"))) ; val dfn'DSRL_def = Def ("dfn'DSRL",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Lsr, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Mop(Cast nTy,Var("sa",FTy 5))),Var("rd",FTy 5)]), qVar"state"))) ; val dfn'DSRA_def = Def ("dfn'DSRA",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Asr, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Mop(Cast nTy,Var("sa",FTy 5))),Var("rd",FTy 5)]), qVar"state"))) ; val dfn'DSLLV_def = Def ("dfn'DSLLV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Lsl, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Mop(Cast nTy, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"),LN 5,LN 0,FTy 6))), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'DSRLV_def = Def ("dfn'DSRLV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Lsr, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Mop(Cast nTy, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"),LN 5,LN 0,FTy 6))), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'DSRAV_def = Def ("dfn'DSRAV",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Asr, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Mop(Cast nTy, EX(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"),LN 5,LN 0,FTy 6))), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'DSLL32_def = Def ("dfn'DSLL32",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Lsl, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Bop(Add,Mop(Cast nTy,Var("sa",FTy 5)),LN 32)), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'DSRL32_def = Def ("dfn'DSRL32",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Lsr, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Bop(Add,Mop(Cast nTy,Var("sa",FTy 5)),LN 32)), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'DSRA32_def = Def ("dfn'DSRA32",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sa",FTy 5)], Close (qVar"state", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Asr, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), Bop(Add,Mop(Cast nTy,Var("sa",FTy 5)),LN 32)), Var("rd",FTy 5)]),qVar"state"))) ; val dfn'TGE_def = Def ("dfn'TGE",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITE(Bop(Ge, Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TGEU_def = Def ("dfn'TGEU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITE(Bop(Uge, Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TLT_def = Def ("dfn'TLT",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITE(Bop(Lt, Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TLTU_def = Def ("dfn'TLTU",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITE(Bop(Ult, Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TEQ_def = Def ("dfn'TEQ",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply(Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TNE_def = Def ("dfn'TNE",TP[Var("rs",FTy 5),Var("rt",FTy 5)], Close (qVar"state", ITE(Mop(Not, EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"))), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TGEI_def = Def ("dfn'TGEI",TP[Var("rs",FTy 5),Var("immediate",F16)], Close (qVar"state", ITE(Bop(Ge, Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(SE F64,Var("immediate",F16))), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TGEIU_def = Def ("dfn'TGEIU",TP[Var("rs",FTy 5),Var("immediate",F16)], Close (qVar"state", ITE(Bop(Uge, Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(SE F64,Var("immediate",F16))), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TLTI_def = Def ("dfn'TLTI",TP[Var("rs",FTy 5),Var("immediate",F16)], Close (qVar"state", ITE(Bop(Lt, Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(SE F64,Var("immediate",F16))), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TLTIU_def = Def ("dfn'TLTIU",TP[Var("rs",FTy 5),Var("immediate",F16)], Close (qVar"state", ITE(Bop(Ult, Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(SE F64,Var("immediate",F16))), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TEQI_def = Def ("dfn'TEQI",TP[Var("rs",FTy 5),Var("immediate",F16)], Close (qVar"state", ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(SE F64,Var("immediate",F16))), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'TNEI_def = Def ("dfn'TNEI",TP[Var("rs",FTy 5),Var("immediate",F16)], Close (qVar"state", ITE(Mop(Not, EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Mop(SE F64,Var("immediate",F16)))), Apply (Call ("SignalException",ATy(qTy,qTy),LC("Tr",CTy"ExceptionType")), qVar"state"),qVar"state"))) ; val dfn'LB_def = Def ("dfn'LB",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadByte",ATy(qTy,qTy), TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), qVar"state"))) ; val dfn'LBU_def = Def ("dfn'LBU",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadByte",ATy(qTy,qTy), TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), qVar"state"))) ; val dfn'LH_def = Def ("dfn'LH",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadHalf",ATy(qTy,qTy), TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), qVar"state"))) ; val dfn'LHU_def = Def ("dfn'LHU",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadHalf",ATy(qTy,qTy), TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), qVar"state"))) ; val dfn'LW_def = Def ("dfn'LW",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadWord",ATy(qTy,qTy), TP[LF,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), qVar"state"))) ; val dfn'LWU_def = Def ("dfn'LWU",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadWord",ATy(qTy,qTy), TP[LF,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), qVar"state"))) ; val dfn'LL_def = Def ("dfn'LL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadWord",ATy(qTy,qTy), TP[LT,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), qVar"state"))) ; val dfn'LD_def = Def ("dfn'LD",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadDoubleword",ATy(qTy,qTy), TP[LF,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)]), qVar"state"))) ; val dfn'LLD_def = Def ("dfn'LLD",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("loadDoubleword",ATy(qTy,qTy), TP[LT,Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)]), qVar"state"))) ; val dfn'LWL_def = Def ("dfn'LWL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(Var("v0",FTy 2), Bop(BXor,EX(Var("v",F64),LN 1,LN 0,FTy 2), REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), LN 2,FTy 2)), Let(TP[Var("v1",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("WORD",FTy 3), CC[LW(0,1),Var("v0",FTy 2)],LF,Var("v",F64), Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(TP[Var("v",F32),qVar"s"], CS(TP[Bop(BXor,EX(Var("v",F64),LN 2,LN 2,F1), Apply (Const("BigEndianCPU",ATy(qTy,F1)), qVar"s")),Var("v0",FTy 2)], [(TP[LW(0,1),LW(0,2)], TP[CC[EX(Var("v1",F64),LN 7,LN 0,F8), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 23,LN 0,FTy 24)],qVar"s"]), (TP[LW(0,1),LW(1,2)], TP[CC[EX(Var("v1",F64),LN 15,LN 0,F16), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 15,LN 0,F16)],qVar"s"]), (TP[LW(0,1),LW(2,2)], TP[CC[EX(Var("v1",F64),LN 23,LN 0,FTy 24), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 7,LN 0,F8)],qVar"s"]), (TP[LW(0,1),LW(3,2)], TP[EX(Var("v1",F64),LN 31,LN 0,F32),qVar"s"]), (TP[LW(1,1),LW(0,2)], TP[CC[EX(Var("v1",F64),LN 39,LN 32,F8), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 23,LN 0,FTy 24)],qVar"s"]), (TP[LW(1,1),LW(1,2)], TP[CC[EX(Var("v1",F64),LN 47,LN 32,F16), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 15,LN 0,F16)],qVar"s"]), (TP[LW(1,1),LW(2,2)], TP[CC[EX(Var("v1",F64),LN 55,LN 32,FTy 24), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 7,LN 0,F8)],qVar"s"]), (TP[LW(1,1),LW(3,2)], TP[EX(Var("v1",F64),LN 63,LN 32,F32), qVar"s"])]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64,Var("v",F32)), Var("rt",FTy 5)]),qVar"s")),qVar"s")))))) ; val dfn'LWR_def = Def ("dfn'LWR",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(Var("v0",FTy 2), Bop(BXor,EX(Var("v",F64),LN 1,LN 0,FTy 2), REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), LN 2,FTy 2)), Let(TP[Var("v1",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("WORD",FTy 3), Bop(Sub,Const("WORD",FTy 3), CC[LW(0,1),Var("v0",FTy 2)]),LF, Var("v",F64),Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(TP[Var("v",F32),qVar"s"], CS(TP[Bop(BXor,EX(Var("v",F64),LN 2,LN 2,F1), Apply (Const("BigEndianCPU",ATy(qTy,F1)), qVar"s")),Var("v0",FTy 2)], [(TP[LW(0,1),LW(0,2)], TP[EX(Var("v1",F64),LN 31,LN 0,F32),qVar"s"]), (TP[LW(0,1),LW(1,2)], TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 31,LN 24,F8), EX(Var("v1",F64),LN 31,LN 8,FTy 24)], qVar"s"]), (TP[LW(0,1),LW(2,2)], TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 31,LN 16,F16), EX(Var("v1",F64),LN 31,LN 16,F16)], qVar"s"]), (TP[LW(0,1),LW(3,2)], TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 31,LN 8,FTy 24), EX(Var("v1",F64),LN 31,LN 24,F8)], qVar"s"]), (TP[LW(1,1),LW(0,2)], TP[EX(Var("v1",F64),LN 63,LN 32,F32), qVar"s"]), (TP[LW(1,1),LW(1,2)], TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 31,LN 24,F8), EX(Var("v1",F64),LN 63,LN 40,FTy 24)], qVar"s"]), (TP[LW(1,1),LW(2,2)], TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 31,LN 16,F16), EX(Var("v1",F64),LN 63,LN 48,F16)], qVar"s"]), (TP[LW(1,1),LW(3,2)], TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 31,LN 8,FTy 24), EX(Var("v1",F64),LN 63,LN 56,F8)], qVar"s"])]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64,Var("v",F32)), Var("rt",FTy 5)]),qVar"s")),qVar"s")))))) ; val dfn'LDL_def = Def ("dfn'LDL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(Var("v0",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), LN 3,FTy 3)), Let(TP[Var("v1",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("DOUBLEWORD",FTy 3),Var("v0",FTy 3),LF, Var("v",F64),Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(TP[Var("v",F64),qVar"s"], CS(Var("v0",FTy 3), [(LW(0,3), TP[CC[EX(Var("v1",F64),LN 7,LN 0,F8), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 55,LN 0,FTy 56)],qVar"s"]), (LW(1,3), TP[CC[EX(Var("v1",F64),LN 15,LN 0,F16), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 47,LN 0,FTy 48)],qVar"s"]), (LW(2,3), TP[CC[EX(Var("v1",F64),LN 23,LN 0,FTy 24), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 39,LN 0,FTy 40)],qVar"s"]), (LW(3,3), TP[CC[EX(Var("v1",F64),LN 31,LN 0,F32), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 31,LN 0,F32)],qVar"s"]), (LW(4,3), TP[CC[EX(Var("v1",F64),LN 39,LN 0,FTy 40), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 23,LN 0,FTy 24)],qVar"s"]), (LW(5,3), TP[CC[EX(Var("v1",F64),LN 47,LN 0,FTy 48), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 15,LN 0,F16)],qVar"s"]), (LW(6,3), TP[CC[EX(Var("v1",F64),LN 55,LN 0,FTy 56), EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 7,LN 0,F8)],qVar"s"]), (LW(7,3), TP[EX(Var("v1",F64),LN 63,LN 0,F64),qVar"s"])]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s")), qVar"s")))))) ; val dfn'LDR_def = Def ("dfn'LDR",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(Var("v0",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), LN 3,FTy 3)), Let(TP[Var("v1",F64),qVar"s"], Apply (Call ("LoadMemory",ATy(qTy,PTy(F64,qTy)), TP[Const("DOUBLEWORD",FTy 3), Bop(Sub,Const("DOUBLEWORD",FTy 3), Var("v0",FTy 3)),LF,Var("v",F64), Mop(Some,LF)]),qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Let(TP[Var("v",F64),qVar"s"], CS(Var("v0",FTy 3), [(LW(0,3), TP[EX(Var("v1",F64),LN 63,LN 0,F64),qVar"s"]), (LW(1,3), TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 63,LN 56,F8), EX(Var("v1",F64),LN 63,LN 8,FTy 56)], qVar"s"]), (LW(2,3), TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 63,LN 48,F16), EX(Var("v1",F64),LN 63,LN 16,FTy 48)], qVar"s"]), (LW(3,3), TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 63,LN 40,FTy 24), EX(Var("v1",F64),LN 63,LN 24,FTy 40)], qVar"s"]), (LW(4,3), TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 63,LN 32,F32), EX(Var("v1",F64),LN 63,LN 32,F32)], qVar"s"]), (LW(5,3), TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 63,LN 24,FTy 40), EX(Var("v1",F64),LN 63,LN 40,FTy 24)], qVar"s"]), (LW(6,3), TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 63,LN 16,FTy 48), EX(Var("v1",F64),LN 63,LN 48,F16)], qVar"s"]), (LW(7,3), TP[CC[EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"s"), LN 63,LN 8,FTy 56), EX(Var("v1",F64),LN 63,LN 56,F8)], qVar"s"])]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Var("v",F64),Var("rt",FTy 5)]),qVar"s")), qVar"s")))))) ; val dfn'SB_def = Def ("dfn'SB",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("BYTE",FTy 3),Const("BYTE",FTy 3),LF, Bop(Lsl, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"), Bop(Mul,LN 8, Mop(Cast nTy, Bop(BXor, EX(Var("v",F64),LN 2,LN 0,FTy 3), REP(Apply (Const ("BigEndianCPU", ATy(qTy,F1)),qVar"state"), LN 3,FTy 3))))),Var("v",F64),LF]), qVar"state"))))) ; val dfn'SH_def = Def ("dfn'SH",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("HALFWORD",FTy 3),Const("HALFWORD",FTy 3),LT, Bop(Lsl, Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"), Bop(Mul,LN 8, Mop(Cast nTy, Bop(BXor, EX(Var("v",F64),LN 2,LN 0,FTy 3), CC[REP(Apply (Const ("BigEndianCPU", ATy(qTy,F1)), qVar"state"),LN 2,FTy 2), LW(0,1)])))),Var("v",F64),LF]), qVar"state"))))) ; val dfn'SW_def = Def ("dfn'SW",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Mop(Snd, Apply (Call ("storeWord",ATy(qTy,PTy(bTy,qTy)), TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), qVar"state")))) ; val dfn'SD_def = Def ("dfn'SD",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Mop(Snd, Apply (Call ("storeDoubleword",ATy(qTy,PTy(bTy,qTy)), TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LF]), qVar"state")))) ; val dfn'SC_def = Def ("dfn'SC",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(TP[bVar"v",qVar"s"], Apply (Call ("storeWord",ATy(qTy,PTy(bTy,qTy)), TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(Cast F64,bVar"v"),Var("rt",FTy 5)]),qVar"s"), qVar"s")))) ; val dfn'SCD_def = Def ("dfn'SCD",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(TP[bVar"v",qVar"s"], Apply (Call ("storeDoubleword",ATy(qTy,PTy(bTy,qTy)), TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16),LT]), qVar"state"), ITE(Mop(Not,Dest("exceptionSignalled",bTy,qVar"s")), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(Cast F64,bVar"v"),Var("rt",FTy 5)]),qVar"s"), qVar"s")))) ; val dfn'SWL_def = Def ("dfn'SWL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(Var("v0",FTy 2), Bop(BXor,EX(Var("v",F64),LN 1,LN 0,FTy 2), REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), LN 2,FTy 2)), Let(TP[Var("v2",F64),qVar"s0"], CS(Var("v0",FTy 2), [(LW(0,2), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 24,F8)), qVar"state"]), (LW(1,2), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 16,F16)), qVar"state"]), (LW(2,2), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 8,FTy 24)), qVar"state"]), (LW(3,2), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 0,F32)), qVar"state"])]), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("WORD",FTy 3), Mop(Cast(FTy 3),Var("v0",FTy 2)),LF, ITE(EQ(Bop(BXor, EX(Var("v",F64),LN 2,LN 2,F1), Apply (Const ("BigEndianCPU",ATy(qTy,F1)), qVar"state")),LW(1,1)), Bop(Lsl,Var("v2",F64),LN 32), Var("v2",F64)),Var("v",F64),LF]), qVar"s0"))))))) ; val dfn'SWR_def = Def ("dfn'SWR",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(Var("v0",FTy 2), Bop(BXor,EX(Var("v",F64),LN 1,LN 0,FTy 2), REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), LN 2,FTy 2)), Let(TP[Var("v1",F64),qVar"s"], CS(TP[Bop(BXor,EX(Var("v",F64),LN 2,LN 2,F1), Apply (Const("BigEndianCPU",ATy(qTy,F1)), qVar"state")),Var("v0",FTy 2)], [(TP[LW(0,1),LW(0,2)], TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 31,LN 0,F32)), qVar"state"]), (TP[LW(0,1),LW(1,2)], TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 23,LN 0,FTy 24)),LN 8),qVar"state"]), (TP[LW(0,1),LW(2,2)], TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 15,LN 0,F16)),LN 16),qVar"state"]), (TP[LW(0,1),LW(3,2)], TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 7,LN 0,F8)),LN 24),qVar"state"]), (TP[LW(1,1),LW(0,2)], TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 31,LN 0,F32)),LN 32),qVar"state"]), (TP[LW(1,1),LW(1,2)], TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 23,LN 0,FTy 24)),LN 40), qVar"state"]), (TP[LW(1,1),LW(2,2)], TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 15,LN 0,F16)),LN 48),qVar"state"]), (TP[LW(1,1),LW(3,2)], TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 7,LN 0,F8)),LN 56),qVar"state"])]), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("WORD",FTy 3), Bop(Sub,Const("WORD",FTy 3), Mop(Cast(FTy 3),Var("v0",FTy 2))),LF, Var("v1",F64),Var("v",F64),LF]),qVar"s"))))))) ; val dfn'SDL_def = Def ("dfn'SDL",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(Var("v0",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), LN 3,FTy 3)), Let(TP[Var("v1",F64),qVar"s"], CS(Var("v0",FTy 3), [(LW(0,3), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 63,LN 56,F8)), qVar"state"]), (LW(1,3), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 63,LN 48,F16)), qVar"state"]), (LW(2,3), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 63,LN 40,FTy 24)), qVar"state"]), (LW(3,3), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 63,LN 32,F32)), qVar"state"]), (LW(4,3), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 63,LN 24,FTy 40)), qVar"state"]), (LW(5,3), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 63,LN 16,FTy 48)), qVar"state"]), (LW(6,3), TP[Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),LN 63,LN 8,FTy 56)), qVar"state"]), (LW(7,3), TP[Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),qVar"state"])]), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("DOUBLEWORD",FTy 3),Var("v0",FTy 3), LF,Var("v1",F64),Var("v",F64),LF]),qVar"s"))))))) ; val dfn'SDR_def = Def ("dfn'SDR",TP[Var("base",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Let(Var("v",F64), Bop(Add,Mop(SE F64,Var("offset",F16)), Apply (Call("GPR",ATy(qTy,F64),Var("base",FTy 5)),qVar"state")), Let(Var("v0",FTy 3), Bop(BXor,EX(Var("v",F64),LN 2,LN 0,FTy 3), REP(Apply(Const("BigEndianCPU",ATy(qTy,F1)),qVar"state"), LN 3,FTy 3)), Let(TP[Var("v1",F64),qVar"s"], CS(Var("v0",FTy 3), [(LW(0,3), TP[Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"),qVar"state"]), (LW(1,3), TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 55,LN 0,FTy 56)),LN 8),qVar"state"]), (LW(2,3), TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 47,LN 0,FTy 48)),LN 16), qVar"state"]), (LW(3,3), TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 39,LN 0,FTy 40)),LN 24), qVar"state"]), (LW(4,3), TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 31,LN 0,F32)),LN 32),qVar"state"]), (LW(5,3), TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 23,LN 0,FTy 24)),LN 40), qVar"state"]), (LW(6,3), TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 15,LN 0,F16)),LN 48),qVar"state"]), (LW(7,3), TP[Bop(Lsl, Mop(Cast F64, EX(Apply (Call ("GPR",ATy(qTy,F64), Var("rt",FTy 5)),qVar"state"), LN 7,LN 0,F8)),LN 56),qVar"state"])]), Mop(Snd, Apply (Call ("StoreMemory",ATy(qTy,PTy(bTy,qTy)), TP[Const("DOUBLEWORD",FTy 3), Bop(Sub,Const("DOUBLEWORD",FTy 3), Var("v0",FTy 3)),LF,Var("v1",F64), Var("v",F64),LF]),qVar"s"))))))) ; val dfn'SYNC_def = Def ("dfn'SYNC",Var("stype",FTy 5),LU) ; val dfn'BREAK_def = Def ("dfn'BREAK",qVar"state", Apply (Call("SignalException",ATy(qTy,qTy),LC("Bp",CTy"ExceptionType")), qVar"state")) ; val dfn'SYSCALL_def = Def ("dfn'SYSCALL",qVar"state", Apply (Call("SignalException",ATy(qTy,qTy),LC("Sys",CTy"ExceptionType")), qVar"state")) ; val dfn'ERET_def = Def ("dfn'ERET",qVar"state", ITB([(Mop(IsSome,Dest("BranchDelay",OTy(OTy F64),qVar"state")), Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"ERET follows branch")),qVar"state"))), (Bop(Or, Dest ("CU0",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), Rupd ("LLbit", TP[ITE(Dest ("ERL",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Let(qVar"s", Rupd ("PC", TP[qVar"state", Bop(Sub, Dest ("ErrorEPC",F64, Dest("CP0",CTy"CP0",qVar"state")), LW(4,64))]), Rupd ("CP0", TP[qVar"s", Rupd ("Status", TP[Dest("CP0",CTy"CP0",qVar"s"), Rupd ("ERL", TP[Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"s")), LF])])])), Let(qVar"s", Rupd ("PC", TP[qVar"state", Bop(Sub, Dest ("EPC",F64, Dest("CP0",CTy"CP0",qVar"state")), LW(4,64))]), Rupd ("CP0", TP[qVar"s", Rupd ("Status", TP[Dest("CP0",CTy"CP0",qVar"s"), Rupd ("EXL", TP[Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"s")), LF])])]))),Mop(Some,LF)]))], Apply (Call ("SignalException",ATy(qTy,qTy),LC("CpU",CTy"ExceptionType")), qVar"state"))) ; val dfn'MTC0_def = Def ("dfn'MTC0",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)], Close (qVar"state", ITE(Bop(Or, Dest ("CU0",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), Apply (Call ("write'CPR",ATy(qTy,qTy), TP[Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), LN 0,Var("rd",FTy 5),Var("sel",FTy 3)]),qVar"state"), Apply (Call ("SignalException",ATy(qTy,qTy), LC("CpU",CTy"ExceptionType")),qVar"state")))) ; val dfn'DMTC0_def = Def ("dfn'DMTC0",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)], Close (qVar"state", ITE(Bop(Or, Dest ("CU0",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), Apply (Call ("write'CPR",ATy(qTy,qTy), TP[Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state"), LN 0,Var("rd",FTy 5),Var("sel",FTy 3)]),qVar"state"), Apply (Call ("SignalException",ATy(qTy,qTy), LC("CpU",CTy"ExceptionType")),qVar"state")))) ; val dfn'MFC0_def = Def ("dfn'MFC0",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)], Close (qVar"state", ITE(Bop(Or, Dest ("CU0",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Mop(SE F64, EX(Apply (Call ("CPR",ATy(qTy,F64), TP[LN 0,Var("rd",FTy 5),Var("sel",FTy 3)]), qVar"state"),LN 31,LN 0,F32)),Var("rt",FTy 5)]), qVar"state"), Apply (Call ("SignalException",ATy(qTy,qTy), LC("CpU",CTy"ExceptionType")),qVar"state")))) ; val dfn'DMFC0_def = Def ("dfn'DMFC0",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)], Close (qVar"state", ITE(Bop(Or, Dest ("CU0",bTy, Dest ("Status",CTy"StatusRegister", Dest("CP0",CTy"CP0",qVar"state"))), Apply(Const("KernelMode",ATy(qTy,bTy)),qVar"state")), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Apply (Call ("CPR",ATy(qTy,F64), TP[LN 0,Var("rd",FTy 5),Var("sel",FTy 3)]), qVar"state"),Var("rt",FTy 5)]),qVar"state"), Apply (Call ("SignalException",ATy(qTy,qTy), LC("CpU",CTy"ExceptionType")),qVar"state")))) ; val dfn'J_def = Def ("dfn'J",Var("instr_index",FTy 26), Close (qVar"state", Rupd ("BranchTo", TP[qVar"state", Mop(Some, TP[LF, CC[EX(Dest("PC",F64,qVar"state"),LN 63,LN 28,FTy 36), Var("instr_index",FTy 26),LW(0,2)]])]))) ; val dfn'JAL_def = Def ("dfn'JAL",Var("instr_index",FTy 26), Close (qVar"state", Let(qVar"s", Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Add,Dest("PC",F64,qVar"state"),LW(8,64)),LW(31,5)]), qVar"state"), Rupd ("BranchTo", TP[qVar"s", Mop(Some, TP[LF, CC[EX(Dest("PC",F64,qVar"s"),LN 63,LN 28,FTy 36), Var("instr_index",FTy 26),LW(0,2)]])])))) ; val dfn'JR_def = Def ("dfn'JR",Var("rs",FTy 5), Close (qVar"state", Rupd ("BranchTo", TP[qVar"state", Mop(Some, TP[LF, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")])]))) ; val dfn'JALR_def = Def ("dfn'JALR",TP[Var("rs",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Rupd ("BranchTo", TP[Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Add,Dest("PC",F64,qVar"state"),LW(8,64)), Var("rd",FTy 5)]),qVar"state"), Mop(Some, TP[LF, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")])]))) ; val dfn'BEQ_def = Def ("dfn'BEQ",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Var("offset",F16)]),qVar"state"))) ; val dfn'BNE_def = Def ("dfn'BNE",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Mop(Not, EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))),Var("offset",F16)]),qVar"state"))) ; val dfn'BLEZ_def = Def ("dfn'BLEZ",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Bop(Le, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]),qVar"state"))) ; val dfn'BGTZ_def = Def ("dfn'BGTZ",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Bop(Gt, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]),qVar"state"))) ; val dfn'BLTZ_def = Def ("dfn'BLTZ",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Bop(Lt, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]),qVar"state"))) ; val dfn'BGEZ_def = Def ("dfn'BGEZ",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Bop(Ge, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]),qVar"state"))) ; val dfn'BLTZAL_def = Def ("dfn'BLTZAL",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Bop(Lt, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Add,Dest("PC",F64,qVar"state"),LW(8,64)),LW(31,5)]), qVar"state")))) ; val dfn'BGEZAL_def = Def ("dfn'BGEZAL",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranch",ATy(qTy,qTy), TP[Bop(Ge, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Add,Dest("PC",F64,qVar"state"),LW(8,64)),LW(31,5)]), qVar"state")))) ; val dfn'BEQL_def = Def ("dfn'BEQL",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)),qVar"state")), Var("offset",F16)]),qVar"state"))) ; val dfn'BNEL_def = Def ("dfn'BNEL",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Mop(Not, EQ(Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), qVar"state"), Apply (Call("GPR",ATy(qTy,F64),Var("rt",FTy 5)), qVar"state"))),Var("offset",F16)]),qVar"state"))) ; val dfn'BLEZL_def = Def ("dfn'BLEZL",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Bop(Le, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]),qVar"state"))) ; val dfn'BGTZL_def = Def ("dfn'BGTZL",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Bop(Gt, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]),qVar"state"))) ; val dfn'BLTZL_def = Def ("dfn'BLTZL",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Bop(Lt, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]),qVar"state"))) ; val dfn'BGEZL_def = Def ("dfn'BGEZL",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Bop(Ge, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]),qVar"state"))) ; val dfn'BLTZALL_def = Def ("dfn'BLTZALL",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Bop(Lt, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Add,Dest("PC",F64,qVar"state"),LW(8,64)),LW(31,5)]), qVar"state")))) ; val dfn'BGEZALL_def = Def ("dfn'BGEZALL",TP[Var("rs",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("ConditionalBranchLikely",ATy(qTy,qTy), TP[Bop(Ge, Apply (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), LW(0,64)),Var("offset",F16)]), Apply (Call ("write'GPR",ATy(qTy,qTy), TP[Bop(Add,Dest("PC",F64,qVar"state"),LW(8,64)),LW(31,5)]), qVar"state")))) ; val dfn'WAIT_def = Def0 ("dfn'WAIT",LU) ; val dfn'TLBP_def = Def ("dfn'TLBP",qVar"state", Apply (Call("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), qVar"state")) ; val dfn'TLBR_def = Def ("dfn'TLBR",qVar"state", Apply (Call("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), qVar"state")) ; val dfn'TLBWI_def = Def ("dfn'TLBWI",qVar"state", Apply (Call("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), qVar"state")) ; val dfn'TLBWR_def = Def ("dfn'TLBWR",qVar"state", Apply (Call("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), qVar"state")) ; val dfn'CACHE_def = Def ("dfn'CACHE",TP[Var("base",FTy 5),Var("opn",FTy 5),Var("offset",F16)], Close (qVar"state", Apply (Call ("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), qVar"state"))) ; val dfn'RDHWR_def = Def ("dfn'RDHWR",TP[Var("rt",FTy 5),Var("rd",FTy 5)], Close (qVar"state", Apply (Call ("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), qVar"state"))) ; val dfn'ReservedInstruction_def = Def ("dfn'ReservedInstruction",qVar"state", Apply (Call("SignalException",ATy(qTy,qTy),LC("ResI",CTy"ExceptionType")), qVar"state")) ; val dfn'Unpredictable_def = Def ("dfn'Unpredictable",qVar"state", Mop(Snd, Apply (Call ("raise'exception",ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"Unpredictable instruction")),qVar"state"))) ; val Run_def = Def ("Run",Var("v0",CTy"instruction"), Close (qVar"state", CS(Var("v0",CTy"instruction"), [(Const("BREAK",CTy"instruction"), Apply(Const("dfn'BREAK",ATy(qTy,qTy)),qVar"state")), (Const("ERET",CTy"instruction"), Apply(Const("dfn'ERET",ATy(qTy,qTy)),qVar"state")), (Const("ReservedInstruction",CTy"instruction"), Apply (Const("dfn'ReservedInstruction",ATy(qTy,qTy)),qVar"state")), (Const("SYSCALL",CTy"instruction"), Apply(Const("dfn'SYSCALL",ATy(qTy,qTy)),qVar"state")), (Const("TLBP",CTy"instruction"), Apply(Const("dfn'TLBP",ATy(qTy,qTy)),qVar"state")), (Const("TLBR",CTy"instruction"), Apply(Const("dfn'TLBR",ATy(qTy,qTy)),qVar"state")), (Const("TLBWI",CTy"instruction"), Apply(Const("dfn'TLBWI",ATy(qTy,qTy)),qVar"state")), (Const("TLBWR",CTy"instruction"), Apply(Const("dfn'TLBWR",ATy(qTy,qTy)),qVar"state")), (Const("Unpredictable",CTy"instruction"), Apply(Const("dfn'Unpredictable",ATy(qTy,qTy)),qVar"state")), (Const("WAIT",CTy"instruction"),qVar"state"), (Call ("CACHE",CTy"instruction", Var("v204",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'CACHE",ATy(qTy,qTy), Var("v204",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call("RDHWR",CTy"instruction",Var("v205",PTy(FTy 5,FTy 5))), Apply (Call("dfn'RDHWR",ATy(qTy,qTy),Var("v205",PTy(FTy 5,FTy 5))), qVar"state")), (Call("SYNC",CTy"instruction",Var("v206",FTy 5)),qVar"state"), (Call("ArithI",CTy"instruction",Var("v1",CTy"ArithI")), CS(Var("v1",CTy"ArithI"), [(Call ("ADDI",CTy"ArithI",Var("v2",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'ADDI",ATy(qTy,qTy), Var("v2",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("ADDIU",CTy"ArithI",Var("v3",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'ADDIU",ATy(qTy,qTy), Var("v3",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("ANDI",CTy"ArithI",Var("v4",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'ANDI",ATy(qTy,qTy), Var("v4",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("DADDI",CTy"ArithI",Var("v5",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'DADDI",ATy(qTy,qTy), Var("v5",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("DADDIU",CTy"ArithI", Var("v6",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'DADDIU",ATy(qTy,qTy), Var("v6",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call("LUI",CTy"ArithI",Var("v7",PTy(FTy 5,F16))), Apply (Call("dfn'LUI",ATy(qTy,qTy),Var("v7",PTy(FTy 5,F16))), qVar"state")), (Call ("ORI",CTy"ArithI",Var("v8",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'ORI",ATy(qTy,qTy), Var("v8",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SLTI",CTy"ArithI",Var("v9",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SLTI",ATy(qTy,qTy), Var("v9",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SLTIU",CTy"ArithI", Var("v10",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SLTIU",ATy(qTy,qTy), Var("v10",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("XORI",CTy"ArithI",Var("v11",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'XORI",ATy(qTy,qTy), Var("v11",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state"))])), (Call("ArithR",CTy"instruction",Var("v12",CTy"ArithR")), CS(Var("v12",CTy"ArithR"), [(Call ("ADD",CTy"ArithR", Var("v13",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'ADD",ATy(qTy,qTy), Var("v13",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("ADDU",CTy"ArithR", Var("v14",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'ADDU",ATy(qTy,qTy), Var("v14",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("AND",CTy"ArithR", Var("v15",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'AND",ATy(qTy,qTy), Var("v15",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DADD",CTy"ArithR", Var("v16",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DADD",ATy(qTy,qTy), Var("v16",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DADDU",CTy"ArithR", Var("v17",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DADDU",ATy(qTy,qTy), Var("v17",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSUB",CTy"ArithR", Var("v18",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSUB",ATy(qTy,qTy), Var("v18",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSUBU",CTy"ArithR", Var("v19",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSUBU",ATy(qTy,qTy), Var("v19",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("MOVN",CTy"ArithR", Var("v20",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MOVN",ATy(qTy,qTy), Var("v20",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("MOVZ",CTy"ArithR", Var("v21",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MOVZ",ATy(qTy,qTy), Var("v21",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("NOR",CTy"ArithR", Var("v22",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'NOR",ATy(qTy,qTy), Var("v22",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("OR",CTy"ArithR",Var("v23",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'OR",ATy(qTy,qTy), Var("v23",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SLT",CTy"ArithR", Var("v24",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SLT",ATy(qTy,qTy), Var("v24",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SLTU",CTy"ArithR", Var("v25",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SLTU",ATy(qTy,qTy), Var("v25",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SUB",CTy"ArithR", Var("v26",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SUB",ATy(qTy,qTy), Var("v26",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SUBU",CTy"ArithR", Var("v27",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SUBU",ATy(qTy,qTy), Var("v27",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("XOR",CTy"ArithR", Var("v28",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'XOR",ATy(qTy,qTy), Var("v28",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state"))])), (Call("Branch",CTy"instruction",Var("v29",CTy"Branch")), CS(Var("v29",CTy"Branch"), [(Call ("BEQ",CTy"Branch",Var("v30",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'BEQ",ATy(qTy,qTy), Var("v30",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("BEQL",CTy"Branch",Var("v31",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'BEQL",ATy(qTy,qTy), Var("v31",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call("BGEZ",CTy"Branch",Var("v32",PTy(FTy 5,F16))), Apply (Call("dfn'BGEZ",ATy(qTy,qTy),Var("v32",PTy(FTy 5,F16))), qVar"state")), (Call("BGEZAL",CTy"Branch",Var("v33",PTy(FTy 5,F16))), Apply (Call ("dfn'BGEZAL",ATy(qTy,qTy),Var("v33",PTy(FTy 5,F16))), qVar"state")), (Call("BGEZALL",CTy"Branch",Var("v34",PTy(FTy 5,F16))), Apply (Call ("dfn'BGEZALL",ATy(qTy,qTy),Var("v34",PTy(FTy 5,F16))), qVar"state")), (Call("BGEZL",CTy"Branch",Var("v35",PTy(FTy 5,F16))), Apply (Call ("dfn'BGEZL",ATy(qTy,qTy),Var("v35",PTy(FTy 5,F16))), qVar"state")), (Call("BGTZ",CTy"Branch",Var("v36",PTy(FTy 5,F16))), Apply (Call("dfn'BGTZ",ATy(qTy,qTy),Var("v36",PTy(FTy 5,F16))), qVar"state")), (Call("BGTZL",CTy"Branch",Var("v37",PTy(FTy 5,F16))), Apply (Call ("dfn'BGTZL",ATy(qTy,qTy),Var("v37",PTy(FTy 5,F16))), qVar"state")), (Call("BLEZ",CTy"Branch",Var("v38",PTy(FTy 5,F16))), Apply (Call("dfn'BLEZ",ATy(qTy,qTy),Var("v38",PTy(FTy 5,F16))), qVar"state")), (Call("BLEZL",CTy"Branch",Var("v39",PTy(FTy 5,F16))), Apply (Call ("dfn'BLEZL",ATy(qTy,qTy),Var("v39",PTy(FTy 5,F16))), qVar"state")), (Call("BLTZ",CTy"Branch",Var("v40",PTy(FTy 5,F16))), Apply (Call("dfn'BLTZ",ATy(qTy,qTy),Var("v40",PTy(FTy 5,F16))), qVar"state")), (Call("BLTZAL",CTy"Branch",Var("v41",PTy(FTy 5,F16))), Apply (Call ("dfn'BLTZAL",ATy(qTy,qTy),Var("v41",PTy(FTy 5,F16))), qVar"state")), (Call("BLTZALL",CTy"Branch",Var("v42",PTy(FTy 5,F16))), Apply (Call ("dfn'BLTZALL",ATy(qTy,qTy),Var("v42",PTy(FTy 5,F16))), qVar"state")), (Call("BLTZL",CTy"Branch",Var("v43",PTy(FTy 5,F16))), Apply (Call ("dfn'BLTZL",ATy(qTy,qTy),Var("v43",PTy(FTy 5,F16))), qVar"state")), (Call ("BNE",CTy"Branch",Var("v44",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'BNE",ATy(qTy,qTy), Var("v44",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("BNEL",CTy"Branch",Var("v45",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'BNEL",ATy(qTy,qTy), Var("v45",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call("J",CTy"Branch",Var("v46",FTy 26)), Apply (Call("dfn'J",ATy(qTy,qTy),Var("v46",FTy 26)), qVar"state")), (Call("JAL",CTy"Branch",Var("v47",FTy 26)), Apply (Call("dfn'JAL",ATy(qTy,qTy),Var("v47",FTy 26)), qVar"state")), (Call("JALR",CTy"Branch",Var("v48",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'JALR",ATy(qTy,qTy),Var("v48",PTy(FTy 5,FTy 5))), qVar"state")), (Call("JR",CTy"Branch",Var("v49",FTy 5)), Apply (Call("dfn'JR",ATy(qTy,qTy),Var("v49",FTy 5)), qVar"state"))])), (Call("COP1",CTy"instruction",Var("v50",CTy"COP1")), CS(Var("v50",CTy"COP1"), [(Const("UnknownFPInstruction",CTy"COP1"), Apply (Const("dfn'UnknownFPInstruction",ATy(qTy,qTy)), qVar"state")), (Call("ABS_D",CTy"COP1",Var("v51",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'ABS_D",ATy(qTy,qTy),Var("v51",PTy(FTy 5,FTy 5))), qVar"state")), (Call("ABS_S",CTy"COP1",Var("v52",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'ABS_S",ATy(qTy,qTy),Var("v52",PTy(FTy 5,FTy 5))), qVar"state")), (Call ("ADD_D",CTy"COP1", Var("v53",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'ADD_D",ATy(qTy,qTy), Var("v53",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("ADD_S",CTy"COP1", Var("v54",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'ADD_S",ATy(qTy,qTy), Var("v54",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call("BC1F",CTy"COP1",Var("v55",PTy(F16,FTy 3))), Apply (Call("dfn'BC1F",ATy(qTy,qTy),Var("v55",PTy(F16,FTy 3))), qVar"state")), (Call("BC1FL",CTy"COP1",Var("v56",PTy(F16,FTy 3))), Apply (Call ("dfn'BC1FL",ATy(qTy,qTy),Var("v56",PTy(F16,FTy 3))), qVar"state")), (Call("BC1T",CTy"COP1",Var("v57",PTy(F16,FTy 3))), Apply (Call("dfn'BC1T",ATy(qTy,qTy),Var("v57",PTy(F16,FTy 3))), qVar"state")), (Call("BC1TL",CTy"COP1",Var("v58",PTy(F16,FTy 3))), Apply (Call ("dfn'BC1TL",ATy(qTy,qTy),Var("v58",PTy(F16,FTy 3))), qVar"state")), (Call("CEIL_L_D",CTy"COP1",Var("v59",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CEIL_L_D",ATy(qTy,qTy), Var("v59",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CEIL_L_S",CTy"COP1",Var("v60",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CEIL_L_S",ATy(qTy,qTy), Var("v60",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CEIL_W_D",CTy"COP1",Var("v61",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CEIL_W_D",ATy(qTy,qTy), Var("v61",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CEIL_W_S",CTy"COP1",Var("v62",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CEIL_W_S",ATy(qTy,qTy), Var("v62",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CFC1",CTy"COP1",Var("v63",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CFC1",ATy(qTy,qTy),Var("v63",PTy(FTy 5,FTy 5))), qVar"state")), (Call("CTC1",CTy"COP1",Var("v64",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CTC1",ATy(qTy,qTy),Var("v64",PTy(FTy 5,FTy 5))), qVar"state")), (Call("CVT_D_L",CTy"COP1",Var("v65",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_D_L",ATy(qTy,qTy), Var("v65",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_D_S",CTy"COP1",Var("v66",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_D_S",ATy(qTy,qTy), Var("v66",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_D_W",CTy"COP1",Var("v67",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_D_W",ATy(qTy,qTy), Var("v67",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_L_D",CTy"COP1",Var("v68",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_L_D",ATy(qTy,qTy), Var("v68",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_L_S",CTy"COP1",Var("v69",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_L_S",ATy(qTy,qTy), Var("v69",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_S_D",CTy"COP1",Var("v70",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_S_D",ATy(qTy,qTy), Var("v70",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_S_L",CTy"COP1",Var("v71",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_S_L",ATy(qTy,qTy), Var("v71",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_S_W",CTy"COP1",Var("v72",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_S_W",ATy(qTy,qTy), Var("v72",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_W_D",CTy"COP1",Var("v73",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_W_D",ATy(qTy,qTy), Var("v73",PTy(FTy 5,FTy 5))),qVar"state")), (Call("CVT_W_S",CTy"COP1",Var("v74",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'CVT_W_S",ATy(qTy,qTy), Var("v74",PTy(FTy 5,FTy 5))),qVar"state")), (Call ("C_cond_D",CTy"COP1", Var("v75",PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3))))), Apply (Call ("dfn'C_cond_D",ATy(qTy,qTy), Var("v75",PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3))))), qVar"state")), (Call ("C_cond_S",CTy"COP1", Var("v76",PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3))))), Apply (Call ("dfn'C_cond_S",ATy(qTy,qTy), Var("v76",PTy(FTy 5,PTy(FTy 5,PTy(FTy 3,FTy 3))))), qVar"state")), (Call ("DIV_D",CTy"COP1", Var("v77",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DIV_D",ATy(qTy,qTy), Var("v77",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DIV_S",CTy"COP1", Var("v78",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DIV_S",ATy(qTy,qTy), Var("v78",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call("DMFC1",CTy"COP1",Var("v79",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'DMFC1",ATy(qTy,qTy),Var("v79",PTy(FTy 5,FTy 5))), qVar"state")), (Call("DMTC1",CTy"COP1",Var("v80",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'DMTC1",ATy(qTy,qTy),Var("v80",PTy(FTy 5,FTy 5))), qVar"state")), (Call("FLOOR_L_D",CTy"COP1",Var("v81",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'FLOOR_L_D",ATy(qTy,qTy), Var("v81",PTy(FTy 5,FTy 5))),qVar"state")), (Call("FLOOR_L_S",CTy"COP1",Var("v82",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'FLOOR_L_S",ATy(qTy,qTy), Var("v82",PTy(FTy 5,FTy 5))),qVar"state")), (Call("FLOOR_W_D",CTy"COP1",Var("v83",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'FLOOR_W_D",ATy(qTy,qTy), Var("v83",PTy(FTy 5,FTy 5))),qVar"state")), (Call("FLOOR_W_S",CTy"COP1",Var("v84",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'FLOOR_W_S",ATy(qTy,qTy), Var("v84",PTy(FTy 5,FTy 5))),qVar"state")), (Call ("LDC1",CTy"COP1",Var("v85",PTy(FTy 5,PTy(F16,FTy 5)))), Apply (Call ("dfn'LDC1",ATy(qTy,qTy), Var("v85",PTy(FTy 5,PTy(F16,FTy 5)))),qVar"state")), (Call ("LDXC1",CTy"COP1", Var("v86",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'LDXC1",ATy(qTy,qTy), Var("v86",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("LWC1",CTy"COP1",Var("v87",PTy(FTy 5,PTy(F16,FTy 5)))), Apply (Call ("dfn'LWC1",ATy(qTy,qTy), Var("v87",PTy(FTy 5,PTy(F16,FTy 5)))),qVar"state")), (Call ("LWXC1",CTy"COP1", Var("v88",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'LWXC1",ATy(qTy,qTy), Var("v88",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("MADD_D",CTy"COP1", Var("v89",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), Apply (Call ("dfn'MADD_D",ATy(qTy,qTy), Var("v89",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), qVar"state")), (Call ("MADD_S",CTy"COP1", Var("v90",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), Apply (Call ("dfn'MADD_S",ATy(qTy,qTy), Var("v90",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), qVar"state")), (Call("MFC1",CTy"COP1",Var("v91",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MFC1",ATy(qTy,qTy),Var("v91",PTy(FTy 5,FTy 5))), qVar"state")), (Call ("MOVF",CTy"COP1",Var("v92",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'MOVF",ATy(qTy,qTy), Var("v92",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("MOVF_D",CTy"COP1", Var("v93",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'MOVF_D",ATy(qTy,qTy), Var("v93",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("MOVF_S",CTy"COP1", Var("v94",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'MOVF_S",ATy(qTy,qTy), Var("v94",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("MOVN_D",CTy"COP1", Var("v95",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MOVN_D",ATy(qTy,qTy), Var("v95",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("MOVN_S",CTy"COP1", Var("v96",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MOVN_S",ATy(qTy,qTy), Var("v96",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("MOVT",CTy"COP1",Var("v97",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'MOVT",ATy(qTy,qTy), Var("v97",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("MOVT_D",CTy"COP1", Var("v98",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'MOVT_D",ATy(qTy,qTy), Var("v98",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("MOVT_S",CTy"COP1", Var("v99",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'MOVT_S",ATy(qTy,qTy), Var("v99",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("MOVZ_D",CTy"COP1", Var("v100",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MOVZ_D",ATy(qTy,qTy), Var("v100",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("MOVZ_S",CTy"COP1", Var("v101",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MOVZ_S",ATy(qTy,qTy), Var("v101",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call("MOV_D",CTy"COP1",Var("v102",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MOV_D",ATy(qTy,qTy), Var("v102",PTy(FTy 5,FTy 5))),qVar"state")), (Call("MOV_S",CTy"COP1",Var("v103",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MOV_S",ATy(qTy,qTy), Var("v103",PTy(FTy 5,FTy 5))),qVar"state")), (Call ("MSUB_D",CTy"COP1", Var("v104",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), Apply (Call ("dfn'MSUB_D",ATy(qTy,qTy), Var("v104",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), qVar"state")), (Call ("MSUB_S",CTy"COP1", Var("v105",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), Apply (Call ("dfn'MSUB_S",ATy(qTy,qTy), Var("v105",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 5))))), qVar"state")), (Call("MTC1",CTy"COP1",Var("v106",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MTC1",ATy(qTy,qTy),Var("v106",PTy(FTy 5,FTy 5))), qVar"state")), (Call ("MUL_D",CTy"COP1", Var("v107",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MUL_D",ATy(qTy,qTy), Var("v107",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("MUL_S",CTy"COP1", Var("v108",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MUL_S",ATy(qTy,qTy), Var("v108",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call("NEG_D",CTy"COP1",Var("v109",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'NEG_D",ATy(qTy,qTy), Var("v109",PTy(FTy 5,FTy 5))),qVar"state")), (Call("NEG_S",CTy"COP1",Var("v110",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'NEG_S",ATy(qTy,qTy), Var("v110",PTy(FTy 5,FTy 5))),qVar"state")), (Call("ROUND_L_D",CTy"COP1",Var("v111",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'ROUND_L_D",ATy(qTy,qTy), Var("v111",PTy(FTy 5,FTy 5))),qVar"state")), (Call("ROUND_L_S",CTy"COP1",Var("v112",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'ROUND_L_S",ATy(qTy,qTy), Var("v112",PTy(FTy 5,FTy 5))),qVar"state")), (Call("ROUND_W_D",CTy"COP1",Var("v113",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'ROUND_W_D",ATy(qTy,qTy), Var("v113",PTy(FTy 5,FTy 5))),qVar"state")), (Call("ROUND_W_S",CTy"COP1",Var("v114",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'ROUND_W_S",ATy(qTy,qTy), Var("v114",PTy(FTy 5,FTy 5))),qVar"state")), (Call ("SDC1",CTy"COP1",Var("v115",PTy(FTy 5,PTy(F16,FTy 5)))), Apply (Call ("dfn'SDC1",ATy(qTy,qTy), Var("v115",PTy(FTy 5,PTy(F16,FTy 5)))),qVar"state")), (Call ("SDXC1",CTy"COP1", Var("v116",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SDXC1",ATy(qTy,qTy), Var("v116",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call("SQRT_D",CTy"COP1",Var("v117",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'SQRT_D",ATy(qTy,qTy), Var("v117",PTy(FTy 5,FTy 5))),qVar"state")), (Call("SQRT_S",CTy"COP1",Var("v118",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'SQRT_S",ATy(qTy,qTy), Var("v118",PTy(FTy 5,FTy 5))),qVar"state")), (Call ("SUB_D",CTy"COP1", Var("v119",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SUB_D",ATy(qTy,qTy), Var("v119",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SUB_S",CTy"COP1", Var("v120",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SUB_S",ATy(qTy,qTy), Var("v120",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SWC1",CTy"COP1",Var("v121",PTy(FTy 5,PTy(F16,FTy 5)))), Apply (Call ("dfn'SWC1",ATy(qTy,qTy), Var("v121",PTy(FTy 5,PTy(F16,FTy 5)))),qVar"state")), (Call ("SWXC1",CTy"COP1", Var("v122",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SWXC1",ATy(qTy,qTy), Var("v122",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call("TRUNC_L_D",CTy"COP1",Var("v123",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TRUNC_L_D",ATy(qTy,qTy), Var("v123",PTy(FTy 5,FTy 5))),qVar"state")), (Call("TRUNC_L_S",CTy"COP1",Var("v124",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TRUNC_L_S",ATy(qTy,qTy), Var("v124",PTy(FTy 5,FTy 5))),qVar"state")), (Call("TRUNC_W_D",CTy"COP1",Var("v125",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TRUNC_W_D",ATy(qTy,qTy), Var("v125",PTy(FTy 5,FTy 5))),qVar"state")), (Call("TRUNC_W_S",CTy"COP1",Var("v126",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TRUNC_W_S",ATy(qTy,qTy), Var("v126",PTy(FTy 5,FTy 5))),qVar"state"))])), (Call("CP",CTy"instruction",Var("v127",CTy"CP")), CS(Var("v127",CTy"CP"), [(Call ("DMFC0",CTy"CP",Var("v128",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'DMFC0",ATy(qTy,qTy), Var("v128",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("DMTC0",CTy"CP",Var("v129",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'DMTC0",ATy(qTy,qTy), Var("v129",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("MFC0",CTy"CP",Var("v130",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'MFC0",ATy(qTy,qTy), Var("v130",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), (Call ("MTC0",CTy"CP",Var("v131",PTy(FTy 5,PTy(FTy 5,FTy 3)))), Apply (Call ("dfn'MTC0",ATy(qTy,qTy), Var("v131",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state"))])), (Call("Load",CTy"instruction",Var("v132",CTy"Load")), CS(Var("v132",CTy"Load"), [(Call("LB",CTy"Load",Var("v133",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LB",ATy(qTy,qTy), Var("v133",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("LBU",CTy"Load",Var("v134",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LBU",ATy(qTy,qTy), Var("v134",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call("LD",CTy"Load",Var("v135",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LD",ATy(qTy,qTy), Var("v135",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("LDL",CTy"Load",Var("v136",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LDL",ATy(qTy,qTy), Var("v136",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("LDR",CTy"Load",Var("v137",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LDR",ATy(qTy,qTy), Var("v137",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call("LH",CTy"Load",Var("v138",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LH",ATy(qTy,qTy), Var("v138",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("LHU",CTy"Load",Var("v139",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LHU",ATy(qTy,qTy), Var("v139",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call("LL",CTy"Load",Var("v140",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LL",ATy(qTy,qTy), Var("v140",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("LLD",CTy"Load",Var("v141",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LLD",ATy(qTy,qTy), Var("v141",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call("LW",CTy"Load",Var("v142",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LW",ATy(qTy,qTy), Var("v142",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("LWL",CTy"Load",Var("v143",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LWL",ATy(qTy,qTy), Var("v143",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("LWR",CTy"Load",Var("v144",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LWR",ATy(qTy,qTy), Var("v144",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("LWU",CTy"Load",Var("v145",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'LWU",ATy(qTy,qTy), Var("v145",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state"))])), (Call("MultDiv",CTy"instruction",Var("v146",CTy"MultDiv")), CS(Var("v146",CTy"MultDiv"), [(Call("DDIV",CTy"MultDiv",Var("v147",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'DDIV",ATy(qTy,qTy),Var("v147",PTy(FTy 5,FTy 5))), qVar"state")), (Call("DDIVU",CTy"MultDiv",Var("v148",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'DDIVU",ATy(qTy,qTy), Var("v148",PTy(FTy 5,FTy 5))),qVar"state")), (Call("DIV",CTy"MultDiv",Var("v149",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'DIV",ATy(qTy,qTy),Var("v149",PTy(FTy 5,FTy 5))), qVar"state")), (Call("DIVU",CTy"MultDiv",Var("v150",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'DIVU",ATy(qTy,qTy),Var("v150",PTy(FTy 5,FTy 5))), qVar"state")), (Call("DMULT",CTy"MultDiv",Var("v151",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'DMULT",ATy(qTy,qTy), Var("v151",PTy(FTy 5,FTy 5))),qVar"state")), (Call("DMULTU",CTy"MultDiv",Var("v152",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'DMULTU",ATy(qTy,qTy), Var("v152",PTy(FTy 5,FTy 5))),qVar"state")), (Call("MADD",CTy"MultDiv",Var("v153",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MADD",ATy(qTy,qTy),Var("v153",PTy(FTy 5,FTy 5))), qVar"state")), (Call("MADDU",CTy"MultDiv",Var("v154",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MADDU",ATy(qTy,qTy), Var("v154",PTy(FTy 5,FTy 5))),qVar"state")), (Call("MFHI",CTy"MultDiv",Var("v155",FTy 5)), Apply (Call("dfn'MFHI",ATy(qTy,qTy),Var("v155",FTy 5)), qVar"state")), (Call("MFLO",CTy"MultDiv",Var("v156",FTy 5)), Apply (Call("dfn'MFLO",ATy(qTy,qTy),Var("v156",FTy 5)), qVar"state")), (Call("MSUB",CTy"MultDiv",Var("v157",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MSUB",ATy(qTy,qTy),Var("v157",PTy(FTy 5,FTy 5))), qVar"state")), (Call("MSUBU",CTy"MultDiv",Var("v158",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MSUBU",ATy(qTy,qTy), Var("v158",PTy(FTy 5,FTy 5))),qVar"state")), (Call("MTHI",CTy"MultDiv",Var("v159",FTy 5)), Apply (Call("dfn'MTHI",ATy(qTy,qTy),Var("v159",FTy 5)), qVar"state")), (Call("MTLO",CTy"MultDiv",Var("v160",FTy 5)), Apply (Call("dfn'MTLO",ATy(qTy,qTy),Var("v160",FTy 5)), qVar"state")), (Call ("MUL",CTy"MultDiv", Var("v161",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'MUL",ATy(qTy,qTy), Var("v161",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call("MULT",CTy"MultDiv",Var("v162",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MULT",ATy(qTy,qTy),Var("v162",PTy(FTy 5,FTy 5))), qVar"state")), (Call("MULTU",CTy"MultDiv",Var("v163",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'MULTU",ATy(qTy,qTy), Var("v163",PTy(FTy 5,FTy 5))),qVar"state"))])), (Call("Shift",CTy"instruction",Var("v164",CTy"Shift")), CS(Var("v164",CTy"Shift"), [(Call ("DSLL",CTy"Shift", Var("v165",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSLL",ATy(qTy,qTy), Var("v165",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSLL32",CTy"Shift", Var("v166",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSLL32",ATy(qTy,qTy), Var("v166",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSLLV",CTy"Shift", Var("v167",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSLLV",ATy(qTy,qTy), Var("v167",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSRA",CTy"Shift", Var("v168",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSRA",ATy(qTy,qTy), Var("v168",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSRA32",CTy"Shift", Var("v169",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSRA32",ATy(qTy,qTy), Var("v169",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSRAV",CTy"Shift", Var("v170",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSRAV",ATy(qTy,qTy), Var("v170",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSRL",CTy"Shift", Var("v171",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSRL",ATy(qTy,qTy), Var("v171",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSRL32",CTy"Shift", Var("v172",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSRL32",ATy(qTy,qTy), Var("v172",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("DSRLV",CTy"Shift", Var("v173",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'DSRLV",ATy(qTy,qTy), Var("v173",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SLL",CTy"Shift", Var("v174",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SLL",ATy(qTy,qTy), Var("v174",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SLLV",CTy"Shift", Var("v175",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SLLV",ATy(qTy,qTy), Var("v175",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SRA",CTy"Shift", Var("v176",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SRA",ATy(qTy,qTy), Var("v176",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SRAV",CTy"Shift", Var("v177",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SRAV",ATy(qTy,qTy), Var("v177",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SRL",CTy"Shift", Var("v178",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SRL",ATy(qTy,qTy), Var("v178",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), (Call ("SRLV",CTy"Shift", Var("v179",PTy(FTy 5,PTy(FTy 5,FTy 5)))), Apply (Call ("dfn'SRLV",ATy(qTy,qTy), Var("v179",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state"))])), (Call("Store",CTy"instruction",Var("v180",CTy"Store")), CS(Var("v180",CTy"Store"), [(Call ("SB",CTy"Store",Var("v181",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SB",ATy(qTy,qTy), Var("v181",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SC",CTy"Store",Var("v182",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SC",ATy(qTy,qTy), Var("v182",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SCD",CTy"Store",Var("v183",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SCD",ATy(qTy,qTy), Var("v183",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SD",CTy"Store",Var("v184",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SD",ATy(qTy,qTy), Var("v184",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SDL",CTy"Store",Var("v185",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SDL",ATy(qTy,qTy), Var("v185",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SDR",CTy"Store",Var("v186",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SDR",ATy(qTy,qTy), Var("v186",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SH",CTy"Store",Var("v187",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SH",ATy(qTy,qTy), Var("v187",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SW",CTy"Store",Var("v188",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SW",ATy(qTy,qTy), Var("v188",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SWL",CTy"Store",Var("v189",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SWL",ATy(qTy,qTy), Var("v189",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state")), (Call ("SWR",CTy"Store",Var("v190",PTy(FTy 5,PTy(FTy 5,F16)))), Apply (Call ("dfn'SWR",ATy(qTy,qTy), Var("v190",PTy(FTy 5,PTy(FTy 5,F16)))),qVar"state"))])), (Call("Trap",CTy"instruction",Var("v191",CTy"Trap")), CS(Var("v191",CTy"Trap"), [(Call("TEQ",CTy"Trap",Var("v192",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TEQ",ATy(qTy,qTy),Var("v192",PTy(FTy 5,FTy 5))), qVar"state")), (Call("TEQI",CTy"Trap",Var("v193",PTy(FTy 5,F16))), Apply (Call ("dfn'TEQI",ATy(qTy,qTy),Var("v193",PTy(FTy 5,F16))), qVar"state")), (Call("TGE",CTy"Trap",Var("v194",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TGE",ATy(qTy,qTy),Var("v194",PTy(FTy 5,FTy 5))), qVar"state")), (Call("TGEI",CTy"Trap",Var("v195",PTy(FTy 5,F16))), Apply (Call ("dfn'TGEI",ATy(qTy,qTy),Var("v195",PTy(FTy 5,F16))), qVar"state")), (Call("TGEIU",CTy"Trap",Var("v196",PTy(FTy 5,F16))), Apply (Call ("dfn'TGEIU",ATy(qTy,qTy),Var("v196",PTy(FTy 5,F16))), qVar"state")), (Call("TGEU",CTy"Trap",Var("v197",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TGEU",ATy(qTy,qTy),Var("v197",PTy(FTy 5,FTy 5))), qVar"state")), (Call("TLT",CTy"Trap",Var("v198",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TLT",ATy(qTy,qTy),Var("v198",PTy(FTy 5,FTy 5))), qVar"state")), (Call("TLTI",CTy"Trap",Var("v199",PTy(FTy 5,F16))), Apply (Call ("dfn'TLTI",ATy(qTy,qTy),Var("v199",PTy(FTy 5,F16))), qVar"state")), (Call("TLTIU",CTy"Trap",Var("v200",PTy(FTy 5,F16))), Apply (Call ("dfn'TLTIU",ATy(qTy,qTy),Var("v200",PTy(FTy 5,F16))), qVar"state")), (Call("TLTU",CTy"Trap",Var("v201",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TLTU",ATy(qTy,qTy),Var("v201",PTy(FTy 5,FTy 5))), qVar"state")), (Call("TNE",CTy"Trap",Var("v202",PTy(FTy 5,FTy 5))), Apply (Call ("dfn'TNE",ATy(qTy,qTy),Var("v202",PTy(FTy 5,FTy 5))), qVar"state")), (Call("TNEI",CTy"Trap",Var("v203",PTy(FTy 5,F16))), Apply (Call ("dfn'TNEI",ATy(qTy,qTy),Var("v203",PTy(FTy 5,F16))), qVar"state"))]))]))) ; val COP1Decode_def = Def ("COP1Decode",Var("v",FTy 26), Call ("COP1",CTy"instruction", Let(TP[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22",bVar"b'21", bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17",bVar"b'16", bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12",bVar"b'11", bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6",bVar"b'5", bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], BL(26,Var("v",FTy 26)), ITB([(bVar"b'21", ITB([(bVar"b'3", ITB([(bVar"b'2", ITE(Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'20"), Bop(And, Mop(Not,bVar"b'19"), Bop(And, Mop(Not, bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'5"), Mop(Not, bVar"b'4"))))))))))), ITB([(Bop(And,Mop(Not,bVar"b'1"), Mop(Not,bVar"b'0")), Call ("ROUND_W_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"), Call ("TRUNC_W_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'1",Mop(Not,bVar"b'0")), Call ("CEIL_W_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'1",bVar"b'0"), Call ("FLOOR_W_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])]))], Const ("UnknownFPInstruction",CTy"COP1")), Const("UnknownFPInstruction",CTy"COP1"))), (Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'20"), Bop(And, Mop(Not,bVar"b'19"), Bop(And, Mop(Not,bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'5"), Mop(Not, bVar"b'4"))))))))))), ITB([(Bop(And,Mop(Not,bVar"b'1"), Mop(Not,bVar"b'0")), Call ("ROUND_L_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"), Call ("TRUNC_L_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'1",Mop(Not,bVar"b'0")), Call ("CEIL_L_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'1",bVar"b'0"), Call ("FLOOR_L_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])]))], Const("UnknownFPInstruction",CTy"COP1")))], Const("UnknownFPInstruction",CTy"COP1"))), (bVar"b'5", ITE(Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Mop(Not,bVar"b'22"))), ITB([(Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), bVar"b'4"))), Call ("C_cond_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 3), LL[bVar"b'2",bVar"b'1",bVar"b'0"]), Mop(Cast(FTy 3), LL[bVar"b'10",bVar"b'9", bVar"b'8"])])), (Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0")))))))))), Call ("CVT_S_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'23", Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0")))))))))), Call ("CVT_S_L",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'23", Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0"))))))))), Call ("CVT_D_L",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0")))))))))), Call ("CVT_W_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), bVar"b'0"))))))))), Call ("CVT_L_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])]))], Const("UnknownFPInstruction",CTy"COP1")), Const("UnknownFPInstruction",CTy"COP1"))), (bVar"b'0", ITE(Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Mop(Not,bVar"b'22")))), ITB([(Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"), Mop(Not,bVar"b'1"))), Call ("SUB_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"])])), (Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"),bVar"b'1")), Call ("DIV_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"])])), (Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not,bVar"b'4"), Bop(And,bVar"b'2", Mop(Not, bVar"b'1")))))))), Call ("ABS_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not,bVar"b'4"), Bop(And,bVar"b'2", bVar"b'1"))))))), Call ("NEG_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'17"), Bop(And,Mop(Not,bVar"b'16"), Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'2"), Mop(Not,bVar"b'1"))))), Call ("MOVF_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 3), LL[bVar"b'20",bVar"b'19", bVar"b'18"])])), (Bop(And,Mop(Not,bVar"b'17"), Bop(And,bVar"b'16", Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'2"), Mop(Not,bVar"b'1"))))), Call ("MOVT_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 3), LL[bVar"b'20",bVar"b'19", bVar"b'18"])])), (Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'2"),bVar"b'1")), Call ("MOVN_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"])]))], Const("UnknownFPInstruction",CTy"COP1")), Const("UnknownFPInstruction",CTy"COP1"))), (Bop(And,Mop(Not,bVar"b'24"),Mop(Not,bVar"b'22")), ITB([(Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not,bVar"b'6"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'2"), Mop(Not, bVar"b'1")))))))))), Call ("DMFC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'25"), Bop(And,bVar"b'23", Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not,bVar"b'6"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'2"), Mop(Not, bVar"b'1")))))))))), Call ("DMTC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"), Mop(Not,bVar"b'1"))))), Call ("ADD_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])])), (Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"), bVar"b'1")))), Call ("MUL_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])])), (Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'2", Mop(Not, bVar"b'1")))))))))), Call ("SQRT_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'2", bVar"b'1"))))))))), Call ("MOV_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'23"), Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'2"), bVar"b'1")))), Call ("MOVZ_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])]))], Const("UnknownFPInstruction",CTy"COP1")))], Const("UnknownFPInstruction",CTy"COP1"))), (bVar"b'25", ITB([(bVar"b'3", ITB([(bVar"b'2", ITE(Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'20"), Bop(And, Mop(Not,bVar"b'19"), Bop(And, Mop(Not,bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'5"), Mop(Not, bVar"b'4")))))))))), ITB([(Bop(And,Mop(Not,bVar"b'1"), Mop(Not,bVar"b'0")), Call ("ROUND_W_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"), Call ("TRUNC_W_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'1",Mop(Not,bVar"b'0")), Call ("CEIL_W_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'1",bVar"b'0"), Call ("FLOOR_W_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])]))], Const ("UnknownFPInstruction",CTy"COP1")), Const("UnknownFPInstruction",CTy"COP1"))), (Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And, Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'5"), Mop(Not, bVar"b'4")))))))))), ITB([(Bop(And,Mop(Not,bVar"b'1"), Mop(Not,bVar"b'0")), Call ("ROUND_L_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"), Call ("TRUNC_L_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'1",Mop(Not,bVar"b'0")), Call ("CEIL_L_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'1",bVar"b'0"), Call ("FLOOR_L_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])]))], Const("UnknownFPInstruction",CTy"COP1")))], Const("UnknownFPInstruction",CTy"COP1"))), (bVar"b'5", ITE(Bop(And,Mop(Not,bVar"b'24"),Mop(Not,bVar"b'22")), ITB([(Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), bVar"b'4"))), Call ("C_cond_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 3), LL[bVar"b'2",bVar"b'1",bVar"b'0"]), Mop(Cast(FTy 3), LL[bVar"b'10",bVar"b'9", bVar"b'8"])])), (Bop(And,bVar"b'23", Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0")))))))))), Call ("CVT_S_W",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0"))))))))), Call ("CVT_D_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'23", Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0"))))))))), Call ("CVT_D_W",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0")))))))))), Call ("CVT_W_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), bVar"b'0"))))))))), Call ("CVT_L_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])]))], Const("UnknownFPInstruction",CTy"COP1")), Const("UnknownFPInstruction",CTy"COP1"))), (bVar"b'1", ITE(Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Mop(Not,bVar"b'22"))), ITB([(Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"), Mop(Not,bVar"b'0"))), Call ("MUL_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"])])), (Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"),bVar"b'0")), Call ("DIV_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"])])), (Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not,bVar"b'4"), Bop(And,bVar"b'2", Mop(Not, bVar"b'0")))))))), Call ("MOV_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And, Mop(Not,bVar"b'16"), Bop(And, Mop(Not,bVar"b'4"), Bop(And,bVar"b'2", bVar"b'0"))))))), Call ("NEG_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'2"), Mop(Not,bVar"b'0"))), Call ("MOVZ_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"])])), (Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'2"),bVar"b'0")), Call ("MOVN_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"])]))], Const("UnknownFPInstruction",CTy"COP1")), Const("UnknownFPInstruction",CTy"COP1"))), (Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"),Mop(Not,bVar"b'22"))), ITB([(Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"), Mop(Not,bVar"b'0"))), Call ("ADD_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])])), (Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"),bVar"b'0")), Call ("SUB_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])])), (Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And,Mop(Not,bVar"b'16"), Bop(And, Mop(Not,bVar"b'4"), Bop(And,bVar"b'2", Mop(Not,bVar"b'0")))))))), Call ("SQRT_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And,Mop(Not,bVar"b'16"), Bop(And, Mop(Not,bVar"b'4"), Bop(And,bVar"b'2", bVar"b'0"))))))), Call ("ABS_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'17"), Bop(And,Mop(Not,bVar"b'16"), Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'2"), bVar"b'0")))), Call ("MOVF_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 3), LL[bVar"b'20",bVar"b'19",bVar"b'18"])])), (Bop(And,Mop(Not,bVar"b'17"), Bop(And,bVar"b'16", Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'2"), bVar"b'0")))), Call ("MOVT_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 3), LL[bVar"b'20",bVar"b'19",bVar"b'18"])]))], Const("UnknownFPInstruction",CTy"COP1")))], Const("UnknownFPInstruction",CTy"COP1"))), (bVar"b'24", ITE(Bop(And,Mop(Not,bVar"b'23"),Mop(Not,bVar"b'22")), ITB([(Bop(And,Mop(Not,bVar"b'17"),Mop(Not,bVar"b'16")), Call ("BC1F",CTy"COP1", TP[Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"]), Mop(Cast(FTy 3), LL[bVar"b'20",bVar"b'19",bVar"b'18"])])), (Bop(And,Mop(Not,bVar"b'17"),bVar"b'16"), Call ("BC1T",CTy"COP1", TP[Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"]), Mop(Cast(FTy 3), LL[bVar"b'20",bVar"b'19",bVar"b'18"])])), (Bop(And,bVar"b'17",Mop(Not,bVar"b'16")), Call ("BC1FL",CTy"COP1", TP[Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"]), Mop(Cast(FTy 3), LL[bVar"b'20",bVar"b'19",bVar"b'18"])])), (Bop(And,bVar"b'17",bVar"b'16"), Call ("BC1TL",CTy"COP1", TP[Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"]), Mop(Cast(FTy 3), LL[bVar"b'20",bVar"b'19",bVar"b'18"])]))], Const("UnknownFPInstruction",CTy"COP1")), Const("UnknownFPInstruction",CTy"COP1"))), (Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, Mop(Not,bVar"b'1"), Mop(Not,bVar"b'0"))))))))))), ITB([(Bop(And,Mop(Not,bVar"b'23"),Mop(Not,bVar"b'22")), Call ("MFC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'23"),bVar"b'22"), Call ("CFC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,bVar"b'23",Mop(Not,bVar"b'22")), Call ("MTC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])])), (Bop(And,bVar"b'23",bVar"b'22"), Call ("CTC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])]))], Const("UnknownFPInstruction",CTy"COP1")))], Const("UnknownFPInstruction",CTy"COP1"))))) ; val LDC1Decode_def = Def ("LDC1Decode",TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)], Call ("COP1",CTy"instruction", Call ("LDC1",CTy"COP1", TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]))) ; val LWC1Decode_def = Def ("LWC1Decode",TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)], Call ("COP1",CTy"instruction", Call ("LWC1",CTy"COP1", TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]))) ; val SDC1Decode_def = Def ("SDC1Decode",TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)], Call ("COP1",CTy"instruction", Call ("SDC1",CTy"COP1", TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]))) ; val SWC1Decode_def = Def ("SWC1Decode",TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)], Call ("COP1",CTy"instruction", Call ("SWC1",CTy"COP1", TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]))) ; val MOVCIDecode_def = Def ("MOVCIDecode",TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)], Let(TP[bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], BL(5,Var("rt",FTy 5)), ITE(Mop(Not,bVar"b'1"), ITB([(Mop(Not,bVar"b'0"), Call ("COP1",CTy"instruction", Call ("MOVF",CTy"COP1", TP[Var("rd",FTy 5),Var("rs",FTy 5), Mop(Cast(FTy 3), LL[bVar"b'4",bVar"b'3",bVar"b'2"])]))), (bVar"b'0", Call ("COP1",CTy"instruction", Call ("MOVT",CTy"COP1", TP[Var("rd",FTy 5),Var("rs",FTy 5), Mop(Cast(FTy 3), LL[bVar"b'4",bVar"b'3",bVar"b'2"])])))], Const("ReservedInstruction",CTy"instruction")), Const("ReservedInstruction",CTy"instruction")))) ; val COP3Decode_def = Def ("COP3Decode",Var("v",FTy 26), Call ("COP1",CTy"instruction", Let(TP[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22",bVar"b'21", bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17",bVar"b'16", bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12",bVar"b'11", bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6",bVar"b'5", bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], BL(26,Var("v",FTy 26)), ITB([(bVar"b'5", ITE(Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"),Mop(Not,bVar"b'1"))), ITB([(Bop(And,Mop(Not,bVar"b'3"),Mop(Not,bVar"b'0")), Call ("MADD_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])])), (Bop(And,Mop(Not,bVar"b'3"),bVar"b'0"), Call ("MADD_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])])), (Bop(And,bVar"b'3",Mop(Not,bVar"b'0")), Call ("MSUB_S",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])])), (Bop(And,bVar"b'3",bVar"b'0"), Call ("MSUB_D",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])]))], Const("UnknownFPInstruction",CTy"COP1")), Const("UnknownFPInstruction",CTy"COP1"))), (Bop(And,Mop(Not,bVar"b'4"), Bop(And,Mop(Not,bVar"b'2"),Mop(Not,bVar"b'1"))), ITB([(Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'3"), Mop(Not,bVar"b'0"))))))), Call ("LWXC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"])])), (Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'3"), bVar"b'0")))))), Call ("LDXC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"])])), (Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'3", Mop(Not,bVar"b'0"))))))), Call ("SWXC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"])])), (Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'3",bVar"b'0")))))), Call ("SDXC1",CTy"COP1", TP[Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"])]))], Const("UnknownFPInstruction",CTy"COP1")))], Const("UnknownFPInstruction",CTy"COP1"))))) ; val Decode_def = Def ("Decode",Var("w",F32), Let(TP[bVar"b'31",bVar"b'30",bVar"b'29",bVar"b'28",bVar"b'27", bVar"b'26",bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16",bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], BL(32,Var("w",F32)), ITB([(bVar"b'26", ITB([(bVar"b'28", ITB([(bVar"b'31", ITB([(bVar"b'30", ITB([(Bop(And,Mop(Not,bVar"b'29"), bVar"b'27"), Call ("Load",CTy"instruction", Call ("LD",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25", bVar"b'24", bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20", bVar"b'19", bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15", bVar"b'14", bVar"b'13", bVar"b'12", bVar"b'11", bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5", bVar"b'4",bVar"b'3", bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'29",bVar"b'27"), Call ("Store",CTy"instruction", Call ("SD",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25", bVar"b'24", bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20", bVar"b'19", bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15", bVar"b'14", bVar"b'13", bVar"b'12", bVar"b'11", bVar"b'10",bVar"b'9", bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5", bVar"b'4",bVar"b'3", bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'29"), Mop(Not,bVar"b'27")), Call ("LDC1Decode",CTy"instruction", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24", bVar"b'23",bVar"b'22", bVar"b'21"])])), (Bop(And,bVar"b'29", Mop(Not,bVar"b'27")), Call ("SDC1Decode",CTy"instruction", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24", bVar"b'23",bVar"b'22", bVar"b'21"])]))], Const ("ReservedInstruction", CTy"instruction"))), (Bop(And,Mop(Not,bVar"b'29"), Mop(Not,bVar"b'27")), Call ("Load",CTy"instruction", Call ("LHU",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24", bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'29"),bVar"b'27"), Call ("Load",CTy"instruction", Call ("LWU",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24", bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'29",Mop(Not,bVar"b'27")), Call ("Store",CTy"instruction", Call ("SDR",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24", bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'29",bVar"b'27"), Call ("CACHE",CTy"instruction", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24", bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19", bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))], Const("ReservedInstruction",CTy"instruction"))), (Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'29"), Bop(And,bVar"b'27", Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Mop(Not,bVar"b'16")))))))), Call ("Branch",CTy"instruction", Call ("BGTZ",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'30"), Bop(And,bVar"b'29", Bop(And,bVar"b'27", Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And, Mop(Not,bVar"b'22"), Mop(Not,bVar"b'21")))))))), Call ("ArithI",CTy"instruction", Call ("LUI",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'30", Bop(And,Mop(Not,bVar"b'29"), Bop(And,bVar"b'27", Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And, Mop(Not,bVar"b'17"), Mop(Not,bVar"b'16")))))))), Call ("Branch",CTy"instruction", Call ("BGTZL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'29"), Mop(Not,bVar"b'27"))), Call ("Branch",CTy"instruction", Call ("BNE",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'30"), Bop(And,bVar"b'29",Mop(Not,bVar"b'27"))), Call ("ArithI",CTy"instruction", Call ("ORI",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'30", Bop(And,Mop(Not,bVar"b'29"), Mop(Not,bVar"b'27"))), Call ("Branch",CTy"instruction", Call ("BNEL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'30", Bop(And,bVar"b'29", Bop(And,bVar"b'27", Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And, Mop(Not,bVar"b'22"), Bop(And, Mop(Not, bVar"b'21"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, bVar"b'5", Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, Mop(Not, bVar"b'2"), Bop(And, bVar"b'1", bVar"b'0")))))))))))))))))), Call ("RDHWR",CTy"instruction", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])]))], Const("ReservedInstruction",CTy"instruction"))), (bVar"b'29", ITB([(Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Mop(Not,bVar"b'27"))), Call ("ArithI",CTy"instruction", Call ("ADDIU",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"),bVar"b'27")), Call ("ArithI",CTy"instruction", Call ("SLTIU",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'30",Mop(Not,bVar"b'27"))), Call ("ArithI",CTy"instruction", Call ("DADDIU",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'30",bVar"b'27")), Call ("Load",CTy"instruction", Call ("LDR",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'31", Bop(And,Mop(Not,bVar"b'30"), Mop(Not,bVar"b'27"))), Call ("Store",CTy"instruction", Call ("SH",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'31", Bop(And,Mop(Not,bVar"b'30"),bVar"b'27")), Call ("Store",CTy"instruction", Call ("SW",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'31", Bop(And,bVar"b'30",Mop(Not,bVar"b'27"))), Call ("SWC1Decode",CTy"instruction", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"])]))], Const("ReservedInstruction",CTy"instruction"))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Mop(Not,bVar"b'16")))))))), Call ("Branch",CTy"instruction", Call ("BLTZ",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), bVar"b'16"))))))), Call ("Branch",CTy"instruction", Call ("BGEZ",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,bVar"b'17", Mop(Not,bVar"b'16")))))))), Call ("Branch",CTy"instruction", Call ("BLTZL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,bVar"b'17",bVar"b'16"))))))), Call ("Branch",CTy"instruction", Call ("BGEZL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,bVar"b'19", Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Mop(Not,bVar"b'16")))))))), Call ("Trap",CTy"instruction", Call ("TGEI",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,bVar"b'19", Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), bVar"b'16"))))))), Call ("Trap",CTy"instruction", Call ("TGEIU",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,bVar"b'19", Bop(And,Mop(Not,bVar"b'18"), Bop(And,bVar"b'17", Mop(Not,bVar"b'16")))))))), Call ("Trap",CTy"instruction", Call ("TLTI",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,bVar"b'19", Bop(And,Mop(Not,bVar"b'18"), Bop(And,bVar"b'17",bVar"b'16"))))))), Call ("Trap",CTy"instruction", Call ("TLTIU",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,bVar"b'19", Bop(And,bVar"b'18", Bop(And,Mop(Not,bVar"b'17"), Mop(Not,bVar"b'16")))))))), Call ("Trap",CTy"instruction", Call ("TEQI",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,bVar"b'19", Bop(And,bVar"b'18", Bop(And,bVar"b'17", Mop(Not,bVar"b'16")))))))), Call ("Trap",CTy"instruction", Call ("TNEI",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'25", Bop(And,bVar"b'24", Bop(And,bVar"b'23", Bop(And,bVar"b'22", Bop(And,bVar"b'21", Bop(And,bVar"b'20", Bop(And, Mop(Not, bVar"b'19"), Mop(Not, bVar"b'18"))))))))))), Const("Unpredictable",CTy"instruction")), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'20", Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Mop(Not,bVar"b'16")))))))), Call ("Branch",CTy"instruction", Call ("BLTZAL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'20", Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), bVar"b'16"))))))), Call ("Branch",CTy"instruction", Call ("BGEZAL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'20", Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,bVar"b'17", Mop(Not,bVar"b'16")))))))), Call ("Branch",CTy"instruction", Call ("BLTZALL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'20", Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,bVar"b'17",bVar"b'16"))))))), Call ("Branch",CTy"instruction", Call ("BGEZALL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'30"),bVar"b'27")), Call ("Branch",CTy"instruction", Call ("JAL",CTy"Branch", Mop(Cast(FTy 26), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21",bVar"b'20", bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16",bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12",bVar"b'11", bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4",bVar"b'3", bVar"b'2",bVar"b'1",bVar"b'0"])))), (Bop(And,bVar"b'31", Bop(And,Mop(Not,bVar"b'30"),Mop(Not,bVar"b'27"))), Call ("Load",CTy"instruction", Call ("LH",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'31", Bop(And,Mop(Not,bVar"b'30"),bVar"b'27")), Call ("Load",CTy"instruction", Call ("LW",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'30",Mop(Not,bVar"b'27"))), Call ("COP1Decode",CTy"instruction", Mop(Cast(FTy 26), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16",bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'30",bVar"b'27")), Call ("COP3Decode",CTy"instruction", Mop(Cast(FTy 26), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16",bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"]))), (Bop(And,bVar"b'31", Bop(And,bVar"b'30",Mop(Not,bVar"b'27"))), Call ("LWC1Decode",CTy"instruction", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"]), Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"])]))], Const("ReservedInstruction",CTy"instruction"))), (bVar"b'30", ITB([(bVar"b'29", ITB([(Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'28", Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And, Mop(Not,bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MADD",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'28", Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And, Mop(Not,bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MADDU",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'28", Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And, Mop(Not,bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MSUB",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'28", Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And, Mop(Not,bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MSUBU",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'28", Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not,bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0")))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MUL",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Mop(Not,bVar"b'27"))), Call ("ArithI",CTy"instruction", Call ("DADDI",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"),bVar"b'27")), Call ("Load",CTy"instruction", Call ("LDL",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'31", Bop(And,Mop(Not,bVar"b'28"), Mop(Not,bVar"b'27"))), Call ("Store",CTy"instruction", Call ("SC",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'31", Bop(And,bVar"b'28",Mop(Not,bVar"b'27"))), Call ("Store",CTy"instruction", Call ("SCD",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])])))], Const("ReservedInstruction",CTy"instruction"))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'21"), Bop(And, Mop(Not,bVar"b'20"), Bop(And, Mop(Not, bVar"b'19"), Bop(And, Mop(Not, bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'15"), Bop(And, Mop(Not, bVar"b'14"), Bop(And, Mop(Not, bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))))))))))))))))))), Const("TLBR",CTy"instruction")), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'21"), Bop(And, Mop(Not,bVar"b'20"), Bop(And, Mop(Not, bVar"b'19"), Bop(And, Mop(Not, bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'15"), Bop(And, Mop(Not, bVar"b'14"), Bop(And, Mop(Not, bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))))))))))))))))))), Const("TLBWI",CTy"instruction")), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'21"), Bop(And, Mop(Not,bVar"b'20"), Bop(And, Mop(Not, bVar"b'19"), Bop(And, Mop(Not, bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'15"), Bop(And, Mop(Not, bVar"b'14"), Bop(And, Mop(Not, bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, bVar"b'2", Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))))))))))))))))))), Const("TLBWR",CTy"instruction")), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'21"), Bop(And, Mop(Not,bVar"b'20"), Bop(And, Mop(Not, bVar"b'19"), Bop(And, Mop(Not, bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'15"), Bop(And, Mop(Not, bVar"b'14"), Bop(And, Mop(Not, bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'3", Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))))))))))))))))))), Const("TLBP",CTy"instruction")), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'21"), Bop(And, Mop(Not,bVar"b'20"), Bop(And, Mop(Not, bVar"b'19"), Bop(And, Mop(Not, bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'15"), Bop(And, Mop(Not, bVar"b'14"), Bop(And, Mop(Not, bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))))))))))))))))))), Const("ERET",CTy"instruction")), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'21"), Bop(And, Mop(Not,bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Mop(Not, bVar"b'3")))))))))))))))), Call ("CP",CTy"instruction", Call ("MFC0",CTy"CP", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 3), LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,bVar"b'21", Bop(And, Mop(Not,bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Mop(Not, bVar"b'3")))))))))))))))), Call ("CP",CTy"instruction", Call ("DMFC0",CTy"CP", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 3), LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,bVar"b'23", Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'21"), Bop(And, Mop(Not,bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Mop(Not, bVar"b'3")))))))))))))))), Call ("CP",CTy"instruction", Call ("MTC0",CTy"CP", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 3), LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,bVar"b'23", Bop(And,Mop(Not,bVar"b'22"), Bop(And,bVar"b'21", Bop(And, Mop(Not,bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Mop(Not, bVar"b'3")))))))))))))))), Call ("CP",CTy"instruction", Call ("DMTC0",CTy"CP", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11"]), Mop(Cast(FTy 3), LL[bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'28", Bop(And,bVar"b'27", Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Mop(Not,bVar"b'16")))))))), Call ("Branch",CTy"instruction", Call ("BLEZL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,bVar"b'28",Mop(Not,bVar"b'27"))), Call ("Branch",CTy"instruction", Call ("BEQL",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'31", Bop(And,Mop(Not,bVar"b'28"),Mop(Not,bVar"b'27"))), Call ("Load",CTy"instruction", Call ("LL",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'31", Bop(And,bVar"b'28",Mop(Not,bVar"b'27"))), Call ("Load",CTy"instruction", Call ("LLD",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'31"), Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'25", Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And, Mop(Not,bVar"b'21"), Bop(And, Mop(Not,bVar"b'20"), Bop(And, Mop(Not, bVar"b'19"), Bop(And, Mop(Not, bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'15"), Bop(And, Mop(Not, bVar"b'14"), Bop(And, Mop(Not, bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, bVar"b'5", Bop(And, Mop(Not, bVar"b'4"), Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))))))))))))))))))), Const("WAIT",CTy"instruction"))], Const("ReservedInstruction",CTy"instruction"))), (bVar"b'31", ITB([(bVar"b'29", ITB([(Bop(And,Mop(Not,bVar"b'28"),Mop(Not,bVar"b'27")), Call ("Store",CTy"instruction", Call ("SB",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), Call ("Store",CTy"instruction", Call ("SWL",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), Call ("Store",CTy"instruction", Call ("SDL",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])]))), (Bop(And,bVar"b'28",bVar"b'27"), Call ("Store",CTy"instruction", Call ("SWR",CTy"Store", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1", bVar"b'0"])])))], Const("ReservedInstruction",CTy"instruction"))), (Bop(And,Mop(Not,bVar"b'28"),Mop(Not,bVar"b'27")), Call ("Load",CTy"instruction", Call ("LB",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), Call ("Load",CTy"instruction", Call ("LWL",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), Call ("Load",CTy"instruction", Call ("LBU",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'28",bVar"b'27"), Call ("Load",CTy"instruction", Call ("LWR",CTy"Load", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])])))], Const("ReservedInstruction",CTy"instruction"))), (bVar"b'29", ITB([(Bop(And,Mop(Not,bVar"b'28"),Mop(Not,bVar"b'27")), Call ("ArithI",CTy"instruction", Call ("ADDI",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), Call ("ArithI",CTy"instruction", Call ("SLTI",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), Call ("ArithI",CTy"instruction", Call ("ANDI",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'28",bVar"b'27"), Call ("ArithI",CTy"instruction", Call ("XORI",CTy"ArithI", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23", bVar"b'22",bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13", bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])])))], Const("ReservedInstruction",CTy"instruction"))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))), Call ("MOVCIDecode",CTy"instruction", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])])), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("SLL",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("SRL",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("Shift",CTy"instruction", Call ("SRA",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("SLLV",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("SRLV",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("Shift",CTy"instruction", Call ("SRAV",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And,Mop(Not,bVar"b'16"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And, Mop(Not,bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'3", Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0")))))))))))))))))), Call ("Branch",CTy"instruction", Call ("JR",CTy"Branch", Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"])))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And,Mop(Not,bVar"b'16"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And, Mop(Not,bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))), Call ("Branch",CTy"instruction", Call ("JALR",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("ArithR",CTy"instruction", Call ("MOVZ",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("ArithR",CTy"instruction", Call ("MOVN",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Const("SYSCALL",CTy"instruction")), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))), Const("BREAK",CTy"instruction")), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And, Mop(Not,bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'15"), Bop(And, Mop(Not, bVar"b'14"), Bop(And, Mop(Not, bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, Mop(Not, bVar"b'4"), Bop(And, bVar"b'3", Bop(And, bVar"b'2", Bop(And, bVar"b'1", bVar"b'0")))))))))))))))))))))), Call ("SYNC",CTy"instruction", Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6"]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And, Mop(Not,bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MFHI",CTy"MultDiv", Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And,Mop(Not,bVar"b'16"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And, Mop(Not,bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MTHI",CTy"MultDiv", Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"])))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And, Mop(Not,bVar"b'18"), Bop(And, Mop(Not, bVar"b'17"), Bop(And, Mop(Not, bVar"b'16"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MFLO",CTy"MultDiv", Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Bop(And,Mop(Not,bVar"b'16"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And, Mop(Not,bVar"b'13"), Bop(And, Mop(Not, bVar"b'12"), Bop(And, Mop(Not, bVar"b'11"), Bop(And, Mop(Not, bVar"b'10"), Bop(And, Mop(Not, bVar"b'9"), Bop(And, Mop(Not, bVar"b'8"), Bop(And, Mop(Not, bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, Mop(Not, bVar"b'3"), Bop(And, Mop(Not, bVar"b'2"), Bop(And, bVar"b'1", bVar"b'0")))))))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MTLO",CTy"MultDiv", Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"])))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,bVar"b'4", Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("DSLLV",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,bVar"b'4", Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("DSRLV",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,Mop(Not,bVar"b'5"), Bop(And,bVar"b'4", Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("Shift",CTy"instruction", Call ("DSRAV",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And, Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0")))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MULT",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And, Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, Mop(Not, bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0"))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("MULTU",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And, Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, Mop(Not, bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0")))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("DIV",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And, Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, Mop(Not, bVar"b'2"), Bop(And, bVar"b'1", bVar"b'0"))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("DIVU",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And, Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0")))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("DMULT",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And, Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), bVar"b'0"))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("DMULTU",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And, Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, bVar"b'2", Bop(And, bVar"b'1", Mop(Not, bVar"b'0")))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("DDIV",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'15"), Bop(And,Mop(Not,bVar"b'14"), Bop(And,Mop(Not,bVar"b'13"), Bop(And,Mop(Not,bVar"b'12"), Bop(And,Mop(Not,bVar"b'11"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And, Mop(Not,bVar"b'8"), Bop(And, Mop(Not,bVar"b'7"), Bop(And, Mop(Not, bVar"b'6"), Bop(And, Mop(Not, bVar"b'5"), Bop(And, bVar"b'4", Bop(And, bVar"b'3", Bop(And, bVar"b'2", Bop(And, bVar"b'1", bVar"b'0"))))))))))))))))), Call ("MultDiv",CTy"instruction", Call ("DDIVU",CTy"MultDiv", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Call ("ArithR",CTy"instruction", Call ("ADD",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))), Call ("ArithR",CTy"instruction", Call ("ADDU",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("ArithR",CTy"instruction", Call ("SUB",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("ArithR",CTy"instruction", Call ("SUBU",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Call ("ArithR",CTy"instruction", Call ("AND",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))), Call ("ArithR",CTy"instruction", Call ("OR",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("ArithR",CTy"instruction", Call ("XOR",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And, Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("ArithR",CTy"instruction", Call ("NOR",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("ArithR",CTy"instruction", Call ("SLT",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("ArithR",CTy"instruction", Call ("SLTU",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Call ("ArithR",CTy"instruction", Call ("DADD",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), bVar"b'0")))))))))))), Call ("ArithR",CTy"instruction", Call ("DADDU",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("ArithR",CTy"instruction", Call ("DSUB",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'10"), Bop(And,Mop(Not,bVar"b'9"), Bop(And,Mop(Not,bVar"b'8"), Bop(And,Mop(Not,bVar"b'7"), Bop(And,Mop(Not,bVar"b'6"), Bop(And,bVar"b'5", Bop(And,Mop(Not,bVar"b'4"), Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("ArithR",CTy"instruction", Call ("DSUBU",CTy"ArithR", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'3"), Bop(And,Mop(Not,bVar"b'2"), Bop(And,Mop(Not,bVar"b'1"), Mop(Not,bVar"b'0")))))))), Call ("Trap",CTy"instruction", Call ("TGE",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'3"), Bop(And,Mop(Not,bVar"b'2"), Bop(And,Mop(Not,bVar"b'1"),bVar"b'0"))))))), Call ("Trap",CTy"instruction", Call ("TGEU",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'3"), Bop(And,Mop(Not,bVar"b'2"), Bop(And,bVar"b'1",Mop(Not,bVar"b'0")))))))), Call ("Trap",CTy"instruction", Call ("TLT",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'3"), Bop(And,Mop(Not,bVar"b'2"), Bop(And,bVar"b'1",bVar"b'0"))))))), Call ("Trap",CTy"instruction", Call ("TLTU",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And,Mop(Not,bVar"b'1"), Mop(Not,bVar"b'0")))))))), Call ("Trap",CTy"instruction", Call ("TEQ",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,Mop(Not,bVar"b'3"), Bop(And,bVar"b'2", Bop(And,bVar"b'1",Mop(Not,bVar"b'0")))))))), Call ("Trap",CTy"instruction", Call ("TNE",CTy"Trap", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,bVar"b'3", Bop(And, Mop(Not,bVar"b'2"), Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("DSLL",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,bVar"b'3", Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("DSRL",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,bVar"b'3", Bop(And, Mop(Not,bVar"b'2"), Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("Shift",CTy"instruction", Call ("DSRA",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, Mop(Not, bVar"b'1"), Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("DSLL32",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, bVar"b'1", Mop(Not, bVar"b'0"))))))))))))), Call ("Shift",CTy"instruction", Call ("DSRL32",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"), Bop(And,Mop(Not,bVar"b'27"), Bop(And,Mop(Not,bVar"b'25"), Bop(And,Mop(Not,bVar"b'24"), Bop(And,Mop(Not,bVar"b'23"), Bop(And,Mop(Not,bVar"b'22"), Bop(And,Mop(Not,bVar"b'21"), Bop(And,bVar"b'5", Bop(And,bVar"b'4", Bop(And,bVar"b'3", Bop(And,bVar"b'2", Bop(And, bVar"b'1", bVar"b'0")))))))))))), Call ("Shift",CTy"instruction", Call ("DSRA32",CTy"Shift", TP[Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast(FTy 5), LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11"]), Mop(Cast(FTy 5), LL[bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7", bVar"b'6"])]))), (Bop(And,Mop(Not,bVar"b'28"),bVar"b'27"), Call ("Branch",CTy"instruction", Call ("J",CTy"Branch", Mop(Cast(FTy 26), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18", bVar"b'17",bVar"b'16",bVar"b'15",bVar"b'14", bVar"b'13",bVar"b'12",bVar"b'11",bVar"b'10", bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2", bVar"b'1",bVar"b'0"])))), (Bop(And,bVar"b'28", Bop(And,bVar"b'27", Bop(And,Mop(Not,bVar"b'20"), Bop(And,Mop(Not,bVar"b'19"), Bop(And,Mop(Not,bVar"b'18"), Bop(And,Mop(Not,bVar"b'17"), Mop(Not,bVar"b'16"))))))), Call ("Branch",CTy"instruction", Call ("BLEZ",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])]))), (Bop(And,bVar"b'28",Mop(Not,bVar"b'27")), Call ("Branch",CTy"instruction", Call ("BEQ",CTy"Branch", TP[Mop(Cast(FTy 5), LL[bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", bVar"b'21"]), Mop(Cast(FTy 5), LL[bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", bVar"b'16"]), Mop(Cast F16, LL[bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8", bVar"b'7",bVar"b'6",bVar"b'5",bVar"b'4", bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"])])))], Const("ReservedInstruction",CTy"instruction")))) ; val Next_def = Def ("Next",qVar"state", Let(TP[Var("v",OTy F32),qVar"s"], Apply(Const("Fetch",ATy(qTy,PTy(OTy F32,qTy))),qVar"state"), Let(qVar"s", CS(Var("v",OTy F32), [(Mop(Some,Var("w",F32)), Apply (Call ("Run",ATy(qTy,qTy), Call("Decode",CTy"instruction",Var("w",F32))), qVar"s")),(LO F32,qVar"s")]), Let(qVar"s", Rupd ("exceptionSignalled", TP[CS(TP[Dest("BranchDelay",OTy(OTy F64),qVar"s"), Dest("BranchTo",OTy(PTy(bTy,F64)),qVar"s")], [(TP[LO(OTy F64),LO(PTy(bTy,F64))], Rupd ("PC", TP[qVar"s", Bop(Add,Dest("PC",F64,qVar"s"),LW(4,64))])), (TP[LO(OTy F64),Mop(Some,TP[LT,Var("addr",F64)])], Rupd ("PC", TP[Rupd ("BranchTo", TP[Rupd ("BranchDelay", TP[qVar"s",Mop(Some,LO F64)]), LO(PTy(bTy,F64))]),Var("addr",F64)])), (TP[LO(OTy F64),Mop(Some,TP[LF,Var("addr",F64)])], Let(qVar"s", Rupd ("BranchTo", TP[Rupd ("BranchDelay", TP[qVar"s", Mop(Some, Mop(Some,Var("addr",F64)))]), LO(PTy(bTy,F64))]), Rupd ("PC", TP[qVar"s", Bop(Add,Dest("PC",F64,qVar"s"), LW(4,64))]))), (TP[Mop(Some,LO F64),LO(PTy(bTy,F64))], Let(qVar"s", Rupd("BranchDelay",TP[qVar"s",LO(OTy F64)]), Rupd ("PC", TP[qVar"s", Bop(Add,Dest("PC",F64,qVar"s"), LW(4,64))]))), (TP[Mop(Some,Mop(Some,Var("addr",F64))), LO(PTy(bTy,F64))], Rupd ("PC", TP[Rupd ("BranchDelay",TP[qVar"s",LO(OTy F64)]), Var("addr",F64)])), (AVar(PTy(OTy(OTy F64),OTy(PTy(bTy,F64)))), Mop(Snd, Apply (Call ("raise'exception", ATy(qTy,PTy(uTy,qTy)), Call ("UNPREDICTABLE",CTy"exception", LS"Branch follows branch")),qVar"s")))]), LF]), Rupd ("CP0", TP[qVar"s", Rupd ("Count", TP[Dest("CP0",CTy"CP0",qVar"s"), Bop(Add, Dest ("Count",F32,Dest("CP0",CTy"CP0",qVar"s")), LW(1,32))])]))))) ; val COP1Encode_def = Def ("COP1Encode",Var("j",CTy"COP1"), CS(Var("j",CTy"COP1"), [(Call("MFC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), CC[LW(544,11),Var("rt",FTy 5),Var("fs",FTy 5),LW(0,11)]), (Call("DMFC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), CC[LW(545,11),Var("rt",FTy 5),Var("fs",FTy 5),LW(0,11)]), (Call("CFC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), CC[LW(546,11),Var("rt",FTy 5),Var("fs",FTy 5),LW(0,11)]), (Call("MTC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), CC[LW(548,11),Var("rt",FTy 5),Var("fs",FTy 5),LW(0,11)]), (Call("DMTC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), CC[LW(549,11),Var("rt",FTy 5),Var("fs",FTy 5),LW(0,11)]), (Call("CTC1",CTy"COP1",TP[Var("rt",FTy 5),Var("fs",FTy 5)]), CC[LW(550,11),Var("rt",FTy 5),Var("fs",FTy 5),LW(0,11)]), (Call("BC1F",CTy"COP1",TP[Var("i",F16),Var("cc",FTy 3)]), CC[LW(552,11),Var("cc",FTy 3),LW(0,2),Var("i",F16)]), (Call("BC1T",CTy"COP1",TP[Var("i",F16),Var("cc",FTy 3)]), CC[LW(552,11),Var("cc",FTy 3),LW(1,2),Var("i",F16)]), (Call("BC1FL",CTy"COP1",TP[Var("i",F16),Var("cc",FTy 3)]), CC[LW(552,11),Var("cc",FTy 3),LW(2,2),Var("i",F16)]), (Call("BC1TL",CTy"COP1",TP[Var("i",F16),Var("cc",FTy 3)]), CC[LW(552,11),Var("cc",FTy 3),LW(3,2),Var("i",F16)]), (Call ("ADD_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), CC[LW(560,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(0,6)]), (Call ("SUB_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), CC[LW(560,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(1,6)]), (Call ("MUL_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), CC[LW(560,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(2,6)]), (Call ("DIV_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), CC[LW(560,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(3,6)]), (Call("SQRT_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(4,6)]), (Call("ABS_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(5,6)]), (Call("MOV_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(6,6)]), (Call("NEG_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(7,6)]), (Call("ROUND_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(8,6)]), (Call("TRUNC_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(9,6)]), (Call("CEIL_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(10,6)]), (Call("FLOOR_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(11,6)]), (Call("ROUND_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(12,6)]), (Call("TRUNC_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(13,6)]), (Call("CEIL_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(14,6)]), (Call("FLOOR_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(15,6)]), (Call ("MOVF_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)]), CC[LW(560,11),Var("cc",FTy 3),LW(0,2),Var("fs",FTy 5), Var("fd",FTy 5),LW(17,6)]), (Call ("MOVT_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)]), CC[LW(560,11),Var("cc",FTy 3),LW(1,2),Var("fs",FTy 5), Var("fd",FTy 5),LW(17,6)]), (Call ("MOVZ_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)]), CC[LW(560,11),Var("rt",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(18,6)]), (Call ("MOVN_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)]), CC[LW(560,11),Var("rt",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(19,6)]), (Call ("C_cond_S",CTy"COP1", TP[Var("fs",FTy 5),Var("ft",FTy 5),Var("cnd",FTy 3), Var("cc",FTy 3)]), CC[LW(560,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3), LW(6,5),Var("cnd",FTy 3)]), (Call ("ADD_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), CC[LW(561,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(0,6)]), (Call ("SUB_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), CC[LW(561,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(1,6)]), (Call ("MUL_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), CC[LW(561,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(2,6)]), (Call ("DIV_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("ft",FTy 5)]), CC[LW(561,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(3,6)]), (Call("SQRT_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(4,6)]), (Call("ABS_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(5,6)]), (Call("MOV_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(6,6)]), (Call("NEG_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(7,6)]), (Call("ROUND_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(8,6)]), (Call("TRUNC_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(9,6)]), (Call("CEIL_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(10,6)]), (Call("FLOOR_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(11,6)]), (Call("ROUND_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(12,6)]), (Call("TRUNC_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(13,6)]), (Call("CEIL_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(14,6)]), (Call("FLOOR_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(15,6)]), (Call ("MOVF_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)]), CC[LW(561,11),Var("cc",FTy 3),LW(0,2),Var("fs",FTy 5), Var("fd",FTy 5),LW(17,6)]), (Call ("MOVT_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3)]), CC[LW(561,11),Var("cc",FTy 3),LW(1,2),Var("fs",FTy 5), Var("fd",FTy 5),LW(17,6)]), (Call ("MOVZ_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)]), CC[LW(561,11),Var("rt",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(18,6)]), (Call ("MOVN_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fs",FTy 5),Var("rt",FTy 5)]), CC[LW(561,11),Var("rt",FTy 5),Var("fs",FTy 5),Var("fd",FTy 5), LW(19,6)]), (Call ("C_cond_D",CTy"COP1", TP[Var("fs",FTy 5),Var("ft",FTy 5),Var("cnd",FTy 3), Var("cc",FTy 3)]), CC[LW(561,11),Var("ft",FTy 5),Var("fs",FTy 5),Var("cc",FTy 3), LW(6,5),Var("cnd",FTy 3)]), (Call("CVT_S_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(32,6)]), (Call("CVT_S_W",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(18048,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(32,6)]), (Call("CVT_S_L",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(18080,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(32,6)]), (Call("CVT_D_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(33,6)]), (Call("CVT_D_W",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(18048,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(33,6)]), (Call("CVT_D_L",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(18080,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(33,6)]), (Call("CVT_W_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(36,6)]), (Call("CVT_W_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(36,6)]), (Call("CVT_L_S",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17920,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(37,6)]), (Call("CVT_L_D",CTy"COP1",TP[Var("fd",FTy 5),Var("fs",FTy 5)]), CC[LW(17952,16),Var("fs",FTy 5),Var("fd",FTy 5),LW(37,6)]), (Call ("LDC1",CTy"COP1", TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]), CC[LW(53,6),Var("base",FTy 5),Var("ft",FTy 5),Var("offset",F16)]), (Call ("LWC1",CTy"COP1", TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]), CC[LW(49,6),Var("base",FTy 5),Var("ft",FTy 5),Var("offset",F16)]), (Call ("SDC1",CTy"COP1", TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]), CC[LW(61,6),Var("base",FTy 5),Var("ft",FTy 5),Var("offset",F16)]), (Call ("SWC1",CTy"COP1", TP[Var("base",FTy 5),Var("offset",F16),Var("ft",FTy 5)]), CC[LW(57,6),Var("base",FTy 5),Var("ft",FTy 5),Var("offset",F16)]), (Call ("LWXC1",CTy"COP1", TP[Var("fd",FTy 5),Var("index",FTy 5),Var("base",FTy 5)]), CC[LW(19,6),Var("base",FTy 5),Var("index",FTy 5),LW(0,5), Var("fd",FTy 5),LW(0,6)]), (Call ("LDXC1",CTy"COP1", TP[Var("fd",FTy 5),Var("index",FTy 5),Var("base",FTy 5)]), CC[LW(19,6),Var("base",FTy 5),Var("index",FTy 5),LW(0,5), Var("fd",FTy 5),LW(1,6)]), (Call ("SWXC1",CTy"COP1", TP[Var("fs",FTy 5),Var("index",FTy 5),Var("base",FTy 5)]), CC[LW(19,6),Var("base",FTy 5),Var("index",FTy 5),Var("fs",FTy 5), LW(8,11)]), (Call ("SDXC1",CTy"COP1", TP[Var("fs",FTy 5),Var("index",FTy 5),Var("base",FTy 5)]), CC[LW(19,6),Var("base",FTy 5),Var("index",FTy 5),Var("fs",FTy 5), LW(9,11)]), (Call ("MADD_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5), Var("ft",FTy 5)]), CC[LW(19,6),Var("fr",FTy 5),Var("ft",FTy 5),Var("fs",FTy 5), Var("fd",FTy 5),LW(32,6)]), (Call ("MADD_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5), Var("ft",FTy 5)]), CC[LW(19,6),Var("fr",FTy 5),Var("ft",FTy 5),Var("fs",FTy 5), Var("fd",FTy 5),LW(33,6)]), (Call ("MSUB_S",CTy"COP1", TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5), Var("ft",FTy 5)]), CC[LW(19,6),Var("fr",FTy 5),Var("ft",FTy 5),Var("fs",FTy 5), Var("fd",FTy 5),LW(40,6)]), (Call ("MSUB_D",CTy"COP1", TP[Var("fd",FTy 5),Var("fr",FTy 5),Var("fs",FTy 5), Var("ft",FTy 5)]), CC[LW(19,6),Var("fr",FTy 5),Var("ft",FTy 5),Var("fs",FTy 5), Var("fd",FTy 5),LW(41,6)]), (Call ("MOVF",CTy"COP1", TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("cc",FTy 3)]), CC[LW(0,6),Var("rs",FTy 5),Var("cc",FTy 3),LW(0,2), Var("rd",FTy 5),LW(1,11)]), (Call ("MOVT",CTy"COP1", TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("cc",FTy 3)]), CC[LW(0,6),Var("rs",FTy 5),Var("cc",FTy 3),LW(1,2), Var("rd",FTy 5),LW(1,11)]), (Const("UnknownFPInstruction",CTy"COP1"),LX F32)])) ; val form1_def = Def ("form1", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), Var("function",FTy 6)], CC[LW(0,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), Var("imm5",FTy 5),Var("function",FTy 6)]) ; val form2_def = Def ("form2",TP[Var("rs",FTy 5),Var("function",FTy 5),Var("imm",F16)], CC[LW(1,6),Var("rs",FTy 5),Var("function",FTy 5),Var("imm",F16)]) ; val form3_def = Def ("form3", TP[Var("function",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), Var("sel",FTy 3)], CC[LW(16,6),Var("function",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), LW(0,8),Var("sel",FTy 3)]) ; val form4_def = Def ("form4", TP[Var("function",FTy 6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)], CC[Var("function",FTy 6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)]) ; val form5_def = Def ("form5", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5), Var("function",FTy 6)], CC[LW(28,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), Var("function",FTy 6)]) ; val form6_def = Def ("form6",TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("function",FTy 6)], CC[LW(31,6),LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), Var("function",FTy 6)]) ; val Encode_def = Def ("Encode",Var("i",CTy"instruction"), CS(Var("i",CTy"instruction"), [(Call ("Shift",CTy"instruction", Call ("SLL",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(0,6)])), (Call ("Shift",CTy"instruction", Call ("SRL",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(2,6)])), (Call ("Shift",CTy"instruction", Call ("SRA",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(3,6)])), (Call ("Shift",CTy"instruction", Call ("SLLV",CTy"Shift", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(4,6)])), (Call ("Shift",CTy"instruction", Call ("SRLV",CTy"Shift", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(6,6)])), (Call ("Shift",CTy"instruction", Call ("SRAV",CTy"Shift", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(7,6)])), (Call ("Branch",CTy"instruction", Call("JR",CTy"Branch",Var("rs",FTy 5))), Call ("form1",F32,TP[Var("rs",FTy 5),LW(0,5),LW(0,5),LW(0,5),LW(8,6)])), (Call ("Branch",CTy"instruction", Call("JALR",CTy"Branch",TP[Var("rs",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),LW(0,5),Var("rd",FTy 5),LW(0,5),LW(9,6)])), (Call ("MultDiv",CTy"instruction", Call("MFHI",CTy"MultDiv",Var("rd",FTy 5))), Call ("form1",F32, TP[LW(0,5),LW(0,5),Var("rd",FTy 5),LW(0,5),LW(16,6)])), (Call ("MultDiv",CTy"instruction", Call("MTHI",CTy"MultDiv",Var("rs",FTy 5))), Call ("form1",F32, TP[Var("rs",FTy 5),LW(0,5),LW(0,5),LW(0,5),LW(17,6)])), (Call ("MultDiv",CTy"instruction", Call("MFLO",CTy"MultDiv",Var("rd",FTy 5))), Call ("form1",F32, TP[LW(0,5),LW(0,5),Var("rd",FTy 5),LW(0,5),LW(18,6)])), (Call ("MultDiv",CTy"instruction", Call("MTLO",CTy"MultDiv",Var("rs",FTy 5))), Call ("form1",F32, TP[Var("rs",FTy 5),LW(0,5),LW(0,5),LW(0,5),LW(19,6)])), (Call ("Shift",CTy"instruction", Call ("DSLLV",CTy"Shift", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(20,6)])), (Call ("Shift",CTy"instruction", Call ("DSRLV",CTy"Shift", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(22,6)])), (Call ("Shift",CTy"instruction", Call ("DSRAV",CTy"Shift", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(23,6)])), (Call ("MultDiv",CTy"instruction", Call("MADD",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form5",F32,TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,6)])), (Call ("MultDiv",CTy"instruction", Call("MADDU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form5",F32,TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(1,6)])), (Call ("MultDiv",CTy"instruction", Call("MSUB",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form5",F32,TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(4,6)])), (Call ("MultDiv",CTy"instruction", Call("MSUBU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form5",F32,TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(5,6)])), (Call ("MultDiv",CTy"instruction", Call ("MUL",CTy"MultDiv", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form5",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(2,6)])), (Call ("MultDiv",CTy"instruction", Call("MULT",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(24,6)])), (Call ("MultDiv",CTy"instruction", Call("MULTU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(25,6)])), (Call ("MultDiv",CTy"instruction", Call("DIV",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(26,6)])), (Call ("MultDiv",CTy"instruction", Call("DIVU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(27,6)])), (Call ("MultDiv",CTy"instruction", Call("DMULT",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(28,6)])), (Call ("MultDiv",CTy"instruction", Call("DMULTU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(29,6)])), (Call ("MultDiv",CTy"instruction", Call("DDIV",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(30,6)])), (Call ("MultDiv",CTy"instruction", Call("DDIVU",CTy"MultDiv",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(31,6)])), (Call ("ArithR",CTy"instruction", Call ("MOVZ",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(10,6)])), (Call ("ArithR",CTy"instruction", Call ("MOVN",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(11,6)])), (Call ("ArithR",CTy"instruction", Call ("ADD",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(32,6)])), (Call ("ArithR",CTy"instruction", Call ("ADDU",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(33,6)])), (Call ("ArithR",CTy"instruction", Call ("SUB",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(34,6)])), (Call ("ArithR",CTy"instruction", Call ("SUBU",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(35,6)])), (Call ("ArithR",CTy"instruction", Call ("AND",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(36,6)])), (Call ("ArithR",CTy"instruction", Call ("OR",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(37,6)])), (Call ("ArithR",CTy"instruction", Call ("XOR",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(38,6)])), (Call ("ArithR",CTy"instruction", Call ("NOR",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(39,6)])), (Call ("ArithR",CTy"instruction", Call ("SLT",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(42,6)])), (Call ("ArithR",CTy"instruction", Call ("SLTU",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(43,6)])), (Call ("ArithR",CTy"instruction", Call ("DADD",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(44,6)])), (Call ("ArithR",CTy"instruction", Call ("DADDU",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(45,6)])), (Call ("ArithR",CTy"instruction", Call ("DSUB",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(46,6)])), (Call ("ArithR",CTy"instruction", Call ("DSUBU",CTy"ArithR", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("rd",FTy 5),LW(0,5), LW(47,6)])), (Call ("Trap",CTy"instruction", Call("TGE",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(48,6)])), (Call ("Trap",CTy"instruction", Call("TGEU",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(49,6)])), (Call ("Trap",CTy"instruction", Call("TLT",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(50,6)])), (Call ("Trap",CTy"instruction", Call("TLTU",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(51,6)])), (Call ("Trap",CTy"instruction", Call("TEQ",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(52,6)])), (Call ("Trap",CTy"instruction", Call("TNE",CTy"Trap",TP[Var("rs",FTy 5),Var("rt",FTy 5)])), Call ("form1",F32, TP[Var("rs",FTy 5),Var("rt",FTy 5),LW(0,5),LW(0,5),LW(54,6)])), (Call ("Shift",CTy"instruction", Call ("DSLL",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(56,6)])), (Call ("Shift",CTy"instruction", Call ("DSRL",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(58,6)])), (Call ("Shift",CTy"instruction", Call ("DSRA",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(59,6)])), (Call ("Shift",CTy"instruction", Call ("DSLL32",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(60,6)])), (Call ("Shift",CTy"instruction", Call ("DSRL32",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(62,6)])), (Call ("Shift",CTy"instruction", Call ("DSRA32",CTy"Shift", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5)])), Call ("form1",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("imm5",FTy 5), LW(63,6)])), (Call ("Branch",CTy"instruction", Call("BLTZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(0,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BGEZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(1,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BLTZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(2,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BGEZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(3,5),Var("imm",F16)])), (Call ("Trap",CTy"instruction", Call("TGEI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(8,5),Var("imm",F16)])), (Call ("Trap",CTy"instruction", Call("TGEIU",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(9,5),Var("imm",F16)])), (Call ("Trap",CTy"instruction", Call("TLTI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(10,5),Var("imm",F16)])), (Call ("Trap",CTy"instruction", Call("TLTIU",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(11,5),Var("imm",F16)])), (Call ("Trap",CTy"instruction", Call("TEQI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(12,5),Var("imm",F16)])), (Call ("Trap",CTy"instruction", Call("TNEI",CTy"Trap",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(14,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BLTZAL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(16,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BGEZAL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(17,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BLTZALL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(18,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BGEZALL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call("form2",F32,TP[Var("rs",FTy 5),LW(19,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("J",CTy"Branch",Var("imm",FTy 26))), CC[LW(2,6),Var("imm",FTy 26)]), (Call ("Branch",CTy"instruction", Call("JAL",CTy"Branch",Var("imm",FTy 26))), CC[LW(3,6),Var("imm",FTy 26)]), (Call ("CP",CTy"instruction", Call ("MFC0",CTy"CP", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), Call ("form3",F32, TP[LW(0,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), (Call ("CP",CTy"instruction", Call ("DMFC0",CTy"CP", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), Call ("form3",F32, TP[LW(1,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), (Call ("CP",CTy"instruction", Call ("MTC0",CTy"CP", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), Call ("form3",F32, TP[LW(4,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), (Call ("CP",CTy"instruction", Call ("DMTC0",CTy"CP", TP[Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), Call ("form3",F32, TP[LW(5,5),Var("rt",FTy 5),Var("rd",FTy 5),Var("sel",FTy 3)])), (Call ("Branch",CTy"instruction", Call ("BEQ",CTy"Branch", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(4,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call ("BNE",CTy"Branch", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(5,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BLEZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call ("form4",F32,TP[LW(6,6),Var("rs",FTy 5),LW(0,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BGTZ",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call ("form4",F32,TP[LW(7,6),Var("rs",FTy 5),LW(0,5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("ADDI",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(8,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("ADDIU",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(9,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("SLTI",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(10,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("SLTIU",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(11,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("ANDI",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(12,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("ORI",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(13,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("XORI",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(14,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call("LUI",CTy"ArithI",TP[Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32,TP[LW(15,6),LW(0,5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call ("BEQL",CTy"Branch", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(20,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call ("BNEL",CTy"Branch", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(21,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BLEZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call ("form4",F32,TP[LW(22,6),Var("rs",FTy 5),LW(0,5),Var("imm",F16)])), (Call ("Branch",CTy"instruction", Call("BGTZL",CTy"Branch",TP[Var("rs",FTy 5),Var("imm",F16)])), Call ("form4",F32,TP[LW(23,6),Var("rs",FTy 5),LW(0,5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("DADDI",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(24,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("ArithI",CTy"instruction", Call ("DADDIU",CTy"ArithI", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(25,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LDL",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(26,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LDR",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(27,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LB",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(32,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LH",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(33,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LWL",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(34,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LW",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(35,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LBU",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(36,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LHU",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(37,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LWR",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(38,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LWU",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(39,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SB",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(40,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SH",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(41,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SWL",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(42,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SW",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(43,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SDL",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(44,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SDR",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(45,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SWR",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(46,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LL",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(48,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LLD",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(52,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Load",CTy"instruction", Call ("LD",CTy"Load", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(55,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SC",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(56,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SCD",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(60,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("Store",CTy"instruction", Call ("SD",CTy"Store", TP[Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), Call ("form4",F32, TP[LW(63,6),Var("rs",FTy 5),Var("rt",FTy 5),Var("imm",F16)])), (Call ("CACHE",CTy"instruction", TP[Var("rs",FTy 5),Var("opn",FTy 5),Var("imm",F16)]), Call ("form4",F32, TP[LW(47,6),Var("rs",FTy 5),Var("opn",FTy 5),Var("imm",F16)])), (Const("SYSCALL",CTy"instruction"),Mop(Cast F32,LW(12,6))), (Const("BREAK",CTy"instruction"),Mop(Cast F32,LW(13,6))), (Call("SYNC",CTy"instruction",Var("imm5",FTy 5)), Mop(Cast F32,CC[Var("imm5",FTy 5),LW(15,6)])), (Const("TLBR",CTy"instruction"),LW(1107296257,32)), (Const("TLBWI",CTy"instruction"),LW(1107296258,32)), (Const("TLBWR",CTy"instruction"),LW(1107296262,32)), (Const("TLBP",CTy"instruction"),LW(1107296264,32)), (Const("ERET",CTy"instruction"),LW(1107296280,32)), (Call("RDHWR",CTy"instruction",TP[Var("rt",FTy 5),Var("rd",FTy 5)]), Call("form6",F32,TP[Var("rt",FTy 5),Var("rd",FTy 5),LW(59,6)])), (Const("WAIT",CTy"instruction"),LW(1107296288,32)), (Const("Unpredictable",CTy"instruction"),LW(133169152,32)), (Call("COP1",CTy"instruction",Var("j",CTy"COP1")), Call("COP1Encode",F32,Var("j",CTy"COP1"))), (Const("ReservedInstruction",CTy"instruction"),LW(0,32))])) val () = Import.finish 0