1(* riscvScript.sml - generated by L3 - Mon Jul 03 09:59:13 2017 *) 2open HolKernel boolLib bossLib Import 3 4val () = Import.start "riscv" 5 6val _ = Construct [("accessType",[("Read",[]),("Write",[])])] 7; 8val _ = Construct [("fetchType",[("Instruction",[]),("Data",[])])] 9; 10val _ = Construct 11 [("Architecture",[("RV32I",[]),("RV64I",[]),("RV128I",[])])] 12; 13val _ = Construct 14 [("Privilege", 15 [("User",[]),("Supervisor",[]),("Hypervisor",[]),("Machine",[])])] 16; 17val _ = Construct 18 [("VM_Mode", 19 [("Mbare",[]),("Mbb",[]),("Mbbid",[]),("Sv32",[]),("Sv39",[]), 20 ("Sv48",[]),("Sv57",[]),("Sv64",[])])] 21; 22val _ = Construct 23 [("ExtStatus",[("Off",[]),("Initial",[]),("Clean",[]),("Dirty",[])])] 24; 25val _ = Construct [("Interrupt",[("Software",[]),("Timer",[])])] 26; 27val _ = Construct 28 [("ExceptionType", 29 [("Fetch_Misaligned",[]),("Fetch_Fault",[]),("Illegal_Instr",[]), 30 ("Breakpoint",[]),("Load_Fault",[]),("AMO_Misaligned",[]), 31 ("Store_AMO_Fault",[]),("UMode_Env_Call",[]),("SMode_Env_Call",[]), 32 ("HMode_Env_Call",[]),("MMode_Env_Call",[])])] 33; 34val _ = Record 35 ("mcpuid", 36 [("ArchBase",FTy 2),("I",bTy),("M",bTy),("S",bTy),("U",bTy), 37 ("mcpuid'rst",FTy 58)]) 38; 39val _ = Record ("mimpid",[("RVImpl",FTy 48),("RVSource",F16)]) 40; 41val _ = Record 42 ("mstatus", 43 [("MFS",FTy 2),("MIE",bTy),("MIE1",bTy),("MIE2",bTy),("MIE3",bTy), 44 ("MMPRV",bTy),("MPRV",FTy 2),("MPRV1",FTy 2),("MPRV2",FTy 2), 45 ("MPRV3",FTy 2),("MSD",bTy),("MXS",FTy 2),("VM",FTy 5), 46 ("mstatus'rst",FTy 41)]) 47; 48val _ = Record ("mtdeleg",[("Exc_deleg",F16),("Intr_deleg",FTy 48)]) 49; 50val _ = Record 51 ("mip", 52 [("HSIP",bTy),("HTIP",bTy),("MSIP",bTy),("MTIP",bTy),("SSIP",bTy), 53 ("STIP",bTy),("mip'rst",FTy 58)]) 54; 55val _ = Record 56 ("mie", 57 [("HSIE",bTy),("HTIE",bTy),("MSIE",bTy),("MTIE",bTy),("SSIE",bTy), 58 ("STIE",bTy),("mie'rst",FTy 58)]) 59; 60val _ = Record ("mcause",[("EC",F4),("Int",bTy),("mcause'rst",FTy 59)]) 61; 62val _ = Record 63 ("MachineCSR", 64 [("mbadaddr",F64),("mbase",F64),("mbound",F64),("mcause",CTy"mcause"), 65 ("mcpuid",CTy"mcpuid"),("mdbase",F64),("mdbound",F64),("mepc",F64), 66 ("mfromhost",F64),("mhartid",F64),("mibase",F64),("mibound",F64), 67 ("mie",CTy"mie"),("mimpid",CTy"mimpid"),("mip",CTy"mip"), 68 ("mscratch",F64),("mstatus",CTy"mstatus"),("mtdeleg",CTy"mtdeleg"), 69 ("mtime_delta",F64),("mtimecmp",F64),("mtohost",F64),("mtvec",F64)]) 70; 71val _ = Record 72 ("HypervisorCSR", 73 [("hbadaddr",F64),("hcause",CTy"mcause"),("hepc",F64),("hscratch",F64), 74 ("hstatus",CTy"mstatus"),("htdeleg",CTy"mtdeleg"),("htime_delta",F64), 75 ("htimecmp",F64),("htvec",F64)]) 76; 77val _ = Record 78 ("sstatus", 79 [("SFS",FTy 2),("SIE",bTy),("SMPRV",bTy),("SPIE",bTy),("SPS",bTy), 80 ("SSD",bTy),("SXS",FTy 2),("sstatus'rst",FTy 55)]) 81; 82val _ = Record ("sip",[("SSIP",bTy),("STIP",bTy),("sip'rst",FTy 62)]) 83; 84val _ = Record ("sie",[("SSIE",bTy),("STIE",bTy),("sie'rst",FTy 62)]) 85; 86val _ = Record 87 ("SupervisorCSR", 88 [("sasid",F64),("sbadaddr",F64),("scause",CTy"mcause"),("sepc",F64), 89 ("sptbr",F64),("sscratch",F64),("stime_delta",F64),("stimecmp",F64), 90 ("stvec",F64)]) 91; 92val _ = Record 93 ("FPCSR", 94 [("DZ",bTy),("FRM",FTy 3),("NV",bTy),("NX",bTy),("OF",bTy),("UF",bTy), 95 ("fpcsr'rst",FTy 24)]) 96; 97val _ = Record 98 ("UserCSR", 99 [("cycle_delta",F64),("fpcsr",CTy"FPCSR"),("instret_delta",F64), 100 ("time_delta",F64)]) 101; 102val _ = Record 103 ("SynchronousTrap",[("badaddr",OTy F64),("trap",CTy"ExceptionType")]) 104; 105val _ = Construct 106 [("TransferControl", 107 [("BranchTo",[F64]),("Ereturn",[]),("Mrts",[]), 108 ("Trap",[CTy"SynchronousTrap"])])] 109; 110val _ = Construct 111 [("Rounding", 112 [("RNE",[]),("RTZ",[]),("RDN",[]),("RUP",[]),("RMM",[]),("RDYN",[])])] 113; 114val _ = Record 115 ("StateDelta", 116 [("addr",OTy F64),("data1",OTy F64),("data2",OTy F64), 117 ("exc_taken",bTy),("fetch_exc",bTy),("fp_data",OTy F64),("pc",F64), 118 ("rinstr",F32),("st_width",OTy F32)]) 119; 120val _ = Record 121 ("SV_PTE", 122 [("PTE_D",bTy),("PTE_PPNi",FTy 38),("PTE_R",bTy),("PTE_SW",FTy 3), 123 ("PTE_T",F4),("PTE_V",bTy),("sv_pte'rst",F16)]) 124; 125val _ = Record 126 ("SV_Vaddr", 127 [("Sv_PgOfs",FTy 12),("Sv_VPNi",FTy 36),("sv_vaddr'rst",F16)]) 128; 129val _ = Record 130 ("TLBEntry", 131 [("age",F64),("asid",FTy 6),("global",bTy),("pAddr",F64), 132 ("pte",CTy"SV_PTE"),("pteAddr",F64),("vAddr",F64),("vAddrMask",F64), 133 ("vMatchMask",F64)]) 134; 135val _ = Construct 136 [("Internal",[("FETCH_FAULT",[F64]),("FETCH_MISALIGNED",[F64])])] 137; 138val _ = Construct 139 [("System", 140 [("CSRRC",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 141 ("CSRRCI",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 142 ("CSRRS",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 143 ("CSRRSI",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 144 ("CSRRW",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 145 ("CSRRWI",[PTy(FTy 5,PTy(FTy 5,FTy 12))]),("EBREAK",[]),("ECALL",[]), 146 ("ERET",[]),("MRTS",[]),("SFENCE_VM",[FTy 5]),("WFI",[])])] 147; 148val _ = Construct 149 [("FConv", 150 [("FCLASS_D",[PTy(FTy 5,FTy 5)]),("FCLASS_S",[PTy(FTy 5,FTy 5)]), 151 ("FCVT_D_L",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 152 ("FCVT_D_LU",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 153 ("FCVT_D_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 154 ("FCVT_D_W",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 155 ("FCVT_D_WU",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 156 ("FCVT_LU_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 157 ("FCVT_LU_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 158 ("FCVT_L_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 159 ("FCVT_L_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 160 ("FCVT_S_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 161 ("FCVT_S_L",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 162 ("FCVT_S_LU",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 163 ("FCVT_S_W",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 164 ("FCVT_S_WU",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 165 ("FCVT_WU_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 166 ("FCVT_WU_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 167 ("FCVT_W_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 168 ("FCVT_W_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 169 ("FMV_D_X",[PTy(FTy 5,FTy 5)]),("FMV_S_X",[PTy(FTy 5,FTy 5)]), 170 ("FMV_X_D",[PTy(FTy 5,FTy 5)]),("FMV_X_S",[PTy(FTy 5,FTy 5)]), 171 ("FSGNJN_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 172 ("FSGNJN_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 173 ("FSGNJX_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 174 ("FSGNJX_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 175 ("FSGNJ_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 176 ("FSGNJ_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] 177; 178val _ = Construct 179 [("FArith", 180 [("FADD_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))]), 181 ("FADD_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))]), 182 ("FDIV_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))]), 183 ("FDIV_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))]), 184 ("FEQ_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 185 ("FEQ_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 186 ("FLE_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 187 ("FLE_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 188 ("FLT_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 189 ("FLT_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 190 ("FMADD_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))]), 191 ("FMADD_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))]), 192 ("FMAX_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 193 ("FMAX_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 194 ("FMIN_D",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 195 ("FMIN_S",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 196 ("FMSUB_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))]), 197 ("FMSUB_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))]), 198 ("FMUL_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))]), 199 ("FMUL_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))]), 200 ("FNMADD_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))]), 201 ("FNMADD_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))]), 202 ("FNMSUB_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))]), 203 ("FNMSUB_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))]), 204 ("FSQRT_D",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 205 ("FSQRT_S",[PTy(FTy 5,PTy(FTy 5,FTy 3))]), 206 ("FSUB_D",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))]), 207 ("FSUB_S",[PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))])])] 208; 209val _ = Construct 210 [("FPStore", 211 [("FSD",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 212 ("FSW",[PTy(FTy 5,PTy(FTy 5,FTy 12))])])] 213; 214val _ = Construct 215 [("FPLoad", 216 [("FLD",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 217 ("FLW",[PTy(FTy 5,PTy(FTy 5,FTy 12))])])] 218; 219val _ = Construct 220 [("AMO", 221 [("AMOADD_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 222 ("AMOADD_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 223 ("AMOAND_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 224 ("AMOAND_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 225 ("AMOMAXU_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 226 ("AMOMAXU_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 227 ("AMOMAX_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 228 ("AMOMAX_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 229 ("AMOMINU_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 230 ("AMOMINU_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 231 ("AMOMIN_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 232 ("AMOMIN_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 233 ("AMOOR_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 234 ("AMOOR_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 235 ("AMOSWAP_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 236 ("AMOSWAP_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 237 ("AMOXOR_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 238 ("AMOXOR_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 239 ("LR_D",[PTy(F1,PTy(F1,PTy(FTy 5,FTy 5)))]), 240 ("LR_W",[PTy(F1,PTy(F1,PTy(FTy 5,FTy 5)))]), 241 ("SC_D",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))]), 242 ("SC_W",[PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5))))])])] 243; 244val _ = Construct 245 [("Store", 246 [("SB",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 247 ("SD",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 248 ("SH",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 249 ("SW",[PTy(FTy 5,PTy(FTy 5,FTy 12))])])] 250; 251val _ = Construct 252 [("Load", 253 [("LB",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 254 ("LBU",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 255 ("LD",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 256 ("LH",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 257 ("LHU",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 258 ("LW",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 259 ("LWU",[PTy(FTy 5,PTy(FTy 5,FTy 12))])])] 260; 261val _ = Construct 262 [("Branch", 263 [("BEQ",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 264 ("BGE",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 265 ("BGEU",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 266 ("BLT",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 267 ("BLTU",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 268 ("BNE",[PTy(FTy 5,PTy(FTy 5,FTy 12))]),("JAL",[PTy(FTy 5,FTy 20)]), 269 ("JALR",[PTy(FTy 5,PTy(FTy 5,FTy 12))])])] 270; 271val _ = Construct 272 [("MulDiv", 273 [("DIV",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 274 ("DIVU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 275 ("DIVUW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 276 ("DIVW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 277 ("MUL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 278 ("MULH",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 279 ("MULHSU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 280 ("MULHU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 281 ("MULW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 282 ("REM",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 283 ("REMU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 284 ("REMUW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 285 ("REMW",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] 286; 287val _ = Construct 288 [("Shift", 289 [("SLL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 290 ("SLLI",[PTy(FTy 5,PTy(FTy 5,FTy 6))]), 291 ("SLLIW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 292 ("SLLW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 293 ("SRA",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 294 ("SRAI",[PTy(FTy 5,PTy(FTy 5,FTy 6))]), 295 ("SRAIW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 296 ("SRAW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 297 ("SRL",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 298 ("SRLI",[PTy(FTy 5,PTy(FTy 5,FTy 6))]), 299 ("SRLIW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 300 ("SRLW",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] 301; 302val _ = Construct 303 [("ArithR", 304 [("ADD",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 305 ("ADDW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 306 ("AND",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 307 ("OR",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 308 ("SLT",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 309 ("SLTU",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 310 ("SUB",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 311 ("SUBW",[PTy(FTy 5,PTy(FTy 5,FTy 5))]), 312 ("XOR",[PTy(FTy 5,PTy(FTy 5,FTy 5))])])] 313; 314val _ = Construct 315 [("ArithI", 316 [("ADDI",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 317 ("ADDIW",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 318 ("ANDI",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 319 ("AUIPC",[PTy(FTy 5,FTy 20)]),("LUI",[PTy(FTy 5,FTy 20)]), 320 ("ORI",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 321 ("SLTI",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 322 ("SLTIU",[PTy(FTy 5,PTy(FTy 5,FTy 12))]), 323 ("XORI",[PTy(FTy 5,PTy(FTy 5,FTy 12))])])] 324; 325val _ = Construct 326 [("instruction", 327 [("AMO",[CTy"AMO"]),("ArithI",[CTy"ArithI"]),("ArithR",[CTy"ArithR"]), 328 ("Branch",[CTy"Branch"]),("FArith",[CTy"FArith"]), 329 ("FConv",[CTy"FConv"]),("FENCE",[PTy(FTy 5,PTy(FTy 5,PTy(F4,F4)))]), 330 ("FENCE_I",[PTy(FTy 5,PTy(FTy 5,FTy 12))]),("FPLoad",[CTy"FPLoad"]), 331 ("FPStore",[CTy"FPStore"]),("Internal",[CTy"Internal"]), 332 ("Load",[CTy"Load"]),("MulDiv",[CTy"MulDiv"]),("Shift",[CTy"Shift"]), 333 ("Store",[CTy"Store"]),("System",[CTy"System"]), 334 ("UnknownInstruction",[])])] 335; 336val _ = Construct 337 [("FetchResult",[("F_Error",[CTy"instruction"]),("F_Result",[F32])])] 338; 339val _ = Construct 340 [("exception", 341 [("INTERNAL_ERROR",[sTy]),("NoException",[]),("UNDEFINED",[sTy])])] 342; 343val _ = Record 344 ("riscv_state", 345 [("MEM8",ATy(F64,F8)),("c_ExitCode",ATy(F8,F64)), 346 ("c_HCSR",ATy(F8,CTy"HypervisorCSR")), 347 ("c_MCSR",ATy(F8,CTy"MachineCSR")), 348 ("c_NextFetch",ATy(F8,OTy(CTy"TransferControl"))), 349 ("c_PC",ATy(F8,F64)),("c_ReserveLoad",ATy(F8,OTy F64)), 350 ("c_SCSR",ATy(F8,CTy"SupervisorCSR")),("c_UCSR",ATy(F8,CTy"UserCSR")), 351 ("c_cycles",ATy(F8,F64)),("c_fpr",ATy(F8,ATy(FTy 5,F64))), 352 ("c_gpr",ATy(F8,ATy(FTy 5,F64))),("c_instret",ATy(F8,F64)), 353 ("c_tlb",ATy(F8,ATy(F4,OTy(CTy"TLBEntry")))), 354 ("c_update",ATy(F8,CTy"StateDelta")),("clock",F64),("done",bTy), 355 ("exception",CTy"exception"),("log",LTy(PTy(nTy,sTy))),("procID",F8), 356 ("totalCore",nTy)]) 357; 358val qTy = CTy "riscv_state"; 359fun qVar v = Term.mk_var (v, ParseDatatype.pretypeToType qTy); 360val raise'exception_def = Def 361 ("raise'exception",Var("e",CTy"exception"), 362 Close 363 (qVar"state", 364 TP[LX(VTy"a"), 365 ITE(EQ(Dest("exception",CTy"exception",qVar"state"), 366 Const("NoException",CTy"exception")), 367 Rupd("exception",TP[qVar"state",Var("e",CTy"exception")]), 368 qVar"state")])) 369; 370val ASID_SIZE_def = Def0 ("ASID_SIZE",LN 6) 371; 372val PAGESIZE_BITS_def = Def0 ("PAGESIZE_BITS",LN 12) 373; 374val LEVEL_BITS_def = Def0 ("LEVEL_BITS",LN 9) 375; 376val BYTE_def = Def0 ("BYTE",LW(0,3)) 377; 378val HALFWORD_def = Def0 ("HALFWORD",LW(1,3)) 379; 380val WORD_def = Def0 ("WORD",LW(3,3)) 381; 382val DOUBLEWORD_def = Def0 ("DOUBLEWORD",LW(7,3)) 383; 384val archBase_def = Def 385 ("archBase",Var("a",CTy"Architecture"), 386 CS(Var("a",CTy"Architecture"), 387 [(LC("RV32I",CTy"Architecture"),LW(0,2)), 388 (LC("RV64I",CTy"Architecture"),LW(2,2)), 389 (LC("RV128I",CTy"Architecture"),LW(3,2))])) 390; 391val architecture_def = Def 392 ("architecture",Var("ab",FTy 2), 393 Close 394 (qVar"state", 395 CS(Var("ab",FTy 2), 396 [(LW(0,2),TP[LC("RV32I",CTy"Architecture"),qVar"state"]), 397 (LW(2,2),TP[LC("RV64I",CTy"Architecture"),qVar"state"]), 398 (LW(3,2),TP[LC("RV128I",CTy"Architecture"),qVar"state"]), 399 (AVar(FTy 2), 400 Apply 401 (Call 402 ("raise'exception",ATy(qTy,PTy(CTy"Architecture",qTy)), 403 Call 404 ("UNDEFINED",CTy"exception", 405 CC[LS"Unknown architecture: ", 406 Mop(Cast sTy,Mop(Cast nTy,Var("ab",FTy 2)))])), 407 qVar"state"))]))) 408; 409val archName_def = Def 410 ("archName",Var("a",CTy"Architecture"), 411 CS(Var("a",CTy"Architecture"), 412 [(LC("RV32I",CTy"Architecture"),LS"RV32I"), 413 (LC("RV64I",CTy"Architecture"),LS"RV64I"), 414 (LC("RV128I",CTy"Architecture"),LS"RV128I")])) 415; 416val privLevel_def = Def 417 ("privLevel",Var("p",CTy"Privilege"), 418 CS(Var("p",CTy"Privilege"), 419 [(LC("User",CTy"Privilege"),LW(0,2)), 420 (LC("Supervisor",CTy"Privilege"),LW(1,2)), 421 (LC("Hypervisor",CTy"Privilege"),LW(2,2)), 422 (LC("Machine",CTy"Privilege"),LW(3,2))])) 423; 424val privilege_def = Def 425 ("privilege",Var("p",FTy 2), 426 CS(Var("p",FTy 2), 427 [(LW(0,2),LC("User",CTy"Privilege")), 428 (LW(1,2),LC("Supervisor",CTy"Privilege")), 429 (LW(2,2),LC("Hypervisor",CTy"Privilege")), 430 (LW(3,2),LC("Machine",CTy"Privilege"))])) 431; 432val privName_def = Def 433 ("privName",Var("p",CTy"Privilege"), 434 CS(Var("p",CTy"Privilege"), 435 [(LC("User",CTy"Privilege"),LS"U"), 436 (LC("Supervisor",CTy"Privilege"),LS"S"), 437 (LC("Hypervisor",CTy"Privilege"),LS"H"), 438 (LC("Machine",CTy"Privilege"),LS"M")])) 439; 440val vmType_def = Def 441 ("vmType",Var("vm",FTy 5), 442 Close 443 (qVar"state", 444 CS(Var("vm",FTy 5), 445 [(LW(0,5),TP[LC("Mbare",CTy"VM_Mode"),qVar"state"]), 446 (LW(1,5),TP[LC("Mbb",CTy"VM_Mode"),qVar"state"]), 447 (LW(2,5),TP[LC("Mbbid",CTy"VM_Mode"),qVar"state"]), 448 (LW(8,5),TP[LC("Sv32",CTy"VM_Mode"),qVar"state"]), 449 (LW(9,5),TP[LC("Sv39",CTy"VM_Mode"),qVar"state"]), 450 (LW(10,5),TP[LC("Sv48",CTy"VM_Mode"),qVar"state"]), 451 (LW(11,5),TP[LC("Sv57",CTy"VM_Mode"),qVar"state"]), 452 (LW(12,5),TP[LC("Sv64",CTy"VM_Mode"),qVar"state"]), 453 (AVar(FTy 5), 454 Apply 455 (Call 456 ("raise'exception",ATy(qTy,PTy(CTy"VM_Mode",qTy)), 457 Call 458 ("UNDEFINED",CTy"exception", 459 CC[LS"Unknown address translation mode: ", 460 Mop(Cast sTy,Mop(Cast nTy,Var("vm",FTy 5)))])), 461 qVar"state"))]))) 462; 463val isValidVM_def = Def 464 ("isValidVM",Var("vm",FTy 5), 465 CS(Var("vm",FTy 5), 466 [(LW(0,5),LT),(LW(1,5),LT),(LW(2,5),LT),(LW(8,5),LT),(LW(9,5),LT), 467 (LW(10,5),LT),(LW(11,5),LT),(LW(12,5),LT),(AVar(FTy 5),LF)])) 468; 469val vmMode_def = Def 470 ("vmMode",Var("vm",CTy"VM_Mode"), 471 CS(Var("vm",CTy"VM_Mode"), 472 [(LC("Mbare",CTy"VM_Mode"),LW(0,5)), 473 (LC("Mbb",CTy"VM_Mode"),LW(1,5)), 474 (LC("Mbbid",CTy"VM_Mode"),LW(2,5)), 475 (LC("Sv32",CTy"VM_Mode"),LW(8,5)), 476 (LC("Sv39",CTy"VM_Mode"),LW(9,5)), 477 (LC("Sv48",CTy"VM_Mode"),LW(10,5)), 478 (LC("Sv57",CTy"VM_Mode"),LW(11,5)), 479 (LC("Sv64",CTy"VM_Mode"),LW(12,5))])) 480; 481val vmModeName_def = Def 482 ("vmModeName",Var("vm",CTy"VM_Mode"), 483 CS(Var("vm",CTy"VM_Mode"), 484 [(LC("Mbare",CTy"VM_Mode"),LS"Mbare"), 485 (LC("Mbb",CTy"VM_Mode"),LS"Mbb"), 486 (LC("Mbbid",CTy"VM_Mode"),LS"Mbbid"), 487 (LC("Sv32",CTy"VM_Mode"),LS"Sv32"), 488 (LC("Sv39",CTy"VM_Mode"),LS"Sv39"), 489 (LC("Sv48",CTy"VM_Mode"),LS"Sv48"), 490 (LC("Sv57",CTy"VM_Mode"),LS"Sv57"), 491 (LC("Sv64",CTy"VM_Mode"),LS"Sv64")])) 492; 493val ext_status_def = Def 494 ("ext_status",Var("e",CTy"ExtStatus"), 495 CS(Var("e",CTy"ExtStatus"), 496 [(LC("Off",CTy"ExtStatus"),LW(0,2)), 497 (LC("Initial",CTy"ExtStatus"),LW(1,2)), 498 (LC("Clean",CTy"ExtStatus"),LW(2,2)), 499 (LC("Dirty",CTy"ExtStatus"),LW(3,2))])) 500; 501val extStatus_def = Def 502 ("extStatus",Var("e",FTy 2), 503 CS(Var("e",FTy 2), 504 [(LW(0,2),LC("Off",CTy"ExtStatus")), 505 (LW(1,2),LC("Initial",CTy"ExtStatus")), 506 (LW(2,2),LC("Clean",CTy"ExtStatus")), 507 (LW(3,2),LC("Dirty",CTy"ExtStatus"))])) 508; 509val extStatusName_def = Def 510 ("extStatusName",Var("e",CTy"ExtStatus"), 511 CS(Var("e",CTy"ExtStatus"), 512 [(LC("Off",CTy"ExtStatus"),LS"Off"), 513 (LC("Initial",CTy"ExtStatus"),LS"Initial"), 514 (LC("Clean",CTy"ExtStatus"),LS"Clean"), 515 (LC("Dirty",CTy"ExtStatus"),LS"Dirty")])) 516; 517val interruptIndex_def = Def 518 ("interruptIndex",Var("i",CTy"Interrupt"), 519 CS(Var("i",CTy"Interrupt"), 520 [(LC("Software",CTy"Interrupt"),LW(0,4)), 521 (LC("Timer",CTy"Interrupt"),LW(1,4))])) 522; 523val excCode_def = Def 524 ("excCode",Var("e",CTy"ExceptionType"), 525 CS(Var("e",CTy"ExceptionType"), 526 [(LC("Fetch_Misaligned",CTy"ExceptionType"),LW(0,4)), 527 (LC("Fetch_Fault",CTy"ExceptionType"),LW(1,4)), 528 (LC("Illegal_Instr",CTy"ExceptionType"),LW(2,4)), 529 (LC("Breakpoint",CTy"ExceptionType"),LW(3,4)), 530 (LC("Load_Fault",CTy"ExceptionType"),LW(5,4)), 531 (LC("AMO_Misaligned",CTy"ExceptionType"),LW(6,4)), 532 (LC("Store_AMO_Fault",CTy"ExceptionType"),LW(7,4)), 533 (LC("UMode_Env_Call",CTy"ExceptionType"),LW(8,4)), 534 (LC("SMode_Env_Call",CTy"ExceptionType"),LW(9,4)), 535 (LC("HMode_Env_Call",CTy"ExceptionType"),LW(10,4)), 536 (LC("MMode_Env_Call",CTy"ExceptionType"),LW(11,4))])) 537; 538val excType_def = Def 539 ("excType",Var("e",F4), 540 Close 541 (qVar"state", 542 CS(Var("e",F4), 543 [(LW(0,4), 544 TP[LC("Fetch_Misaligned",CTy"ExceptionType"),qVar"state"]), 545 (LW(1,4),TP[LC("Fetch_Fault",CTy"ExceptionType"),qVar"state"]), 546 (LW(2,4),TP[LC("Illegal_Instr",CTy"ExceptionType"),qVar"state"]), 547 (LW(3,4),TP[LC("Breakpoint",CTy"ExceptionType"),qVar"state"]), 548 (LW(5,4),TP[LC("Load_Fault",CTy"ExceptionType"),qVar"state"]), 549 (LW(6,4),TP[LC("AMO_Misaligned",CTy"ExceptionType"),qVar"state"]), 550 (LW(7,4), 551 TP[LC("Store_AMO_Fault",CTy"ExceptionType"),qVar"state"]), 552 (LW(8,4),TP[LC("UMode_Env_Call",CTy"ExceptionType"),qVar"state"]), 553 (LW(9,4),TP[LC("SMode_Env_Call",CTy"ExceptionType"),qVar"state"]), 554 (LW(10,4), 555 TP[LC("HMode_Env_Call",CTy"ExceptionType"),qVar"state"]), 556 (LW(11,4), 557 TP[LC("MMode_Env_Call",CTy"ExceptionType"),qVar"state"]), 558 (AVar F4, 559 Apply 560 (Call 561 ("raise'exception",ATy(qTy,PTy(CTy"ExceptionType",qTy)), 562 Call 563 ("UNDEFINED",CTy"exception", 564 CC[LS"Unknown exception: ", 565 Mop(Cast sTy,Mop(Cast nTy,Var("e",F4)))])), 566 qVar"state"))]))) 567; 568val excName_def = Def 569 ("excName",Var("e",CTy"ExceptionType"), 570 CS(Var("e",CTy"ExceptionType"), 571 [(LC("Fetch_Misaligned",CTy"ExceptionType"),LS"MISALIGNED_FETCH"), 572 (LC("Fetch_Fault",CTy"ExceptionType"),LS"FAULT_FETCH"), 573 (LC("Illegal_Instr",CTy"ExceptionType"),LS"ILLEGAL_INSTRUCTION"), 574 (LC("Breakpoint",CTy"ExceptionType"),LS"BREAKPOINT"), 575 (LC("Load_Fault",CTy"ExceptionType"),LS"FAULT_LOAD"), 576 (LC("AMO_Misaligned",CTy"ExceptionType"),LS"MISALIGNED_AMO"), 577 (LC("Store_AMO_Fault",CTy"ExceptionType"),LS"FAULT_STORE_AMO"), 578 (LC("UMode_Env_Call",CTy"ExceptionType"),LS"U-EnvCall"), 579 (LC("SMode_Env_Call",CTy"ExceptionType"),LS"S-EnvCall"), 580 (LC("HMode_Env_Call",CTy"ExceptionType"),LS"H-EnvCall"), 581 (LC("MMode_Env_Call",CTy"ExceptionType"),LS"M-EnvCall")])) 582; 583val rec'mcpuid_def = Def 584 ("rec'mcpuid",Var("x",F64), 585 Rec(CTy"mcpuid", 586 [EX(Var("x",F64),LN 63,LN 62,FTy 2),Bop(Bit,Var("x",F64),LN 8), 587 Bop(Bit,Var("x",F64),LN 12),Bop(Bit,Var("x",F64),LN 18), 588 Bop(Bit,Var("x",F64),LN 20), 589 CC[EX(Var("x",F64),LN 7,LN 0,F8), 590 EX(Var("x",F64),LN 11,LN 9,FTy 3), 591 EX(Var("x",F64),LN 17,LN 13,FTy 5), 592 EX(Var("x",F64),LN 19,LN 19,F1), 593 EX(Var("x",F64),LN 61,LN 21,FTy 41)]])) 594; 595val reg'mcpuid_def = Def 596 ("reg'mcpuid",Var("x",CTy"mcpuid"), 597 CS(Var("x",CTy"mcpuid"), 598 [(Rec(CTy"mcpuid", 599 [Var("ArchBase",FTy 2),bVar"I",bVar"M",bVar"S",bVar"U", 600 Var("mcpuid'rst",FTy 58)]), 601 CC[Var("ArchBase",FTy 2), 602 EX(Var("mcpuid'rst",FTy 58),LN 40,LN 0,FTy 41), 603 Mop(Cast F1,bVar"U"), 604 EX(Var("mcpuid'rst",FTy 58),LN 41,LN 41,F1), 605 Mop(Cast F1,bVar"S"), 606 EX(Var("mcpuid'rst",FTy 58),LN 46,LN 42,FTy 5), 607 Mop(Cast F1,bVar"M"), 608 EX(Var("mcpuid'rst",FTy 58),LN 49,LN 47,FTy 3), 609 Mop(Cast F1,bVar"I"), 610 EX(Var("mcpuid'rst",FTy 58),LN 57,LN 50,F8)])])) 611; 612val write'rec'mcpuid_def = Def 613 ("write'rec'mcpuid",TP[AVar F64,Var("x",CTy"mcpuid")], 614 Call("reg'mcpuid",F64,Var("x",CTy"mcpuid"))) 615; 616val write'reg'mcpuid_def = Def 617 ("write'reg'mcpuid",TP[AVar(CTy"mcpuid"),Var("x",F64)], 618 Call("rec'mcpuid",CTy"mcpuid",Var("x",F64))) 619; 620val rec'mimpid_def = Def 621 ("rec'mimpid",Var("x",F64), 622 Rec(CTy"mimpid", 623 [EX(Var("x",F64),LN 63,LN 16,FTy 48), 624 EX(Var("x",F64),LN 15,LN 0,F16)])) 625; 626val reg'mimpid_def = Def 627 ("reg'mimpid",Var("x",CTy"mimpid"), 628 CS(Var("x",CTy"mimpid"), 629 [(Rec(CTy"mimpid",[Var("RVImpl",FTy 48),Var("RVSource",F16)]), 630 CC[Var("RVImpl",FTy 48),Var("RVSource",F16)])])) 631; 632val write'rec'mimpid_def = Def 633 ("write'rec'mimpid",TP[AVar F64,Var("x",CTy"mimpid")], 634 Call("reg'mimpid",F64,Var("x",CTy"mimpid"))) 635; 636val write'reg'mimpid_def = Def 637 ("write'reg'mimpid",TP[AVar(CTy"mimpid"),Var("x",F64)], 638 Call("rec'mimpid",CTy"mimpid",Var("x",F64))) 639; 640val rec'mstatus_def = Def 641 ("rec'mstatus",Var("x",F64), 642 Rec(CTy"mstatus", 643 [EX(Var("x",F64),LN 13,LN 12,FTy 2),Bop(Bit,Var("x",F64),LN 0), 644 Bop(Bit,Var("x",F64),LN 3),Bop(Bit,Var("x",F64),LN 6), 645 Bop(Bit,Var("x",F64),LN 9),Bop(Bit,Var("x",F64),LN 16), 646 EX(Var("x",F64),LN 2,LN 1,FTy 2),EX(Var("x",F64),LN 5,LN 4,FTy 2), 647 EX(Var("x",F64),LN 8,LN 7,FTy 2), 648 EX(Var("x",F64),LN 11,LN 10,FTy 2),Bop(Bit,Var("x",F64),LN 63), 649 EX(Var("x",F64),LN 15,LN 14,FTy 2), 650 EX(Var("x",F64),LN 21,LN 17,FTy 5), 651 EX(Var("x",F64),LN 62,LN 22,FTy 41)])) 652; 653val reg'mstatus_def = Def 654 ("reg'mstatus",Var("x",CTy"mstatus"), 655 CS(Var("x",CTy"mstatus"), 656 [(Rec(CTy"mstatus", 657 [Var("MFS",FTy 2),bVar"MIE",bVar"MIE1",bVar"MIE2",bVar"MIE3", 658 bVar"MMPRV",Var("MPRV",FTy 2),Var("MPRV1",FTy 2), 659 Var("MPRV2",FTy 2),Var("MPRV3",FTy 2),bVar"MSD", 660 Var("MXS",FTy 2),Var("VM",FTy 5),Var("mstatus'rst",FTy 41)]), 661 CC[Mop(Cast F1,bVar"MSD"),Var("mstatus'rst",FTy 41), 662 Var("VM",FTy 5),Mop(Cast F1,bVar"MMPRV"),Var("MXS",FTy 2), 663 Var("MFS",FTy 2),Var("MPRV3",FTy 2),Mop(Cast F1,bVar"MIE3"), 664 Var("MPRV2",FTy 2),Mop(Cast F1,bVar"MIE2"),Var("MPRV1",FTy 2), 665 Mop(Cast F1,bVar"MIE1"),Var("MPRV",FTy 2), 666 Mop(Cast F1,bVar"MIE")])])) 667; 668val write'rec'mstatus_def = Def 669 ("write'rec'mstatus",TP[AVar F64,Var("x",CTy"mstatus")], 670 Call("reg'mstatus",F64,Var("x",CTy"mstatus"))) 671; 672val write'reg'mstatus_def = Def 673 ("write'reg'mstatus",TP[AVar(CTy"mstatus"),Var("x",F64)], 674 Call("rec'mstatus",CTy"mstatus",Var("x",F64))) 675; 676val rec'mtdeleg_def = Def 677 ("rec'mtdeleg",Var("x",F64), 678 Rec(CTy"mtdeleg", 679 [EX(Var("x",F64),LN 15,LN 0,F16), 680 EX(Var("x",F64),LN 63,LN 16,FTy 48)])) 681; 682val reg'mtdeleg_def = Def 683 ("reg'mtdeleg",Var("x",CTy"mtdeleg"), 684 CS(Var("x",CTy"mtdeleg"), 685 [(Rec(CTy"mtdeleg",[Var("Exc_deleg",F16),Var("Intr_deleg",FTy 48)]), 686 CC[Var("Intr_deleg",FTy 48),Var("Exc_deleg",F16)])])) 687; 688val write'rec'mtdeleg_def = Def 689 ("write'rec'mtdeleg",TP[AVar F64,Var("x",CTy"mtdeleg")], 690 Call("reg'mtdeleg",F64,Var("x",CTy"mtdeleg"))) 691; 692val write'reg'mtdeleg_def = Def 693 ("write'reg'mtdeleg",TP[AVar(CTy"mtdeleg"),Var("x",F64)], 694 Call("rec'mtdeleg",CTy"mtdeleg",Var("x",F64))) 695; 696val rec'mip_def = Def 697 ("rec'mip",Var("x",F64), 698 Rec(CTy"mip", 699 [Bop(Bit,Var("x",F64),LN 2),Bop(Bit,Var("x",F64),LN 6), 700 Bop(Bit,Var("x",F64),LN 3),Bop(Bit,Var("x",F64),LN 7), 701 Bop(Bit,Var("x",F64),LN 1),Bop(Bit,Var("x",F64),LN 5), 702 CC[EX(Var("x",F64),LN 0,LN 0,F1),EX(Var("x",F64),LN 4,LN 4,F1), 703 EX(Var("x",F64),LN 63,LN 8,FTy 56)]])) 704; 705val reg'mip_def = Def 706 ("reg'mip",Var("x",CTy"mip"), 707 CS(Var("x",CTy"mip"), 708 [(Rec(CTy"mip", 709 [bVar"HSIP",bVar"HTIP",bVar"MSIP",bVar"MTIP",bVar"SSIP", 710 bVar"STIP",Var("mip'rst",FTy 58)]), 711 CC[EX(Var("mip'rst",FTy 58),LN 55,LN 0,FTy 56), 712 Mop(Cast F1,bVar"MTIP"),Mop(Cast F1,bVar"HTIP"), 713 Mop(Cast F1,bVar"STIP"), 714 EX(Var("mip'rst",FTy 58),LN 56,LN 56,F1), 715 Mop(Cast F1,bVar"MSIP"),Mop(Cast F1,bVar"HSIP"), 716 Mop(Cast F1,bVar"SSIP"), 717 EX(Var("mip'rst",FTy 58),LN 57,LN 57,F1)])])) 718; 719val write'rec'mip_def = Def 720 ("write'rec'mip",TP[AVar F64,Var("x",CTy"mip")], 721 Call("reg'mip",F64,Var("x",CTy"mip"))) 722; 723val write'reg'mip_def = Def 724 ("write'reg'mip",TP[AVar(CTy"mip"),Var("x",F64)], 725 Call("rec'mip",CTy"mip",Var("x",F64))) 726; 727val rec'mie_def = Def 728 ("rec'mie",Var("x",F64), 729 Rec(CTy"mie", 730 [Bop(Bit,Var("x",F64),LN 2),Bop(Bit,Var("x",F64),LN 6), 731 Bop(Bit,Var("x",F64),LN 3),Bop(Bit,Var("x",F64),LN 7), 732 Bop(Bit,Var("x",F64),LN 1),Bop(Bit,Var("x",F64),LN 5), 733 CC[EX(Var("x",F64),LN 0,LN 0,F1),EX(Var("x",F64),LN 4,LN 4,F1), 734 EX(Var("x",F64),LN 63,LN 8,FTy 56)]])) 735; 736val reg'mie_def = Def 737 ("reg'mie",Var("x",CTy"mie"), 738 CS(Var("x",CTy"mie"), 739 [(Rec(CTy"mie", 740 [bVar"HSIE",bVar"HTIE",bVar"MSIE",bVar"MTIE",bVar"SSIE", 741 bVar"STIE",Var("mie'rst",FTy 58)]), 742 CC[EX(Var("mie'rst",FTy 58),LN 55,LN 0,FTy 56), 743 Mop(Cast F1,bVar"MTIE"),Mop(Cast F1,bVar"HTIE"), 744 Mop(Cast F1,bVar"STIE"), 745 EX(Var("mie'rst",FTy 58),LN 56,LN 56,F1), 746 Mop(Cast F1,bVar"MSIE"),Mop(Cast F1,bVar"HSIE"), 747 Mop(Cast F1,bVar"SSIE"), 748 EX(Var("mie'rst",FTy 58),LN 57,LN 57,F1)])])) 749; 750val write'rec'mie_def = Def 751 ("write'rec'mie",TP[AVar F64,Var("x",CTy"mie")], 752 Call("reg'mie",F64,Var("x",CTy"mie"))) 753; 754val write'reg'mie_def = Def 755 ("write'reg'mie",TP[AVar(CTy"mie"),Var("x",F64)], 756 Call("rec'mie",CTy"mie",Var("x",F64))) 757; 758val rec'mcause_def = Def 759 ("rec'mcause",Var("x",F64), 760 Rec(CTy"mcause", 761 [EX(Var("x",F64),LN 3,LN 0,F4),Bop(Bit,Var("x",F64),LN 63), 762 EX(Var("x",F64),LN 62,LN 4,FTy 59)])) 763; 764val reg'mcause_def = Def 765 ("reg'mcause",Var("x",CTy"mcause"), 766 CS(Var("x",CTy"mcause"), 767 [(Rec(CTy"mcause",[Var("EC",F4),bVar"Int",Var("mcause'rst",FTy 59)]), 768 CC[Mop(Cast F1,bVar"Int"),Var("mcause'rst",FTy 59),Var("EC",F4)])])) 769; 770val write'rec'mcause_def = Def 771 ("write'rec'mcause",TP[AVar F64,Var("x",CTy"mcause")], 772 Call("reg'mcause",F64,Var("x",CTy"mcause"))) 773; 774val write'reg'mcause_def = Def 775 ("write'reg'mcause",TP[AVar(CTy"mcause"),Var("x",F64)], 776 Call("rec'mcause",CTy"mcause",Var("x",F64))) 777; 778val rec'sstatus_def = Def 779 ("rec'sstatus",Var("x",F64), 780 Rec(CTy"sstatus", 781 [EX(Var("x",F64),LN 13,LN 12,FTy 2),Bop(Bit,Var("x",F64),LN 0), 782 Bop(Bit,Var("x",F64),LN 16),Bop(Bit,Var("x",F64),LN 3), 783 Bop(Bit,Var("x",F64),LN 4),Bop(Bit,Var("x",F64),LN 63), 784 EX(Var("x",F64),LN 15,LN 14,FTy 2), 785 CC[EX(Var("x",F64),LN 2,LN 1,FTy 2), 786 EX(Var("x",F64),LN 11,LN 5,FTy 7), 787 EX(Var("x",F64),LN 62,LN 17,FTy 46)]])) 788; 789val reg'sstatus_def = Def 790 ("reg'sstatus",Var("x",CTy"sstatus"), 791 CS(Var("x",CTy"sstatus"), 792 [(Rec(CTy"sstatus", 793 [Var("SFS",FTy 2),bVar"SIE",bVar"SMPRV",bVar"SPIE",bVar"SPS", 794 bVar"SSD",Var("SXS",FTy 2),Var("sstatus'rst",FTy 55)]), 795 CC[Mop(Cast F1,bVar"SSD"), 796 EX(Var("sstatus'rst",FTy 55),LN 45,LN 0,FTy 46), 797 Mop(Cast F1,bVar"SMPRV"),Var("SXS",FTy 2),Var("SFS",FTy 2), 798 EX(Var("sstatus'rst",FTy 55),LN 52,LN 46,FTy 7), 799 Mop(Cast F1,bVar"SPS"),Mop(Cast F1,bVar"SPIE"), 800 EX(Var("sstatus'rst",FTy 55),LN 54,LN 53,FTy 2), 801 Mop(Cast F1,bVar"SIE")])])) 802; 803val write'rec'sstatus_def = Def 804 ("write'rec'sstatus",TP[AVar F64,Var("x",CTy"sstatus")], 805 Call("reg'sstatus",F64,Var("x",CTy"sstatus"))) 806; 807val write'reg'sstatus_def = Def 808 ("write'reg'sstatus",TP[AVar(CTy"sstatus"),Var("x",F64)], 809 Call("rec'sstatus",CTy"sstatus",Var("x",F64))) 810; 811val rec'sip_def = Def 812 ("rec'sip",Var("x",F64), 813 Rec(CTy"sip", 814 [Bop(Bit,Var("x",F64),LN 1),Bop(Bit,Var("x",F64),LN 5), 815 CC[EX(Var("x",F64),LN 0,LN 0,F1),EX(Var("x",F64),LN 4,LN 2,FTy 3), 816 EX(Var("x",F64),LN 63,LN 6,FTy 58)]])) 817; 818val reg'sip_def = Def 819 ("reg'sip",Var("x",CTy"sip"), 820 CS(Var("x",CTy"sip"), 821 [(Rec(CTy"sip",[bVar"SSIP",bVar"STIP",Var("sip'rst",FTy 62)]), 822 CC[EX(Var("sip'rst",FTy 62),LN 57,LN 0,FTy 58), 823 Mop(Cast F1,bVar"STIP"), 824 EX(Var("sip'rst",FTy 62),LN 60,LN 58,FTy 3), 825 Mop(Cast F1,bVar"SSIP"), 826 EX(Var("sip'rst",FTy 62),LN 61,LN 61,F1)])])) 827; 828val write'rec'sip_def = Def 829 ("write'rec'sip",TP[AVar F64,Var("x",CTy"sip")], 830 Call("reg'sip",F64,Var("x",CTy"sip"))) 831; 832val write'reg'sip_def = Def 833 ("write'reg'sip",TP[AVar(CTy"sip"),Var("x",F64)], 834 Call("rec'sip",CTy"sip",Var("x",F64))) 835; 836val rec'sie_def = Def 837 ("rec'sie",Var("x",F64), 838 Rec(CTy"sie", 839 [Bop(Bit,Var("x",F64),LN 1),Bop(Bit,Var("x",F64),LN 5), 840 CC[EX(Var("x",F64),LN 0,LN 0,F1),EX(Var("x",F64),LN 4,LN 2,FTy 3), 841 EX(Var("x",F64),LN 63,LN 6,FTy 58)]])) 842; 843val reg'sie_def = Def 844 ("reg'sie",Var("x",CTy"sie"), 845 CS(Var("x",CTy"sie"), 846 [(Rec(CTy"sie",[bVar"SSIE",bVar"STIE",Var("sie'rst",FTy 62)]), 847 CC[EX(Var("sie'rst",FTy 62),LN 57,LN 0,FTy 58), 848 Mop(Cast F1,bVar"STIE"), 849 EX(Var("sie'rst",FTy 62),LN 60,LN 58,FTy 3), 850 Mop(Cast F1,bVar"SSIE"), 851 EX(Var("sie'rst",FTy 62),LN 61,LN 61,F1)])])) 852; 853val write'rec'sie_def = Def 854 ("write'rec'sie",TP[AVar F64,Var("x",CTy"sie")], 855 Call("reg'sie",F64,Var("x",CTy"sie"))) 856; 857val write'reg'sie_def = Def 858 ("write'reg'sie",TP[AVar(CTy"sie"),Var("x",F64)], 859 Call("rec'sie",CTy"sie",Var("x",F64))) 860; 861val rec'FPCSR_def = Def 862 ("rec'FPCSR",Var("x",F32), 863 Rec(CTy"FPCSR", 864 [Bop(Bit,Var("x",F32),LN 3),EX(Var("x",F32),LN 7,LN 5,FTy 3), 865 Bop(Bit,Var("x",F32),LN 4),Bop(Bit,Var("x",F32),LN 0), 866 Bop(Bit,Var("x",F32),LN 2),Bop(Bit,Var("x",F32),LN 1), 867 EX(Var("x",F32),LN 31,LN 8,FTy 24)])) 868; 869val reg'FPCSR_def = Def 870 ("reg'FPCSR",Var("x",CTy"FPCSR"), 871 CS(Var("x",CTy"FPCSR"), 872 [(Rec(CTy"FPCSR", 873 [bVar"DZ",Var("FRM",FTy 3),bVar"NV",bVar"NX",bVar"OF", 874 bVar"UF",Var("fpcsr'rst",FTy 24)]), 875 CC[Var("fpcsr'rst",FTy 24),Var("FRM",FTy 3),Mop(Cast F1,bVar"NV"), 876 Mop(Cast F1,bVar"DZ"),Mop(Cast F1,bVar"OF"), 877 Mop(Cast F1,bVar"UF"),Mop(Cast F1,bVar"NX")])])) 878; 879val write'rec'FPCSR_def = Def 880 ("write'rec'FPCSR",TP[AVar F32,Var("x",CTy"FPCSR")], 881 Call("reg'FPCSR",F32,Var("x",CTy"FPCSR"))) 882; 883val write'reg'FPCSR_def = Def 884 ("write'reg'FPCSR",TP[AVar(CTy"FPCSR"),Var("x",F32)], 885 Call("rec'FPCSR",CTy"FPCSR",Var("x",F32))) 886; 887val lift_mip_sip_def = Def 888 ("lift_mip_sip",Var("mip",CTy"mip"), 889 Rupd 890 ("SSIP", 891 TP[Rupd 892 ("STIP", 893 TP[Call("rec'sip",CTy"sip",LW(0,64)), 894 Dest("STIP",bTy,Var("mip",CTy"mip"))]), 895 Dest("SSIP",bTy,Var("mip",CTy"mip"))])) 896; 897val lift_mie_sie_def = Def 898 ("lift_mie_sie",Var("mie",CTy"mie"), 899 Rupd 900 ("SSIE", 901 TP[Rupd 902 ("STIE", 903 TP[Call("rec'sie",CTy"sie",LW(0,64)), 904 Dest("STIE",bTy,Var("mie",CTy"mie"))]), 905 Dest("SSIE",bTy,Var("mie",CTy"mie"))])) 906; 907val lower_sip_mip_def = Def 908 ("lower_sip_mip",TP[Var("sip",CTy"sip"),Var("mip",CTy"mip")], 909 Rupd 910 ("SSIP", 911 TP[Rupd 912 ("STIP", 913 TP[Var("mip",CTy"mip"),Dest("STIP",bTy,Var("sip",CTy"sip"))]), 914 Dest("SSIP",bTy,Var("sip",CTy"sip"))])) 915; 916val lower_sie_mie_def = Def 917 ("lower_sie_mie",TP[Var("sie",CTy"sie"),Var("mie",CTy"mie")], 918 Rupd 919 ("SSIE", 920 TP[Rupd 921 ("STIE", 922 TP[Var("mie",CTy"mie"),Dest("STIE",bTy,Var("sie",CTy"sie"))]), 923 Dest("SSIE",bTy,Var("sie",CTy"sie"))])) 924; 925val update_mstatus_def = Def 926 ("update_mstatus",TP[Var("orig",CTy"mstatus"),Var("v",CTy"mstatus")], 927 Let(Var("s0",CTy"mstatus"), 928 Rupd 929 ("MPRV3", 930 TP[Rupd 931 ("MIE3", 932 TP[Rupd 933 ("MPRV2", 934 TP[Rupd 935 ("MIE2", 936 TP[Rupd 937 ("MPRV1", 938 TP[Rupd 939 ("MIE1", 940 TP[Rupd 941 ("MPRV", 942 TP[Rupd 943 ("MIE", 944 TP[Var("orig", 945 CTy"mstatus"), 946 Dest 947 ("MIE",bTy, 948 Var("v", 949 CTy"mstatus"))]), 950 Dest 951 ("MPRV",FTy 2, 952 Var("v",CTy"mstatus"))]), 953 Dest 954 ("MIE1",bTy, 955 Var("v",CTy"mstatus"))]), 956 Dest 957 ("MPRV1",FTy 2, 958 Var("v",CTy"mstatus"))]), 959 Dest("MIE2",bTy,Var("v",CTy"mstatus"))]), 960 Dest("MPRV2",FTy 2,Var("v",CTy"mstatus"))]), 961 Dest("MIE3",bTy,Var("v",CTy"mstatus"))]), 962 Dest("MPRV3",FTy 2,Var("v",CTy"mstatus"))]), 963 Rupd 964 ("MSD", 965 TP[Rupd 966 ("MXS", 967 TP[Rupd 968 ("MFS", 969 TP[Rupd 970 ("MMPRV", 971 TP[ITE(Call 972 ("isValidVM",bTy, 973 Dest 974 ("VM",FTy 5,Var("v",CTy"mstatus"))), 975 Rupd 976 ("VM", 977 TP[Var("s0",CTy"mstatus"), 978 Dest 979 ("VM",FTy 5, 980 Var("v",CTy"mstatus"))]), 981 Var("s0",CTy"mstatus")), 982 Dest("MMPRV",bTy,Var("v",CTy"mstatus"))]), 983 Dest("MFS",FTy 2,Var("v",CTy"mstatus"))]), 984 Dest("MXS",FTy 2,Var("v",CTy"mstatus"))]), 985 Bop(Or, 986 EQ(Call 987 ("extStatus",CTy"ExtStatus", 988 Dest("MXS",FTy 2,Var("v",CTy"mstatus"))), 989 LC("Dirty",CTy"ExtStatus")), 990 EQ(Call 991 ("extStatus",CTy"ExtStatus", 992 Dest("MFS",FTy 2,Var("v",CTy"mstatus"))), 993 LC("Dirty",CTy"ExtStatus")))]))) 994; 995val lift_mstatus_sstatus_def = Def 996 ("lift_mstatus_sstatus",Var("mst",CTy"mstatus"), 997 Rupd 998 ("SIE", 999 TP[Rupd 1000 ("SPIE", 1001 TP[Rupd 1002 ("SPS", 1003 TP[Rupd 1004 ("SSD", 1005 TP[Rupd 1006 ("SFS", 1007 TP[Rupd 1008 ("SXS", 1009 TP[Rupd 1010 ("SMPRV", 1011 TP[Call 1012 ("rec'sstatus", 1013 CTy"sstatus",LW(0,64)), 1014 Dest 1015 ("MMPRV",bTy, 1016 Var("mst",CTy"mstatus"))]), 1017 Dest 1018 ("MXS",FTy 2, 1019 Var("mst",CTy"mstatus"))]), 1020 Dest("MFS",FTy 2,Var("mst",CTy"mstatus"))]), 1021 Bop(Or, 1022 EQ(Call 1023 ("extStatus",CTy"ExtStatus", 1024 Dest 1025 ("MXS",FTy 2, 1026 Var("mst",CTy"mstatus"))), 1027 LC("Dirty",CTy"ExtStatus")), 1028 EQ(Call 1029 ("extStatus",CTy"ExtStatus", 1030 Dest 1031 ("MFS",FTy 2, 1032 Var("mst",CTy"mstatus"))), 1033 LC("Dirty",CTy"ExtStatus")))]), 1034 Mop(Not, 1035 EQ(Call 1036 ("privilege",CTy"Privilege", 1037 Dest("MPRV1",FTy 2,Var("mst",CTy"mstatus"))), 1038 LC("User",CTy"Privilege")))]), 1039 Dest("MIE1",bTy,Var("mst",CTy"mstatus"))]), 1040 Dest("MIE",bTy,Var("mst",CTy"mstatus"))])) 1041; 1042val lower_sstatus_mstatus_def = Def 1043 ("lower_sstatus_mstatus", 1044 TP[Var("sst",CTy"sstatus"),Var("mst",CTy"mstatus")], 1045 Call 1046 ("update_mstatus",CTy"mstatus", 1047 TP[Var("mst",CTy"mstatus"), 1048 Rupd 1049 ("MIE", 1050 TP[Rupd 1051 ("MIE1", 1052 TP[Rupd 1053 ("MPRV1", 1054 TP[Rupd 1055 ("MFS", 1056 TP[Rupd 1057 ("MXS", 1058 TP[Rupd 1059 ("MMPRV", 1060 TP[Call 1061 ("rec'mstatus", 1062 CTy"mstatus", 1063 Call 1064 ("reg'mstatus",F64, 1065 Var("mst",CTy"mstatus"))), 1066 Dest 1067 ("SMPRV",bTy, 1068 Var("sst",CTy"sstatus"))]), 1069 Dest 1070 ("SXS",FTy 2, 1071 Var("sst",CTy"sstatus"))]), 1072 Dest("SFS",FTy 2,Var("sst",CTy"sstatus"))]), 1073 Call 1074 ("privLevel",FTy 2, 1075 ITE(Dest("SPS",bTy,Var("sst",CTy"sstatus")), 1076 LC("Supervisor",CTy"Privilege"), 1077 LC("User",CTy"Privilege")))]), 1078 Dest("SPIE",bTy,Var("sst",CTy"sstatus"))]), 1079 Dest("SIE",bTy,Var("sst",CTy"sstatus"))])])) 1080; 1081val popPrivilegeStack_def = Def 1082 ("popPrivilegeStack",Var("mst",CTy"mstatus"), 1083 Rupd 1084 ("MPRV2", 1085 TP[Rupd 1086 ("MIE2", 1087 TP[Rupd 1088 ("MPRV1", 1089 TP[Rupd 1090 ("MIE1", 1091 TP[Rupd 1092 ("MPRV", 1093 TP[Rupd 1094 ("MIE", 1095 TP[Var("mst",CTy"mstatus"), 1096 Dest 1097 ("MIE1",bTy, 1098 Var("mst",CTy"mstatus"))]), 1099 Dest 1100 ("MPRV1",FTy 2,Var("mst",CTy"mstatus"))]), 1101 Dest("MIE2",bTy,Var("mst",CTy"mstatus"))]), 1102 Dest("MPRV2",FTy 2,Var("mst",CTy"mstatus"))]),LT]), 1103 Call("privLevel",FTy 2,LC("User",CTy"Privilege"))])) 1104; 1105val pushPrivilegeStack_def = Def 1106 ("pushPrivilegeStack", 1107 TP[Var("mst",CTy"mstatus"),Var("p",CTy"Privilege")], 1108 Rupd 1109 ("MPRV", 1110 TP[Rupd 1111 ("MIE", 1112 TP[Rupd 1113 ("MPRV1", 1114 TP[Rupd 1115 ("MIE1", 1116 TP[Rupd 1117 ("MPRV2", 1118 TP[Rupd 1119 ("MIE2", 1120 TP[Var("mst",CTy"mstatus"), 1121 Dest 1122 ("MIE1",bTy, 1123 Var("mst",CTy"mstatus"))]), 1124 Dest 1125 ("MPRV1",FTy 2,Var("mst",CTy"mstatus"))]), 1126 Dest("MIE",bTy,Var("mst",CTy"mstatus"))]), 1127 Dest("MPRV",FTy 2,Var("mst",CTy"mstatus"))]),LF]), 1128 Call("privLevel",FTy 2,Var("p",CTy"Privilege"))])) 1129; 1130val scheduleCore_def = Def 1131 ("scheduleCore",nVar"id", 1132 Close 1133 (qVar"state", 1134 ITE(Bop(Lt,nVar"id",Dest("totalCore",nTy,qVar"state")), 1135 Rupd("procID",TP[qVar"state",Mop(Cast F8,nVar"id")]),qVar"state"))) 1136; 1137val gpr_def = Def 1138 ("gpr",Var("n",FTy 5), 1139 Close 1140 (qVar"state", 1141 Apply 1142 (Apply 1143 (Dest("c_gpr",ATy(F8,ATy(FTy 5,F64)),qVar"state"), 1144 Dest("procID",F8,qVar"state")),Var("n",FTy 5)))) 1145; 1146val write'gpr_def = Def 1147 ("write'gpr",TP[Var("value",F64),Var("n",FTy 5)], 1148 Close 1149 (qVar"state", 1150 Rupd 1151 ("c_gpr", 1152 TP[qVar"state", 1153 Fupd 1154 (Dest("c_gpr",ATy(F8,ATy(FTy 5,F64)),qVar"state"), 1155 Dest("procID",F8,qVar"state"), 1156 Fupd 1157 (Apply 1158 (Dest("c_gpr",ATy(F8,ATy(FTy 5,F64)),qVar"state"), 1159 Dest("procID",F8,qVar"state")),Var("n",FTy 5), 1160 Var("value",F64)))]))) 1161; 1162val fcsr_def = Def 1163 ("fcsr",qVar"state", 1164 Dest 1165 ("fpcsr",CTy"FPCSR", 1166 Apply 1167 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1168 Dest("procID",F8,qVar"state")))) 1169; 1170val write'fcsr_def = Def 1171 ("write'fcsr",Var("value",CTy"FPCSR"), 1172 Close 1173 (qVar"state", 1174 Let(qVar"s", 1175 Rupd 1176 ("c_UCSR", 1177 TP[qVar"state", 1178 Fupd 1179 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1180 Dest("procID",F8,qVar"state"), 1181 Rupd 1182 ("fpcsr", 1183 TP[Apply 1184 (Dest 1185 ("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1186 Dest("procID",F8,qVar"state")), 1187 Var("value",CTy"FPCSR")]))]), 1188 Let(qVar"s", 1189 Let(Var("v",CTy"MachineCSR"), 1190 Apply 1191 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 1192 Dest("procID",F8,qVar"s")), 1193 Rupd 1194 ("c_MCSR", 1195 TP[qVar"s", 1196 Fupd 1197 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 1198 Dest("procID",F8,qVar"s"), 1199 Rupd 1200 ("mstatus", 1201 TP[Var("v",CTy"MachineCSR"), 1202 Rupd 1203 ("MFS", 1204 TP[Dest 1205 ("mstatus",CTy"mstatus", 1206 Var("v",CTy"MachineCSR")), 1207 Call 1208 ("ext_status",FTy 2, 1209 LC("Dirty",CTy"ExtStatus"))])]))])), 1210 Let(Var("v",CTy"MachineCSR"), 1211 Apply 1212 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 1213 Dest("procID",F8,qVar"s")), 1214 Rupd 1215 ("c_MCSR", 1216 TP[qVar"s", 1217 Fupd 1218 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 1219 Dest("procID",F8,qVar"s"), 1220 Rupd 1221 ("mstatus", 1222 TP[Var("v",CTy"MachineCSR"), 1223 Rupd 1224 ("MSD", 1225 TP[Dest 1226 ("mstatus",CTy"mstatus", 1227 Var("v",CTy"MachineCSR")),LT])]))])))))) 1228; 1229val fpr_def = Def 1230 ("fpr",Var("n",FTy 5), 1231 Close 1232 (qVar"state", 1233 Apply 1234 (Apply 1235 (Dest("c_fpr",ATy(F8,ATy(FTy 5,F64)),qVar"state"), 1236 Dest("procID",F8,qVar"state")),Var("n",FTy 5)))) 1237; 1238val write'fpr_def = Def 1239 ("write'fpr",TP[Var("value",F64),Var("n",FTy 5)], 1240 Close 1241 (qVar"state", 1242 Rupd 1243 ("c_fpr", 1244 TP[qVar"state", 1245 Fupd 1246 (Dest("c_fpr",ATy(F8,ATy(FTy 5,F64)),qVar"state"), 1247 Dest("procID",F8,qVar"state"), 1248 Fupd 1249 (Apply 1250 (Dest("c_fpr",ATy(F8,ATy(FTy 5,F64)),qVar"state"), 1251 Dest("procID",F8,qVar"state")),Var("n",FTy 5), 1252 Var("value",F64)))]))) 1253; 1254val PC_def = Def 1255 ("PC",qVar"state", 1256 Apply 1257 (Dest("c_PC",ATy(F8,F64),qVar"state"),Dest("procID",F8,qVar"state"))) 1258; 1259val write'PC_def = Def 1260 ("write'PC",Var("value",F64), 1261 Close 1262 (qVar"state", 1263 Rupd 1264 ("c_PC", 1265 TP[qVar"state", 1266 Fupd 1267 (Dest("c_PC",ATy(F8,F64),qVar"state"), 1268 Dest("procID",F8,qVar"state"),Var("value",F64))]))) 1269; 1270val UCSR_def = Def 1271 ("UCSR",qVar"state", 1272 Apply 1273 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1274 Dest("procID",F8,qVar"state"))) 1275; 1276val write'UCSR_def = Def 1277 ("write'UCSR",Var("value",CTy"UserCSR"), 1278 Close 1279 (qVar"state", 1280 Rupd 1281 ("c_UCSR", 1282 TP[qVar"state", 1283 Fupd 1284 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1285 Dest("procID",F8,qVar"state"),Var("value",CTy"UserCSR"))]))) 1286; 1287val SCSR_def = Def 1288 ("SCSR",qVar"state", 1289 Apply 1290 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1291 Dest("procID",F8,qVar"state"))) 1292; 1293val write'SCSR_def = Def 1294 ("write'SCSR",Var("value",CTy"SupervisorCSR"), 1295 Close 1296 (qVar"state", 1297 Rupd 1298 ("c_SCSR", 1299 TP[qVar"state", 1300 Fupd 1301 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1302 Dest("procID",F8,qVar"state"), 1303 Var("value",CTy"SupervisorCSR"))]))) 1304; 1305val HCSR_def = Def 1306 ("HCSR",qVar"state", 1307 Apply 1308 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 1309 Dest("procID",F8,qVar"state"))) 1310; 1311val write'HCSR_def = Def 1312 ("write'HCSR",Var("value",CTy"HypervisorCSR"), 1313 Close 1314 (qVar"state", 1315 Rupd 1316 ("c_HCSR", 1317 TP[qVar"state", 1318 Fupd 1319 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 1320 Dest("procID",F8,qVar"state"), 1321 Var("value",CTy"HypervisorCSR"))]))) 1322; 1323val MCSR_def = Def 1324 ("MCSR",qVar"state", 1325 Apply 1326 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 1327 Dest("procID",F8,qVar"state"))) 1328; 1329val write'MCSR_def = Def 1330 ("write'MCSR",Var("value",CTy"MachineCSR"), 1331 Close 1332 (qVar"state", 1333 Rupd 1334 ("c_MCSR", 1335 TP[qVar"state", 1336 Fupd 1337 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 1338 Dest("procID",F8,qVar"state"),Var("value",CTy"MachineCSR"))]))) 1339; 1340val NextFetch_def = Def 1341 ("NextFetch",qVar"state", 1342 Apply 1343 (Dest("c_NextFetch",ATy(F8,OTy(CTy"TransferControl")),qVar"state"), 1344 Dest("procID",F8,qVar"state"))) 1345; 1346val write'NextFetch_def = Def 1347 ("write'NextFetch",Var("value",OTy(CTy"TransferControl")), 1348 Close 1349 (qVar"state", 1350 Rupd 1351 ("c_NextFetch", 1352 TP[qVar"state", 1353 Fupd 1354 (Dest 1355 ("c_NextFetch",ATy(F8,OTy(CTy"TransferControl")), 1356 qVar"state"),Dest("procID",F8,qVar"state"), 1357 Var("value",OTy(CTy"TransferControl")))]))) 1358; 1359val ReserveLoad_def = Def 1360 ("ReserveLoad",qVar"state", 1361 Apply 1362 (Dest("c_ReserveLoad",ATy(F8,OTy F64),qVar"state"), 1363 Dest("procID",F8,qVar"state"))) 1364; 1365val write'ReserveLoad_def = Def 1366 ("write'ReserveLoad",Var("value",OTy F64), 1367 Close 1368 (qVar"state", 1369 Rupd 1370 ("c_ReserveLoad", 1371 TP[qVar"state", 1372 Fupd 1373 (Dest("c_ReserveLoad",ATy(F8,OTy F64),qVar"state"), 1374 Dest("procID",F8,qVar"state"),Var("value",OTy F64))]))) 1375; 1376val ExitCode_def = Def 1377 ("ExitCode",qVar"state", 1378 Apply 1379 (Dest("c_ExitCode",ATy(F8,F64),qVar"state"), 1380 Dest("procID",F8,qVar"state"))) 1381; 1382val write'ExitCode_def = Def 1383 ("write'ExitCode",Var("value",F64), 1384 Close 1385 (qVar"state", 1386 Rupd 1387 ("c_ExitCode", 1388 TP[qVar"state", 1389 Fupd 1390 (Dest("c_ExitCode",ATy(F8,F64),qVar"state"), 1391 Dest("procID",F8,qVar"state"),Var("value",F64))]))) 1392; 1393val curArch_def = Def 1394 ("curArch",AVar uTy, 1395 Close 1396 (qVar"state", 1397 Apply 1398 (Call 1399 ("architecture",ATy(qTy,PTy(CTy"Architecture",qTy)), 1400 Dest 1401 ("ArchBase",FTy 2, 1402 Dest 1403 ("mcpuid",CTy"mcpuid", 1404 Apply 1405 (Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state")))), 1406 qVar"state"))) 1407; 1408val in32BitMode_def = Def 1409 ("in32BitMode",AVar uTy, 1410 Close 1411 (qVar"state", 1412 Let(TP[Var("v",CTy"Architecture"),qVar"s"], 1413 Apply 1414 (Call("curArch",ATy(qTy,PTy(CTy"Architecture",qTy)),LU), 1415 qVar"state"), 1416 TP[EQ(Var("v",CTy"Architecture"),LC("RV32I",CTy"Architecture")), 1417 qVar"s"]))) 1418; 1419val curPrivilege_def = Def 1420 ("curPrivilege",AVar uTy, 1421 Close 1422 (qVar"state", 1423 Call 1424 ("privilege",CTy"Privilege", 1425 Dest 1426 ("MPRV",FTy 2, 1427 Dest 1428 ("mstatus",CTy"mstatus", 1429 Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state")))))) 1430; 1431val curEPC_def = Def 1432 ("curEPC",AVar uTy, 1433 Close 1434 (qVar"state", 1435 CS(Apply 1436 (Call("curPrivilege",ATy(qTy,CTy"Privilege"),LU),qVar"state"), 1437 [(LC("User",CTy"Privilege"), 1438 Apply 1439 (Call 1440 ("raise'exception",ATy(qTy,PTy(F64,qTy)), 1441 Call 1442 ("INTERNAL_ERROR",CTy"exception",LS"No EPC in U-mode")), 1443 qVar"state")), 1444 (LC("Supervisor",CTy"Privilege"), 1445 TP[Dest 1446 ("sepc",F64, 1447 Apply 1448 (Const("SCSR",ATy(qTy,CTy"SupervisorCSR")),qVar"state")), 1449 qVar"state"]), 1450 (LC("Hypervisor",CTy"Privilege"), 1451 TP[Dest 1452 ("hepc",F64, 1453 Apply 1454 (Const("HCSR",ATy(qTy,CTy"HypervisorCSR")),qVar"state")), 1455 qVar"state"]), 1456 (LC("Machine",CTy"Privilege"), 1457 TP[Dest 1458 ("mepc",F64, 1459 Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state")), 1460 qVar"state"])]))) 1461; 1462val sendIPI_def = Def 1463 ("sendIPI",Var("core",F64), 1464 Close 1465 (qVar"state", 1466 Let(Var("id",F8),Mop(Cast F8,Var("core",F64)), 1467 ITE(Bop(Lt,Mop(Cast nTy,Var("id",F8)), 1468 Dest("totalCore",nTy,qVar"state")), 1469 Let(Var("v",CTy"MachineCSR"), 1470 Apply 1471 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 1472 Var("id",F8)), 1473 Rupd 1474 ("c_MCSR", 1475 TP[qVar"state", 1476 Fupd 1477 (Dest 1478 ("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 1479 Var("id",F8), 1480 Rupd 1481 ("mip", 1482 TP[Var("v",CTy"MachineCSR"), 1483 Rupd 1484 ("MSIP", 1485 TP[Dest 1486 ("mip",CTy"mip", 1487 Var("v",CTy"MachineCSR")),LT])]))])), 1488 qVar"state")))) 1489; 1490val rnd_mode_static_def = Def 1491 ("rnd_mode_static",Var("rnd",FTy 3), 1492 CS(Var("rnd",FTy 3), 1493 [(LW(0,3),Mop(Some,LC("RNE",CTy"Rounding"))), 1494 (LW(1,3),Mop(Some,LC("RTZ",CTy"Rounding"))), 1495 (LW(2,3),Mop(Some,LC("RDN",CTy"Rounding"))), 1496 (LW(3,3),Mop(Some,LC("RUP",CTy"Rounding"))), 1497 (LW(4,3),Mop(Some,LC("RMM",CTy"Rounding"))), 1498 (LW(7,3),Mop(Some,LC("RDYN",CTy"Rounding"))), 1499 (AVar(FTy 3),LO(CTy"Rounding"))])) 1500; 1501val rnd_mode_dynamic_def = Def 1502 ("rnd_mode_dynamic",Var("rnd",FTy 3), 1503 CS(Var("rnd",FTy 3), 1504 [(LW(0,3),Mop(Some,LC("RNE",CTy"Rounding"))), 1505 (LW(1,3),Mop(Some,LC("RTZ",CTy"Rounding"))), 1506 (LW(2,3),Mop(Some,LC("RDN",CTy"Rounding"))), 1507 (LW(3,3),Mop(Some,LC("RUP",CTy"Rounding"))), 1508 (LW(4,3),Mop(Some,LC("RMM",CTy"Rounding"))), 1509 (AVar(FTy 3),LO(CTy"Rounding"))])) 1510; 1511val l3round_def = Def 1512 ("l3round",Var("rnd",CTy"Rounding"), 1513 CS(Var("rnd",CTy"Rounding"), 1514 [(LC("RNE",CTy"Rounding"), 1515 Mop(Some,binary_ieeeSyntax.roundTiesToEven_tm)), 1516 (LC("RTZ",CTy"Rounding"), 1517 Mop(Some,binary_ieeeSyntax.roundTowardZero_tm)), 1518 (LC("RDN",CTy"Rounding"), 1519 Mop(Some,binary_ieeeSyntax.roundTowardNegative_tm)), 1520 (LC("RUP",CTy"Rounding"), 1521 Mop(Some,binary_ieeeSyntax.roundTowardPositive_tm)), 1522 (LC("RMM",CTy"Rounding"),LO rTy),(LC("RDYN",CTy"Rounding"),LO rTy)])) 1523; 1524val round_def = Def 1525 ("round",Var("rnd",FTy 3), 1526 Close 1527 (qVar"state", 1528 CS(Call("rnd_mode_static",OTy(CTy"Rounding"),Var("rnd",FTy 3)), 1529 [(Mop(Some,LC("RDYN",CTy"Rounding")), 1530 CS(Call 1531 ("rnd_mode_dynamic",OTy(CTy"Rounding"), 1532 Dest 1533 ("FRM",FTy 3, 1534 Apply(Const("fcsr",ATy(qTy,CTy"FPCSR")),qVar"state"))), 1535 [(Mop(Some,Var("frm",CTy"Rounding")), 1536 Call("l3round",OTy rTy,Var("frm",CTy"Rounding"))), 1537 (LO(CTy"Rounding"),LO rTy)])), 1538 (Mop(Some,Var("frm",CTy"Rounding")), 1539 Call("l3round",OTy rTy,Var("frm",CTy"Rounding"))), 1540 (LO(CTy"Rounding"),LO rTy)]))) 1541; 1542val RV32_CanonicalNan_def = Def0 ("RV32_CanonicalNan",LW(2143289344,32)) 1543; 1544val RV64_CanonicalNan_def = Def0 1545 ("RV64_CanonicalNan",LW(9221120237041090560,64)) 1546; 1547val FP32_IsSignalingNan_def = Def 1548 ("FP32_IsSignalingNan",Var("x",F32), 1549 Bop(And,EQ(EX(Var("x",F32),LN 30,LN 23,F8),LW(255,8)), 1550 Bop(And,EQ(Bop(Bit,Var("x",F32),LN 22),LF), 1551 Mop(Not,EQ(EX(Var("x",F32),LN 21,LN 0,FTy 22),LW(0,22)))))) 1552; 1553val FP64_IsSignalingNan_def = Def 1554 ("FP64_IsSignalingNan",Var("x",F64), 1555 Bop(And,EQ(EX(Var("x",F64),LN 62,LN 52,FTy 11),LW(2047,11)), 1556 Bop(And,EQ(Bop(Bit,Var("x",F64),LN 51),LF), 1557 Mop(Not,EQ(EX(Var("x",F64),LN 50,LN 0,FTy 51),LW(0,51)))))) 1558; 1559val FP32_Sign_def = Def 1560 ("FP32_Sign",Var("x",F32),Bop(Bit,Var("x",F32),LN 31)) 1561; 1562val FP64_Sign_def = Def 1563 ("FP64_Sign",Var("x",F64),Bop(Bit,Var("x",F64),LN 63)) 1564; 1565val setFP_Invalid_def = Def 1566 ("setFP_Invalid",AVar uTy, 1567 Close 1568 (qVar"state", 1569 Apply 1570 (Call 1571 ("write'fcsr",ATy(qTy,qTy), 1572 Rupd 1573 ("NV", 1574 TP[Apply(Const("fcsr",ATy(qTy,CTy"FPCSR")),qVar"state"),LT])), 1575 qVar"state"))) 1576; 1577val setFP_DivZero_def = Def 1578 ("setFP_DivZero",AVar uTy, 1579 Close 1580 (qVar"state", 1581 Apply 1582 (Call 1583 ("write'fcsr",ATy(qTy,qTy), 1584 Rupd 1585 ("DZ", 1586 TP[Apply(Const("fcsr",ATy(qTy,CTy"FPCSR")),qVar"state"),LT])), 1587 qVar"state"))) 1588; 1589val setFP_Overflow_def = Def 1590 ("setFP_Overflow",AVar uTy, 1591 Close 1592 (qVar"state", 1593 Apply 1594 (Call 1595 ("write'fcsr",ATy(qTy,qTy), 1596 Rupd 1597 ("OF", 1598 TP[Apply(Const("fcsr",ATy(qTy,CTy"FPCSR")),qVar"state"),LT])), 1599 qVar"state"))) 1600; 1601val setFP_Underflow_def = Def 1602 ("setFP_Underflow",AVar uTy, 1603 Close 1604 (qVar"state", 1605 Apply 1606 (Call 1607 ("write'fcsr",ATy(qTy,qTy), 1608 Rupd 1609 ("OF", 1610 TP[Apply(Const("fcsr",ATy(qTy,CTy"FPCSR")),qVar"state"),LT])), 1611 qVar"state"))) 1612; 1613val setFP_Inexact_def = Def 1614 ("setFP_Inexact",AVar uTy, 1615 Close 1616 (qVar"state", 1617 Apply 1618 (Call 1619 ("write'fcsr",ATy(qTy,qTy), 1620 Rupd 1621 ("OF", 1622 TP[Apply(Const("fcsr",ATy(qTy,CTy"FPCSR")),qVar"state"),LT])), 1623 qVar"state"))) 1624; 1625val csrRW_def = Def 1626 ("csrRW",Var("csr",FTy 12),EX(Var("csr",FTy 12),LN 11,LN 10,FTy 2)) 1627; 1628val csrPR_def = Def 1629 ("csrPR",Var("csr",FTy 12),EX(Var("csr",FTy 12),LN 9,LN 8,FTy 2)) 1630; 1631val check_CSR_access_def = Def 1632 ("check_CSR_access", 1633 TP[Var("rw",FTy 2),Var("pr",FTy 2),Var("p",CTy"Privilege"), 1634 Var("a",CTy"accessType")], 1635 Bop(And, 1636 Bop(Or,EQ(Var("a",CTy"accessType"),LC("Read",CTy"accessType")), 1637 Mop(Not,EQ(Var("rw",FTy 2),LW(3,2)))), 1638 Bop(Uge,Call("privLevel",FTy 2,Var("p",CTy"Privilege")), 1639 Var("pr",FTy 2)))) 1640; 1641val is_CSR_defined_def = Def 1642 ("is_CSR_defined",Var("csr",FTy 12), 1643 Close 1644 (qVar"state", 1645 ITB([(Bop(And,Bop(Ge,Var("csr",FTy 12),LW(1,12)), 1646 Bop(Le,Var("csr",FTy 12),LW(3,12))),TP[LT,qVar"state"]), 1647 (Bop(And,Bop(Ge,Var("csr",FTy 12),LW(3072,12)), 1648 Bop(Le,Var("csr",FTy 12),LW(3074,12))),TP[LT,qVar"state"])], 1649 Let(TP[bVar"v",qVar"s"], 1650 ITE(Bop(Ge,Var("csr",FTy 12),LW(3200,12)), 1651 ITE(Bop(Le,Var("csr",FTy 12),LW(3202,12)), 1652 Apply 1653 (Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU), 1654 qVar"state"),TP[LF,qVar"state"]), 1655 TP[LF,qVar"state"]), 1656 ITB([(bVar"v",TP[LT,qVar"s"]), 1657 (Bop(And,Bop(Ge,Var("csr",FTy 12),LW(256,12)), 1658 Bop(Le,Var("csr",FTy 12),LW(257,12))), 1659 TP[LT,qVar"s"]), 1660 (EQ(Var("csr",FTy 12),LW(260,12)),TP[LT,qVar"s"]), 1661 (EQ(Var("csr",FTy 12),LW(289,12)),TP[LT,qVar"s"]), 1662 (EQ(Var("csr",FTy 12),LW(3329,12)),TP[LT,qVar"s"])], 1663 Let(TP[bVar"v",qVar"s"], 1664 ITE(EQ(Var("csr",FTy 12),LW(3457,12)), 1665 Apply 1666 (Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU), 1667 qVar"s"),TP[LF,qVar"s"]), 1668 ITB([(bVar"v",TP[LT,qVar"s"]), 1669 (Bop(And,Bop(Ge,Var("csr",FTy 12),LW(320,12)), 1670 Bop(Le,Var("csr",FTy 12),LW(321,12))), 1671 TP[LT,qVar"s"]), 1672 (EQ(Var("csr",FTy 12),LW(324,12)), 1673 TP[LT,qVar"s"]), 1674 (Bop(And,Bop(Ge,Var("csr",FTy 12),LW(3394,12)), 1675 Bop(Le,Var("csr",FTy 12),LW(3395,12))), 1676 TP[LT,qVar"s"]), 1677 (Bop(And,Bop(Ge,Var("csr",FTy 12),LW(384,12)), 1678 Bop(Le,Var("csr",FTy 12),LW(385,12))), 1679 TP[LT,qVar"s"]), 1680 (Bop(And,Bop(Ge,Var("csr",FTy 12),LW(2304,12)), 1681 Bop(Le,Var("csr",FTy 12),LW(2306,12))), 1682 TP[LT,qVar"s"])], 1683 Let(TP[bVar"v",qVar"s"], 1684 ITE(Bop(Ge,Var("csr",FTy 12),LW(2432,12)), 1685 ITE(Bop(Le,Var("csr",FTy 12),LW(2434,12)), 1686 Apply 1687 (Call 1688 ("in32BitMode", 1689 ATy(qTy,PTy(bTy,qTy)),LU), 1690 qVar"s"),TP[LF,qVar"s"]), 1691 TP[LF,qVar"s"]), 1692 ITB([(bVar"v",TP[LT,qVar"s"]), 1693 (Bop(And, 1694 Bop(Ge,Var("csr",FTy 12), 1695 LW(3840,12)), 1696 Bop(Le,Var("csr",FTy 12), 1697 LW(3841,12))),TP[LT,qVar"s"]), 1698 (EQ(Var("csr",FTy 12),LW(3856,12)), 1699 TP[LT,qVar"s"]), 1700 (Bop(And, 1701 Bop(Ge,Var("csr",FTy 12), 1702 LW(768,12)), 1703 Bop(Le,Var("csr",FTy 12), 1704 LW(770,12))),TP[LT,qVar"s"]), 1705 (EQ(Var("csr",FTy 12),LW(772,12)), 1706 TP[LT,qVar"s"]), 1707 (EQ(Var("csr",FTy 12),LW(801,12)), 1708 TP[LT,qVar"s"]), 1709 (EQ(Var("csr",FTy 12),LW(1793,12)), 1710 TP[LT,qVar"s"])], 1711 Let(TP[bVar"v",qVar"s"], 1712 ITE(EQ(Var("csr",FTy 12),LW(1857,12)), 1713 Apply 1714 (Call 1715 ("in32BitMode", 1716 ATy(qTy,PTy(bTy,qTy)),LU), 1717 qVar"s"),TP[LF,qVar"s"]), 1718 ITB([(bVar"v",TP[LT,qVar"s"]), 1719 (Bop(And, 1720 Bop(Ge,Var("csr",FTy 12), 1721 LW(832,12)), 1722 Bop(Le,Var("csr",FTy 12), 1723 LW(836,12))), 1724 TP[LT,qVar"s"]), 1725 (Bop(And, 1726 Bop(Ge,Var("csr",FTy 12), 1727 LW(896,12)), 1728 Bop(Le,Var("csr",FTy 12), 1729 LW(901,12))), 1730 TP[LT,qVar"s"]), 1731 (Bop(Ge,Var("csr",FTy 12), 1732 LW(2817,12)), 1733 TP[LT,qVar"s"])], 1734 Let(TP[bVar"v",qVar"s"], 1735 ITE(EQ(Var("csr",FTy 12), 1736 LW(2945,12)), 1737 Apply 1738 (Call 1739 ("in32BitMode", 1740 ATy(qTy, 1741 PTy(bTy,qTy)), 1742 LU),qVar"s"), 1743 TP[LF,qVar"s"]), 1744 TP[Bop(Or,bVar"v", 1745 Bop(And, 1746 Bop(Ge, 1747 Var("csr", 1748 FTy 12), 1749 LW(1920,12)), 1750 Bop(And, 1751 Bop(Le, 1752 Var("csr", 1753 FTy 12), 1754 LW(1923, 1755 12)), 1756 Mop(Not, 1757 EQ(Var("csr", 1758 FTy 12), 1759 LW(1922, 1760 12)))))), 1761 qVar"s"])))))))))))) 1762; 1763val CSRMap_def = Def 1764 ("CSRMap",Var("csr",FTy 12), 1765 Close 1766 (qVar"state", 1767 CS(Var("csr",FTy 12), 1768 [(LW(1,12), 1769 TP[Mop(Cast F64, 1770 EX(Call 1771 ("reg'FPCSR",F32, 1772 Dest 1773 ("fpcsr",CTy"FPCSR", 1774 Apply 1775 (Dest 1776 ("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1777 Dest("procID",F8,qVar"state")))),LN 4,LN 0, 1778 FTy 5)),qVar"state"]), 1779 (LW(2,12), 1780 TP[Mop(Cast F64, 1781 Dest 1782 ("FRM",FTy 3, 1783 Dest 1784 ("fpcsr",CTy"FPCSR", 1785 Apply 1786 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1787 Dest("procID",F8,qVar"state"))))),qVar"state"]), 1788 (LW(3,12), 1789 TP[Mop(Cast F64, 1790 EX(Call 1791 ("reg'FPCSR",F32, 1792 Dest 1793 ("fpcsr",CTy"FPCSR", 1794 Apply 1795 (Dest 1796 ("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1797 Dest("procID",F8,qVar"state")))),LN 7,LN 0, 1798 F8)),qVar"state"]), 1799 (LW(3072,12), 1800 TP[Bop(Add, 1801 Apply 1802 (Dest("c_cycles",ATy(F8,F64),qVar"state"), 1803 Dest("procID",F8,qVar"state")), 1804 Dest 1805 ("cycle_delta",F64, 1806 Apply 1807 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1808 Dest("procID",F8,qVar"state")))),qVar"state"]), 1809 (LW(3073,12), 1810 TP[Bop(Add,Dest("clock",F64,qVar"state"), 1811 Dest 1812 ("time_delta",F64, 1813 Apply 1814 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1815 Dest("procID",F8,qVar"state")))),qVar"state"]), 1816 (LW(3074,12), 1817 TP[Bop(Add, 1818 Apply 1819 (Dest("c_instret",ATy(F8,F64),qVar"state"), 1820 Dest("procID",F8,qVar"state")), 1821 Dest 1822 ("instret_delta",F64, 1823 Apply 1824 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1825 Dest("procID",F8,qVar"state")))),qVar"state"]), 1826 (LW(3200,12), 1827 TP[Mop(SE F64, 1828 EX(Bop(Add, 1829 Apply 1830 (Dest("c_cycles",ATy(F8,F64),qVar"state"), 1831 Dest("procID",F8,qVar"state")), 1832 Dest 1833 ("cycle_delta",F64, 1834 Apply 1835 (Dest 1836 ("c_UCSR",ATy(F8,CTy"UserCSR"), 1837 qVar"state"), 1838 Dest("procID",F8,qVar"state")))),LN 63, 1839 LN 32,F32)),qVar"state"]), 1840 (LW(3201,12), 1841 TP[Mop(SE F64, 1842 EX(Bop(Add,Dest("clock",F64,qVar"state"), 1843 Dest 1844 ("time_delta",F64, 1845 Apply 1846 (Dest 1847 ("c_UCSR",ATy(F8,CTy"UserCSR"), 1848 qVar"state"), 1849 Dest("procID",F8,qVar"state")))),LN 63, 1850 LN 32,F32)),qVar"state"]), 1851 (LW(3202,12), 1852 TP[Mop(SE F64, 1853 EX(Bop(Add, 1854 Apply 1855 (Dest("c_instret",ATy(F8,F64),qVar"state"), 1856 Dest("procID",F8,qVar"state")), 1857 Dest 1858 ("instret_delta",F64, 1859 Apply 1860 (Dest 1861 ("c_UCSR",ATy(F8,CTy"UserCSR"), 1862 qVar"state"), 1863 Dest("procID",F8,qVar"state")))),LN 63, 1864 LN 32,F32)),qVar"state"]), 1865 (LW(256,12), 1866 TP[Call 1867 ("reg'sstatus",F64, 1868 Call 1869 ("lift_mstatus_sstatus",CTy"sstatus", 1870 Dest 1871 ("mstatus",CTy"mstatus", 1872 Apply 1873 (Dest 1874 ("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 1875 Dest("procID",F8,qVar"state"))))),qVar"state"]), 1876 (LW(257,12), 1877 TP[Dest 1878 ("stvec",F64, 1879 Apply 1880 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1881 Dest("procID",F8,qVar"state"))),qVar"state"]), 1882 (LW(260,12), 1883 TP[Call 1884 ("reg'sie",F64, 1885 Call 1886 ("lift_mie_sie",CTy"sie", 1887 Dest 1888 ("mie",CTy"mie", 1889 Apply 1890 (Dest 1891 ("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 1892 Dest("procID",F8,qVar"state"))))),qVar"state"]), 1893 (LW(289,12), 1894 TP[Dest 1895 ("stimecmp",F64, 1896 Apply 1897 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1898 Dest("procID",F8,qVar"state"))),qVar"state"]), 1899 (LW(3329,12), 1900 TP[Bop(Add,Dest("clock",F64,qVar"state"), 1901 Dest 1902 ("stime_delta",F64, 1903 Apply 1904 (Dest 1905 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1906 Dest("procID",F8,qVar"state")))),qVar"state"]), 1907 (LW(3457,12), 1908 TP[Mop(SE F64, 1909 EX(Bop(Add,Dest("clock",F64,qVar"state"), 1910 Dest 1911 ("stime_delta",F64, 1912 Apply 1913 (Dest 1914 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"), 1915 qVar"state"), 1916 Dest("procID",F8,qVar"state")))),LN 63, 1917 LN 32,F32)),qVar"state"]), 1918 (LW(320,12), 1919 TP[Dest 1920 ("sscratch",F64, 1921 Apply 1922 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1923 Dest("procID",F8,qVar"state"))),qVar"state"]), 1924 (LW(321,12), 1925 TP[Dest 1926 ("sepc",F64, 1927 Apply 1928 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1929 Dest("procID",F8,qVar"state"))),qVar"state"]), 1930 (LW(3394,12), 1931 TP[Call 1932 ("reg'mcause",F64, 1933 Dest 1934 ("scause",CTy"mcause", 1935 Apply 1936 (Dest 1937 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1938 Dest("procID",F8,qVar"state")))),qVar"state"]), 1939 (LW(3395,12), 1940 TP[Dest 1941 ("sbadaddr",F64, 1942 Apply 1943 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1944 Dest("procID",F8,qVar"state"))),qVar"state"]), 1945 (LW(324,12), 1946 TP[Call 1947 ("reg'sip",F64, 1948 Call 1949 ("lift_mip_sip",CTy"sip", 1950 Dest 1951 ("mip",CTy"mip", 1952 Apply 1953 (Dest 1954 ("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 1955 Dest("procID",F8,qVar"state"))))),qVar"state"]), 1956 (LW(384,12), 1957 TP[Dest 1958 ("sptbr",F64, 1959 Apply 1960 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1961 Dest("procID",F8,qVar"state"))),qVar"state"]), 1962 (LW(385,12), 1963 TP[Dest 1964 ("sasid",F64, 1965 Apply 1966 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 1967 Dest("procID",F8,qVar"state"))),qVar"state"]), 1968 (LW(2304,12), 1969 TP[Bop(Add, 1970 Apply 1971 (Dest("c_cycles",ATy(F8,F64),qVar"state"), 1972 Dest("procID",F8,qVar"state")), 1973 Dest 1974 ("cycle_delta",F64, 1975 Apply 1976 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1977 Dest("procID",F8,qVar"state")))),qVar"state"]), 1978 (LW(2305,12), 1979 TP[Bop(Add,Dest("clock",F64,qVar"state"), 1980 Dest 1981 ("time_delta",F64, 1982 Apply 1983 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1984 Dest("procID",F8,qVar"state")))),qVar"state"]), 1985 (LW(2306,12), 1986 TP[Bop(Add, 1987 Apply 1988 (Dest("c_instret",ATy(F8,F64),qVar"state"), 1989 Dest("procID",F8,qVar"state")), 1990 Dest 1991 ("instret_delta",F64, 1992 Apply 1993 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 1994 Dest("procID",F8,qVar"state")))),qVar"state"]), 1995 (LW(2432,12), 1996 TP[Mop(SE F64, 1997 EX(Bop(Add, 1998 Apply 1999 (Dest("c_cycles",ATy(F8,F64),qVar"state"), 2000 Dest("procID",F8,qVar"state")), 2001 Dest 2002 ("cycle_delta",F64, 2003 Apply 2004 (Dest 2005 ("c_UCSR",ATy(F8,CTy"UserCSR"), 2006 qVar"state"), 2007 Dest("procID",F8,qVar"state")))),LN 63, 2008 LN 32,F32)),qVar"state"]), 2009 (LW(2433,12), 2010 TP[Mop(SE F64, 2011 EX(Bop(Add,Dest("clock",F64,qVar"state"), 2012 Dest 2013 ("time_delta",F64, 2014 Apply 2015 (Dest 2016 ("c_UCSR",ATy(F8,CTy"UserCSR"), 2017 qVar"state"), 2018 Dest("procID",F8,qVar"state")))),LN 63, 2019 LN 32,F32)),qVar"state"]), 2020 (LW(2434,12), 2021 TP[Mop(SE F64, 2022 EX(Bop(Add, 2023 Apply 2024 (Dest("c_instret",ATy(F8,F64),qVar"state"), 2025 Dest("procID",F8,qVar"state")), 2026 Dest 2027 ("instret_delta",F64, 2028 Apply 2029 (Dest 2030 ("c_UCSR",ATy(F8,CTy"UserCSR"), 2031 qVar"state"), 2032 Dest("procID",F8,qVar"state")))),LN 63, 2033 LN 32,F32)),qVar"state"]), 2034 (LW(512,12), 2035 TP[Call 2036 ("reg'mstatus",F64, 2037 Dest 2038 ("hstatus",CTy"mstatus", 2039 Apply 2040 (Dest 2041 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2042 Dest("procID",F8,qVar"state")))),qVar"state"]), 2043 (LW(513,12), 2044 TP[Dest 2045 ("htvec",F64, 2046 Apply 2047 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2048 Dest("procID",F8,qVar"state"))),qVar"state"]), 2049 (LW(514,12), 2050 TP[Call 2051 ("reg'mtdeleg",F64, 2052 Dest 2053 ("htdeleg",CTy"mtdeleg", 2054 Apply 2055 (Dest 2056 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2057 Dest("procID",F8,qVar"state")))),qVar"state"]), 2058 (LW(545,12), 2059 TP[Dest 2060 ("htimecmp",F64, 2061 Apply 2062 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2063 Dest("procID",F8,qVar"state"))),qVar"state"]), 2064 (LW(3585,12), 2065 TP[Bop(Add,Dest("clock",F64,qVar"state"), 2066 Dest 2067 ("htime_delta",F64, 2068 Apply 2069 (Dest 2070 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2071 Dest("procID",F8,qVar"state")))),qVar"state"]), 2072 (LW(3713,12), 2073 TP[Mop(SE F64, 2074 EX(Bop(Add,Dest("clock",F64,qVar"state"), 2075 Dest 2076 ("htime_delta",F64, 2077 Apply 2078 (Dest 2079 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"), 2080 qVar"state"), 2081 Dest("procID",F8,qVar"state")))),LN 63, 2082 LN 32,F32)),qVar"state"]), 2083 (LW(576,12), 2084 TP[Dest 2085 ("hscratch",F64, 2086 Apply 2087 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2088 Dest("procID",F8,qVar"state"))),qVar"state"]), 2089 (LW(577,12), 2090 TP[Dest 2091 ("hepc",F64, 2092 Apply 2093 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2094 Dest("procID",F8,qVar"state"))),qVar"state"]), 2095 (LW(578,12), 2096 TP[Call 2097 ("reg'mcause",F64, 2098 Dest 2099 ("hcause",CTy"mcause", 2100 Apply 2101 (Dest 2102 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2103 Dest("procID",F8,qVar"state")))),qVar"state"]), 2104 (LW(579,12), 2105 TP[Dest 2106 ("hbadaddr",F64, 2107 Apply 2108 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2109 Dest("procID",F8,qVar"state"))),qVar"state"]), 2110 (LW(2561,12), 2111 TP[Bop(Add,Dest("clock",F64,qVar"state"), 2112 Dest 2113 ("stime_delta",F64, 2114 Apply 2115 (Dest 2116 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 2117 Dest("procID",F8,qVar"state")))),qVar"state"]), 2118 (LW(2689,12), 2119 TP[Mop(SE F64, 2120 EX(Bop(Add,Dest("clock",F64,qVar"state"), 2121 Dest 2122 ("stime_delta",F64, 2123 Apply 2124 (Dest 2125 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"), 2126 qVar"state"), 2127 Dest("procID",F8,qVar"state")))),LN 63, 2128 LN 32,F32)),qVar"state"]), 2129 (LW(3840,12), 2130 TP[Call 2131 ("reg'mcpuid",F64, 2132 Dest 2133 ("mcpuid",CTy"mcpuid", 2134 Apply 2135 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2136 Dest("procID",F8,qVar"state")))),qVar"state"]), 2137 (LW(3841,12), 2138 TP[Call 2139 ("reg'mimpid",F64, 2140 Dest 2141 ("mimpid",CTy"mimpid", 2142 Apply 2143 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2144 Dest("procID",F8,qVar"state")))),qVar"state"]), 2145 (LW(3856,12), 2146 TP[Dest 2147 ("mhartid",F64, 2148 Apply 2149 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2150 Dest("procID",F8,qVar"state"))),qVar"state"]), 2151 (LW(768,12), 2152 TP[Call 2153 ("reg'mstatus",F64, 2154 Dest 2155 ("mstatus",CTy"mstatus", 2156 Apply 2157 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2158 Dest("procID",F8,qVar"state")))),qVar"state"]), 2159 (LW(769,12), 2160 TP[Dest 2161 ("mtvec",F64, 2162 Apply 2163 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2164 Dest("procID",F8,qVar"state"))),qVar"state"]), 2165 (LW(770,12), 2166 TP[Call 2167 ("reg'mtdeleg",F64, 2168 Dest 2169 ("mtdeleg",CTy"mtdeleg", 2170 Apply 2171 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2172 Dest("procID",F8,qVar"state")))),qVar"state"]), 2173 (LW(772,12), 2174 TP[Call 2175 ("reg'mie",F64, 2176 Dest 2177 ("mie",CTy"mie", 2178 Apply 2179 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2180 Dest("procID",F8,qVar"state")))),qVar"state"]), 2181 (LW(801,12), 2182 TP[Dest 2183 ("mtimecmp",F64, 2184 Apply 2185 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2186 Dest("procID",F8,qVar"state"))),qVar"state"]), 2187 (LW(1793,12), 2188 TP[Bop(Add,Dest("clock",F64,qVar"state"), 2189 Dest 2190 ("mtime_delta",F64, 2191 Apply 2192 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2193 Dest("procID",F8,qVar"state")))),qVar"state"]), 2194 (LW(1857,12), 2195 TP[Mop(SE F64, 2196 EX(Bop(Add,Dest("clock",F64,qVar"state"), 2197 Dest 2198 ("mtime_delta",F64, 2199 Apply 2200 (Dest 2201 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2202 qVar"state"), 2203 Dest("procID",F8,qVar"state")))),LN 63, 2204 LN 32,F32)),qVar"state"]), 2205 (LW(832,12), 2206 TP[Dest 2207 ("mscratch",F64, 2208 Apply 2209 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2210 Dest("procID",F8,qVar"state"))),qVar"state"]), 2211 (LW(833,12), 2212 TP[Dest 2213 ("mepc",F64, 2214 Apply 2215 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2216 Dest("procID",F8,qVar"state"))),qVar"state"]), 2217 (LW(834,12), 2218 TP[Call 2219 ("reg'mcause",F64, 2220 Dest 2221 ("mcause",CTy"mcause", 2222 Apply 2223 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2224 Dest("procID",F8,qVar"state")))),qVar"state"]), 2225 (LW(835,12), 2226 TP[Dest 2227 ("mbadaddr",F64, 2228 Apply 2229 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2230 Dest("procID",F8,qVar"state"))),qVar"state"]), 2231 (LW(836,12), 2232 TP[Call 2233 ("reg'mip",F64, 2234 Dest 2235 ("mip",CTy"mip", 2236 Apply 2237 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2238 Dest("procID",F8,qVar"state")))),qVar"state"]), 2239 (LW(896,12), 2240 TP[Dest 2241 ("mbase",F64, 2242 Apply 2243 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2244 Dest("procID",F8,qVar"state"))),qVar"state"]), 2245 (LW(897,12), 2246 TP[Dest 2247 ("mbound",F64, 2248 Apply 2249 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2250 Dest("procID",F8,qVar"state"))),qVar"state"]), 2251 (LW(898,12), 2252 TP[Dest 2253 ("mibase",F64, 2254 Apply 2255 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2256 Dest("procID",F8,qVar"state"))),qVar"state"]), 2257 (LW(899,12), 2258 TP[Dest 2259 ("mibound",F64, 2260 Apply 2261 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2262 Dest("procID",F8,qVar"state"))),qVar"state"]), 2263 (LW(900,12), 2264 TP[Dest 2265 ("mdbase",F64, 2266 Apply 2267 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2268 Dest("procID",F8,qVar"state"))),qVar"state"]), 2269 (LW(901,12), 2270 TP[Dest 2271 ("mdbound",F64, 2272 Apply 2273 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2274 Dest("procID",F8,qVar"state"))),qVar"state"]), 2275 (LW(2817,12), 2276 TP[Bop(Add,Dest("clock",F64,qVar"state"), 2277 Dest 2278 ("htime_delta",F64, 2279 Apply 2280 (Dest 2281 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 2282 Dest("procID",F8,qVar"state")))),qVar"state"]), 2283 (LW(2945,12), 2284 TP[Mop(SE F64, 2285 EX(Bop(Add,Dest("clock",F64,qVar"state"), 2286 Dest 2287 ("htime_delta",F64, 2288 Apply 2289 (Dest 2290 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"), 2291 qVar"state"), 2292 Dest("procID",F8,qVar"state")))),LN 63, 2293 LN 32,F32)),qVar"state"]), 2294 (LW(1920,12), 2295 TP[Dest 2296 ("mtohost",F64, 2297 Apply 2298 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2299 Dest("procID",F8,qVar"state"))),qVar"state"]), 2300 (LW(1921,12), 2301 TP[Dest 2302 ("mfromhost",F64, 2303 Apply 2304 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2305 Dest("procID",F8,qVar"state"))),qVar"state"]), 2306 (LW(1923,12),TP[LW(0,64),qVar"state"]), 2307 (AVar(FTy 12), 2308 Apply 2309 (Call 2310 ("raise'exception",ATy(qTy,PTy(F64,qTy)), 2311 Call 2312 ("UNDEFINED",CTy"exception", 2313 CC[LS"unexpected CSR read at ", 2314 Mop(Cast sTy,Var("csr",FTy 12))])),qVar"state"))]))) 2315; 2316val write'CSRMap_def = Def 2317 ("write'CSRMap",TP[Var("value",F64),Var("csr",FTy 12)], 2318 Close 2319 (qVar"state", 2320 CS(Var("csr",FTy 12), 2321 [(LW(1,12), 2322 Let(qVar"s", 2323 Let(Var("v",CTy"UserCSR"), 2324 Apply 2325 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2326 Dest("procID",F8,qVar"state")), 2327 Let(Var("x1",CTy"FPCSR"), 2328 Dest("fpcsr",CTy"FPCSR",Var("v",CTy"UserCSR")), 2329 Rupd 2330 ("c_UCSR", 2331 TP[qVar"state", 2332 Fupd 2333 (Dest 2334 ("c_UCSR",ATy(F8,CTy"UserCSR"), 2335 qVar"state"), 2336 Dest("procID",F8,qVar"state"), 2337 Rupd 2338 ("fpcsr", 2339 TP[Var("v",CTy"UserCSR"), 2340 Call 2341 ("write'reg'FPCSR",CTy"FPCSR", 2342 TP[Var("x1",CTy"FPCSR"), 2343 BFI(LN 4,LN 0, 2344 EX(Var("value",F64),LN 4, 2345 LN 0,FTy 5), 2346 Call 2347 ("reg'FPCSR",F32, 2348 Var("x1",CTy"FPCSR")))])]))]))), 2349 Let(qVar"s", 2350 Let(Var("v",CTy"MachineCSR"), 2351 Apply 2352 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2353 Dest("procID",F8,qVar"s")), 2354 Rupd 2355 ("c_MCSR", 2356 TP[qVar"s", 2357 Fupd 2358 (Dest 2359 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2360 qVar"s"),Dest("procID",F8,qVar"s"), 2361 Rupd 2362 ("mstatus", 2363 TP[Var("v",CTy"MachineCSR"), 2364 Rupd 2365 ("MFS", 2366 TP[Dest 2367 ("mstatus",CTy"mstatus", 2368 Var("v",CTy"MachineCSR")), 2369 Call 2370 ("ext_status",FTy 2, 2371 LC("Dirty",CTy"ExtStatus"))])]))])), 2372 Let(Var("v",CTy"MachineCSR"), 2373 Apply 2374 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2375 Dest("procID",F8,qVar"s")), 2376 Rupd 2377 ("c_MCSR", 2378 TP[qVar"s", 2379 Fupd 2380 (Dest 2381 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2382 qVar"s"),Dest("procID",F8,qVar"s"), 2383 Rupd 2384 ("mstatus", 2385 TP[Var("v",CTy"MachineCSR"), 2386 Rupd 2387 ("MSD", 2388 TP[Dest 2389 ("mstatus",CTy"mstatus", 2390 Var("v",CTy"MachineCSR")), 2391 LT])]))]))))), 2392 (LW(2,12), 2393 Let(qVar"s", 2394 Let(Var("v",CTy"UserCSR"), 2395 Apply 2396 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2397 Dest("procID",F8,qVar"state")), 2398 Rupd 2399 ("c_UCSR", 2400 TP[qVar"state", 2401 Fupd 2402 (Dest 2403 ("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2404 Dest("procID",F8,qVar"state"), 2405 Rupd 2406 ("fpcsr", 2407 TP[Var("v",CTy"UserCSR"), 2408 Rupd 2409 ("FRM", 2410 TP[Dest 2411 ("fpcsr",CTy"FPCSR", 2412 Var("v",CTy"UserCSR")), 2413 EX(Var("value",F64),LN 2,LN 0, 2414 FTy 3)])]))])), 2415 Let(qVar"s", 2416 Let(Var("v",CTy"MachineCSR"), 2417 Apply 2418 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2419 Dest("procID",F8,qVar"s")), 2420 Rupd 2421 ("c_MCSR", 2422 TP[qVar"s", 2423 Fupd 2424 (Dest 2425 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2426 qVar"s"),Dest("procID",F8,qVar"s"), 2427 Rupd 2428 ("mstatus", 2429 TP[Var("v",CTy"MachineCSR"), 2430 Rupd 2431 ("MFS", 2432 TP[Dest 2433 ("mstatus",CTy"mstatus", 2434 Var("v",CTy"MachineCSR")), 2435 Call 2436 ("ext_status",FTy 2, 2437 LC("Dirty",CTy"ExtStatus"))])]))])), 2438 Let(Var("v",CTy"MachineCSR"), 2439 Apply 2440 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2441 Dest("procID",F8,qVar"s")), 2442 Rupd 2443 ("c_MCSR", 2444 TP[qVar"s", 2445 Fupd 2446 (Dest 2447 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2448 qVar"s"),Dest("procID",F8,qVar"s"), 2449 Rupd 2450 ("mstatus", 2451 TP[Var("v",CTy"MachineCSR"), 2452 Rupd 2453 ("MSD", 2454 TP[Dest 2455 ("mstatus",CTy"mstatus", 2456 Var("v",CTy"MachineCSR")), 2457 LT])]))]))))), 2458 (LW(3,12), 2459 Let(qVar"s", 2460 Let(Var("v",CTy"UserCSR"), 2461 Apply 2462 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2463 Dest("procID",F8,qVar"state")), 2464 Rupd 2465 ("c_UCSR", 2466 TP[qVar"state", 2467 Fupd 2468 (Dest 2469 ("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2470 Dest("procID",F8,qVar"state"), 2471 Rupd 2472 ("fpcsr", 2473 TP[Var("v",CTy"UserCSR"), 2474 Call 2475 ("write'reg'FPCSR",CTy"FPCSR", 2476 TP[Dest 2477 ("fpcsr",CTy"FPCSR", 2478 Var("v",CTy"UserCSR")), 2479 EX(Var("value",F64),LN 31,LN 0,F32)])]))])), 2480 Let(qVar"s", 2481 Let(Var("v",CTy"MachineCSR"), 2482 Apply 2483 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2484 Dest("procID",F8,qVar"s")), 2485 Rupd 2486 ("c_MCSR", 2487 TP[qVar"s", 2488 Fupd 2489 (Dest 2490 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2491 qVar"s"),Dest("procID",F8,qVar"s"), 2492 Rupd 2493 ("mstatus", 2494 TP[Var("v",CTy"MachineCSR"), 2495 Rupd 2496 ("MFS", 2497 TP[Dest 2498 ("mstatus",CTy"mstatus", 2499 Var("v",CTy"MachineCSR")), 2500 Call 2501 ("ext_status",FTy 2, 2502 LC("Dirty",CTy"ExtStatus"))])]))])), 2503 Let(Var("v",CTy"MachineCSR"), 2504 Apply 2505 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2506 Dest("procID",F8,qVar"s")), 2507 Rupd 2508 ("c_MCSR", 2509 TP[qVar"s", 2510 Fupd 2511 (Dest 2512 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2513 qVar"s"),Dest("procID",F8,qVar"s"), 2514 Rupd 2515 ("mstatus", 2516 TP[Var("v",CTy"MachineCSR"), 2517 Rupd 2518 ("MSD", 2519 TP[Dest 2520 ("mstatus",CTy"mstatus", 2521 Var("v",CTy"MachineCSR")), 2522 LT])]))]))))), 2523 (LW(256,12), 2524 Rupd 2525 ("c_MCSR", 2526 TP[qVar"state", 2527 Fupd 2528 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2529 Dest("procID",F8,qVar"state"), 2530 Rupd 2531 ("mstatus", 2532 TP[Apply 2533 (Dest 2534 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2535 qVar"state"),Dest("procID",F8,qVar"state")), 2536 Call 2537 ("lower_sstatus_mstatus",CTy"mstatus", 2538 TP[Call 2539 ("rec'sstatus",CTy"sstatus", 2540 Var("value",F64)), 2541 Dest 2542 ("mstatus",CTy"mstatus", 2543 Apply 2544 (Dest 2545 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2546 qVar"state"), 2547 Dest("procID",F8,qVar"state")))])]))])), 2548 (LW(257,12), 2549 Rupd 2550 ("c_SCSR", 2551 TP[qVar"state", 2552 Fupd 2553 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 2554 Dest("procID",F8,qVar"state"), 2555 Rupd 2556 ("stvec", 2557 TP[Apply 2558 (Dest 2559 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"), 2560 qVar"state"),Dest("procID",F8,qVar"state")), 2561 Var("value",F64)]))])), 2562 (LW(260,12), 2563 Rupd 2564 ("c_MCSR", 2565 TP[qVar"state", 2566 Fupd 2567 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2568 Dest("procID",F8,qVar"state"), 2569 Rupd 2570 ("mie", 2571 TP[Apply 2572 (Dest 2573 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2574 qVar"state"),Dest("procID",F8,qVar"state")), 2575 Call 2576 ("lower_sie_mie",CTy"mie", 2577 TP[Call("rec'sie",CTy"sie",Var("value",F64)), 2578 Dest 2579 ("mie",CTy"mie", 2580 Apply 2581 (Dest 2582 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2583 qVar"state"), 2584 Dest("procID",F8,qVar"state")))])]))])), 2585 (LW(289,12), 2586 Let(qVar"s", 2587 Rupd 2588 ("c_SCSR", 2589 TP[qVar"state", 2590 Fupd 2591 (Dest 2592 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 2593 Dest("procID",F8,qVar"state"), 2594 Rupd 2595 ("stimecmp", 2596 TP[Apply 2597 (Dest 2598 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"), 2599 qVar"state"), 2600 Dest("procID",F8,qVar"state")), 2601 Var("value",F64)]))]), 2602 Let(Var("v",CTy"MachineCSR"), 2603 Apply 2604 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2605 Dest("procID",F8,qVar"s")), 2606 Rupd 2607 ("c_MCSR", 2608 TP[qVar"s", 2609 Fupd 2610 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2611 Dest("procID",F8,qVar"s"), 2612 Rupd 2613 ("mip", 2614 TP[Var("v",CTy"MachineCSR"), 2615 Rupd 2616 ("STIP", 2617 TP[Dest 2618 ("mip",CTy"mip", 2619 Var("v",CTy"MachineCSR")),LF])]))])))), 2620 (LW(320,12), 2621 Rupd 2622 ("c_SCSR", 2623 TP[qVar"state", 2624 Fupd 2625 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 2626 Dest("procID",F8,qVar"state"), 2627 Rupd 2628 ("sscratch", 2629 TP[Apply 2630 (Dest 2631 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"), 2632 qVar"state"),Dest("procID",F8,qVar"state")), 2633 Var("value",F64)]))])), 2634 (LW(321,12), 2635 Rupd 2636 ("c_SCSR", 2637 TP[qVar"state", 2638 Fupd 2639 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 2640 Dest("procID",F8,qVar"state"), 2641 Rupd 2642 ("sepc", 2643 TP[Apply 2644 (Dest 2645 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"), 2646 qVar"state"),Dest("procID",F8,qVar"state")), 2647 Bop(BAnd,Var("value",F64),Mop(SE F64,LW(4,3)))]))])), 2648 (LW(324,12), 2649 Rupd 2650 ("c_MCSR", 2651 TP[qVar"state", 2652 Fupd 2653 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2654 Dest("procID",F8,qVar"state"), 2655 Rupd 2656 ("mip", 2657 TP[Apply 2658 (Dest 2659 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2660 qVar"state"),Dest("procID",F8,qVar"state")), 2661 Call 2662 ("lower_sip_mip",CTy"mip", 2663 TP[Call("rec'sip",CTy"sip",Var("value",F64)), 2664 Dest 2665 ("mip",CTy"mip", 2666 Apply 2667 (Dest 2668 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2669 qVar"state"), 2670 Dest("procID",F8,qVar"state")))])]))])), 2671 (LW(384,12), 2672 Rupd 2673 ("c_SCSR", 2674 TP[qVar"state", 2675 Fupd 2676 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 2677 Dest("procID",F8,qVar"state"), 2678 Rupd 2679 ("sptbr", 2680 TP[Apply 2681 (Dest 2682 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"), 2683 qVar"state"),Dest("procID",F8,qVar"state")), 2684 Var("value",F64)]))])), 2685 (LW(385,12), 2686 Rupd 2687 ("c_SCSR", 2688 TP[qVar"state", 2689 Fupd 2690 (Dest("c_SCSR",ATy(F8,CTy"SupervisorCSR"),qVar"state"), 2691 Dest("procID",F8,qVar"state"), 2692 Rupd 2693 ("sasid", 2694 TP[Apply 2695 (Dest 2696 ("c_SCSR",ATy(F8,CTy"SupervisorCSR"), 2697 qVar"state"),Dest("procID",F8,qVar"state")), 2698 Var("value",F64)]))])), 2699 (LW(2304,12), 2700 Rupd 2701 ("c_UCSR", 2702 TP[qVar"state", 2703 Fupd 2704 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2705 Dest("procID",F8,qVar"state"), 2706 Rupd 2707 ("cycle_delta", 2708 TP[Apply 2709 (Dest 2710 ("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2711 Dest("procID",F8,qVar"state")), 2712 Bop(Sub,Var("value",F64), 2713 Apply 2714 (Dest("c_cycles",ATy(F8,F64),qVar"state"), 2715 Dest("procID",F8,qVar"state")))]))])), 2716 (LW(2305,12), 2717 Rupd 2718 ("c_UCSR", 2719 TP[qVar"state", 2720 Fupd 2721 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2722 Dest("procID",F8,qVar"state"), 2723 Rupd 2724 ("time_delta", 2725 TP[Apply 2726 (Dest 2727 ("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2728 Dest("procID",F8,qVar"state")), 2729 Bop(Sub,Var("value",F64), 2730 Dest("clock",F64,qVar"state"))]))])), 2731 (LW(2306,12), 2732 Rupd 2733 ("c_UCSR", 2734 TP[qVar"state", 2735 Fupd 2736 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2737 Dest("procID",F8,qVar"state"), 2738 Rupd 2739 ("instret_delta", 2740 TP[Apply 2741 (Dest 2742 ("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2743 Dest("procID",F8,qVar"state")), 2744 Bop(Sub,Var("value",F64), 2745 Apply 2746 (Dest("c_instret",ATy(F8,F64),qVar"state"), 2747 Dest("procID",F8,qVar"state")))]))])), 2748 (LW(2432,12), 2749 Let(Var("v",CTy"UserCSR"), 2750 Apply 2751 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2752 Dest("procID",F8,qVar"state")), 2753 Rupd 2754 ("c_UCSR", 2755 TP[qVar"state", 2756 Fupd 2757 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2758 Dest("procID",F8,qVar"state"), 2759 Rupd 2760 ("cycle_delta", 2761 TP[Var("v",CTy"UserCSR"), 2762 BFI(LN 63,LN 32, 2763 Bop(Lsl, 2764 Bop(Sub, 2765 EX(Var("value",F64),LN 31,LN 0, 2766 F32), 2767 EX(Apply 2768 (Dest 2769 ("c_cycles",ATy(F8,F64), 2770 qVar"state"), 2771 Dest 2772 ("procID",F8,qVar"state")), 2773 LN 63,LN 32,F32)),LN 32), 2774 Dest 2775 ("cycle_delta",F64, 2776 Var("v",CTy"UserCSR")))]))]))), 2777 (LW(2433,12), 2778 Let(Var("v",CTy"UserCSR"), 2779 Apply 2780 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2781 Dest("procID",F8,qVar"state")), 2782 Rupd 2783 ("c_UCSR", 2784 TP[qVar"state", 2785 Fupd 2786 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2787 Dest("procID",F8,qVar"state"), 2788 Rupd 2789 ("time_delta", 2790 TP[Var("v",CTy"UserCSR"), 2791 BFI(LN 63,LN 32, 2792 Bop(Lsl, 2793 Bop(Sub, 2794 EX(Var("value",F64),LN 31,LN 0, 2795 F32), 2796 EX(Dest("clock",F64,qVar"state"), 2797 LN 63,LN 32,F32)),LN 32), 2798 Dest 2799 ("time_delta",F64, 2800 Var("v",CTy"UserCSR")))]))]))), 2801 (LW(2434,12), 2802 Let(Var("v",CTy"UserCSR"), 2803 Apply 2804 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2805 Dest("procID",F8,qVar"state")), 2806 Rupd 2807 ("c_UCSR", 2808 TP[qVar"state", 2809 Fupd 2810 (Dest("c_UCSR",ATy(F8,CTy"UserCSR"),qVar"state"), 2811 Dest("procID",F8,qVar"state"), 2812 Rupd 2813 ("instret_delta", 2814 TP[Var("v",CTy"UserCSR"), 2815 BFI(LN 63,LN 32, 2816 Bop(Lsl, 2817 Bop(Sub, 2818 EX(Var("value",F64),LN 31,LN 0, 2819 F32), 2820 EX(Apply 2821 (Dest 2822 ("c_instret", 2823 ATy(F8,F64),qVar"state"), 2824 Dest 2825 ("procID",F8,qVar"state")), 2826 LN 63,LN 32,F32)),LN 32), 2827 Dest 2828 ("instret_delta",F64, 2829 Var("v",CTy"UserCSR")))]))]))), 2830 (LW(768,12), 2831 Rupd 2832 ("c_MCSR", 2833 TP[qVar"state", 2834 Fupd 2835 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2836 Dest("procID",F8,qVar"state"), 2837 Rupd 2838 ("mstatus", 2839 TP[Apply 2840 (Dest 2841 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2842 qVar"state"),Dest("procID",F8,qVar"state")), 2843 Call 2844 ("update_mstatus",CTy"mstatus", 2845 TP[Dest 2846 ("mstatus",CTy"mstatus", 2847 Apply 2848 (Dest 2849 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2850 qVar"state"), 2851 Dest("procID",F8,qVar"state"))), 2852 Call 2853 ("rec'mstatus",CTy"mstatus", 2854 Var("value",F64))])]))])), 2855 (LW(769,12), 2856 Rupd 2857 ("c_MCSR", 2858 TP[qVar"state", 2859 Fupd 2860 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2861 Dest("procID",F8,qVar"state"), 2862 Rupd 2863 ("mtvec", 2864 TP[Apply 2865 (Dest 2866 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2867 qVar"state"),Dest("procID",F8,qVar"state")), 2868 Var("value",F64)]))])), 2869 (LW(770,12), 2870 Rupd 2871 ("c_MCSR", 2872 TP[qVar"state", 2873 Fupd 2874 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2875 Dest("procID",F8,qVar"state"), 2876 Rupd 2877 ("mtdeleg", 2878 TP[Apply 2879 (Dest 2880 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2881 qVar"state"),Dest("procID",F8,qVar"state")), 2882 Call 2883 ("rec'mtdeleg",CTy"mtdeleg",Var("value",F64))]))])), 2884 (LW(772,12), 2885 Rupd 2886 ("c_MCSR", 2887 TP[qVar"state", 2888 Fupd 2889 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2890 Dest("procID",F8,qVar"state"), 2891 Rupd 2892 ("mie", 2893 TP[Apply 2894 (Dest 2895 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2896 qVar"state"),Dest("procID",F8,qVar"state")), 2897 Call("rec'mie",CTy"mie",Var("value",F64))]))])), 2898 (LW(801,12), 2899 Let(qVar"s", 2900 Rupd 2901 ("c_MCSR", 2902 TP[qVar"state", 2903 Fupd 2904 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2905 Dest("procID",F8,qVar"state"), 2906 Rupd 2907 ("mtimecmp", 2908 TP[Apply 2909 (Dest 2910 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2911 qVar"state"), 2912 Dest("procID",F8,qVar"state")), 2913 Var("value",F64)]))]), 2914 Let(Var("v",CTy"MachineCSR"), 2915 Apply 2916 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2917 Dest("procID",F8,qVar"s")), 2918 Rupd 2919 ("c_MCSR", 2920 TP[qVar"s", 2921 Fupd 2922 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"s"), 2923 Dest("procID",F8,qVar"s"), 2924 Rupd 2925 ("mip", 2926 TP[Var("v",CTy"MachineCSR"), 2927 Rupd 2928 ("MTIP", 2929 TP[Dest 2930 ("mip",CTy"mip", 2931 Var("v",CTy"MachineCSR")),LF])]))])))), 2932 (LW(1793,12), 2933 Rupd 2934 ("c_MCSR", 2935 TP[qVar"state", 2936 Fupd 2937 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2938 Dest("procID",F8,qVar"state"), 2939 Rupd 2940 ("mtime_delta", 2941 TP[Apply 2942 (Dest 2943 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2944 qVar"state"),Dest("procID",F8,qVar"state")), 2945 Bop(Sub,Var("value",F64), 2946 Dest("clock",F64,qVar"state"))]))])), 2947 (LW(1857,12), 2948 Let(Var("v",CTy"MachineCSR"), 2949 Apply 2950 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2951 Dest("procID",F8,qVar"state")), 2952 Rupd 2953 ("c_MCSR", 2954 TP[qVar"state", 2955 Fupd 2956 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2957 Dest("procID",F8,qVar"state"), 2958 Rupd 2959 ("mtime_delta", 2960 TP[Var("v",CTy"MachineCSR"), 2961 BFI(LN 63,LN 32, 2962 Bop(Lsl, 2963 Bop(Sub, 2964 EX(Var("value",F64),LN 31,LN 0, 2965 F32), 2966 EX(Dest("clock",F64,qVar"state"), 2967 LN 63,LN 32,F32)),LN 32), 2968 Dest 2969 ("mtime_delta",F64, 2970 Var("v",CTy"MachineCSR")))]))]))), 2971 (LW(832,12), 2972 Rupd 2973 ("c_MCSR", 2974 TP[qVar"state", 2975 Fupd 2976 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2977 Dest("procID",F8,qVar"state"), 2978 Rupd 2979 ("mscratch", 2980 TP[Apply 2981 (Dest 2982 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2983 qVar"state"),Dest("procID",F8,qVar"state")), 2984 Var("value",F64)]))])), 2985 (LW(833,12), 2986 Rupd 2987 ("c_MCSR", 2988 TP[qVar"state", 2989 Fupd 2990 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 2991 Dest("procID",F8,qVar"state"), 2992 Rupd 2993 ("mepc", 2994 TP[Apply 2995 (Dest 2996 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 2997 qVar"state"),Dest("procID",F8,qVar"state")), 2998 Bop(BAnd,Var("value",F64),Mop(SE F64,LW(4,3)))]))])), 2999 (LW(834,12), 3000 Rupd 3001 ("c_MCSR", 3002 TP[qVar"state", 3003 Fupd 3004 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3005 Dest("procID",F8,qVar"state"), 3006 Rupd 3007 ("mcause", 3008 TP[Apply 3009 (Dest 3010 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3011 qVar"state"),Dest("procID",F8,qVar"state")), 3012 Call("rec'mcause",CTy"mcause",Var("value",F64))]))])), 3013 (LW(835,12), 3014 Rupd 3015 ("c_MCSR", 3016 TP[qVar"state", 3017 Fupd 3018 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3019 Dest("procID",F8,qVar"state"), 3020 Rupd 3021 ("mbadaddr", 3022 TP[Apply 3023 (Dest 3024 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3025 qVar"state"),Dest("procID",F8,qVar"state")), 3026 Var("value",F64)]))])), 3027 (LW(836,12), 3028 Rupd 3029 ("c_MCSR", 3030 TP[qVar"state", 3031 Fupd 3032 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3033 Dest("procID",F8,qVar"state"), 3034 Rupd 3035 ("mip", 3036 TP[Apply 3037 (Dest 3038 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3039 qVar"state"),Dest("procID",F8,qVar"state")), 3040 Call("rec'mip",CTy"mip",Var("value",F64))]))])), 3041 (LW(896,12), 3042 Rupd 3043 ("c_MCSR", 3044 TP[qVar"state", 3045 Fupd 3046 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3047 Dest("procID",F8,qVar"state"), 3048 Rupd 3049 ("mbase", 3050 TP[Apply 3051 (Dest 3052 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3053 qVar"state"),Dest("procID",F8,qVar"state")), 3054 Var("value",F64)]))])), 3055 (LW(897,12), 3056 Rupd 3057 ("c_MCSR", 3058 TP[qVar"state", 3059 Fupd 3060 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3061 Dest("procID",F8,qVar"state"), 3062 Rupd 3063 ("mbound", 3064 TP[Apply 3065 (Dest 3066 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3067 qVar"state"),Dest("procID",F8,qVar"state")), 3068 Var("value",F64)]))])), 3069 (LW(898,12), 3070 Rupd 3071 ("c_MCSR", 3072 TP[qVar"state", 3073 Fupd 3074 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3075 Dest("procID",F8,qVar"state"), 3076 Rupd 3077 ("mibase", 3078 TP[Apply 3079 (Dest 3080 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3081 qVar"state"),Dest("procID",F8,qVar"state")), 3082 Var("value",F64)]))])), 3083 (LW(899,12), 3084 Rupd 3085 ("c_MCSR", 3086 TP[qVar"state", 3087 Fupd 3088 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3089 Dest("procID",F8,qVar"state"), 3090 Rupd 3091 ("mibound", 3092 TP[Apply 3093 (Dest 3094 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3095 qVar"state"),Dest("procID",F8,qVar"state")), 3096 Var("value",F64)]))])), 3097 (LW(900,12), 3098 Rupd 3099 ("c_MCSR", 3100 TP[qVar"state", 3101 Fupd 3102 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3103 Dest("procID",F8,qVar"state"), 3104 Rupd 3105 ("mdbase", 3106 TP[Apply 3107 (Dest 3108 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3109 qVar"state"),Dest("procID",F8,qVar"state")), 3110 Var("value",F64)]))])), 3111 (LW(901,12), 3112 Rupd 3113 ("c_MCSR", 3114 TP[qVar"state", 3115 Fupd 3116 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3117 Dest("procID",F8,qVar"state"), 3118 Rupd 3119 ("mdbound", 3120 TP[Apply 3121 (Dest 3122 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3123 qVar"state"),Dest("procID",F8,qVar"state")), 3124 Var("value",F64)]))])), 3125 (LW(2817,12), 3126 Rupd 3127 ("c_HCSR", 3128 TP[qVar"state", 3129 Fupd 3130 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 3131 Dest("procID",F8,qVar"state"), 3132 Rupd 3133 ("htime_delta", 3134 TP[Apply 3135 (Dest 3136 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"), 3137 qVar"state"),Dest("procID",F8,qVar"state")), 3138 Bop(Sub,Var("value",F64), 3139 Dest("clock",F64,qVar"state"))]))])), 3140 (LW(2945,12), 3141 Let(Var("v",CTy"HypervisorCSR"), 3142 Apply 3143 (Dest("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 3144 Dest("procID",F8,qVar"state")), 3145 Rupd 3146 ("c_HCSR", 3147 TP[qVar"state", 3148 Fupd 3149 (Dest 3150 ("c_HCSR",ATy(F8,CTy"HypervisorCSR"),qVar"state"), 3151 Dest("procID",F8,qVar"state"), 3152 Rupd 3153 ("htime_delta", 3154 TP[Var("v",CTy"HypervisorCSR"), 3155 BFI(LN 63,LN 32, 3156 Bop(Lsl, 3157 Bop(Sub, 3158 EX(Var("value",F64),LN 31,LN 0, 3159 F32), 3160 EX(Dest("clock",F64,qVar"state"), 3161 LN 63,LN 32,F32)),LN 32), 3162 Dest 3163 ("htime_delta",F64, 3164 Var("v",CTy"HypervisorCSR")))]))]))), 3165 (LW(1920,12), 3166 Rupd 3167 ("c_MCSR", 3168 TP[qVar"state", 3169 Fupd 3170 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3171 Dest("procID",F8,qVar"state"), 3172 Rupd 3173 ("mtohost", 3174 TP[Apply 3175 (Dest 3176 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3177 qVar"state"),Dest("procID",F8,qVar"state")), 3178 Var("value",F64)]))])), 3179 (LW(1921,12), 3180 Rupd 3181 ("c_MCSR", 3182 TP[qVar"state", 3183 Fupd 3184 (Dest("c_MCSR",ATy(F8,CTy"MachineCSR"),qVar"state"), 3185 Dest("procID",F8,qVar"state"), 3186 Rupd 3187 ("mfromhost", 3188 TP[Apply 3189 (Dest 3190 ("c_MCSR",ATy(F8,CTy"MachineCSR"), 3191 qVar"state"),Dest("procID",F8,qVar"state")), 3192 Var("value",F64)]))])), 3193 (LW(1923,12), 3194 Apply 3195 (Call("sendIPI",ATy(qTy,qTy),Var("value",F64)),qVar"state")), 3196 (AVar(FTy 12), 3197 Mop(Snd, 3198 Apply 3199 (Call 3200 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 3201 Call 3202 ("INTERNAL_ERROR",CTy"exception", 3203 CC[LS"unexpected CSR write to ", 3204 Mop(Cast sTy,Var("csr",FTy 12))])),qVar"state")))]))) 3205; 3206val csrName_def = Def 3207 ("csrName",Var("csr",FTy 12), 3208 CS(Var("csr",FTy 12), 3209 [(LW(1,12),LS"fflags"),(LW(2,12),LS"frm"),(LW(3,12),LS"fcsr"), 3210 (LW(3072,12),LS"cycle"),(LW(3073,12),LS"time"), 3211 (LW(3074,12),LS"instret"),(LW(3200,12),LS"cycleh"), 3212 (LW(3201,12),LS"timeh"),(LW(3202,12),LS"instreth"), 3213 (LW(256,12),LS"sstatus"),(LW(257,12),LS"stvec"), 3214 (LW(260,12),LS"sie"),(LW(289,12),LS"stimecmp"), 3215 (LW(3329,12),LS"stime"),(LW(3457,12),LS"stimeh"), 3216 (LW(320,12),LS"sscratch"),(LW(321,12),LS"sepc"), 3217 (LW(3394,12),LS"scause"),(LW(3395,12),LS"sbadaddr"), 3218 (LW(324,12),LS"mip"),(LW(384,12),LS"sptbr"),(LW(385,12),LS"sasid"), 3219 (LW(2304,12),LS"cycle"),(LW(2305,12),LS"time"), 3220 (LW(2306,12),LS"instret"),(LW(2432,12),LS"cycleh"), 3221 (LW(2433,12),LS"timeh"),(LW(2434,12),LS"instreth"), 3222 (LW(512,12),LS"hstatus"),(LW(513,12),LS"htvec"), 3223 (LW(514,12),LS"htdeleg"),(LW(545,12),LS"htimecmp"), 3224 (LW(3585,12),LS"htime"),(LW(3713,12),LS"htimeh"), 3225 (LW(576,12),LS"hscratch"),(LW(577,12),LS"hepc"), 3226 (LW(578,12),LS"hcause"),(LW(579,12),LS"hbadaddr"), 3227 (LW(2561,12),LS"stime"),(LW(2689,12),LS"stimeh"), 3228 (LW(3840,12),LS"mcpuid"),(LW(3841,12),LS"mimpid"), 3229 (LW(3856,12),LS"mhartid"),(LW(768,12),LS"mstatus"), 3230 (LW(769,12),LS"mtvec"),(LW(770,12),LS"mtdeleg"), 3231 (LW(772,12),LS"mie"),(LW(801,12),LS"mtimecmp"), 3232 (LW(1793,12),LS"mtime"),(LW(1857,12),LS"mtimeh"), 3233 (LW(832,12),LS"mscratch"),(LW(833,12),LS"mepc"), 3234 (LW(834,12),LS"mcause"),(LW(835,12),LS"mbadaddr"), 3235 (LW(836,12),LS"mip"),(LW(896,12),LS"mbase"), 3236 (LW(897,12),LS"mbound"),(LW(898,12),LS"mibase"), 3237 (LW(899,12),LS"mibound"),(LW(900,12),LS"mdbase"), 3238 (LW(901,12),LS"mdbound"),(LW(2817,12),LS"htime"), 3239 (LW(2945,12),LS"htimeh"),(LW(1920,12),LS"mtohost"), 3240 (LW(1921,12),LS"mfromhost"),(LW(1923,12),LS"send_ipi"), 3241 (AVar(FTy 12),LS"UNKNOWN")])) 3242; 3243val Delta_def = Def 3244 ("Delta",qVar"state", 3245 Apply 3246 (Dest("c_update",ATy(F8,CTy"StateDelta"),qVar"state"), 3247 Dest("procID",F8,qVar"state"))) 3248; 3249val write'Delta_def = Def 3250 ("write'Delta",Var("value",CTy"StateDelta"), 3251 Close 3252 (qVar"state", 3253 Rupd 3254 ("c_update", 3255 TP[qVar"state", 3256 Fupd 3257 (Dest("c_update",ATy(F8,CTy"StateDelta"),qVar"state"), 3258 Dest("procID",F8,qVar"state"),Var("value",CTy"StateDelta"))]))) 3259; 3260val hex32_def = Def 3261 ("hex32",Var("x",F32), 3262 Mop(PadLeft,TP[LSC #"0",LN 8,Mop(Cast sTy,Var("x",F32))])) 3263; 3264val hex64_def = Def 3265 ("hex64",Var("x",F64), 3266 Mop(PadLeft,TP[LSC #"0",LN 16,Mop(Cast sTy,Var("x",F64))])) 3267; 3268val log_w_csr_def = Def 3269 ("log_w_csr",TP[Var("csr",FTy 12),Var("data",F64)], 3270 CC[LS"CSR (",Call("csrName",sTy,Var("csr",FTy 12)),LS") <- 0x", 3271 Call("hex64",sTy,Var("data",F64))]) 3272; 3273val reg_def = Def 3274 ("reg",Var("r",FTy 5), 3275 ITB([(EQ(Var("r",FTy 5),LW(0,5)),LS"$0"), 3276 (EQ(Var("r",FTy 5),LW(1,5)),LS"ra"), 3277 (EQ(Var("r",FTy 5),LW(2,5)),LS"sp"), 3278 (EQ(Var("r",FTy 5),LW(3,5)),LS"gp"), 3279 (EQ(Var("r",FTy 5),LW(4,5)),LS"tp"), 3280 (EQ(Var("r",FTy 5),LW(5,5)),LS"t0"), 3281 (EQ(Var("r",FTy 5),LW(6,5)),LS"t1"), 3282 (EQ(Var("r",FTy 5),LW(7,5)),LS"t2"), 3283 (EQ(Var("r",FTy 5),LW(8,5)),LS"fp"), 3284 (EQ(Var("r",FTy 5),LW(9,5)),LS"s1"), 3285 (EQ(Var("r",FTy 5),LW(10,5)),LS"a0"), 3286 (EQ(Var("r",FTy 5),LW(11,5)),LS"a1"), 3287 (EQ(Var("r",FTy 5),LW(12,5)),LS"a2"), 3288 (EQ(Var("r",FTy 5),LW(13,5)),LS"a3"), 3289 (EQ(Var("r",FTy 5),LW(14,5)),LS"a4"), 3290 (EQ(Var("r",FTy 5),LW(15,5)),LS"a5"), 3291 (EQ(Var("r",FTy 5),LW(16,5)),LS"a6"), 3292 (EQ(Var("r",FTy 5),LW(17,5)),LS"a7"), 3293 (EQ(Var("r",FTy 5),LW(18,5)),LS"s2"), 3294 (EQ(Var("r",FTy 5),LW(19,5)),LS"s3"), 3295 (EQ(Var("r",FTy 5),LW(20,5)),LS"s4"), 3296 (EQ(Var("r",FTy 5),LW(21,5)),LS"s5"), 3297 (EQ(Var("r",FTy 5),LW(22,5)),LS"s6"), 3298 (EQ(Var("r",FTy 5),LW(23,5)),LS"s7"), 3299 (EQ(Var("r",FTy 5),LW(24,5)),LS"s8"), 3300 (EQ(Var("r",FTy 5),LW(25,5)),LS"s9"), 3301 (EQ(Var("r",FTy 5),LW(26,5)),LS"s10"), 3302 (EQ(Var("r",FTy 5),LW(27,5)),LS"s11"), 3303 (EQ(Var("r",FTy 5),LW(28,5)),LS"t3"), 3304 (EQ(Var("r",FTy 5),LW(29,5)),LS"t4"), 3305 (EQ(Var("r",FTy 5),LW(30,5)),LS"t5")],LS"t6")) 3306; 3307val fpreg_def = Def 3308 ("fpreg",Var("r",FTy 5), 3309 ITB([(EQ(Var("r",FTy 5),LW(0,5)),LS"fs0"), 3310 (EQ(Var("r",FTy 5),LW(1,5)),LS"fs1"), 3311 (EQ(Var("r",FTy 5),LW(2,5)),LS"fs2"), 3312 (EQ(Var("r",FTy 5),LW(3,5)),LS"fs3"), 3313 (EQ(Var("r",FTy 5),LW(4,5)),LS"fs4"), 3314 (EQ(Var("r",FTy 5),LW(5,5)),LS"fs5"), 3315 (EQ(Var("r",FTy 5),LW(6,5)),LS"fs6"), 3316 (EQ(Var("r",FTy 5),LW(7,5)),LS"fs7"), 3317 (EQ(Var("r",FTy 5),LW(8,5)),LS"fs8"), 3318 (EQ(Var("r",FTy 5),LW(9,5)),LS"fs9"), 3319 (EQ(Var("r",FTy 5),LW(10,5)),LS"fs10"), 3320 (EQ(Var("r",FTy 5),LW(11,5)),LS"fs11"), 3321 (EQ(Var("r",FTy 5),LW(12,5)),LS"fs12"), 3322 (EQ(Var("r",FTy 5),LW(13,5)),LS"fs13"), 3323 (EQ(Var("r",FTy 5),LW(14,5)),LS"fs14"), 3324 (EQ(Var("r",FTy 5),LW(15,5)),LS"fs15"), 3325 (EQ(Var("r",FTy 5),LW(16,5)),LS"fv0"), 3326 (EQ(Var("r",FTy 5),LW(17,5)),LS"fv1"), 3327 (EQ(Var("r",FTy 5),LW(18,5)),LS"fa0"), 3328 (EQ(Var("r",FTy 5),LW(19,5)),LS"fa1"), 3329 (EQ(Var("r",FTy 5),LW(20,5)),LS"fa2"), 3330 (EQ(Var("r",FTy 5),LW(21,5)),LS"fa3"), 3331 (EQ(Var("r",FTy 5),LW(22,5)),LS"fa4"), 3332 (EQ(Var("r",FTy 5),LW(23,5)),LS"fa5"), 3333 (EQ(Var("r",FTy 5),LW(24,5)),LS"fa6"), 3334 (EQ(Var("r",FTy 5),LW(25,5)),LS"fa7"), 3335 (EQ(Var("r",FTy 5),LW(26,5)),LS"ft0"), 3336 (EQ(Var("r",FTy 5),LW(27,5)),LS"ft1"), 3337 (EQ(Var("r",FTy 5),LW(28,5)),LS"ft2"), 3338 (EQ(Var("r",FTy 5),LW(29,5)),LS"ft3"), 3339 (EQ(Var("r",FTy 5),LW(30,5)),LS"ft4")],LS"ft5")) 3340; 3341val log_w_gpr_def = Def 3342 ("log_w_gpr",TP[Var("r",FTy 5),Var("data",F64)], 3343 CC[LS"Reg ",Call("reg",sTy,Var("r",FTy 5)),LS" (", 3344 Mop(Cast sTy,Mop(Cast nTy,Var("r",FTy 5))),LS") <- 0x", 3345 Call("hex64",sTy,Var("data",F64))]) 3346; 3347val log_w_fprs_def = Def 3348 ("log_w_fprs",TP[Var("r",FTy 5),Var("data",F32)], 3349 CC[LS"FPR ",Call("reg",sTy,Var("r",FTy 5)),LS" (", 3350 Mop(Cast sTy,Mop(Cast nTy,Var("r",FTy 5))),LS") <- 0x", 3351 Call("hex32",sTy,Var("data",F32))]) 3352; 3353val log_w_fprd_def = Def 3354 ("log_w_fprd",TP[Var("r",FTy 5),Var("data",F64)], 3355 CC[LS"FPR ",Call("reg",sTy,Var("r",FTy 5)),LS" (", 3356 Mop(Cast sTy,Mop(Cast nTy,Var("r",FTy 5))),LS") <- 0x", 3357 Call("hex64",sTy,Var("data",F64))]) 3358; 3359val log_w_mem_mask_def = Def 3360 ("log_w_mem_mask", 3361 TP[Var("pAddrIdx",FTy 61),Var("vAddr",F64),Var("mask",F64), 3362 Var("data",F64),Var("old",F64),Var("new",F64)], 3363 CC[LS"MEM[0x",Call("hex64",sTy,Mop(Cast F64,Var("pAddrIdx",FTy 61))), 3364 LS"/",Call("hex64",sTy,Var("vAddr",F64)),LS"] <- (data: 0x", 3365 Call("hex64",sTy,Var("data",F64)),LS", mask: 0x", 3366 Call("hex64",sTy,Var("mask",F64)),LS", old: 0x", 3367 Call("hex64",sTy,Var("old",F64)),LS", new: 0x", 3368 Call("hex64",sTy,Var("new",F64)),LS")"]) 3369; 3370val log_w_mem_mask_misaligned_def = Def 3371 ("log_w_mem_mask_misaligned", 3372 TP[Var("pAddrIdx",FTy 61),Var("vAddr",F64),Var("mask",F64), 3373 Var("data",F64),nVar"align",Var("old",F64),Var("new",F64)], 3374 CC[LS"MEM[0x",Call("hex64",sTy,Mop(Cast F64,Var("pAddrIdx",FTy 61))), 3375 LS"/",Call("hex64",sTy,Var("vAddr",F64)),LS"/ misaligned@", 3376 Mop(Cast sTy,nVar"align"),LS"] <- (data: 0x", 3377 Call("hex64",sTy,Var("data",F64)),LS", mask: 0x", 3378 Call("hex64",sTy,Var("mask",F64)),LS", old: 0x", 3379 Call("hex64",sTy,Var("old",F64)),LS", new: 0x", 3380 Call("hex64",sTy,Var("new",F64)),LS")"]) 3381; 3382val log_w_mem_def = Def 3383 ("log_w_mem", 3384 TP[Var("pAddrIdx",FTy 61),Var("vAddr",F64),Var("data",F64)], 3385 CC[LS"MEM[0x",Call("hex64",sTy,Mop(Cast F64,Var("pAddrIdx",FTy 61))), 3386 LS"/",Call("hex64",sTy,Var("vAddr",F64)),LS"] <- (data: 0x", 3387 Call("hex64",sTy,Var("data",F64)),LS")"]) 3388; 3389val log_r_mem_def = Def 3390 ("log_r_mem", 3391 TP[Var("pAddrIdx",FTy 61),Var("vAddr",F64),Var("data",F64)], 3392 CC[LS"data <- MEM[0x", 3393 Mop(PadLeft,TP[LSC #"0",LN 10,Mop(Cast sTy,Var("pAddrIdx",FTy 61))]), 3394 LS"/",Call("hex64",sTy,Var("vAddr",F64)),LS"]: 0x", 3395 Call("hex64",sTy,Var("data",F64))]) 3396; 3397val log_exc_def = Def 3398 ("log_exc",Var("e",CTy"ExceptionType"), 3399 CC[LS" Exception ",Call("excName",sTy,Var("e",CTy"ExceptionType")), 3400 LS" raised!"]) 3401; 3402val log_tohost_def = Def 3403 ("log_tohost",Var("tohost",F64), 3404 CC[LS"-> host: ", 3405 Mop(Cast sTy,Mop(Cast cTy,EX(Var("tohost",F64),LN 7,LN 0,F8)))]) 3406; 3407val clear_logs_def = Def 3408 ("clear_logs",AVar uTy, 3409 Close(qVar"state",Rupd("log",TP[qVar"state",LNL(PTy(nTy,sTy))]))) 3410; 3411val setTrap_def = Def 3412 ("setTrap",TP[Var("e",CTy"ExceptionType"),Var("badaddr",OTy F64)], 3413 Close 3414 (qVar"state", 3415 Apply 3416 (Call 3417 ("write'NextFetch",ATy(qTy,qTy), 3418 Mop(Some, 3419 Call 3420 ("Trap",CTy"TransferControl", 3421 Rupd 3422 ("badaddr", 3423 TP[Rupd 3424 ("trap", 3425 TP[LX(CTy"SynchronousTrap"), 3426 Var("e",CTy"ExceptionType")]), 3427 Var("badaddr",OTy F64)])))),qVar"state"))) 3428; 3429val signalException_def = Def 3430 ("signalException",Var("e",CTy"ExceptionType"), 3431 Close 3432 (qVar"state", 3433 Apply 3434 (Call 3435 ("setTrap",ATy(qTy,qTy),TP[Var("e",CTy"ExceptionType"),LO F64]), 3436 qVar"state"))) 3437; 3438val signalAddressException_def = Def 3439 ("signalAddressException", 3440 TP[Var("e",CTy"ExceptionType"),Var("vAddr",F64)], 3441 Close 3442 (qVar"state", 3443 Apply 3444 (Call 3445 ("setTrap",ATy(qTy,qTy), 3446 TP[Var("e",CTy"ExceptionType"),Mop(Some,Var("vAddr",F64))]), 3447 qVar"state"))) 3448; 3449val signalEnvCall_def = Def 3450 ("signalEnvCall",AVar uTy, 3451 Close 3452 (qVar"state", 3453 Apply 3454 (Call 3455 ("signalException",ATy(qTy,qTy), 3456 CS(Call 3457 ("privilege",CTy"Privilege", 3458 Dest 3459 ("MPRV",FTy 2, 3460 Dest 3461 ("mstatus",CTy"mstatus", 3462 Apply 3463 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 3464 qVar"state")))), 3465 [(LC("User",CTy"Privilege"), 3466 LC("UMode_Env_Call",CTy"ExceptionType")), 3467 (LC("Supervisor",CTy"Privilege"), 3468 LC("SMode_Env_Call",CTy"ExceptionType")), 3469 (LC("Hypervisor",CTy"Privilege"), 3470 LC("HMode_Env_Call",CTy"ExceptionType")), 3471 (LC("Machine",CTy"Privilege"), 3472 LC("MMode_Env_Call",CTy"ExceptionType"))])),qVar"state"))) 3473; 3474val checkDelegation_def = tDef 3475 ("checkDelegation", 3476 TP[Var("curPriv",CTy"Privilege"),bVar"intr",Var("ec",F4)], 3477 Close 3478 (qVar"state", 3479 Let(nVar"e",Mop(Cast nTy,Var("ec",F4)), 3480 CS(Var("curPriv",CTy"Privilege"), 3481 [(LC("User",CTy"Privilege"), 3482 Apply 3483 (Call 3484 ("raise'exception",ATy(qTy,PTy(CTy"Privilege",qTy)), 3485 Call 3486 ("INTERNAL_ERROR",CTy"exception", 3487 LS"No user-level delegation!")),qVar"state")), 3488 (LC("Supervisor",CTy"Privilege"), 3489 Apply 3490 (Call 3491 ("raise'exception",ATy(qTy,PTy(CTy"Privilege",qTy)), 3492 Call 3493 ("INTERNAL_ERROR",CTy"exception", 3494 LS"No supervisor-level delegation!")),qVar"state")), 3495 (LC("Hypervisor",CTy"Privilege"), 3496 TP[ITE(Bop(Or, 3497 Bop(And,bVar"intr", 3498 Bop(Bit, 3499 Dest 3500 ("Intr_deleg",FTy 48, 3501 Dest 3502 ("htdeleg",CTy"mtdeleg", 3503 Apply 3504 (Const 3505 ("HCSR", 3506 ATy(qTy,CTy"HypervisorCSR")), 3507 qVar"state"))),nVar"e")), 3508 Bop(And,Mop(Not,bVar"intr"), 3509 Bop(Bit, 3510 Dest 3511 ("Exc_deleg",F16, 3512 Dest 3513 ("htdeleg",CTy"mtdeleg", 3514 Apply 3515 (Const 3516 ("HCSR", 3517 ATy(qTy,CTy"HypervisorCSR")), 3518 qVar"state"))),nVar"e"))), 3519 LC("Supervisor",CTy"Privilege"), 3520 Var("curPriv",CTy"Privilege")),qVar"state"]), 3521 (LC("Machine",CTy"Privilege"), 3522 ITE(Bop(Or, 3523 Bop(And,bVar"intr", 3524 Bop(Bit, 3525 Dest 3526 ("Intr_deleg",FTy 48, 3527 Dest 3528 ("mtdeleg",CTy"mtdeleg", 3529 Apply 3530 (Const 3531 ("MCSR",ATy(qTy,CTy"MachineCSR")), 3532 qVar"state"))),nVar"e")), 3533 Bop(And,Mop(Not,bVar"intr"), 3534 Bop(Bit, 3535 Dest 3536 ("Exc_deleg",F16, 3537 Dest 3538 ("mtdeleg",CTy"mtdeleg", 3539 Apply 3540 (Const 3541 ("MCSR",ATy(qTy,CTy"MachineCSR")), 3542 qVar"state"))),nVar"e"))), 3543 Apply 3544 (Call 3545 ("checkDelegation", 3546 ATy(qTy,PTy(CTy"Privilege",qTy)), 3547 TP[LC("Hypervisor",CTy"Privilege"),bVar"intr", 3548 Var("ec",F4)]),qVar"state"), 3549 TP[Var("curPriv",CTy"Privilege"),qVar"state"]))]))), 3550 Close 3551 (Var("x",PTy(PTy(CTy"Privilege",PTy(bTy,F4)),qTy)), 3552 CS(Var("x",PTy(PTy(CTy"Privilege",PTy(bTy,F4)),qTy)), 3553 [(TP[TP[Var("curPriv",CTy"Privilege"),bVar"intr",Var("ec",F4)], 3554 AVar qTy],Mop(Cast nTy,Var("curPriv",CTy"Privilege")))])), 3555 SIMP_TAC std_ss [DB.theorem "Privilege2num_thm"] 3556) 3557; 3558val checkPrivInterrupt_def = Def 3559 ("checkPrivInterrupt",Var("curPriv",CTy"Privilege"), 3560 Close 3561 (qVar"state", 3562 Let(Var("v",CTy"mip"), 3563 Dest 3564 ("mip",CTy"mip", 3565 Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state")), 3566 Let(Var("v0",CTy"mie"), 3567 Dest 3568 ("mie",CTy"mie", 3569 Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state")), 3570 CS(Var("curPriv",CTy"Privilege"), 3571 [(LC("User",CTy"Privilege"), 3572 Apply 3573 (Call 3574 ("raise'exception", 3575 ATy(qTy, 3576 PTy(OTy(PTy(CTy"Interrupt",CTy"Privilege")), 3577 qTy)), 3578 Call 3579 ("INTERNAL_ERROR",CTy"exception", 3580 LS"No user-level interrupts!")),qVar"state")), 3581 (LC("Supervisor",CTy"Privilege"), 3582 TP[ITB([(Bop(And,Dest("STIP",bTy,Var("v",CTy"mip")), 3583 Dest("STIE",bTy,Var("v0",CTy"mie"))), 3584 Mop(Some, 3585 TP[LC("Timer",CTy"Interrupt"), 3586 Var("curPriv",CTy"Privilege")])), 3587 (Bop(And,Dest("SSIP",bTy,Var("v",CTy"mip")), 3588 Dest("SSIE",bTy,Var("v0",CTy"mie"))), 3589 Mop(Some, 3590 TP[LC("Software",CTy"Interrupt"), 3591 Var("curPriv",CTy"Privilege")]))], 3592 LO(PTy(CTy"Interrupt",CTy"Privilege"))), 3593 qVar"state"]), 3594 (LC("Hypervisor",CTy"Privilege"), 3595 TP[ITB([(Bop(And,Dest("HTIP",bTy,Var("v",CTy"mip")), 3596 Dest("HTIE",bTy,Var("v0",CTy"mie"))), 3597 Mop(Some, 3598 TP[LC("Timer",CTy"Interrupt"), 3599 Var("curPriv",CTy"Privilege")])), 3600 (Bop(And,Dest("HSIP",bTy,Var("v",CTy"mip")), 3601 Dest("HSIE",bTy,Var("v0",CTy"mie"))), 3602 Mop(Some, 3603 TP[LC("Software",CTy"Interrupt"), 3604 Var("curPriv",CTy"Privilege")]))], 3605 LO(PTy(CTy"Interrupt",CTy"Privilege"))), 3606 qVar"state"]), 3607 (LC("Machine",CTy"Privilege"), 3608 TP[ITB([(Bop(And,Dest("MTIP",bTy,Var("v",CTy"mip")), 3609 Dest("MTIE",bTy,Var("v0",CTy"mie"))), 3610 Mop(Some, 3611 TP[LC("Timer",CTy"Interrupt"), 3612 Var("curPriv",CTy"Privilege")])), 3613 (Bop(And,Dest("MSIP",bTy,Var("v",CTy"mip")), 3614 Dest("MSIE",bTy,Var("v0",CTy"mie"))), 3615 Mop(Some, 3616 TP[LC("Software",CTy"Interrupt"), 3617 Var("curPriv",CTy"Privilege")]))], 3618 LO(PTy(CTy"Interrupt",CTy"Privilege"))), 3619 qVar"state"])]))))) 3620; 3621val checkInterrupts_def = Def 3622 ("checkInterrupts",AVar uTy, 3623 Close 3624 (qVar"state", 3625 Let(bVar"v", 3626 Dest 3627 ("MIE",bTy, 3628 Dest 3629 ("mstatus",CTy"mstatus", 3630 Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state"))), 3631 Let(Var("v0",CTy"Privilege"), 3632 Apply 3633 (Call("curPrivilege",ATy(qTy,CTy"Privilege"),LU), 3634 qVar"state"), 3635 CS(Var("v0",CTy"Privilege"), 3636 [(LC("User",CTy"Privilege"), 3637 Let(TP[Var("v1",OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3638 qVar"s"], 3639 Apply 3640 (Call 3641 ("checkPrivInterrupt", 3642 ATy(qTy, 3643 PTy(OTy(PTy(CTy"Interrupt",CTy"Privilege")), 3644 qTy)),LC("Machine",CTy"Privilege")), 3645 qVar"state"), 3646 CS(Var("v1",OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3647 [(LO(PTy(CTy"Interrupt",CTy"Privilege")), 3648 Let(TP[Var("v1", 3649 OTy(PTy(CTy"Interrupt", 3650 CTy"Privilege"))),qVar"s"], 3651 Apply 3652 (Call 3653 ("checkPrivInterrupt", 3654 ATy(qTy, 3655 PTy(OTy(PTy(CTy"Interrupt", 3656 CTy"Privilege")),qTy)), 3657 LC("Hypervisor",CTy"Privilege")), 3658 qVar"s"), 3659 CS(Var("v1", 3660 OTy(PTy(CTy"Interrupt", 3661 CTy"Privilege"))), 3662 [(LO(PTy(CTy"Interrupt",CTy"Privilege")), 3663 ITE(Bop(Or, 3664 EQ(Var("v0",CTy"Privilege"), 3665 LC("User",CTy"Privilege")), 3666 bVar"v"), 3667 Apply 3668 (Call 3669 ("checkPrivInterrupt", 3670 ATy(qTy, 3671 PTy(OTy(PTy(CTy"Interrupt", 3672 CTy"Privilege")), 3673 qTy)), 3674 LC("Supervisor", 3675 CTy"Privilege")),qVar"s"), 3676 TP[LO(PTy(CTy"Interrupt", 3677 CTy"Privilege")), 3678 qVar"s"])), 3679 (Var("i", 3680 OTy(PTy(CTy"Interrupt", 3681 CTy"Privilege"))), 3682 TP[Var("i", 3683 OTy(PTy(CTy"Interrupt", 3684 CTy"Privilege"))), 3685 qVar"s"])]))), 3686 (Var("i", 3687 OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3688 TP[Var("i", 3689 OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3690 qVar"s"])]))), 3691 (LC("Supervisor",CTy"Privilege"), 3692 Let(TP[Var("v1",OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3693 qVar"s"], 3694 Apply 3695 (Call 3696 ("checkPrivInterrupt", 3697 ATy(qTy, 3698 PTy(OTy(PTy(CTy"Interrupt",CTy"Privilege")), 3699 qTy)),LC("Machine",CTy"Privilege")), 3700 qVar"state"), 3701 CS(Var("v1",OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3702 [(LO(PTy(CTy"Interrupt",CTy"Privilege")), 3703 Let(TP[Var("v1", 3704 OTy(PTy(CTy"Interrupt", 3705 CTy"Privilege"))),qVar"s"], 3706 Apply 3707 (Call 3708 ("checkPrivInterrupt", 3709 ATy(qTy, 3710 PTy(OTy(PTy(CTy"Interrupt", 3711 CTy"Privilege")),qTy)), 3712 LC("Hypervisor",CTy"Privilege")), 3713 qVar"s"), 3714 CS(Var("v1", 3715 OTy(PTy(CTy"Interrupt", 3716 CTy"Privilege"))), 3717 [(LO(PTy(CTy"Interrupt",CTy"Privilege")), 3718 ITE(Bop(Or, 3719 EQ(Var("v0",CTy"Privilege"), 3720 LC("User",CTy"Privilege")), 3721 bVar"v"), 3722 Apply 3723 (Call 3724 ("checkPrivInterrupt", 3725 ATy(qTy, 3726 PTy(OTy(PTy(CTy"Interrupt", 3727 CTy"Privilege")), 3728 qTy)), 3729 LC("Supervisor", 3730 CTy"Privilege")),qVar"s"), 3731 TP[LO(PTy(CTy"Interrupt", 3732 CTy"Privilege")), 3733 qVar"s"])), 3734 (Var("i", 3735 OTy(PTy(CTy"Interrupt", 3736 CTy"Privilege"))), 3737 TP[Var("i", 3738 OTy(PTy(CTy"Interrupt", 3739 CTy"Privilege"))), 3740 qVar"s"])]))), 3741 (Var("i", 3742 OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3743 TP[Var("i", 3744 OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3745 qVar"s"])]))), 3746 (LC("Hypervisor",CTy"Privilege"), 3747 Let(TP[Var("v0",OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3748 qVar"s"], 3749 Apply 3750 (Call 3751 ("checkPrivInterrupt", 3752 ATy(qTy, 3753 PTy(OTy(PTy(CTy"Interrupt",CTy"Privilege")), 3754 qTy)),LC("Machine",CTy"Privilege")), 3755 qVar"state"), 3756 CS(Var("v0",OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3757 [(LO(PTy(CTy"Interrupt",CTy"Privilege")), 3758 ITE(bVar"v", 3759 Apply 3760 (Call 3761 ("checkPrivInterrupt", 3762 ATy(qTy, 3763 PTy(OTy(PTy(CTy"Interrupt", 3764 CTy"Privilege")),qTy)), 3765 LC("Hypervisor",CTy"Privilege")), 3766 qVar"s"), 3767 TP[LO(PTy(CTy"Interrupt",CTy"Privilege")), 3768 qVar"s"])), 3769 (Var("i", 3770 OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3771 TP[Var("i", 3772 OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 3773 qVar"s"])]))), 3774 (LC("Machine",CTy"Privilege"), 3775 ITE(bVar"v", 3776 Apply 3777 (Call 3778 ("checkPrivInterrupt", 3779 ATy(qTy, 3780 PTy(OTy(PTy(CTy"Interrupt",CTy"Privilege")), 3781 qTy)),LC("Machine",CTy"Privilege")), 3782 qVar"state"), 3783 TP[LO(PTy(CTy"Interrupt",CTy"Privilege")), 3784 qVar"state"]))]))))) 3785; 3786val takeTrap_def = Def 3787 ("takeTrap", 3788 TP[bVar"intr",Var("ec",F4),Var("epc",F64),Var("badaddr",OTy F64), 3789 Var("toPriv",CTy"Privilege")], 3790 Close 3791 (qVar"state", 3792 Let(TP[Var("v0",CTy"MachineCSR"),qVar"s"], 3793 Let(qVar"s0", 3794 Apply 3795 (Call("write'ReserveLoad",ATy(qTy,qTy),LO F64),qVar"state"), 3796 TP[Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s0"), 3797 qVar"s0"]), 3798 Let(TP[Var("v0",CTy"MachineCSR"),qVar"s"], 3799 Let(qVar"s0", 3800 Apply 3801 (Call 3802 ("write'MCSR",ATy(qTy,qTy), 3803 Rupd 3804 ("mstatus", 3805 TP[Var("v0",CTy"MachineCSR"), 3806 Rupd 3807 ("MMPRV", 3808 TP[Dest 3809 ("mstatus",CTy"mstatus", 3810 Var("v0",CTy"MachineCSR")),LF])])), 3811 qVar"s"), 3812 TP[Apply 3813 (Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s0"), 3814 qVar"s0"]), 3815 Let(qVar"s", 3816 Apply 3817 (Call 3818 ("write'MCSR",ATy(qTy,qTy), 3819 Rupd 3820 ("mstatus", 3821 TP[Var("v0",CTy"MachineCSR"), 3822 Call 3823 ("pushPrivilegeStack",CTy"mstatus", 3824 TP[Dest 3825 ("mstatus",CTy"mstatus", 3826 Apply 3827 (Const 3828 ("MCSR", 3829 ATy(qTy,CTy"MachineCSR")), 3830 qVar"s")), 3831 Var("toPriv",CTy"Privilege")])])), 3832 qVar"s"), 3833 CS(Var("toPriv",CTy"Privilege"), 3834 [(LC("User",CTy"Privilege"), 3835 Mop(Snd, 3836 Apply 3837 (Call 3838 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 3839 Call 3840 ("INTERNAL_ERROR",CTy"exception", 3841 LS"Illegal trap to U-mode")),qVar"s"))), 3842 (LC("Supervisor",CTy"Privilege"), 3843 Let(Var("v",CTy"SupervisorCSR"), 3844 Apply 3845 (Const("SCSR",ATy(qTy,CTy"SupervisorCSR")), 3846 qVar"s"), 3847 Let(TP[Var("v",CTy"SupervisorCSR"),qVar"s"], 3848 Let(qVar"s0", 3849 Apply 3850 (Call 3851 ("write'SCSR",ATy(qTy,qTy), 3852 Rupd 3853 ("scause", 3854 TP[Var("v",CTy"SupervisorCSR"), 3855 Rupd 3856 ("Int", 3857 TP[Dest 3858 ("scause", 3859 CTy"mcause", 3860 Var("v", 3861 CTy"SupervisorCSR")), 3862 bVar"intr"])])), 3863 qVar"s"), 3864 TP[Apply 3865 (Const 3866 ("SCSR", 3867 ATy(qTy,CTy"SupervisorCSR")), 3868 qVar"s0"),qVar"s0"]), 3869 Let(TP[Var("v",CTy"SupervisorCSR"),qVar"s"], 3870 Let(qVar"s0", 3871 Apply 3872 (Call 3873 ("write'SCSR",ATy(qTy,qTy), 3874 Rupd 3875 ("scause", 3876 TP[Var("v", 3877 CTy"SupervisorCSR"), 3878 Rupd 3879 ("EC", 3880 TP[Dest 3881 ("scause", 3882 CTy"mcause", 3883 Var("v", 3884 CTy"SupervisorCSR")), 3885 Var("ec",F4)])])), 3886 qVar"s"), 3887 TP[Apply 3888 (Const 3889 ("SCSR", 3890 ATy(qTy,CTy"SupervisorCSR")), 3891 qVar"s0"),qVar"s0"]), 3892 Let(qVar"s", 3893 Apply 3894 (Call 3895 ("write'SCSR",ATy(qTy,qTy), 3896 Rupd 3897 ("sepc", 3898 TP[Var("v", 3899 CTy"SupervisorCSR"), 3900 Var("epc",F64)])), 3901 qVar"s"), 3902 Let(TP[Var("v",CTy"SupervisorCSR"), 3903 qVar"s"], 3904 Let(qVar"s0", 3905 ITE(Mop(IsSome, 3906 Var("badaddr", 3907 OTy F64)), 3908 Apply 3909 (Call 3910 ("write'SCSR", 3911 ATy(qTy,qTy), 3912 Rupd 3913 ("sbadaddr", 3914 TP[Apply 3915 (Const 3916 ("SCSR", 3917 ATy(qTy, 3918 CTy"SupervisorCSR")), 3919 qVar"s"), 3920 Mop(ValOf, 3921 Var("badaddr", 3922 OTy F64))])), 3923 qVar"s"),qVar"s"), 3924 TP[Apply 3925 (Const 3926 ("SCSR", 3927 ATy(qTy, 3928 CTy"SupervisorCSR")), 3929 qVar"s0"),qVar"s0"]), 3930 Apply 3931 (Call 3932 ("write'PC",ATy(qTy,qTy), 3933 Dest 3934 ("stvec",F64, 3935 Var("v", 3936 CTy"SupervisorCSR"))), 3937 qVar"s"))))))), 3938 (LC("Hypervisor",CTy"Privilege"), 3939 Mop(Snd, 3940 Apply 3941 (Call 3942 ("raise'exception",ATy(qTy,PTy(uTy,qTy)), 3943 Call 3944 ("INTERNAL_ERROR",CTy"exception", 3945 LS"Unsupported trap to H-mode")), 3946 qVar"s"))), 3947 (LC("Machine",CTy"Privilege"), 3948 Let(Var("v0",CTy"MachineCSR"), 3949 Apply 3950 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 3951 qVar"s"), 3952 Let(TP[Var("v0",CTy"MachineCSR"),qVar"s"], 3953 Let(qVar"s0", 3954 Apply 3955 (Call 3956 ("write'MCSR",ATy(qTy,qTy), 3957 Rupd 3958 ("mcause", 3959 TP[Var("v0",CTy"MachineCSR"), 3960 Rupd 3961 ("Int", 3962 TP[Dest 3963 ("mcause", 3964 CTy"mcause", 3965 Var("v0", 3966 CTy"MachineCSR")), 3967 bVar"intr"])])), 3968 qVar"s"), 3969 TP[Apply 3970 (Const 3971 ("MCSR", 3972 ATy(qTy,CTy"MachineCSR")), 3973 qVar"s0"),qVar"s0"]), 3974 Let(TP[Var("v0",CTy"MachineCSR"),qVar"s"], 3975 Let(qVar"s0", 3976 Apply 3977 (Call 3978 ("write'MCSR",ATy(qTy,qTy), 3979 Rupd 3980 ("mcause", 3981 TP[Var("v0", 3982 CTy"MachineCSR"), 3983 Rupd 3984 ("EC", 3985 TP[Dest 3986 ("mcause", 3987 CTy"mcause", 3988 Var("v0", 3989 CTy"MachineCSR")), 3990 Var("ec",F4)])])), 3991 qVar"s"), 3992 TP[Apply 3993 (Const 3994 ("MCSR", 3995 ATy(qTy,CTy"MachineCSR")), 3996 qVar"s0"),qVar"s0"]), 3997 Let(qVar"s", 3998 Apply 3999 (Call 4000 ("write'MCSR",ATy(qTy,qTy), 4001 Rupd 4002 ("mepc", 4003 TP[Var("v0", 4004 CTy"MachineCSR"), 4005 Var("epc",F64)])), 4006 qVar"s"), 4007 Let(TP[Var("v0",CTy"MachineCSR"), 4008 qVar"s"], 4009 Let(qVar"s0", 4010 ITE(Mop(IsSome, 4011 Var("badaddr", 4012 OTy F64)), 4013 Apply 4014 (Call 4015 ("write'MCSR", 4016 ATy(qTy,qTy), 4017 Rupd 4018 ("mbadaddr", 4019 TP[Apply 4020 (Const 4021 ("MCSR", 4022 ATy(qTy, 4023 CTy"MachineCSR")), 4024 qVar"s"), 4025 Mop(ValOf, 4026 Var("badaddr", 4027 OTy F64))])), 4028 qVar"s"),qVar"s"), 4029 TP[Apply 4030 (Const 4031 ("MCSR", 4032 ATy(qTy, 4033 CTy"MachineCSR")), 4034 qVar"s0"),qVar"s0"]), 4035 Apply 4036 (Call 4037 ("write'PC",ATy(qTy,qTy), 4038 Bop(Add, 4039 Dest 4040 ("mtvec",F64, 4041 Var("v0", 4042 CTy"MachineCSR")), 4043 Bop(Mul, 4044 Mop(Cast F64, 4045 Call 4046 ("privLevel", 4047 FTy 2, 4048 Apply 4049 (Call 4050 ("curPrivilege", 4051 ATy(qTy, 4052 CTy"Privilege"), 4053 LU), 4054 qVar"state"))), 4055 LW(64,64)))), 4056 qVar"s")))))))])))))) 4057; 4058val CSR_def = Def 4059 ("CSR",Var("n",FTy 12), 4060 Close 4061 (qVar"state", 4062 Apply 4063 (Call("CSRMap",ATy(qTy,PTy(F64,qTy)),Var("n",FTy 12)),qVar"state"))) 4064; 4065val write'CSR_def = Def 4066 ("write'CSR",TP[Var("value",F64),Var("n",FTy 12)], 4067 Close 4068 (qVar"state", 4069 Apply 4070 (Call 4071 ("write'CSRMap",ATy(qTy,qTy), 4072 TP[Var("value",F64),Var("n",FTy 12)]),qVar"state"))) 4073; 4074val writeCSR_def = Def 4075 ("writeCSR",TP[Var("csr",FTy 12),Var("val",F64)], 4076 Close 4077 (qVar"state", 4078 Let(TP[Var("v",CTy"StateDelta"),qVar"s"], 4079 Let(qVar"s", 4080 Apply 4081 (Call 4082 ("write'CSR",ATy(qTy,qTy), 4083 TP[Var("val",F64),Var("csr",FTy 12)]),qVar"state"), 4084 TP[Apply(Const("Delta",ATy(qTy,CTy"StateDelta")),qVar"s"), 4085 qVar"s"]), 4086 Let(TP[Var("v",CTy"StateDelta"),qVar"s"], 4087 Let(qVar"s0", 4088 Apply 4089 (Call 4090 ("write'Delta",ATy(qTy,qTy), 4091 Rupd 4092 ("addr", 4093 TP[Var("v",CTy"StateDelta"), 4094 Mop(Some,Mop(Cast F64,Var("csr",FTy 12)))])), 4095 qVar"s"), 4096 TP[Apply 4097 (Const("Delta",ATy(qTy,CTy"StateDelta")),qVar"s0"), 4098 qVar"s0"]), 4099 Let(TP[Var("v0",F64),qVar"s"], 4100 Apply 4101 (Call("CSR",ATy(qTy,PTy(F64,qTy)),Var("csr",FTy 12)), 4102 qVar"s"), 4103 Apply 4104 (Call 4105 ("write'Delta",ATy(qTy,qTy), 4106 Rupd 4107 ("data2", 4108 TP[Var("v",CTy"StateDelta"), 4109 Mop(Some,Var("v0",F64))])),qVar"s")))))) 4110; 4111val GPR_def = Def 4112 ("GPR",Var("n",FTy 5), 4113 Close 4114 (qVar"state", 4115 ITE(EQ(Var("n",FTy 5),LW(0,5)),LW(0,64), 4116 Apply(Call("gpr",ATy(qTy,F64),Var("n",FTy 5)),qVar"state")))) 4117; 4118val write'GPR_def = Def 4119 ("write'GPR",TP[Var("value",F64),Var("n",FTy 5)], 4120 Close 4121 (qVar"state", 4122 ITE(Mop(Not,EQ(Var("n",FTy 5),LW(0,5))), 4123 Apply 4124 (Call 4125 ("write'gpr",ATy(qTy,qTy), 4126 TP[Var("value",F64),Var("n",FTy 5)]),qVar"state"), 4127 qVar"state"))) 4128; 4129val FPRS_def = Def 4130 ("FPRS",Var("n",FTy 5), 4131 Close 4132 (qVar"state", 4133 EX(Apply(Call("fpr",ATy(qTy,F64),Var("n",FTy 5)),qVar"state"),LN 31, 4134 LN 0,F32))) 4135; 4136val write'FPRS_def = Def 4137 ("write'FPRS",TP[Var("value",F32),Var("n",FTy 5)], 4138 Close 4139 (qVar"state", 4140 Apply 4141 (Call 4142 ("write'fpr",ATy(qTy,qTy), 4143 TP[BFI(LN 31,LN 0,Var("value",F32), 4144 Apply 4145 (Call("fpr",ATy(qTy,F64),Var("n",FTy 5)),qVar"state")), 4146 Var("n",FTy 5)]),qVar"state"))) 4147; 4148val FPRD_def = Def 4149 ("FPRD",Var("n",FTy 5), 4150 Close 4151 (qVar"state", 4152 Apply(Call("fpr",ATy(qTy,F64),Var("n",FTy 5)),qVar"state"))) 4153; 4154val write'FPRD_def = Def 4155 ("write'FPRD",TP[Var("value",F64),Var("n",FTy 5)], 4156 Close 4157 (qVar"state", 4158 Apply 4159 (Call 4160 ("write'fpr",ATy(qTy,qTy),TP[Var("value",F64),Var("n",FTy 5)]), 4161 qVar"state"))) 4162; 4163val writeFPRS_def = Def 4164 ("writeFPRS",TP[Var("rd",FTy 5),Var("val",F32)], 4165 Close 4166 (qVar"state", 4167 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 4168 Let(qVar"s", 4169 Apply 4170 (Call 4171 ("write'FPRS",ATy(qTy,qTy), 4172 TP[Var("val",F32),Var("rd",FTy 5)]),qVar"state"), 4173 TP[Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s"), 4174 qVar"s"]), 4175 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 4176 Let(qVar"s0", 4177 Apply 4178 (Call 4179 ("write'MCSR",ATy(qTy,qTy), 4180 Rupd 4181 ("mstatus", 4182 TP[Var("v",CTy"MachineCSR"), 4183 Rupd 4184 ("MFS", 4185 TP[Dest 4186 ("mstatus",CTy"mstatus", 4187 Var("v",CTy"MachineCSR")), 4188 Call 4189 ("ext_status",FTy 2, 4190 LC("Dirty",CTy"ExtStatus"))])])), 4191 qVar"s"), 4192 TP[Apply 4193 (Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s0"), 4194 qVar"s0"]), 4195 Let(TP[Var("v",CTy"StateDelta"),qVar"s"], 4196 Let(qVar"s0", 4197 Apply 4198 (Call 4199 ("write'MCSR",ATy(qTy,qTy), 4200 Rupd 4201 ("mstatus", 4202 TP[Var("v",CTy"MachineCSR"), 4203 Rupd 4204 ("MSD", 4205 TP[Dest 4206 ("mstatus",CTy"mstatus", 4207 Var("v",CTy"MachineCSR")),LT])])), 4208 qVar"s"), 4209 TP[Apply 4210 (Const("Delta",ATy(qTy,CTy"StateDelta")), 4211 qVar"s0"),qVar"s0"]), 4212 Apply 4213 (Call 4214 ("write'Delta",ATy(qTy,qTy), 4215 Rupd 4216 ("data1", 4217 TP[Var("v",CTy"StateDelta"), 4218 Mop(Some,Mop(Cast F64,Var("val",F32)))])), 4219 qVar"s")))))) 4220; 4221val writeFPRD_def = Def 4222 ("writeFPRD",TP[Var("rd",FTy 5),Var("val",F64)], 4223 Close 4224 (qVar"state", 4225 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 4226 Let(qVar"s", 4227 Apply 4228 (Call 4229 ("write'FPRD",ATy(qTy,qTy), 4230 TP[Var("val",F64),Var("rd",FTy 5)]),qVar"state"), 4231 TP[Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s"), 4232 qVar"s"]), 4233 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 4234 Let(qVar"s0", 4235 Apply 4236 (Call 4237 ("write'MCSR",ATy(qTy,qTy), 4238 Rupd 4239 ("mstatus", 4240 TP[Var("v",CTy"MachineCSR"), 4241 Rupd 4242 ("MFS", 4243 TP[Dest 4244 ("mstatus",CTy"mstatus", 4245 Var("v",CTy"MachineCSR")), 4246 Call 4247 ("ext_status",FTy 2, 4248 LC("Dirty",CTy"ExtStatus"))])])), 4249 qVar"s"), 4250 TP[Apply 4251 (Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s0"), 4252 qVar"s0"]), 4253 Let(TP[Var("v",CTy"StateDelta"),qVar"s"], 4254 Let(qVar"s0", 4255 Apply 4256 (Call 4257 ("write'MCSR",ATy(qTy,qTy), 4258 Rupd 4259 ("mstatus", 4260 TP[Var("v",CTy"MachineCSR"), 4261 Rupd 4262 ("MSD", 4263 TP[Dest 4264 ("mstatus",CTy"mstatus", 4265 Var("v",CTy"MachineCSR")),LT])])), 4266 qVar"s"), 4267 TP[Apply 4268 (Const("Delta",ATy(qTy,CTy"StateDelta")), 4269 qVar"s0"),qVar"s0"]), 4270 Apply 4271 (Call 4272 ("write'Delta",ATy(qTy,qTy), 4273 Rupd 4274 ("data1", 4275 TP[Var("v",CTy"StateDelta"), 4276 Mop(Some,Var("val",F64))])),qVar"s")))))) 4277; 4278val MEM_def = Def 4279 ("MEM",Var("a",FTy 61), 4280 Close 4281 (qVar"state", 4282 Let(Var("b",F64),Bop(Lsl,Mop(Cast F64,Var("a",FTy 61)),LN 3), 4283 CC[Apply 4284 (Dest("MEM8",ATy(F64,F8),qVar"state"), 4285 Bop(Add,Var("b",F64),LW(7,64))), 4286 Apply 4287 (Dest("MEM8",ATy(F64,F8),qVar"state"), 4288 Bop(Add,Var("b",F64),LW(6,64))), 4289 Apply 4290 (Dest("MEM8",ATy(F64,F8),qVar"state"), 4291 Bop(Add,Var("b",F64),LW(5,64))), 4292 Apply 4293 (Dest("MEM8",ATy(F64,F8),qVar"state"), 4294 Bop(Add,Var("b",F64),LW(4,64))), 4295 Apply 4296 (Dest("MEM8",ATy(F64,F8),qVar"state"), 4297 Bop(Add,Var("b",F64),LW(3,64))), 4298 Apply 4299 (Dest("MEM8",ATy(F64,F8),qVar"state"), 4300 Bop(Add,Var("b",F64),LW(2,64))), 4301 Apply 4302 (Dest("MEM8",ATy(F64,F8),qVar"state"), 4303 Bop(Add,Var("b",F64),LW(1,64))), 4304 Apply(Dest("MEM8",ATy(F64,F8),qVar"state"),Var("b",F64))]))) 4305; 4306val write'MEM_def = Def 4307 ("write'MEM",TP[Var("val",F64),Var("a",FTy 61)], 4308 Close 4309 (qVar"state", 4310 Let(Var("b",F64),Bop(Lsl,Mop(Cast F64,Var("a",FTy 61)),LN 3), 4311 Let(qVar"s", 4312 Rupd 4313 ("MEM8", 4314 TP[qVar"state", 4315 Fupd 4316 (Dest("MEM8",ATy(F64,F8),qVar"state"), 4317 Bop(Add,Var("b",F64),LW(7,64)), 4318 EX(Var("val",F64),LN 63,LN 56,F8))]), 4319 Let(qVar"s", 4320 Rupd 4321 ("MEM8", 4322 TP[qVar"s", 4323 Fupd 4324 (Dest("MEM8",ATy(F64,F8),qVar"s"), 4325 Bop(Add,Var("b",F64),LW(6,64)), 4326 EX(Var("val",F64),LN 55,LN 48,F8))]), 4327 Let(qVar"s", 4328 Rupd 4329 ("MEM8", 4330 TP[qVar"s", 4331 Fupd 4332 (Dest("MEM8",ATy(F64,F8),qVar"s"), 4333 Bop(Add,Var("b",F64),LW(5,64)), 4334 EX(Var("val",F64),LN 47,LN 40,F8))]), 4335 Let(qVar"s", 4336 Rupd 4337 ("MEM8", 4338 TP[qVar"s", 4339 Fupd 4340 (Dest("MEM8",ATy(F64,F8),qVar"s"), 4341 Bop(Add,Var("b",F64),LW(4,64)), 4342 EX(Var("val",F64),LN 39,LN 32,F8))]), 4343 Let(qVar"s", 4344 Rupd 4345 ("MEM8", 4346 TP[qVar"s", 4347 Fupd 4348 (Dest("MEM8",ATy(F64,F8),qVar"s"), 4349 Bop(Add,Var("b",F64),LW(3,64)), 4350 EX(Var("val",F64),LN 31,LN 24,F8))]), 4351 Let(qVar"s", 4352 Rupd 4353 ("MEM8", 4354 TP[qVar"s", 4355 Fupd 4356 (Dest 4357 ("MEM8",ATy(F64,F8),qVar"s"), 4358 Bop(Add,Var("b",F64),LW(2,64)), 4359 EX(Var("val",F64),LN 23,LN 16, 4360 F8))]), 4361 Let(qVar"s", 4362 Rupd 4363 ("MEM8", 4364 TP[qVar"s", 4365 Fupd 4366 (Dest 4367 ("MEM8",ATy(F64,F8), 4368 qVar"s"), 4369 Bop(Add,Var("b",F64), 4370 LW(1,64)), 4371 EX(Var("val",F64),LN 15, 4372 LN 8,F8))]), 4373 Rupd 4374 ("MEM8", 4375 TP[qVar"s", 4376 Fupd 4377 (Dest 4378 ("MEM8",ATy(F64,F8), 4379 qVar"s"),Var("b",F64), 4380 EX(Var("val",F64),LN 7, 4381 LN 0,F8))]))))))))))) 4382; 4383val rawReadData_def = Def 4384 ("rawReadData",Var("pAddr",F64), 4385 Close 4386 (qVar"state", 4387 Let(Var("pAddrIdx",FTy 61),EX(Var("pAddr",F64),LN 63,LN 3,FTy 61), 4388 Let(nVar"align", 4389 Mop(Cast nTy,EX(Var("pAddr",F64),LN 2,LN 0,FTy 3)), 4390 ITE(EQ(nVar"align",LN 0), 4391 Apply 4392 (Call("MEM",ATy(qTy,F64),Var("pAddrIdx",FTy 61)), 4393 qVar"state"), 4394 EX(Bop(Asr, 4395 CC[Apply 4396 (Call 4397 ("MEM",ATy(qTy,F64), 4398 Bop(Add,Var("pAddrIdx",FTy 61),LW(1,61))), 4399 qVar"state"), 4400 Apply 4401 (Call 4402 ("MEM",ATy(qTy,F64), 4403 Var("pAddrIdx",FTy 61)),qVar"state")], 4404 Bop(Mul,nVar"align",LN 8)),LN 63,LN 0,F64)))))) 4405; 4406val rawWriteData_def = Def 4407 ("rawWriteData",TP[Var("pAddr",F64),Var("data",F64),nVar"nbytes"], 4408 Close 4409 (qVar"state", 4410 Let(Var("mask",F64), 4411 Bop(Sub, 4412 Bop(Lsl,Mop(Cast F64,LW(1,1)),Bop(Mul,nVar"nbytes",LN 8)), 4413 LW(1,64)), 4414 Let(Var("pAddrIdx",FTy 61), 4415 EX(Var("pAddr",F64),LN 63,LN 3,FTy 61), 4416 Let(nVar"align", 4417 Mop(Cast nTy,EX(Var("pAddr",F64),LN 2,LN 0,FTy 3)), 4418 Let(Var("v",F64), 4419 Apply 4420 (Call("MEM",ATy(qTy,F64),Var("pAddrIdx",FTy 61)), 4421 qVar"state"), 4422 ITB([(EQ(nVar"align",LN 0), 4423 Apply 4424 (Call 4425 ("write'MEM",ATy(qTy,qTy), 4426 TP[Bop(BOr, 4427 Bop(BAnd,Var("v",F64), 4428 Mop(BNot,Var("mask",F64))), 4429 Bop(BAnd,Var("data",F64), 4430 Var("mask",F64))), 4431 Var("pAddrIdx",FTy 61)]),qVar"state")), 4432 (Bop(Le,Bop(Add,nVar"align",nVar"nbytes"), 4433 Bop(Div,Mop(Size,Var("mask",F64)),LN 8)), 4434 Apply 4435 (Call 4436 ("write'MEM",ATy(qTy,qTy), 4437 TP[Bop(BOr, 4438 Bop(BAnd,Var("v",F64), 4439 Mop(BNot, 4440 Bop(Lsl,Var("mask",F64), 4441 Bop(Mul,nVar"align", 4442 LN 8)))), 4443 Bop(Lsl, 4444 Bop(BAnd,Var("data",F64), 4445 Var("mask",F64)), 4446 Bop(Mul,nVar"align",LN 8))), 4447 Var("pAddrIdx",FTy 61)]),qVar"state"))], 4448 Let(Var("dw_mask",FTy 128), 4449 Bop(Lsl,Mop(Cast(FTy 128),Var("mask",F64)), 4450 Bop(Mul,nVar"align",LN 8)), 4451 Let(Var("dw_new",FTy 128), 4452 Bop(BOr, 4453 Bop(BAnd, 4454 CC[Apply 4455 (Call 4456 ("MEM",ATy(qTy,F64), 4457 Bop(Add, 4458 Var("pAddrIdx", 4459 FTy 61), 4460 LW(1,61))), 4461 qVar"state"),Var("v",F64)], 4462 Mop(BNot,Var("dw_mask",FTy 128))), 4463 Bop(BAnd, 4464 Bop(Lsl, 4465 Mop(Cast(FTy 128), 4466 Var("data",F64)), 4467 Bop(Mul,nVar"align",LN 8)), 4468 Var("dw_mask",FTy 128))), 4469 Apply 4470 (Call 4471 ("write'MEM",ATy(qTy,qTy), 4472 TP[EX(Var("dw_new",FTy 128), 4473 Bop(Sub, 4474 Mop(Size,Var("data",F64)), 4475 LN 1),LN 0,F64), 4476 Var("pAddrIdx",FTy 61)]), 4477 Apply 4478 (Call 4479 ("write'MEM",ATy(qTy,qTy), 4480 TP[EX(Var("dw_new",FTy 128), 4481 Bop(Sub, 4482 Bop(Mul,LN 2, 4483 Mop(Size, 4484 Var("data", 4485 F64))), 4486 LN 1), 4487 Mop(Size,Var("data",F64)), 4488 F64), 4489 Bop(Add, 4490 Var("pAddrIdx",FTy 61), 4491 LW(1,61))]),qVar"state"))))))))))) 4492; 4493val rawReadInst_def = Def 4494 ("rawReadInst",Var("pAddr",F64), 4495 Close 4496 (qVar"state", 4497 Let(Var("v",F64), 4498 Apply 4499 (Call 4500 ("MEM",ATy(qTy,F64),EX(Var("pAddr",F64),LN 63,LN 3,FTy 61)), 4501 qVar"state"), 4502 ITE(Bop(Bit,Var("pAddr",F64),LN 2), 4503 EX(Var("v",F64),LN 63,LN 32,F32), 4504 EX(Var("v",F64),LN 31,LN 0,F32))))) 4505; 4506val rawWriteMem_def = Def 4507 ("rawWriteMem",TP[Var("pAddr",F64),Var("data",F64)], 4508 Close 4509 (qVar"state", 4510 Apply 4511 (Call 4512 ("write'MEM",ATy(qTy,qTy), 4513 TP[Var("data",F64),EX(Var("pAddr",F64),LN 63,LN 3,FTy 61)]), 4514 qVar"state"))) 4515; 4516val checkMemPermission_def = Def 4517 ("checkMemPermission", 4518 TP[Var("ft",CTy"fetchType"),Var("ac",CTy"accessType"), 4519 Var("priv",CTy"Privilege"),Var("perm",F4)], 4520 Close 4521 (qVar"state", 4522 CS(Var("perm",F4), 4523 [(LW(0,4), 4524 Apply 4525 (Call 4526 ("raise'exception",ATy(qTy,PTy(bTy,qTy)), 4527 Call 4528 ("INTERNAL_ERROR",CTy"exception", 4529 LS"Checking perm on Page-Table pointer!")),qVar"state")), 4530 (LW(1,4), 4531 Apply 4532 (Call 4533 ("raise'exception",ATy(qTy,PTy(bTy,qTy)), 4534 Call 4535 ("INTERNAL_ERROR",CTy"exception", 4536 LS"Checking perm on Page-Table pointer!")),qVar"state")), 4537 (LW(2,4), 4538 TP[ITE(EQ(Var("priv",CTy"Privilege"),LC("User",CTy"Privilege")), 4539 Mop(Not, 4540 EQ(Var("ac",CTy"accessType"), 4541 LC("Write",CTy"accessType"))), 4542 Bop(And, 4543 EQ(Var("ac",CTy"accessType"), 4544 LC("Read",CTy"accessType")), 4545 EQ(Var("ft",CTy"fetchType"), 4546 LC("Data",CTy"fetchType")))),qVar"state"]), 4547 (LW(3,4), 4548 TP[Bop(Or, 4549 EQ(Var("priv",CTy"Privilege"),LC("User",CTy"Privilege")), 4550 Mop(Not, 4551 EQ(Var("ft",CTy"fetchType"), 4552 LC("Instruction",CTy"fetchType")))),qVar"state"]), 4553 (LW(4,4), 4554 TP[Bop(And, 4555 EQ(Var("ac",CTy"accessType"),LC("Read",CTy"accessType")), 4556 EQ(Var("ft",CTy"fetchType"),LC("Data",CTy"fetchType"))), 4557 qVar"state"]), 4558 (LW(5,4), 4559 TP[Mop(Not, 4560 EQ(Var("ft",CTy"fetchType"), 4561 LC("Instruction",CTy"fetchType"))),qVar"state"]), 4562 (LW(6,4), 4563 TP[Mop(Not, 4564 EQ(Var("ac",CTy"accessType"),LC("Write",CTy"accessType"))), 4565 qVar"state"]),(LW(7,4),TP[LT,qVar"state"]), 4566 (LW(8,4), 4567 TP[Bop(And, 4568 Mop(Not, 4569 EQ(Var("priv",CTy"Privilege"), 4570 LC("User",CTy"Privilege"))), 4571 Bop(And, 4572 EQ(Var("ac",CTy"accessType"), 4573 LC("Read",CTy"accessType")), 4574 EQ(Var("ft",CTy"fetchType"), 4575 LC("Data",CTy"fetchType")))),qVar"state"]), 4576 (LW(9,4), 4577 TP[Bop(And, 4578 Mop(Not, 4579 EQ(Var("priv",CTy"Privilege"), 4580 LC("User",CTy"Privilege"))), 4581 Mop(Not, 4582 EQ(Var("ft",CTy"fetchType"), 4583 LC("Instruction",CTy"fetchType")))),qVar"state"]), 4584 (LW(10,4), 4585 TP[Bop(And, 4586 Mop(Not, 4587 EQ(Var("priv",CTy"Privilege"), 4588 LC("User",CTy"Privilege"))), 4589 Mop(Not, 4590 EQ(Var("ac",CTy"accessType"), 4591 LC("Write",CTy"accessType")))),qVar"state"]), 4592 (LW(11,4), 4593 TP[Mop(Not, 4594 EQ(Var("priv",CTy"Privilege"),LC("User",CTy"Privilege"))), 4595 qVar"state"]), 4596 (LW(12,4), 4597 TP[Bop(And, 4598 Mop(Not, 4599 EQ(Var("priv",CTy"Privilege"), 4600 LC("User",CTy"Privilege"))), 4601 Bop(And, 4602 EQ(Var("ac",CTy"accessType"), 4603 LC("Read",CTy"accessType")), 4604 EQ(Var("ft",CTy"fetchType"), 4605 LC("Data",CTy"fetchType")))),qVar"state"]), 4606 (LW(13,4), 4607 TP[Bop(And, 4608 Mop(Not, 4609 EQ(Var("priv",CTy"Privilege"), 4610 LC("User",CTy"Privilege"))), 4611 Mop(Not, 4612 EQ(Var("ft",CTy"fetchType"), 4613 LC("Instruction",CTy"fetchType")))),qVar"state"]), 4614 (LW(14,4), 4615 TP[Bop(And, 4616 Mop(Not, 4617 EQ(Var("priv",CTy"Privilege"), 4618 LC("User",CTy"Privilege"))), 4619 Mop(Not, 4620 EQ(Var("ac",CTy"accessType"), 4621 LC("Write",CTy"accessType")))),qVar"state"]), 4622 (LW(15,4), 4623 TP[Mop(Not, 4624 EQ(Var("priv",CTy"Privilege"),LC("User",CTy"Privilege"))), 4625 qVar"state"])]))) 4626; 4627val isGlobal_def = Def 4628 ("isGlobal",Var("perm",F4), 4629 EQ(EX(Var("perm",F4),LN 3,LN 2,FTy 2),LW(3,2))) 4630; 4631val rec'SV_PTE_def = Def 4632 ("rec'SV_PTE",Var("x",F64), 4633 Rec(CTy"SV_PTE", 4634 [Bop(Bit,Var("x",F64),LN 6),EX(Var("x",F64),LN 47,LN 10,FTy 38), 4635 Bop(Bit,Var("x",F64),LN 5),EX(Var("x",F64),LN 9,LN 7,FTy 3), 4636 EX(Var("x",F64),LN 4,LN 1,F4),Bop(Bit,Var("x",F64),LN 0), 4637 EX(Var("x",F64),LN 63,LN 48,F16)])) 4638; 4639val reg'SV_PTE_def = Def 4640 ("reg'SV_PTE",Var("x",CTy"SV_PTE"), 4641 CS(Var("x",CTy"SV_PTE"), 4642 [(Rec(CTy"SV_PTE", 4643 [bVar"PTE_D",Var("PTE_PPNi",FTy 38),bVar"PTE_R", 4644 Var("PTE_SW",FTy 3),Var("PTE_T",F4),bVar"PTE_V", 4645 Var("sv_pte'rst",F16)]), 4646 CC[Var("sv_pte'rst",F16),Var("PTE_PPNi",FTy 38), 4647 Var("PTE_SW",FTy 3),Mop(Cast F1,bVar"PTE_D"), 4648 Mop(Cast F1,bVar"PTE_R"),Var("PTE_T",F4), 4649 Mop(Cast F1,bVar"PTE_V")])])) 4650; 4651val write'rec'SV_PTE_def = Def 4652 ("write'rec'SV_PTE",TP[AVar F64,Var("x",CTy"SV_PTE")], 4653 Call("reg'SV_PTE",F64,Var("x",CTy"SV_PTE"))) 4654; 4655val write'reg'SV_PTE_def = Def 4656 ("write'reg'SV_PTE",TP[AVar(CTy"SV_PTE"),Var("x",F64)], 4657 Call("rec'SV_PTE",CTy"SV_PTE",Var("x",F64))) 4658; 4659val rec'SV_Vaddr_def = Def 4660 ("rec'SV_Vaddr",Var("x",F64), 4661 Rec(CTy"SV_Vaddr", 4662 [EX(Var("x",F64),LN 11,LN 0,FTy 12), 4663 EX(Var("x",F64),LN 47,LN 12,FTy 36), 4664 EX(Var("x",F64),LN 63,LN 48,F16)])) 4665; 4666val reg'SV_Vaddr_def = Def 4667 ("reg'SV_Vaddr",Var("x",CTy"SV_Vaddr"), 4668 CS(Var("x",CTy"SV_Vaddr"), 4669 [(Rec(CTy"SV_Vaddr", 4670 [Var("Sv_PgOfs",FTy 12),Var("Sv_VPNi",FTy 36), 4671 Var("sv_vaddr'rst",F16)]), 4672 CC[Var("sv_vaddr'rst",F16),Var("Sv_VPNi",FTy 36), 4673 Var("Sv_PgOfs",FTy 12)])])) 4674; 4675val write'rec'SV_Vaddr_def = Def 4676 ("write'rec'SV_Vaddr",TP[AVar F64,Var("x",CTy"SV_Vaddr")], 4677 Call("reg'SV_Vaddr",F64,Var("x",CTy"SV_Vaddr"))) 4678; 4679val write'reg'SV_Vaddr_def = Def 4680 ("write'reg'SV_Vaddr",TP[AVar(CTy"SV_Vaddr"),Var("x",F64)], 4681 Call("rec'SV_Vaddr",CTy"SV_Vaddr",Var("x",F64))) 4682; 4683val walk64_def = tDef 4684 ("walk64", 4685 TP[Var("vAddr",F64),Var("ft",CTy"fetchType"),Var("ac",CTy"accessType"), 4686 Var("priv",CTy"Privilege"),Var("ptb",F64),nVar"level"], 4687 Close 4688 (qVar"state", 4689 Let(Var("va",CTy"SV_Vaddr"), 4690 Call("rec'SV_Vaddr",CTy"SV_Vaddr",Var("vAddr",F64)), 4691 Let(Var("pte_addr",F64), 4692 Bop(Add,Var("ptb",F64), 4693 Bop(Lsl, 4694 Mop(Cast F64, 4695 EX(Bop(Lsr, 4696 Dest 4697 ("Sv_VPNi",FTy 36, 4698 Var("va",CTy"SV_Vaddr")), 4699 Bop(Mul,nVar"level", 4700 Const("LEVEL_BITS",nTy))), 4701 Bop(Sub,Const("LEVEL_BITS",nTy),LN 1),LN 0, 4702 FTy 9)),LN 3)), 4703 Let(Var("v",CTy"SV_PTE"), 4704 Call 4705 ("rec'SV_PTE",CTy"SV_PTE", 4706 Apply 4707 (Call 4708 ("rawReadData",ATy(qTy,F64),Var("pte_addr",F64)), 4709 qVar"state")), 4710 ITB([(Mop(Not,Dest("PTE_V",bTy,Var("v",CTy"SV_PTE"))), 4711 TP[LO(PTy(F64, 4712 PTy(CTy"SV_PTE",PTy(nTy,PTy(bTy,F64))))), 4713 qVar"state"]), 4714 (Bop(Or, 4715 EQ(Dest("PTE_T",F4,Var("v",CTy"SV_PTE")), 4716 LW(0,4)), 4717 EQ(Dest("PTE_T",F4,Var("v",CTy"SV_PTE")), 4718 LW(1,4))), 4719 ITE(EQ(nVar"level",LN 0), 4720 TP[LO(PTy(F64, 4721 PTy(CTy"SV_PTE", 4722 PTy(nTy,PTy(bTy,F64))))), 4723 qVar"state"], 4724 Apply 4725 (Call 4726 ("walk64", 4727 ATy(qTy, 4728 PTy(OTy(PTy(F64, 4729 PTy(CTy"SV_PTE", 4730 PTy(nTy,PTy(bTy,F64))))), 4731 qTy)), 4732 TP[Var("vAddr",F64), 4733 Var("ft",CTy"fetchType"), 4734 Var("ac",CTy"accessType"), 4735 Var("priv",CTy"Privilege"), 4736 Mop(Cast F64, 4737 Bop(Lsl, 4738 Dest 4739 ("PTE_PPNi",FTy 38, 4740 Var("v",CTy"SV_PTE")), 4741 Const("PAGESIZE_BITS",nTy))), 4742 Bop(Sub,nVar"level",LN 1)]), 4743 qVar"state")))], 4744 Let(TP[bVar"v0",qVar"s"], 4745 Apply 4746 (Call 4747 ("checkMemPermission", 4748 ATy(qTy,PTy(bTy,qTy)), 4749 TP[Var("ft",CTy"fetchType"), 4750 Var("ac",CTy"accessType"), 4751 Var("priv",CTy"Privilege"), 4752 Dest("PTE_T",F4,Var("v",CTy"SV_PTE"))]), 4753 qVar"state"), 4754 ITE(Mop(Not,bVar"v0"), 4755 TP[LO(PTy(F64, 4756 PTy(CTy"SV_PTE", 4757 PTy(nTy,PTy(bTy,F64))))), 4758 qVar"s"], 4759 Let(TP[Var("r", 4760 OTy(PTy(F64, 4761 PTy(CTy"SV_PTE", 4762 PTy(nTy,PTy(bTy,F64)))))), 4763 Var("s1",PTy(CTy"SV_PTE",qTy))], 4764 Let(Var("s0",CTy"SV_PTE"), 4765 Rupd 4766 ("PTE_R", 4767 TP[Var("v",CTy"SV_PTE"),LT]), 4768 Let(Var("s0",CTy"SV_PTE"), 4769 ITE(EQ(Var("ac",CTy"accessType"), 4770 LC("Write", 4771 CTy"accessType")), 4772 Rupd 4773 ("PTE_D", 4774 TP[Var("s0",CTy"SV_PTE"), 4775 LT]), 4776 Var("s0",CTy"SV_PTE")), 4777 TP[Mop(Some, 4778 TP[Mop(Cast F64, 4779 CC[ITE(Bop(Gt, 4780 nVar"level", 4781 LN 0), 4782 Bop(BOr, 4783 Mop(Cast 4784 (FTy 38), 4785 Bop(Lsl, 4786 Bop(Lsr, 4787 Dest 4788 ("PTE_PPNi", 4789 FTy 38, 4790 Var("v", 4791 CTy"SV_PTE")), 4792 Bop(Mul, 4793 nVar"level", 4794 Const 4795 ("LEVEL_BITS", 4796 nTy))), 4797 Bop(Mul, 4798 nVar"level", 4799 Const 4800 ("LEVEL_BITS", 4801 nTy)))), 4802 Mop(Cast 4803 (FTy 38), 4804 Bop(BAnd, 4805 Dest 4806 ("Sv_VPNi", 4807 FTy 36, 4808 Var("va", 4809 CTy"SV_Vaddr")), 4810 Bop(Sub, 4811 Bop(Lsl, 4812 LW(1, 4813 36), 4814 Bop(Mul, 4815 nVar"level", 4816 Const 4817 ("LEVEL_BITS", 4818 nTy))), 4819 LW(1, 4820 36))))), 4821 Dest 4822 ("PTE_PPNi", 4823 FTy 38, 4824 Var("v", 4825 CTy"SV_PTE"))), 4826 Dest 4827 ("Sv_PgOfs", 4828 FTy 12, 4829 Var("va", 4830 CTy"SV_Vaddr"))]), 4831 Var("s0",CTy"SV_PTE"), 4832 nVar"level", 4833 Call 4834 ("isGlobal",bTy, 4835 Dest 4836 ("PTE_T",F4, 4837 Var("v", 4838 CTy"SV_PTE"))), 4839 Var("pte_addr",F64)]), 4840 Var("s0",CTy"SV_PTE"), 4841 ITE(Bop(Or, 4842 Mop(Not, 4843 EQ(Dest 4844 ("PTE_R", 4845 bTy, 4846 Var("v", 4847 CTy"SV_PTE")), 4848 Dest 4849 ("PTE_R", 4850 bTy, 4851 Var("s0", 4852 CTy"SV_PTE")))), 4853 Mop(Not, 4854 EQ(Dest 4855 ("PTE_D", 4856 bTy, 4857 Var("v", 4858 CTy"SV_PTE")), 4859 Dest 4860 ("PTE_D", 4861 bTy, 4862 Var("s0", 4863 CTy"SV_PTE"))))), 4864 Apply 4865 (Call 4866 ("rawWriteData", 4867 ATy(qTy,qTy), 4868 TP[Var("pte_addr", 4869 F64), 4870 Call 4871 ("reg'SV_PTE", 4872 F64, 4873 Var("s0", 4874 CTy"SV_PTE")), 4875 LN 8]),qVar"s"), 4876 qVar"s")])), 4877 TP[Var("r", 4878 OTy(PTy(F64, 4879 PTy(CTy"SV_PTE", 4880 PTy(nTy,PTy(bTy,F64)))))), 4881 Mop(Snd, 4882 Var("s1",PTy(CTy"SV_PTE",qTy)))])))))))), 4883 Close 4884 (Var("x", 4885 PTy(PTy(F64, 4886 PTy(CTy"fetchType", 4887 PTy(CTy"accessType",PTy(CTy"Privilege",PTy(F64,nTy))))), 4888 qTy)), 4889 CS(Var("x", 4890 PTy(PTy(F64, 4891 PTy(CTy"fetchType", 4892 PTy(CTy"accessType", 4893 PTy(CTy"Privilege",PTy(F64,nTy))))),qTy)), 4894 [(TP[TP[Var("vAddr",F64),Var("ft",CTy"fetchType"), 4895 Var("ac",CTy"accessType"),Var("priv",CTy"Privilege"), 4896 Var("ptb",F64),nVar"level"],AVar qTy],nVar"level")])), 4897 NO_TAC) 4898; 4899val curASID_def = Def 4900 ("curASID",AVar uTy, 4901 Close 4902 (qVar"state", 4903 EX(Dest 4904 ("sasid",F64, 4905 Apply(Const("SCSR",ATy(qTy,CTy"SupervisorCSR")),qVar"state")), 4906 Bop(Sub,Const("ASID_SIZE",nTy),LN 1),LN 0,FTy 6))) 4907; 4908val mkTLBEntry_def = Def 4909 ("mkTLBEntry", 4910 TP[Var("asid",FTy 6),bVar"global",Var("vAddr",F64),Var("pAddr",F64), 4911 Var("pte",CTy"SV_PTE"),nVar"i",Var("pteAddr",F64)], 4912 Close 4913 (qVar"state", 4914 Let(Var("s0",CTy"TLBEntry"), 4915 Rupd 4916 ("vAddrMask", 4917 TP[Rupd 4918 ("pteAddr", 4919 TP[Rupd 4920 ("pte", 4921 TP[Rupd 4922 ("global", 4923 TP[Rupd 4924 ("asid", 4925 TP[LX(CTy"TLBEntry"), 4926 Var("asid",FTy 6)]),bVar"global"]), 4927 Var("pte",CTy"SV_PTE")]),Var("pteAddr",F64)]), 4928 Bop(Sub, 4929 Bop(Lsl,LW(1,64), 4930 Bop(Add,Bop(Mul,Const("LEVEL_BITS",nTy),nVar"i"), 4931 Const("PAGESIZE_BITS",nTy))),LW(1,64))]), 4932 Let(Var("s0",CTy"TLBEntry"), 4933 Rupd 4934 ("vMatchMask", 4935 TP[Var("s0",CTy"TLBEntry"), 4936 Bop(BXor,Mop(SE F64,LW(1,1)), 4937 Dest("vAddrMask",F64,Var("s0",CTy"TLBEntry")))]), 4938 Rupd 4939 ("age", 4940 TP[Rupd 4941 ("pAddr", 4942 TP[Rupd 4943 ("vAddr", 4944 TP[Var("s0",CTy"TLBEntry"), 4945 Bop(BAnd,Var("vAddr",F64), 4946 Dest 4947 ("vMatchMask",F64, 4948 Var("s0",CTy"TLBEntry")))]), 4949 Bop(Lsl, 4950 Bop(Asr,Var("pAddr",F64), 4951 Bop(Add,Const("PAGESIZE_BITS",nTy), 4952 Bop(Mul,Const("LEVEL_BITS",nTy), 4953 nVar"i"))), 4954 Bop(Add,Const("PAGESIZE_BITS",nTy), 4955 Bop(Mul,Const("LEVEL_BITS",nTy),nVar"i")))]), 4956 Apply 4957 (Dest("c_cycles",ATy(F8,F64),qVar"state"), 4958 Dest("procID",F8,qVar"state"))]))))) 4959; 4960val TLBEntries_def = Def0 ("TLBEntries",LN 16) 4961; 4962val lookupTLB_def = Def 4963 ("lookupTLB", 4964 TP[Var("asid",FTy 6),Var("vAddr",F64), 4965 Var("tlb",ATy(F4,OTy(CTy"TLBEntry")))], 4966 Mop(Fst, 4967 Mop(Snd, 4968 Apply 4969 (For(TP[LN 0,Bop(Sub,Const("TLBEntries",nTy),LN 1), 4970 Close 4971 (nVar"i", 4972 Close 4973 (Var("state",PTy(OTy(PTy(CTy"TLBEntry",F4)),uTy)), 4974 CS(Apply 4975 (Var("tlb",ATy(F4,OTy(CTy"TLBEntry"))), 4976 Mop(Cast F4,nVar"i")), 4977 [(Mop(Some,Var("e",CTy"TLBEntry")), 4978 TP[LU, 4979 ITE(Bop(And, 4980 EQ(Mop(Fst, 4981 Var("state", 4982 PTy(OTy(PTy(CTy"TLBEntry", 4983 F4)),uTy))), 4984 LO(PTy(CTy"TLBEntry",F4))), 4985 Bop(And, 4986 Bop(Or, 4987 Dest 4988 ("global",bTy, 4989 Var("e", 4990 CTy"TLBEntry")), 4991 EQ(Dest 4992 ("asid",FTy 6, 4993 Var("e", 4994 CTy"TLBEntry")), 4995 Var("asid",FTy 6))), 4996 EQ(Dest 4997 ("vAddr",F64, 4998 Var("e",CTy"TLBEntry")), 4999 Bop(BAnd, 5000 Var("vAddr",F64), 5001 Dest 5002 ("vMatchMask",F64, 5003 Var("e", 5004 CTy"TLBEntry")))))), 5005 TP[Mop(Some, 5006 TP[Var("e",CTy"TLBEntry"), 5007 Mop(Cast F4,nVar"i")]),LU], 5008 Var("state", 5009 PTy(OTy(PTy(CTy"TLBEntry",F4)), 5010 uTy)))]), 5011 (LO(CTy"TLBEntry"), 5012 TP[LU, 5013 Var("state", 5014 PTy(OTy(PTy(CTy"TLBEntry",F4)),uTy))])])))]), 5015 TP[LO(PTy(CTy"TLBEntry",F4)),LU])))) 5016; 5017val addToTLB_def = Def 5018 ("addToTLB", 5019 TP[Var("asid",FTy 6),Var("vAddr",F64),Var("pAddr",F64), 5020 Var("pte",CTy"SV_PTE"),Var("pteAddr",F64),nVar"i",bVar"global", 5021 Var("curTLB",ATy(F4,OTy(CTy"TLBEntry")))], 5022 Close 5023 (qVar"state", 5024 Let(Var("s", 5025 PTy(bTy, 5026 PTy(nTy, 5027 PTy(F64, 5028 PTy(ATy(F4,OTy(CTy"TLBEntry")), 5029 PTy(CTy"TLBEntry",qTy)))))), 5030 Mop(Snd, 5031 Apply 5032 (For(TP[LN 0,Bop(Sub,Const("TLBEntries",nTy),LN 1), 5033 Close 5034 (nVar"i", 5035 Close 5036 (Var("state", 5037 PTy(bTy, 5038 PTy(nTy, 5039 PTy(F64, 5040 PTy(ATy(F4, 5041 OTy(CTy"TLBEntry")), 5042 PTy(CTy"TLBEntry",qTy)))))), 5043 CS(Apply 5044 (Mop(Fst, 5045 Mop(Snd, 5046 Mop(Snd, 5047 Mop(Snd, 5048 Var("state", 5049 PTy(bTy, 5050 PTy(nTy, 5051 PTy(F64, 5052 PTy(ATy(F4, 5053 OTy(CTy"TLBEntry")), 5054 PTy(CTy"TLBEntry", 5055 qTy)))))))))), 5056 Mop(Cast F4,nVar"i")), 5057 [(Mop(Some,Var("e",CTy"TLBEntry")), 5058 ITE(Bop(Ult, 5059 Dest 5060 ("age",F64, 5061 Var("e",CTy"TLBEntry")), 5062 Mop(Fst, 5063 Mop(Snd, 5064 Mop(Snd, 5065 Var("state", 5066 PTy(bTy, 5067 PTy(nTy, 5068 PTy(F64, 5069 PTy(ATy(F4, 5070 OTy(CTy"TLBEntry")), 5071 PTy(CTy"TLBEntry", 5072 qTy)))))))))), 5073 Let(Var("s", 5074 PTy(bTy, 5075 PTy(nTy, 5076 PTy(F64, 5077 PTy(ATy(F4, 5078 OTy(CTy"TLBEntry")), 5079 PTy(CTy"TLBEntry", 5080 qTy)))))), 5081 TP[Mop(Fst, 5082 Var("state", 5083 PTy(bTy, 5084 PTy(nTy, 5085 PTy(F64, 5086 PTy(ATy(F4, 5087 OTy(CTy"TLBEntry")), 5088 PTy(CTy"TLBEntry", 5089 qTy))))))), 5090 Let(Var("s", 5091 PTy(nTy, 5092 PTy(F64, 5093 PTy(ATy(F4, 5094 OTy(CTy"TLBEntry")), 5095 PTy(CTy"TLBEntry", 5096 qTy))))), 5097 Mop(Snd, 5098 Var("state", 5099 PTy(bTy, 5100 PTy(nTy, 5101 PTy(F64, 5102 PTy(ATy(F4, 5103 OTy(CTy"TLBEntry")), 5104 PTy(CTy"TLBEntry", 5105 qTy))))))), 5106 TP[Mop(Fst, 5107 Var("s", 5108 PTy(nTy, 5109 PTy(F64, 5110 PTy(ATy(F4, 5111 OTy(CTy"TLBEntry")), 5112 PTy(CTy"TLBEntry", 5113 qTy)))))), 5114 Dest 5115 ("age",F64, 5116 Var("e", 5117 CTy"TLBEntry")), 5118 Mop(Snd, 5119 Mop(Snd, 5120 Var("s", 5121 PTy(nTy, 5122 PTy(F64, 5123 PTy(ATy(F4, 5124 OTy(CTy"TLBEntry")), 5125 PTy(CTy"TLBEntry", 5126 qTy)))))))])], 5127 TP[LU, 5128 Mop(Fst, 5129 Var("s", 5130 PTy(bTy, 5131 PTy(nTy, 5132 PTy(F64, 5133 PTy(ATy(F4, 5134 OTy(CTy"TLBEntry")), 5135 PTy(CTy"TLBEntry", 5136 qTy))))))), 5137 nVar"i", 5138 Mop(Snd, 5139 Mop(Snd, 5140 Var("s", 5141 PTy(bTy, 5142 PTy(nTy, 5143 PTy(F64, 5144 PTy(ATy(F4, 5145 OTy(CTy"TLBEntry")), 5146 PTy(CTy"TLBEntry", 5147 qTy))))))))]), 5148 TP[LU, 5149 Var("state", 5150 PTy(bTy, 5151 PTy(nTy, 5152 PTy(F64, 5153 PTy(ATy(F4, 5154 OTy(CTy"TLBEntry")), 5155 PTy(CTy"TLBEntry", 5156 qTy))))))])), 5157 (LO(CTy"TLBEntry"), 5158 TP[LU, 5159 ITE(Mop(Not, 5160 Mop(Fst, 5161 Var("state", 5162 PTy(bTy, 5163 PTy(nTy, 5164 PTy(F64, 5165 PTy(ATy(F4, 5166 OTy(CTy"TLBEntry")), 5167 PTy(CTy"TLBEntry", 5168 qTy)))))))), 5169 TP[LT, 5170 Let(Var("s0", 5171 PTy(nTy, 5172 PTy(F64, 5173 PTy(ATy(F4, 5174 OTy(CTy"TLBEntry")), 5175 PTy(CTy"TLBEntry", 5176 qTy))))), 5177 Mop(Snd, 5178 Var("state", 5179 PTy(bTy, 5180 PTy(nTy, 5181 PTy(F64, 5182 PTy(ATy(F4, 5183 OTy(CTy"TLBEntry")), 5184 PTy(CTy"TLBEntry", 5185 qTy))))))), 5186 TP[Mop(Fst, 5187 Var("s0", 5188 PTy(nTy, 5189 PTy(F64, 5190 PTy(ATy(F4, 5191 OTy(CTy"TLBEntry")), 5192 PTy(CTy"TLBEntry", 5193 qTy)))))), 5194 Let(Var("s0", 5195 PTy(F64, 5196 PTy(ATy(F4, 5197 OTy(CTy"TLBEntry")), 5198 PTy(CTy"TLBEntry", 5199 qTy)))), 5200 Mop(Snd, 5201 Var("s0", 5202 PTy(nTy, 5203 PTy(F64, 5204 PTy(ATy(F4, 5205 OTy(CTy"TLBEntry")), 5206 PTy(CTy"TLBEntry", 5207 qTy)))))), 5208 TP[Mop(Fst, 5209 Var("s0", 5210 PTy(F64, 5211 PTy(ATy(F4, 5212 OTy(CTy"TLBEntry")), 5213 PTy(CTy"TLBEntry", 5214 qTy))))), 5215 Fupd 5216 (Mop(Fst, 5217 Mop(Snd, 5218 Mop(Snd, 5219 Mop(Snd, 5220 Var("state", 5221 PTy(bTy, 5222 PTy(nTy, 5223 PTy(F64, 5224 PTy(ATy(F4, 5225 OTy(CTy"TLBEntry")), 5226 PTy(CTy"TLBEntry", 5227 qTy)))))))))), 5228 Mop(Cast F4, 5229 nVar"i"), 5230 Mop(Some, 5231 Mop(Fst, 5232 Mop(Snd, 5233 Mop(Snd, 5234 Mop(Snd, 5235 Mop(Snd, 5236 Var("state", 5237 PTy(bTy, 5238 PTy(nTy, 5239 PTy(F64, 5240 PTy(ATy(F4, 5241 OTy(CTy"TLBEntry")), 5242 PTy(CTy"TLBEntry", 5243 qTy))))))))))))), 5244 Mop(Snd, 5245 Mop(Snd, 5246 Var("s0", 5247 PTy(F64, 5248 PTy(ATy(F4, 5249 OTy(CTy"TLBEntry")), 5250 PTy(CTy"TLBEntry", 5251 qTy))))))])])], 5252 Var("state", 5253 PTy(bTy, 5254 PTy(nTy, 5255 PTy(F64, 5256 PTy(ATy(F4, 5257 OTy(CTy"TLBEntry")), 5258 PTy(CTy"TLBEntry", 5259 qTy)))))))])])))]), 5260 TP[LF,LN 0,Mop(SE F64,LW(1,1)), 5261 Var("curTLB",ATy(F4,OTy(CTy"TLBEntry"))), 5262 Apply 5263 (Call 5264 ("mkTLBEntry",ATy(qTy,CTy"TLBEntry"), 5265 TP[Var("asid",FTy 6),bVar"global", 5266 Var("vAddr",F64),Var("pAddr",F64), 5267 Var("pte",CTy"SV_PTE"),nVar"i", 5268 Var("pteAddr",F64)]),qVar"state"),qVar"state"])), 5269 ITE(Mop(Not, 5270 Mop(Fst, 5271 Var("s", 5272 PTy(bTy, 5273 PTy(nTy, 5274 PTy(F64, 5275 PTy(ATy(F4,OTy(CTy"TLBEntry")), 5276 PTy(CTy"TLBEntry",qTy)))))))), 5277 Fupd 5278 (Mop(Fst, 5279 Mop(Snd, 5280 Mop(Snd, 5281 Mop(Snd, 5282 Var("s", 5283 PTy(bTy, 5284 PTy(nTy, 5285 PTy(F64, 5286 PTy(ATy(F4, 5287 OTy(CTy"TLBEntry")), 5288 PTy(CTy"TLBEntry",qTy)))))))))), 5289 Mop(Cast F4, 5290 Mop(Fst, 5291 Mop(Snd, 5292 Var("s", 5293 PTy(bTy, 5294 PTy(nTy, 5295 PTy(F64, 5296 PTy(ATy(F4,OTy(CTy"TLBEntry")), 5297 PTy(CTy"TLBEntry",qTy))))))))), 5298 Mop(Some, 5299 Mop(Fst, 5300 Mop(Snd, 5301 Mop(Snd, 5302 Mop(Snd, 5303 Mop(Snd, 5304 Var("s", 5305 PTy(bTy, 5306 PTy(nTy, 5307 PTy(F64, 5308 PTy(ATy(F4, 5309 OTy(CTy"TLBEntry")), 5310 PTy(CTy"TLBEntry", 5311 qTy))))))))))))), 5312 Mop(Fst, 5313 Mop(Snd, 5314 Mop(Snd, 5315 Mop(Snd, 5316 Var("s", 5317 PTy(bTy, 5318 PTy(nTy, 5319 PTy(F64, 5320 PTy(ATy(F4, 5321 OTy(CTy"TLBEntry")), 5322 PTy(CTy"TLBEntry",qTy)))))))))))))) 5323; 5324val flushTLB_def = Def 5325 ("flushTLB", 5326 TP[Var("asid",FTy 6),Var("addr",OTy F64), 5327 Var("curTLB",ATy(F4,OTy(CTy"TLBEntry")))], 5328 Mop(Fst, 5329 Mop(Snd, 5330 Apply 5331 (For(TP[LN 0,Bop(Sub,Const("TLBEntries",nTy),LN 1), 5332 Close 5333 (nVar"i", 5334 Close 5335 (Var("state",PTy(ATy(F4,OTy(CTy"TLBEntry")),uTy)), 5336 CS(TP[Apply 5337 (Mop(Fst, 5338 Var("state", 5339 PTy(ATy(F4,OTy(CTy"TLBEntry")), 5340 uTy))), 5341 Mop(Cast F4,nVar"i")), 5342 Var("addr",OTy F64)], 5343 [(TP[Mop(Some,Var("e",CTy"TLBEntry")), 5344 Mop(Some,Var("va",F64))], 5345 TP[LU, 5346 ITE(Bop(And, 5347 Bop(Or, 5348 EQ(Var("asid",FTy 6), 5349 LW(0,6)), 5350 Bop(And, 5351 EQ(Var("asid",FTy 6), 5352 Dest 5353 ("asid",FTy 6, 5354 Var("e", 5355 CTy"TLBEntry"))), 5356 Mop(Not, 5357 Dest 5358 ("global",bTy, 5359 Var("e", 5360 CTy"TLBEntry"))))), 5361 EQ(Dest 5362 ("vAddr",F64, 5363 Var("e",CTy"TLBEntry")), 5364 Bop(BAnd,Var("va",F64), 5365 Dest 5366 ("vMatchMask",F64, 5367 Var("e",CTy"TLBEntry"))))), 5368 TP[Fupd 5369 (Mop(Fst, 5370 Var("state", 5371 PTy(ATy(F4, 5372 OTy(CTy"TLBEntry")), 5373 uTy))), 5374 Mop(Cast F4,nVar"i"), 5375 LO(CTy"TLBEntry")),LU], 5376 Var("state", 5377 PTy(ATy(F4,OTy(CTy"TLBEntry")), 5378 uTy)))]), 5379 (TP[Mop(Some,Var("e",CTy"TLBEntry")),LO F64], 5380 TP[LU, 5381 ITE(Bop(Or, 5382 EQ(Var("asid",FTy 6),LW(0,6)), 5383 Bop(And, 5384 EQ(Var("asid",FTy 6), 5385 Dest 5386 ("asid",FTy 6, 5387 Var("e",CTy"TLBEntry"))), 5388 Mop(Not, 5389 Dest 5390 ("global",bTy, 5391 Var("e", 5392 CTy"TLBEntry"))))), 5393 TP[Fupd 5394 (Mop(Fst, 5395 Var("state", 5396 PTy(ATy(F4, 5397 OTy(CTy"TLBEntry")), 5398 uTy))), 5399 Mop(Cast F4,nVar"i"), 5400 LO(CTy"TLBEntry")),LU], 5401 Var("state", 5402 PTy(ATy(F4,OTy(CTy"TLBEntry")), 5403 uTy)))]), 5404 (TP[LO(CTy"TLBEntry"),AVar(OTy F64)], 5405 TP[LU, 5406 Var("state", 5407 PTy(ATy(F4,OTy(CTy"TLBEntry")),uTy))])])))]), 5408 TP[Var("curTLB",ATy(F4,OTy(CTy"TLBEntry"))),LU])))) 5409; 5410val TLB_def = Def 5411 ("TLB",qVar"state", 5412 Apply 5413 (Dest("c_tlb",ATy(F8,ATy(F4,OTy(CTy"TLBEntry"))),qVar"state"), 5414 Dest("procID",F8,qVar"state"))) 5415; 5416val write'TLB_def = Def 5417 ("write'TLB",Var("value",ATy(F4,OTy(CTy"TLBEntry"))), 5418 Close 5419 (qVar"state", 5420 Rupd 5421 ("c_tlb", 5422 TP[qVar"state", 5423 Fupd 5424 (Dest 5425 ("c_tlb",ATy(F8,ATy(F4,OTy(CTy"TLBEntry"))),qVar"state"), 5426 Dest("procID",F8,qVar"state"), 5427 Var("value",ATy(F4,OTy(CTy"TLBEntry"))))]))) 5428; 5429val translate64_def = Def 5430 ("translate64", 5431 TP[Var("vAddr",F64),Var("ft",CTy"fetchType"),Var("ac",CTy"accessType"), 5432 Var("priv",CTy"Privilege"),nVar"level"], 5433 Close 5434 (qVar"state", 5435 Let(Var("v",FTy 6), 5436 Apply(Call("curASID",ATy(qTy,FTy 6),LU),qVar"state"), 5437 CS(Call 5438 ("lookupTLB",OTy(PTy(CTy"TLBEntry",F4)), 5439 TP[Var("v",FTy 6),Var("vAddr",F64), 5440 Apply 5441 (Const("TLB",ATy(qTy,ATy(F4,OTy(CTy"TLBEntry")))), 5442 qVar"state")]), 5443 [(Mop(Some,TP[Var("e",CTy"TLBEntry"),Var("idx",F4)]), 5444 Let(TP[bVar"v",qVar"s"], 5445 Apply 5446 (Call 5447 ("checkMemPermission",ATy(qTy,PTy(bTy,qTy)), 5448 TP[Var("ft",CTy"fetchType"), 5449 Var("ac",CTy"accessType"), 5450 Var("priv",CTy"Privilege"), 5451 Dest 5452 ("PTE_T",F4, 5453 Dest 5454 ("pte",CTy"SV_PTE",Var("e",CTy"TLBEntry")))]), 5455 qVar"state"), 5456 ITE(bVar"v", 5457 TP[Mop(Some, 5458 Bop(BOr, 5459 Dest("pAddr",F64,Var("e",CTy"TLBEntry")), 5460 Bop(BAnd,Var("vAddr",F64), 5461 Dest 5462 ("vAddrMask",F64, 5463 Var("e",CTy"TLBEntry"))))), 5464 ITE(Bop(And, 5465 EQ(Var("ac",CTy"accessType"), 5466 LC("Write",CTy"accessType")), 5467 Mop(Not, 5468 Dest 5469 ("PTE_D",bTy, 5470 Dest 5471 ("pte",CTy"SV_PTE", 5472 Var("e",CTy"TLBEntry"))))), 5473 Let(Var("s0",CTy"TLBEntry"), 5474 Rupd 5475 ("pte", 5476 TP[Var("e",CTy"TLBEntry"), 5477 Rupd 5478 ("PTE_D", 5479 TP[Dest 5480 ("pte",CTy"SV_PTE", 5481 Var("e",CTy"TLBEntry")), 5482 LT])]), 5483 Let(qVar"s1", 5484 Apply 5485 (Call 5486 ("rawWriteData",ATy(qTy,qTy), 5487 TP[Dest 5488 ("pteAddr",F64, 5489 Var("s0",CTy"TLBEntry")), 5490 Call 5491 ("reg'SV_PTE",F64, 5492 Dest 5493 ("pte",CTy"SV_PTE", 5494 Var("s0", 5495 CTy"TLBEntry"))), 5496 LN 8]),qVar"s"), 5497 Apply 5498 (Call 5499 ("write'TLB",ATy(qTy,qTy), 5500 Fupd 5501 (Apply 5502 (Const 5503 ("TLB", 5504 ATy(qTy, 5505 ATy(F4, 5506 OTy(CTy"TLBEntry")))), 5507 qVar"s1"),Var("idx",F4), 5508 Mop(Some, 5509 Var("s0",CTy"TLBEntry")))), 5510 qVar"s1"))),qVar"s")], 5511 TP[LO F64,qVar"s"]))), 5512 (LO(PTy(CTy"TLBEntry",F4)), 5513 Let(TP[Var("v0", 5514 OTy(PTy(F64, 5515 PTy(CTy"SV_PTE",PTy(nTy,PTy(bTy,F64)))))), 5516 qVar"s"], 5517 Apply 5518 (Call 5519 ("walk64", 5520 ATy(qTy, 5521 PTy(OTy(PTy(F64, 5522 PTy(CTy"SV_PTE", 5523 PTy(nTy,PTy(bTy,F64))))),qTy)), 5524 TP[Var("vAddr",F64),Var("ft",CTy"fetchType"), 5525 Var("ac",CTy"accessType"), 5526 Var("priv",CTy"Privilege"), 5527 Dest 5528 ("sptbr",F64, 5529 Apply 5530 (Const 5531 ("SCSR",ATy(qTy,CTy"SupervisorCSR")), 5532 qVar"state")),nVar"level"]),qVar"state"), 5533 CS(Var("v0", 5534 OTy(PTy(F64, 5535 PTy(CTy"SV_PTE",PTy(nTy,PTy(bTy,F64)))))), 5536 [(Mop(Some, 5537 TP[Var("pAddr",F64),Var("pte",CTy"SV_PTE"), 5538 nVar"i",bVar"global",Var("pteAddr",F64)]), 5539 TP[Mop(Some,Var("pAddr",F64)), 5540 Apply 5541 (Call 5542 ("write'TLB",ATy(qTy,qTy), 5543 Apply 5544 (Call 5545 ("addToTLB", 5546 ATy(qTy,ATy(F4,OTy(CTy"TLBEntry"))), 5547 TP[Var("v",FTy 6),Var("vAddr",F64), 5548 Var("pAddr",F64), 5549 Var("pte",CTy"SV_PTE"), 5550 Var("pteAddr",F64),nVar"i", 5551 bVar"global", 5552 Apply 5553 (Const 5554 ("TLB", 5555 ATy(qTy, 5556 ATy(F4, 5557 OTy(CTy"TLBEntry")))), 5558 qVar"s")]),qVar"s")),qVar"s")]), 5559 (LO(PTy(F64,PTy(CTy"SV_PTE",PTy(nTy,PTy(bTy,F64))))), 5560 TP[LO F64,qVar"s"])])))])))) 5561; 5562val translateAddr_def = Def 5563 ("translateAddr", 5564 TP[Var("vAddr",F64),Var("ft",CTy"fetchType"),Var("ac",CTy"accessType")], 5565 Close 5566 (qVar"state", 5567 Let(Var("v",CTy"Privilege"), 5568 Call 5569 ("privilege",CTy"Privilege", 5570 ITE(Bop(And, 5571 Dest 5572 ("MMPRV",bTy, 5573 Dest 5574 ("mstatus",CTy"mstatus", 5575 Apply 5576 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 5577 qVar"state"))), 5578 EQ(Var("ft",CTy"fetchType"),LC("Data",CTy"fetchType"))), 5579 Dest 5580 ("MPRV1",FTy 2, 5581 Dest 5582 ("mstatus",CTy"mstatus", 5583 Apply 5584 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 5585 qVar"state"))), 5586 Dest 5587 ("MPRV",FTy 2, 5588 Dest 5589 ("mstatus",CTy"mstatus", 5590 Apply 5591 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 5592 qVar"state"))))), 5593 Let(TP[Var("v0",PTy(CTy"VM_Mode",CTy"Privilege")),qVar"s"], 5594 Let(TP[Var("v0",CTy"VM_Mode"),qVar"s"], 5595 Apply 5596 (Call 5597 ("vmType",ATy(qTy,PTy(CTy"VM_Mode",qTy)), 5598 Dest 5599 ("VM",FTy 5, 5600 Dest 5601 ("mstatus",CTy"mstatus", 5602 Apply 5603 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 5604 qVar"state")))),qVar"state"), 5605 TP[TP[Var("v0",CTy"VM_Mode"),Var("v",CTy"Privilege")], 5606 qVar"s"]), 5607 CS(Var("v0",PTy(CTy"VM_Mode",CTy"Privilege")), 5608 [(TP[LC("Mbare",CTy"VM_Mode"),AVar(CTy"Privilege")], 5609 TP[Mop(Some,Var("vAddr",F64)),qVar"s"]), 5610 (TP[AVar(CTy"VM_Mode"),LC("Machine",CTy"Privilege")], 5611 TP[Mop(Some,Var("vAddr",F64)),qVar"s"]), 5612 (TP[LC("Sv39",CTy"VM_Mode"),AVar(CTy"Privilege")], 5613 Apply 5614 (Call 5615 ("translate64",ATy(qTy,PTy(OTy F64,qTy)), 5616 TP[Var("vAddr",F64),Var("ft",CTy"fetchType"), 5617 Var("ac",CTy"accessType"), 5618 Var("v",CTy"Privilege"),LN 2]),qVar"s")), 5619 (TP[LC("Sv48",CTy"VM_Mode"),AVar(CTy"Privilege")], 5620 Apply 5621 (Call 5622 ("translate64",ATy(qTy,PTy(OTy F64,qTy)), 5623 TP[Var("vAddr",F64),Var("ft",CTy"fetchType"), 5624 Var("ac",CTy"accessType"), 5625 Var("v",CTy"Privilege"),LN 3]),qVar"s")), 5626 (TP[AVar(CTy"VM_Mode"),AVar(CTy"Privilege")], 5627 TP[LO F64,qVar"s"])]))))) 5628; 5629val matchLoadReservation_def = Def 5630 ("matchLoadReservation",Var("vAddr",F64), 5631 Close 5632 (qVar"state", 5633 Bop(And, 5634 Mop(IsSome, 5635 Apply(Const("ReserveLoad",ATy(qTy,OTy F64)),qVar"state")), 5636 EQ(Mop(ValOf, 5637 Apply(Const("ReserveLoad",ATy(qTy,OTy F64)),qVar"state")), 5638 Var("vAddr",F64))))) 5639; 5640val branchTo_def = Def 5641 ("branchTo",Var("newPC",F64), 5642 Close 5643 (qVar"state", 5644 Apply 5645 (Call 5646 ("write'NextFetch",ATy(qTy,qTy), 5647 Mop(Some, 5648 Call("BranchTo",CTy"TransferControl",Var("newPC",F64)))), 5649 qVar"state"))) 5650; 5651val dfn'ADDI_def = Def 5652 ("dfn'ADDI",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)], 5653 Close 5654 (qVar"state", 5655 Apply 5656 (Call 5657 ("write'GPR",ATy(qTy,qTy), 5658 TP[Bop(Add, 5659 Apply 5660 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 5661 qVar"state"),Mop(SE F64,Var("imm",FTy 12))), 5662 Var("rd",FTy 5)]),qVar"state"))) 5663; 5664val dfn'ADDIW_def = Def 5665 ("dfn'ADDIW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)], 5666 Close 5667 (qVar"state", 5668 Let(TP[bVar"v",qVar"s"], 5669 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5670 ITE(bVar"v", 5671 Apply 5672 (Call 5673 ("signalException",ATy(qTy,qTy), 5674 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 5675 Apply 5676 (Call 5677 ("write'GPR",ATy(qTy,qTy), 5678 TP[Mop(SE F64, 5679 EX(Bop(Add, 5680 Apply 5681 (Call 5682 ("GPR",ATy(qTy,F64), 5683 Var("rs1",FTy 5)),qVar"s"), 5684 Mop(SE F64,Var("imm",FTy 12))),LN 31, 5685 LN 0,F32)),Var("rd",FTy 5)]),qVar"s"))))) 5686; 5687val dfn'SLTI_def = Def 5688 ("dfn'SLTI",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)], 5689 Close 5690 (qVar"state", 5691 Let(TP[bVar"v",qVar"s"], 5692 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5693 Apply 5694 (Call 5695 ("write'GPR",ATy(qTy,qTy), 5696 TP[Mop(Cast F64, 5697 Bop(Lt, 5698 ITE(bVar"v", 5699 Mop(SE F64, 5700 EX(Apply 5701 (Call 5702 ("GPR",ATy(qTy,F64), 5703 Var("rs1",FTy 5)),qVar"s"), 5704 LN 31,LN 0,F32)), 5705 Apply 5706 (Call 5707 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 5708 qVar"s")),Mop(SE F64,Var("imm",FTy 12)))), 5709 Var("rd",FTy 5)]),qVar"s")))) 5710; 5711val dfn'SLTIU_def = Def 5712 ("dfn'SLTIU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)], 5713 Close 5714 (qVar"state", 5715 Let(TP[bVar"v",qVar"s"], 5716 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5717 Apply 5718 (Call 5719 ("write'GPR",ATy(qTy,qTy), 5720 TP[Mop(Cast F64, 5721 Bop(Ult, 5722 ITE(bVar"v", 5723 Mop(SE F64, 5724 EX(Apply 5725 (Call 5726 ("GPR",ATy(qTy,F64), 5727 Var("rs1",FTy 5)),qVar"s"), 5728 LN 31,LN 0,F32)), 5729 Apply 5730 (Call 5731 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 5732 qVar"s")),Mop(SE F64,Var("imm",FTy 12)))), 5733 Var("rd",FTy 5)]),qVar"s")))) 5734; 5735val dfn'ANDI_def = Def 5736 ("dfn'ANDI",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)], 5737 Close 5738 (qVar"state", 5739 Apply 5740 (Call 5741 ("write'GPR",ATy(qTy,qTy), 5742 TP[Bop(BAnd, 5743 Apply 5744 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 5745 qVar"state"),Mop(SE F64,Var("imm",FTy 12))), 5746 Var("rd",FTy 5)]),qVar"state"))) 5747; 5748val dfn'ORI_def = Def 5749 ("dfn'ORI",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)], 5750 Close 5751 (qVar"state", 5752 Apply 5753 (Call 5754 ("write'GPR",ATy(qTy,qTy), 5755 TP[Bop(BOr, 5756 Apply 5757 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 5758 qVar"state"),Mop(SE F64,Var("imm",FTy 12))), 5759 Var("rd",FTy 5)]),qVar"state"))) 5760; 5761val dfn'XORI_def = Def 5762 ("dfn'XORI",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)], 5763 Close 5764 (qVar"state", 5765 Apply 5766 (Call 5767 ("write'GPR",ATy(qTy,qTy), 5768 TP[Bop(BXor, 5769 Apply 5770 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 5771 qVar"state"),Mop(SE F64,Var("imm",FTy 12))), 5772 Var("rd",FTy 5)]),qVar"state"))) 5773; 5774val dfn'SLLI_def = Def 5775 ("dfn'SLLI",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)], 5776 Close 5777 (qVar"state", 5778 Let(TP[bVar"v",qVar"s"], 5779 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5780 ITE(Bop(And,bVar"v",Bop(Bit,Var("imm",FTy 6),LN 5)), 5781 Apply 5782 (Call 5783 ("signalException",ATy(qTy,qTy), 5784 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 5785 Apply 5786 (Call 5787 ("write'GPR",ATy(qTy,qTy), 5788 TP[Bop(Lsl, 5789 Apply 5790 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 5791 qVar"s"),Mop(Cast nTy,Var("imm",FTy 6))), 5792 Var("rd",FTy 5)]),qVar"s"))))) 5793; 5794val dfn'SRLI_def = Def 5795 ("dfn'SRLI",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)], 5796 Close 5797 (qVar"state", 5798 Let(TP[bVar"v",qVar"s"], 5799 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5800 ITE(Bop(And,bVar"v",Bop(Bit,Var("imm",FTy 6),LN 5)), 5801 Apply 5802 (Call 5803 ("signalException",ATy(qTy,qTy), 5804 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 5805 Let(TP[bVar"v",qVar"s"], 5806 Apply 5807 (Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 5808 Apply 5809 (Call 5810 ("write'GPR",ATy(qTy,qTy), 5811 TP[Bop(Lsr, 5812 ITE(bVar"v", 5813 Mop(Cast F64, 5814 EX(Apply 5815 (Call 5816 ("GPR",ATy(qTy,F64), 5817 Var("rs1",FTy 5)),qVar"s"), 5818 LN 31,LN 0,F32)), 5819 Apply 5820 (Call 5821 ("GPR",ATy(qTy,F64), 5822 Var("rs1",FTy 5)),qVar"s")), 5823 Mop(Cast nTy,Var("imm",FTy 6))), 5824 Var("rd",FTy 5)]),qVar"s")))))) 5825; 5826val dfn'SRAI_def = Def 5827 ("dfn'SRAI",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)], 5828 Close 5829 (qVar"state", 5830 Let(TP[bVar"v",qVar"s"], 5831 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5832 ITE(Bop(And,bVar"v",Bop(Bit,Var("imm",FTy 6),LN 5)), 5833 Apply 5834 (Call 5835 ("signalException",ATy(qTy,qTy), 5836 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 5837 Let(TP[bVar"v",qVar"s"], 5838 Apply 5839 (Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 5840 Apply 5841 (Call 5842 ("write'GPR",ATy(qTy,qTy), 5843 TP[Bop(Asr, 5844 ITE(bVar"v", 5845 Mop(SE F64, 5846 EX(Apply 5847 (Call 5848 ("GPR",ATy(qTy,F64), 5849 Var("rs1",FTy 5)),qVar"s"), 5850 LN 31,LN 0,F32)), 5851 Apply 5852 (Call 5853 ("GPR",ATy(qTy,F64), 5854 Var("rs1",FTy 5)),qVar"s")), 5855 Mop(Cast nTy,Var("imm",FTy 6))), 5856 Var("rd",FTy 5)]),qVar"s")))))) 5857; 5858val dfn'SLLIW_def = Def 5859 ("dfn'SLLIW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)], 5860 Close 5861 (qVar"state", 5862 Let(TP[bVar"v",qVar"s"], 5863 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5864 ITE(bVar"v", 5865 Apply 5866 (Call 5867 ("signalException",ATy(qTy,qTy), 5868 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 5869 Apply 5870 (Call 5871 ("write'GPR",ATy(qTy,qTy), 5872 TP[Mop(SE F64, 5873 Bop(Lsl, 5874 EX(Apply 5875 (Call 5876 ("GPR",ATy(qTy,F64), 5877 Var("rs1",FTy 5)),qVar"s"),LN 31, 5878 LN 0,F32),Mop(Cast nTy,Var("imm",FTy 5)))), 5879 Var("rd",FTy 5)]),qVar"s"))))) 5880; 5881val dfn'SRLIW_def = Def 5882 ("dfn'SRLIW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)], 5883 Close 5884 (qVar"state", 5885 Let(TP[bVar"v",qVar"s"], 5886 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5887 ITE(bVar"v", 5888 Apply 5889 (Call 5890 ("signalException",ATy(qTy,qTy), 5891 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 5892 Apply 5893 (Call 5894 ("write'GPR",ATy(qTy,qTy), 5895 TP[Mop(SE F64, 5896 Bop(Lsr, 5897 EX(Apply 5898 (Call 5899 ("GPR",ATy(qTy,F64), 5900 Var("rs1",FTy 5)),qVar"s"),LN 31, 5901 LN 0,F32),Mop(Cast nTy,Var("imm",FTy 5)))), 5902 Var("rd",FTy 5)]),qVar"s"))))) 5903; 5904val dfn'SRAIW_def = Def 5905 ("dfn'SRAIW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)], 5906 Close 5907 (qVar"state", 5908 Let(TP[bVar"v",qVar"s"], 5909 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5910 ITE(bVar"v", 5911 Apply 5912 (Call 5913 ("signalException",ATy(qTy,qTy), 5914 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 5915 Apply 5916 (Call 5917 ("write'GPR",ATy(qTy,qTy), 5918 TP[Mop(SE F64, 5919 Bop(Asr, 5920 EX(Apply 5921 (Call 5922 ("GPR",ATy(qTy,F64), 5923 Var("rs1",FTy 5)),qVar"s"),LN 31, 5924 LN 0,F32),Mop(Cast nTy,Var("imm",FTy 5)))), 5925 Var("rd",FTy 5)]),qVar"s"))))) 5926; 5927val dfn'LUI_def = Def 5928 ("dfn'LUI",TP[Var("rd",FTy 5),Var("imm",FTy 20)], 5929 Close 5930 (qVar"state", 5931 Apply 5932 (Call 5933 ("write'GPR",ATy(qTy,qTy), 5934 TP[Mop(SE F64,CC[Var("imm",FTy 20),LW(0,12)]),Var("rd",FTy 5)]), 5935 qVar"state"))) 5936; 5937val dfn'AUIPC_def = Def 5938 ("dfn'AUIPC",TP[Var("rd",FTy 5),Var("imm",FTy 20)], 5939 Close 5940 (qVar"state", 5941 Apply 5942 (Call 5943 ("write'GPR",ATy(qTy,qTy), 5944 TP[Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 5945 Mop(SE F64,CC[Var("imm",FTy 20),LW(0,12)])), 5946 Var("rd",FTy 5)]),qVar"state"))) 5947; 5948val dfn'ADD_def = Def 5949 ("dfn'ADD",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 5950 Close 5951 (qVar"state", 5952 Apply 5953 (Call 5954 ("write'GPR",ATy(qTy,qTy), 5955 TP[Bop(Add, 5956 Apply 5957 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 5958 qVar"state"), 5959 Apply 5960 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 5961 qVar"state")),Var("rd",FTy 5)]),qVar"state"))) 5962; 5963val dfn'ADDW_def = Def 5964 ("dfn'ADDW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 5965 Close 5966 (qVar"state", 5967 Let(TP[bVar"v",qVar"s"], 5968 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 5969 ITE(bVar"v", 5970 Apply 5971 (Call 5972 ("signalException",ATy(qTy,qTy), 5973 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 5974 Apply 5975 (Call 5976 ("write'GPR",ATy(qTy,qTy), 5977 TP[Mop(SE F64, 5978 Bop(Add, 5979 EX(Apply 5980 (Call 5981 ("GPR",ATy(qTy,F64), 5982 Var("rs1",FTy 5)),qVar"s"),LN 31, 5983 LN 0,F32), 5984 EX(Apply 5985 (Call 5986 ("GPR",ATy(qTy,F64), 5987 Var("rs2",FTy 5)),qVar"s"),LN 31, 5988 LN 0,F32))),Var("rd",FTy 5)]),qVar"s"))))) 5989; 5990val dfn'SUB_def = Def 5991 ("dfn'SUB",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 5992 Close 5993 (qVar"state", 5994 Apply 5995 (Call 5996 ("write'GPR",ATy(qTy,qTy), 5997 TP[Bop(Sub, 5998 Apply 5999 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6000 qVar"state"), 6001 Apply 6002 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6003 qVar"state")),Var("rd",FTy 5)]),qVar"state"))) 6004; 6005val dfn'SUBW_def = Def 6006 ("dfn'SUBW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6007 Close 6008 (qVar"state", 6009 Let(TP[bVar"v",qVar"s"], 6010 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6011 ITE(bVar"v", 6012 Apply 6013 (Call 6014 ("signalException",ATy(qTy,qTy), 6015 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6016 Apply 6017 (Call 6018 ("write'GPR",ATy(qTy,qTy), 6019 TP[Mop(SE F64, 6020 Bop(Sub, 6021 EX(Apply 6022 (Call 6023 ("GPR",ATy(qTy,F64), 6024 Var("rs1",FTy 5)),qVar"s"),LN 31, 6025 LN 0,F32), 6026 EX(Apply 6027 (Call 6028 ("GPR",ATy(qTy,F64), 6029 Var("rs2",FTy 5)),qVar"s"),LN 31, 6030 LN 0,F32))),Var("rd",FTy 5)]),qVar"s"))))) 6031; 6032val dfn'SLT_def = Def 6033 ("dfn'SLT",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6034 Close 6035 (qVar"state", 6036 Let(TP[bVar"v",qVar"s"], 6037 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6038 Let(TP[bVar"v0",qVar"s0"], 6039 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6040 Apply 6041 (Call 6042 ("write'GPR",ATy(qTy,qTy), 6043 TP[Mop(Cast F64, 6044 Bop(Lt, 6045 ITE(bVar"v", 6046 Mop(SE F64, 6047 EX(Apply 6048 (Call 6049 ("GPR",ATy(qTy,F64), 6050 Var("rs1",FTy 5)),qVar"s"), 6051 LN 31,LN 0,F32)), 6052 Apply 6053 (Call 6054 ("GPR",ATy(qTy,F64), 6055 Var("rs1",FTy 5)),qVar"s")), 6056 ITE(bVar"v0", 6057 Mop(SE F64, 6058 EX(Apply 6059 (Call 6060 ("GPR",ATy(qTy,F64), 6061 Var("rs2",FTy 5)),qVar"s0"), 6062 LN 31,LN 0,F32)), 6063 Apply 6064 (Call 6065 ("GPR",ATy(qTy,F64), 6066 Var("rs2",FTy 5)),qVar"s0")))), 6067 Var("rd",FTy 5)]),qVar"s0"))))) 6068; 6069val dfn'SLTU_def = Def 6070 ("dfn'SLTU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6071 Close 6072 (qVar"state", 6073 Let(TP[bVar"v",qVar"s"], 6074 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6075 Let(TP[bVar"v0",qVar"s0"], 6076 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6077 Apply 6078 (Call 6079 ("write'GPR",ATy(qTy,qTy), 6080 TP[Mop(Cast F64, 6081 Bop(Ult, 6082 ITE(bVar"v", 6083 Mop(Cast F64, 6084 EX(Apply 6085 (Call 6086 ("GPR",ATy(qTy,F64), 6087 Var("rs1",FTy 5)),qVar"s"), 6088 LN 31,LN 0,F32)), 6089 Apply 6090 (Call 6091 ("GPR",ATy(qTy,F64), 6092 Var("rs1",FTy 5)),qVar"s")), 6093 ITE(bVar"v0", 6094 Mop(Cast F64, 6095 EX(Apply 6096 (Call 6097 ("GPR",ATy(qTy,F64), 6098 Var("rs2",FTy 5)),qVar"s0"), 6099 LN 31,LN 0,F32)), 6100 Apply 6101 (Call 6102 ("GPR",ATy(qTy,F64), 6103 Var("rs2",FTy 5)),qVar"s0")))), 6104 Var("rd",FTy 5)]),qVar"s0"))))) 6105; 6106val dfn'AND_def = Def 6107 ("dfn'AND",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6108 Close 6109 (qVar"state", 6110 Apply 6111 (Call 6112 ("write'GPR",ATy(qTy,qTy), 6113 TP[Bop(BAnd, 6114 Apply 6115 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6116 qVar"state"), 6117 Apply 6118 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6119 qVar"state")),Var("rd",FTy 5)]),qVar"state"))) 6120; 6121val dfn'OR_def = Def 6122 ("dfn'OR",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6123 Close 6124 (qVar"state", 6125 Apply 6126 (Call 6127 ("write'GPR",ATy(qTy,qTy), 6128 TP[Bop(BOr, 6129 Apply 6130 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6131 qVar"state"), 6132 Apply 6133 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6134 qVar"state")),Var("rd",FTy 5)]),qVar"state"))) 6135; 6136val dfn'XOR_def = Def 6137 ("dfn'XOR",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6138 Close 6139 (qVar"state", 6140 Apply 6141 (Call 6142 ("write'GPR",ATy(qTy,qTy), 6143 TP[Bop(BXor, 6144 Apply 6145 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6146 qVar"state"), 6147 Apply 6148 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6149 qVar"state")),Var("rd",FTy 5)]),qVar"state"))) 6150; 6151val dfn'SLL_def = Def 6152 ("dfn'SLL",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6153 Close 6154 (qVar"state", 6155 Let(TP[bVar"v",qVar"s"], 6156 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6157 ITE(bVar"v", 6158 Apply 6159 (Call 6160 ("write'GPR",ATy(qTy,qTy), 6161 TP[Bop(Lsl, 6162 Apply 6163 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6164 qVar"s"), 6165 Mop(Cast F64, 6166 EX(Apply 6167 (Call 6168 ("GPR",ATy(qTy,F64), 6169 Var("rs2",FTy 5)),qVar"s"),LN 4, 6170 LN 0,FTy 5))),Var("rd",FTy 5)]),qVar"s"), 6171 Apply 6172 (Call 6173 ("write'GPR",ATy(qTy,qTy), 6174 TP[Bop(Lsl, 6175 Apply 6176 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6177 qVar"s"), 6178 Mop(Cast F64, 6179 EX(Apply 6180 (Call 6181 ("GPR",ATy(qTy,F64), 6182 Var("rs2",FTy 5)),qVar"s"),LN 5, 6183 LN 0,FTy 6))),Var("rd",FTy 5)]),qVar"s"))))) 6184; 6185val dfn'SLLW_def = Def 6186 ("dfn'SLLW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6187 Close 6188 (qVar"state", 6189 Let(TP[bVar"v",qVar"s"], 6190 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6191 ITE(bVar"v", 6192 Apply 6193 (Call 6194 ("signalException",ATy(qTy,qTy), 6195 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6196 Apply 6197 (Call 6198 ("write'GPR",ATy(qTy,qTy), 6199 TP[Mop(SE F64, 6200 Bop(Lsl, 6201 EX(Apply 6202 (Call 6203 ("GPR",ATy(qTy,F64), 6204 Var("rs1",FTy 5)),qVar"s"),LN 31, 6205 LN 0,F32), 6206 Mop(Cast F32, 6207 EX(Apply 6208 (Call 6209 ("GPR",ATy(qTy,F64), 6210 Var("rs2",FTy 5)),qVar"s"), 6211 LN 4,LN 0,FTy 5)))),Var("rd",FTy 5)]), 6212 qVar"s"))))) 6213; 6214val dfn'SRL_def = Def 6215 ("dfn'SRL",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6216 Close 6217 (qVar"state", 6218 Let(TP[bVar"v",qVar"s"], 6219 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6220 ITE(bVar"v", 6221 Apply 6222 (Call 6223 ("write'GPR",ATy(qTy,qTy), 6224 TP[Mop(Cast F64, 6225 Bop(Lsr, 6226 EX(Apply 6227 (Call 6228 ("GPR",ATy(qTy,F64), 6229 Var("rs1",FTy 5)),qVar"s"),LN 31, 6230 LN 0,F32), 6231 Mop(Cast F32, 6232 EX(Apply 6233 (Call 6234 ("GPR",ATy(qTy,F64), 6235 Var("rs2",FTy 5)),qVar"s"), 6236 LN 4,LN 0,FTy 5)))),Var("rd",FTy 5)]), 6237 qVar"s"), 6238 Apply 6239 (Call 6240 ("write'GPR",ATy(qTy,qTy), 6241 TP[Bop(Lsr, 6242 Apply 6243 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6244 qVar"s"), 6245 Mop(Cast F64, 6246 EX(Apply 6247 (Call 6248 ("GPR",ATy(qTy,F64), 6249 Var("rs2",FTy 5)),qVar"s"),LN 5, 6250 LN 0,FTy 6))),Var("rd",FTy 5)]),qVar"s"))))) 6251; 6252val dfn'SRLW_def = Def 6253 ("dfn'SRLW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6254 Close 6255 (qVar"state", 6256 Let(TP[bVar"v",qVar"s"], 6257 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6258 ITE(bVar"v", 6259 Apply 6260 (Call 6261 ("signalException",ATy(qTy,qTy), 6262 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6263 Apply 6264 (Call 6265 ("write'GPR",ATy(qTy,qTy), 6266 TP[Mop(SE F64, 6267 Bop(Lsr, 6268 EX(Apply 6269 (Call 6270 ("GPR",ATy(qTy,F64), 6271 Var("rs1",FTy 5)),qVar"s"),LN 31, 6272 LN 0,F32), 6273 Mop(Cast F32, 6274 EX(Apply 6275 (Call 6276 ("GPR",ATy(qTy,F64), 6277 Var("rs2",FTy 5)),qVar"s"), 6278 LN 4,LN 0,FTy 5)))),Var("rd",FTy 5)]), 6279 qVar"s"))))) 6280; 6281val dfn'SRA_def = Def 6282 ("dfn'SRA",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6283 Close 6284 (qVar"state", 6285 Let(TP[bVar"v",qVar"s"], 6286 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6287 ITE(bVar"v", 6288 Apply 6289 (Call 6290 ("write'GPR",ATy(qTy,qTy), 6291 TP[Mop(SE F64, 6292 Bop(Asr, 6293 EX(Apply 6294 (Call 6295 ("GPR",ATy(qTy,F64), 6296 Var("rs1",FTy 5)),qVar"s"),LN 31, 6297 LN 0,F32), 6298 Mop(Cast F32, 6299 EX(Apply 6300 (Call 6301 ("GPR",ATy(qTy,F64), 6302 Var("rs2",FTy 5)),qVar"s"), 6303 LN 4,LN 0,FTy 5)))),Var("rd",FTy 5)]), 6304 qVar"s"), 6305 Apply 6306 (Call 6307 ("write'GPR",ATy(qTy,qTy), 6308 TP[Bop(Asr, 6309 Apply 6310 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6311 qVar"s"), 6312 Mop(Cast F64, 6313 EX(Apply 6314 (Call 6315 ("GPR",ATy(qTy,F64), 6316 Var("rs2",FTy 5)),qVar"s"),LN 5, 6317 LN 0,FTy 6))),Var("rd",FTy 5)]),qVar"s"))))) 6318; 6319val dfn'SRAW_def = Def 6320 ("dfn'SRAW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6321 Close 6322 (qVar"state", 6323 Let(TP[bVar"v",qVar"s"], 6324 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6325 ITE(bVar"v", 6326 Apply 6327 (Call 6328 ("signalException",ATy(qTy,qTy), 6329 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6330 Apply 6331 (Call 6332 ("write'GPR",ATy(qTy,qTy), 6333 TP[Mop(SE F64, 6334 Bop(Asr, 6335 EX(Apply 6336 (Call 6337 ("GPR",ATy(qTy,F64), 6338 Var("rs1",FTy 5)),qVar"s"),LN 31, 6339 LN 0,F32), 6340 Mop(Cast F32, 6341 EX(Apply 6342 (Call 6343 ("GPR",ATy(qTy,F64), 6344 Var("rs2",FTy 5)),qVar"s"), 6345 LN 4,LN 0,FTy 5)))),Var("rd",FTy 5)]), 6346 qVar"s"))))) 6347; 6348val dfn'MUL_def = Def 6349 ("dfn'MUL",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6350 Close 6351 (qVar"state", 6352 Apply 6353 (Call 6354 ("write'GPR",ATy(qTy,qTy), 6355 TP[Bop(Mul, 6356 Apply 6357 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6358 qVar"state"), 6359 Apply 6360 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6361 qVar"state")),Var("rd",FTy 5)]),qVar"state"))) 6362; 6363val dfn'MULH_def = Def 6364 ("dfn'MULH",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6365 Close 6366 (qVar"state", 6367 Let(TP[bVar"v",qVar"s"], 6368 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6369 Let(TP[bVar"v0",qVar"s0"], 6370 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6371 Let(Var("prod",FTy 128), 6372 Bop(Mul, 6373 Mop(SE(FTy 128), 6374 ITE(bVar"v", 6375 Mop(SE F64, 6376 EX(Apply 6377 (Call 6378 ("GPR",ATy(qTy,F64), 6379 Var("rs1",FTy 5)),qVar"s"), 6380 LN 31,LN 0,F32)), 6381 Apply 6382 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6383 qVar"s"))), 6384 Mop(SE(FTy 128), 6385 ITE(bVar"v0", 6386 Mop(SE F64, 6387 EX(Apply 6388 (Call 6389 ("GPR",ATy(qTy,F64), 6390 Var("rs2",FTy 5)),qVar"s0"), 6391 LN 31,LN 0,F32)), 6392 Apply 6393 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6394 qVar"s0")))), 6395 Let(TP[bVar"v",qVar"s"], 6396 Apply 6397 (Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU), 6398 qVar"s0"), 6399 Apply 6400 (Call 6401 ("write'GPR",ATy(qTy,qTy), 6402 TP[ITE(bVar"v", 6403 Mop(SE F64, 6404 EX(Var("prod",FTy 128),LN 63,LN 32, 6405 F32)), 6406 Mop(SE F64, 6407 EX(Var("prod",FTy 128),LN 127, 6408 LN 64,F64))),Var("rd",FTy 5)]), 6409 qVar"s"))))))) 6410; 6411val dfn'MULHU_def = Def 6412 ("dfn'MULHU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6413 Close 6414 (qVar"state", 6415 Let(TP[bVar"v",qVar"s"], 6416 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6417 Let(TP[bVar"v0",qVar"s0"], 6418 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6419 Let(Var("prod",FTy 128), 6420 Bop(Mul, 6421 ITE(bVar"v", 6422 Mop(Cast(FTy 128), 6423 EX(Apply 6424 (Call 6425 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6426 qVar"s"),LN 31,LN 0,F32)), 6427 Mop(Cast(FTy 128), 6428 Apply 6429 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6430 qVar"s"))), 6431 ITE(bVar"v0", 6432 Mop(Cast(FTy 128), 6433 EX(Apply 6434 (Call 6435 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6436 qVar"s0"),LN 31,LN 0,F32)), 6437 Mop(Cast(FTy 128), 6438 Apply 6439 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6440 qVar"s0")))), 6441 Let(TP[bVar"v",qVar"s"], 6442 Apply 6443 (Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU), 6444 qVar"s0"), 6445 Apply 6446 (Call 6447 ("write'GPR",ATy(qTy,qTy), 6448 TP[ITE(bVar"v", 6449 Mop(Cast F64, 6450 EX(Var("prod",FTy 128),LN 63,LN 32, 6451 F32)), 6452 EX(Var("prod",FTy 128),LN 127,LN 64,F64)), 6453 Var("rd",FTy 5)]),qVar"s"))))))) 6454; 6455val dfn'MULHSU_def = Def 6456 ("dfn'MULHSU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6457 Close 6458 (qVar"state", 6459 Let(TP[bVar"v",qVar"s"], 6460 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6461 Let(TP[bVar"v0",qVar"s0"], 6462 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6463 Let(Var("prod",FTy 128), 6464 Bop(Mul, 6465 ITE(bVar"v", 6466 Mop(SE(FTy 128), 6467 EX(Apply 6468 (Call 6469 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6470 qVar"s"),LN 31,LN 0,F32)), 6471 Mop(SE(FTy 128), 6472 Apply 6473 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6474 qVar"s"))), 6475 ITE(bVar"v0", 6476 Mop(Cast(FTy 128), 6477 EX(Apply 6478 (Call 6479 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6480 qVar"s0"),LN 31,LN 0,F32)), 6481 Mop(Cast(FTy 128), 6482 Apply 6483 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6484 qVar"s0")))), 6485 Let(TP[bVar"v",qVar"s"], 6486 Apply 6487 (Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU), 6488 qVar"s0"), 6489 Apply 6490 (Call 6491 ("write'GPR",ATy(qTy,qTy), 6492 TP[ITE(bVar"v", 6493 Mop(SE F64, 6494 EX(Var("prod",FTy 128),LN 63,LN 32, 6495 F32)), 6496 EX(Var("prod",FTy 128),LN 127,LN 64,F64)), 6497 Var("rd",FTy 5)]),qVar"s"))))))) 6498; 6499val dfn'MULW_def = Def 6500 ("dfn'MULW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6501 Close 6502 (qVar"state", 6503 Let(TP[bVar"v",qVar"s"], 6504 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6505 ITE(bVar"v", 6506 Apply 6507 (Call 6508 ("signalException",ATy(qTy,qTy), 6509 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6510 Apply 6511 (Call 6512 ("write'GPR",ATy(qTy,qTy), 6513 TP[Mop(SE F64, 6514 EX(Mop(SE F64, 6515 Bop(Mul, 6516 EX(Apply 6517 (Call 6518 ("GPR",ATy(qTy,F64), 6519 Var("rs1",FTy 5)),qVar"s"), 6520 LN 31,LN 0,F32), 6521 EX(Apply 6522 (Call 6523 ("GPR",ATy(qTy,F64), 6524 Var("rs2",FTy 5)),qVar"s"), 6525 LN 31,LN 0,F32))),LN 31,LN 0,F32)), 6526 Var("rd",FTy 5)]),qVar"s"))))) 6527; 6528val dfn'DIV_def = Def 6529 ("dfn'DIV",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6530 Close 6531 (qVar"state", 6532 ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"state"), 6533 LW(0,64)), 6534 Apply 6535 (Call 6536 ("write'GPR",ATy(qTy,qTy), 6537 TP[Mop(SE F64,LW(1,1)),Var("rd",FTy 5)]),qVar"state"), 6538 Apply 6539 (Call 6540 ("write'GPR",ATy(qTy,qTy), 6541 TP[Bop(Quot, 6542 Apply 6543 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6544 qVar"state"), 6545 Apply 6546 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6547 qVar"state")),Var("rd",FTy 5)]),qVar"state")))) 6548; 6549val dfn'REM_def = Def 6550 ("dfn'REM",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6551 Close 6552 (qVar"state", 6553 ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"state"), 6554 LW(0,64)), 6555 Apply 6556 (Call 6557 ("write'GPR",ATy(qTy,qTy), 6558 TP[Apply 6559 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6560 qVar"state"),Var("rd",FTy 5)]),qVar"state"), 6561 Apply 6562 (Call 6563 ("write'GPR",ATy(qTy,qTy), 6564 TP[Bop(Rem, 6565 Apply 6566 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6567 qVar"state"), 6568 Apply 6569 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6570 qVar"state")),Var("rd",FTy 5)]),qVar"state")))) 6571; 6572val dfn'DIVU_def = Def 6573 ("dfn'DIVU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6574 Close 6575 (qVar"state", 6576 Let(TP[bVar"v",qVar"s"], 6577 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6578 Let(TP[bVar"v0",qVar"s0"], 6579 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6580 Let(Var("v0",F64), 6581 ITE(bVar"v0", 6582 Mop(Cast F64, 6583 EX(Apply 6584 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6585 qVar"s0"),LN 31,LN 0,F32)), 6586 Apply 6587 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6588 qVar"s0")), 6589 ITE(EQ(Var("v0",F64),LW(0,64)), 6590 Apply 6591 (Call 6592 ("write'GPR",ATy(qTy,qTy), 6593 TP[Mop(SE F64,LW(1,1)),Var("rd",FTy 5)]), 6594 qVar"s0"), 6595 Apply 6596 (Call 6597 ("write'GPR",ATy(qTy,qTy), 6598 TP[Bop(Div, 6599 ITE(bVar"v", 6600 Mop(Cast F64, 6601 EX(Apply 6602 (Call 6603 ("GPR",ATy(qTy,F64), 6604 Var("rs1",FTy 5)), 6605 qVar"s"),LN 31,LN 0,F32)), 6606 Apply 6607 (Call 6608 ("GPR",ATy(qTy,F64), 6609 Var("rs1",FTy 5)),qVar"s")), 6610 Var("v0",F64)),Var("rd",FTy 5)]), 6611 qVar"s0"))))))) 6612; 6613val dfn'REMU_def = Def 6614 ("dfn'REMU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6615 Close 6616 (qVar"state", 6617 ITE(EQ(Apply(Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"state"), 6618 LW(0,64)), 6619 Apply 6620 (Call 6621 ("write'GPR",ATy(qTy,qTy), 6622 TP[Apply 6623 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6624 qVar"state"),Var("rd",FTy 5)]),qVar"state"), 6625 Apply 6626 (Call 6627 ("write'GPR",ATy(qTy,qTy), 6628 TP[Bop(Mod, 6629 Apply 6630 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6631 qVar"state"), 6632 Apply 6633 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6634 qVar"state")),Var("rd",FTy 5)]),qVar"state")))) 6635; 6636val dfn'DIVW_def = Def 6637 ("dfn'DIVW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6638 Close 6639 (qVar"state", 6640 Let(TP[bVar"v",qVar"s"], 6641 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6642 ITE(bVar"v", 6643 Apply 6644 (Call 6645 ("signalException",ATy(qTy,qTy), 6646 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6647 Let(Var("v0",F32), 6648 EX(Apply 6649 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"s"), 6650 LN 31,LN 0,F32), 6651 ITE(EQ(Var("v0",F32),LW(0,32)), 6652 Apply 6653 (Call 6654 ("write'GPR",ATy(qTy,qTy), 6655 TP[Mop(SE F64,LW(1,1)),Var("rd",FTy 5)]), 6656 qVar"s"), 6657 Apply 6658 (Call 6659 ("write'GPR",ATy(qTy,qTy), 6660 TP[Mop(SE F64, 6661 Bop(Quot, 6662 EX(Apply 6663 (Call 6664 ("GPR",ATy(qTy,F64), 6665 Var("rs1",FTy 5)),qVar"s"), 6666 LN 31,LN 0,F32),Var("v0",F32))), 6667 Var("rd",FTy 5)]),qVar"s"))))))) 6668; 6669val dfn'REMW_def = Def 6670 ("dfn'REMW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6671 Close 6672 (qVar"state", 6673 Let(TP[bVar"v",qVar"s"], 6674 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6675 ITE(bVar"v", 6676 Apply 6677 (Call 6678 ("signalException",ATy(qTy,qTy), 6679 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6680 Let(Var("v",F32), 6681 EX(Apply 6682 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"s"), 6683 LN 31,LN 0,F32), 6684 Let(Var("v0",F32), 6685 EX(Apply 6686 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6687 qVar"s"),LN 31,LN 0,F32), 6688 ITE(EQ(Var("v0",F32),LW(0,32)), 6689 Apply 6690 (Call 6691 ("write'GPR",ATy(qTy,qTy), 6692 TP[Mop(SE F64,Var("v",F32)), 6693 Var("rd",FTy 5)]),qVar"s"), 6694 Apply 6695 (Call 6696 ("write'GPR",ATy(qTy,qTy), 6697 TP[Mop(SE F64, 6698 Bop(Rem,Var("v",F32),Var("v0",F32))), 6699 Var("rd",FTy 5)]),qVar"s")))))))) 6700; 6701val dfn'DIVUW_def = Def 6702 ("dfn'DIVUW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6703 Close 6704 (qVar"state", 6705 Let(TP[bVar"v",qVar"s"], 6706 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6707 ITE(bVar"v", 6708 Apply 6709 (Call 6710 ("signalException",ATy(qTy,qTy), 6711 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6712 Let(Var("v0",F32), 6713 EX(Apply 6714 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"s"), 6715 LN 31,LN 0,F32), 6716 ITE(EQ(Var("v0",F32),LW(0,32)), 6717 Apply 6718 (Call 6719 ("write'GPR",ATy(qTy,qTy), 6720 TP[Mop(SE F64,LW(1,1)),Var("rd",FTy 5)]), 6721 qVar"s"), 6722 Apply 6723 (Call 6724 ("write'GPR",ATy(qTy,qTy), 6725 TP[Mop(SE F64, 6726 Bop(Div, 6727 EX(Apply 6728 (Call 6729 ("GPR",ATy(qTy,F64), 6730 Var("rs1",FTy 5)),qVar"s"), 6731 LN 31,LN 0,F32),Var("v0",F32))), 6732 Var("rd",FTy 5)]),qVar"s"))))))) 6733; 6734val dfn'REMUW_def = Def 6735 ("dfn'REMUW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 6736 Close 6737 (qVar"state", 6738 Let(TP[bVar"v",qVar"s"], 6739 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6740 ITE(bVar"v", 6741 Apply 6742 (Call 6743 ("signalException",ATy(qTy,qTy), 6744 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 6745 Let(Var("v",F32), 6746 EX(Apply 6747 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"s"), 6748 LN 31,LN 0,F32), 6749 Let(Var("v0",F32), 6750 EX(Apply 6751 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6752 qVar"s"),LN 31,LN 0,F32), 6753 ITE(EQ(Var("v0",F32),LW(0,32)), 6754 Apply 6755 (Call 6756 ("write'GPR",ATy(qTy,qTy), 6757 TP[Mop(SE F64,Var("v",F32)), 6758 Var("rd",FTy 5)]),qVar"s"), 6759 Apply 6760 (Call 6761 ("write'GPR",ATy(qTy,qTy), 6762 TP[Mop(SE F64, 6763 Bop(Mod,Var("v",F32),Var("v0",F32))), 6764 Var("rd",FTy 5)]),qVar"s")))))))) 6765; 6766val dfn'JAL_def = Def 6767 ("dfn'JAL",TP[Var("rd",FTy 5),Var("imm",FTy 20)], 6768 Close 6769 (qVar"state", 6770 Let(Var("v",F64), 6771 Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 6772 Bop(Lsl,Mop(SE F64,Var("imm",FTy 20)),LN 1)), 6773 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 6774 Apply 6775 (Call 6776 ("signalAddressException",ATy(qTy,qTy), 6777 TP[LC("Fetch_Misaligned",CTy"ExceptionType"), 6778 Var("v",F64)]),qVar"state"), 6779 Apply 6780 (Call("branchTo",ATy(qTy,qTy),Var("v",F64)), 6781 Apply 6782 (Call 6783 ("write'GPR",ATy(qTy,qTy), 6784 TP[Bop(Add, 6785 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 6786 LW(4,64)),Var("rd",FTy 5)]),qVar"state")))))) 6787; 6788val dfn'JALR_def = Def 6789 ("dfn'JALR",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)], 6790 Close 6791 (qVar"state", 6792 Let(Var("v",F64), 6793 Bop(BAnd, 6794 Bop(Add, 6795 Apply 6796 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 6797 Mop(SE F64,Var("imm",FTy 12))),Mop(SE F64,LW(2,2))), 6798 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 6799 Apply 6800 (Call 6801 ("signalAddressException",ATy(qTy,qTy), 6802 TP[LC("Fetch_Misaligned",CTy"ExceptionType"), 6803 Var("v",F64)]),qVar"state"), 6804 Apply 6805 (Call("branchTo",ATy(qTy,qTy),Var("v",F64)), 6806 Apply 6807 (Call 6808 ("write'GPR",ATy(qTy,qTy), 6809 TP[Bop(Add, 6810 Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 6811 LW(4,64)),Var("rd",FTy 5)]),qVar"state")))))) 6812; 6813val dfn'BEQ_def = Def 6814 ("dfn'BEQ",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 6815 Close 6816 (qVar"state", 6817 Let(TP[bVar"v",qVar"s"], 6818 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6819 Let(TP[bVar"v0",qVar"s0"], 6820 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6821 ITE(EQ(ITE(bVar"v", 6822 Mop(SE F64, 6823 EX(Apply 6824 (Call 6825 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6826 qVar"s"),LN 31,LN 0,F32)), 6827 Apply 6828 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6829 qVar"s")), 6830 ITE(bVar"v0", 6831 Mop(SE F64, 6832 EX(Apply 6833 (Call 6834 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6835 qVar"s0"),LN 31,LN 0,F32)), 6836 Apply 6837 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6838 qVar"s0"))), 6839 Apply 6840 (Call 6841 ("branchTo",ATy(qTy,qTy), 6842 Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"s0"), 6843 Bop(Lsl,Mop(SE F64,Var("offs",FTy 12)),LN 1))), 6844 qVar"s0"),qVar"s0"))))) 6845; 6846val dfn'BNE_def = Def 6847 ("dfn'BNE",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 6848 Close 6849 (qVar"state", 6850 Let(TP[bVar"v",qVar"s"], 6851 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6852 Let(TP[bVar"v0",qVar"s0"], 6853 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6854 ITE(Mop(Not, 6855 EQ(ITE(bVar"v", 6856 Mop(SE F64, 6857 EX(Apply 6858 (Call 6859 ("GPR",ATy(qTy,F64), 6860 Var("rs1",FTy 5)),qVar"s"), 6861 LN 31,LN 0,F32)), 6862 Apply 6863 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6864 qVar"s")), 6865 ITE(bVar"v0", 6866 Mop(SE F64, 6867 EX(Apply 6868 (Call 6869 ("GPR",ATy(qTy,F64), 6870 Var("rs2",FTy 5)),qVar"s0"), 6871 LN 31,LN 0,F32)), 6872 Apply 6873 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6874 qVar"s0")))), 6875 Apply 6876 (Call 6877 ("branchTo",ATy(qTy,qTy), 6878 Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"s0"), 6879 Bop(Lsl,Mop(SE F64,Var("offs",FTy 12)),LN 1))), 6880 qVar"s0"),qVar"s0"))))) 6881; 6882val dfn'BLT_def = Def 6883 ("dfn'BLT",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 6884 Close 6885 (qVar"state", 6886 Let(TP[bVar"v",qVar"s"], 6887 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6888 Let(TP[bVar"v0",qVar"s0"], 6889 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6890 ITE(Bop(Lt, 6891 ITE(bVar"v", 6892 Mop(SE F64, 6893 EX(Apply 6894 (Call 6895 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6896 qVar"s"),LN 31,LN 0,F32)), 6897 Apply 6898 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6899 qVar"s")), 6900 ITE(bVar"v0", 6901 Mop(SE F64, 6902 EX(Apply 6903 (Call 6904 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6905 qVar"s0"),LN 31,LN 0,F32)), 6906 Apply 6907 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6908 qVar"s0"))), 6909 Apply 6910 (Call 6911 ("branchTo",ATy(qTy,qTy), 6912 Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"s0"), 6913 Bop(Lsl,Mop(SE F64,Var("offs",FTy 12)),LN 1))), 6914 qVar"s0"),qVar"s0"))))) 6915; 6916val dfn'BLTU_def = Def 6917 ("dfn'BLTU",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 6918 Close 6919 (qVar"state", 6920 Let(TP[bVar"v",qVar"s"], 6921 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6922 Let(TP[bVar"v0",qVar"s0"], 6923 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6924 ITE(Bop(Ult, 6925 ITE(bVar"v", 6926 Mop(SE F64, 6927 EX(Apply 6928 (Call 6929 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6930 qVar"s"),LN 31,LN 0,F32)), 6931 Apply 6932 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6933 qVar"s")), 6934 ITE(bVar"v0", 6935 Mop(SE F64, 6936 EX(Apply 6937 (Call 6938 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6939 qVar"s0"),LN 31,LN 0,F32)), 6940 Apply 6941 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6942 qVar"s0"))), 6943 Apply 6944 (Call 6945 ("branchTo",ATy(qTy,qTy), 6946 Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"s0"), 6947 Bop(Lsl,Mop(SE F64,Var("offs",FTy 12)),LN 1))), 6948 qVar"s0"),qVar"s0"))))) 6949; 6950val dfn'BGE_def = Def 6951 ("dfn'BGE",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 6952 Close 6953 (qVar"state", 6954 Let(TP[bVar"v",qVar"s"], 6955 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6956 Let(TP[bVar"v0",qVar"s0"], 6957 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6958 ITE(Bop(Ge, 6959 ITE(bVar"v", 6960 Mop(SE F64, 6961 EX(Apply 6962 (Call 6963 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6964 qVar"s"),LN 31,LN 0,F32)), 6965 Apply 6966 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6967 qVar"s")), 6968 ITE(bVar"v0", 6969 Mop(SE F64, 6970 EX(Apply 6971 (Call 6972 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6973 qVar"s0"),LN 31,LN 0,F32)), 6974 Apply 6975 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 6976 qVar"s0"))), 6977 Apply 6978 (Call 6979 ("branchTo",ATy(qTy,qTy), 6980 Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"s0"), 6981 Bop(Lsl,Mop(SE F64,Var("offs",FTy 12)),LN 1))), 6982 qVar"s0"),qVar"s0"))))) 6983; 6984val dfn'BGEU_def = Def 6985 ("dfn'BGEU",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 6986 Close 6987 (qVar"state", 6988 Let(TP[bVar"v",qVar"s"], 6989 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 6990 Let(TP[bVar"v0",qVar"s0"], 6991 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"s"), 6992 ITE(Bop(Uge, 6993 ITE(bVar"v", 6994 Mop(SE F64, 6995 EX(Apply 6996 (Call 6997 ("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 6998 qVar"s"),LN 31,LN 0,F32)), 6999 Apply 7000 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 7001 qVar"s")), 7002 ITE(bVar"v0", 7003 Mop(SE F64, 7004 EX(Apply 7005 (Call 7006 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 7007 qVar"s0"),LN 31,LN 0,F32)), 7008 Apply 7009 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 7010 qVar"s0"))), 7011 Apply 7012 (Call 7013 ("branchTo",ATy(qTy,qTy), 7014 Bop(Add,Apply(Const("PC",ATy(qTy,F64)),qVar"s0"), 7015 Bop(Lsl,Mop(SE F64,Var("offs",FTy 12)),LN 1))), 7016 qVar"s0"),qVar"s0"))))) 7017; 7018val dfn'LW_def = Def 7019 ("dfn'LW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 7020 Close 7021 (qVar"state", 7022 Let(Var("v",F64), 7023 Bop(Add, 7024 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7025 Mop(SE F64,Var("offs",FTy 12))), 7026 Let(TP[Var("v0",OTy F64),qVar"s"], 7027 Apply 7028 (Call 7029 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7030 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7031 LC("Read",CTy"accessType")]),qVar"state"), 7032 CS(Var("v0",OTy F64), 7033 [(Mop(Some,Var("pAddr",F64)), 7034 Apply 7035 (Call 7036 ("write'GPR",ATy(qTy,qTy), 7037 TP[Mop(SE F64, 7038 EX(Apply 7039 (Call 7040 ("rawReadData",ATy(qTy,F64), 7041 Var("pAddr",F64)),qVar"s"),LN 31, 7042 LN 0,F32)),Var("rd",FTy 5)]),qVar"s")), 7043 (LO F64, 7044 Apply 7045 (Call 7046 ("signalAddressException",ATy(qTy,qTy), 7047 TP[LC("Load_Fault",CTy"ExceptionType"), 7048 Var("v",F64)]),qVar"s"))]))))) 7049; 7050val dfn'LWU_def = Def 7051 ("dfn'LWU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 7052 Close 7053 (qVar"state", 7054 Let(TP[bVar"v",qVar"s"], 7055 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 7056 ITE(bVar"v", 7057 Apply 7058 (Call 7059 ("signalException",ATy(qTy,qTy), 7060 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 7061 Let(Var("v",F64), 7062 Bop(Add, 7063 Apply 7064 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"s"), 7065 Mop(SE F64,Var("offs",FTy 12))), 7066 Let(TP[Var("v0",OTy F64),qVar"s"], 7067 Apply 7068 (Call 7069 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7070 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7071 LC("Read",CTy"accessType")]),qVar"s"), 7072 CS(Var("v0",OTy F64), 7073 [(Mop(Some,Var("pAddr",F64)), 7074 Apply 7075 (Call 7076 ("write'GPR",ATy(qTy,qTy), 7077 TP[Mop(Cast F64, 7078 EX(Apply 7079 (Call 7080 ("rawReadData", 7081 ATy(qTy,F64), 7082 Var("pAddr",F64)),qVar"s"), 7083 LN 31,LN 0,F32)), 7084 Var("rd",FTy 5)]),qVar"s")), 7085 (LO F64, 7086 Apply 7087 (Call 7088 ("signalAddressException",ATy(qTy,qTy), 7089 TP[LC("Load_Fault",CTy"ExceptionType"), 7090 Var("v",F64)]),qVar"s"))]))))))) 7091; 7092val dfn'LH_def = Def 7093 ("dfn'LH",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 7094 Close 7095 (qVar"state", 7096 Let(Var("v",F64), 7097 Bop(Add, 7098 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7099 Mop(SE F64,Var("offs",FTy 12))), 7100 Let(TP[Var("v0",OTy F64),qVar"s"], 7101 Apply 7102 (Call 7103 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7104 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7105 LC("Read",CTy"accessType")]),qVar"state"), 7106 CS(Var("v0",OTy F64), 7107 [(Mop(Some,Var("pAddr",F64)), 7108 Apply 7109 (Call 7110 ("write'GPR",ATy(qTy,qTy), 7111 TP[Mop(SE F64, 7112 EX(Apply 7113 (Call 7114 ("rawReadData",ATy(qTy,F64), 7115 Var("pAddr",F64)),qVar"s"),LN 15, 7116 LN 0,F16)),Var("rd",FTy 5)]),qVar"s")), 7117 (LO F64, 7118 Apply 7119 (Call 7120 ("signalAddressException",ATy(qTy,qTy), 7121 TP[LC("Load_Fault",CTy"ExceptionType"), 7122 Var("v",F64)]),qVar"s"))]))))) 7123; 7124val dfn'LHU_def = Def 7125 ("dfn'LHU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 7126 Close 7127 (qVar"state", 7128 Let(Var("v",F64), 7129 Bop(Add, 7130 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7131 Mop(SE F64,Var("offs",FTy 12))), 7132 Let(TP[Var("v0",OTy F64),qVar"s"], 7133 Apply 7134 (Call 7135 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7136 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7137 LC("Read",CTy"accessType")]),qVar"state"), 7138 CS(Var("v0",OTy F64), 7139 [(Mop(Some,Var("pAddr",F64)), 7140 Apply 7141 (Call 7142 ("write'GPR",ATy(qTy,qTy), 7143 TP[Mop(Cast F64, 7144 EX(Apply 7145 (Call 7146 ("rawReadData",ATy(qTy,F64), 7147 Var("pAddr",F64)),qVar"s"),LN 15, 7148 LN 0,F16)),Var("rd",FTy 5)]),qVar"s")), 7149 (LO F64, 7150 Apply 7151 (Call 7152 ("signalAddressException",ATy(qTy,qTy), 7153 TP[LC("Load_Fault",CTy"ExceptionType"), 7154 Var("v",F64)]),qVar"s"))]))))) 7155; 7156val dfn'LB_def = Def 7157 ("dfn'LB",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 7158 Close 7159 (qVar"state", 7160 Let(Var("v",F64), 7161 Bop(Add, 7162 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7163 Mop(SE F64,Var("offs",FTy 12))), 7164 Let(TP[Var("v0",OTy F64),qVar"s"], 7165 Apply 7166 (Call 7167 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7168 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7169 LC("Read",CTy"accessType")]),qVar"state"), 7170 CS(Var("v0",OTy F64), 7171 [(Mop(Some,Var("pAddr",F64)), 7172 Apply 7173 (Call 7174 ("write'GPR",ATy(qTy,qTy), 7175 TP[Mop(SE F64, 7176 EX(Apply 7177 (Call 7178 ("rawReadData",ATy(qTy,F64), 7179 Var("pAddr",F64)),qVar"s"),LN 7, 7180 LN 0,F8)),Var("rd",FTy 5)]),qVar"s")), 7181 (LO F64, 7182 Apply 7183 (Call 7184 ("signalAddressException",ATy(qTy,qTy), 7185 TP[LC("Load_Fault",CTy"ExceptionType"), 7186 Var("v",F64)]),qVar"s"))]))))) 7187; 7188val dfn'LBU_def = Def 7189 ("dfn'LBU",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 7190 Close 7191 (qVar"state", 7192 Let(Var("v",F64), 7193 Bop(Add, 7194 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7195 Mop(SE F64,Var("offs",FTy 12))), 7196 Let(TP[Var("v0",OTy F64),qVar"s"], 7197 Apply 7198 (Call 7199 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7200 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7201 LC("Read",CTy"accessType")]),qVar"state"), 7202 CS(Var("v0",OTy F64), 7203 [(Mop(Some,Var("pAddr",F64)), 7204 Apply 7205 (Call 7206 ("write'GPR",ATy(qTy,qTy), 7207 TP[Mop(Cast F64, 7208 EX(Apply 7209 (Call 7210 ("rawReadData",ATy(qTy,F64), 7211 Var("pAddr",F64)),qVar"s"),LN 7, 7212 LN 0,F8)),Var("rd",FTy 5)]),qVar"s")), 7213 (LO F64, 7214 Apply 7215 (Call 7216 ("signalAddressException",ATy(qTy,qTy), 7217 TP[LC("Load_Fault",CTy"ExceptionType"), 7218 Var("v",F64)]),qVar"s"))]))))) 7219; 7220val dfn'LD_def = Def 7221 ("dfn'LD",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 7222 Close 7223 (qVar"state", 7224 Let(TP[bVar"v",qVar"s"], 7225 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 7226 ITE(bVar"v", 7227 Apply 7228 (Call 7229 ("signalException",ATy(qTy,qTy), 7230 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 7231 Let(Var("v",F64), 7232 Bop(Add, 7233 Apply 7234 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"s"), 7235 Mop(SE F64,Var("offs",FTy 12))), 7236 Let(TP[Var("v0",OTy F64),qVar"s"], 7237 Apply 7238 (Call 7239 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7240 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7241 LC("Read",CTy"accessType")]),qVar"s"), 7242 CS(Var("v0",OTy F64), 7243 [(Mop(Some,Var("pAddr",F64)), 7244 Apply 7245 (Call 7246 ("write'GPR",ATy(qTy,qTy), 7247 TP[Apply 7248 (Call 7249 ("rawReadData",ATy(qTy,F64), 7250 Var("pAddr",F64)),qVar"s"), 7251 Var("rd",FTy 5)]),qVar"s")), 7252 (LO F64, 7253 Apply 7254 (Call 7255 ("signalAddressException",ATy(qTy,qTy), 7256 TP[LC("Load_Fault",CTy"ExceptionType"), 7257 Var("v",F64)]),qVar"s"))]))))))) 7258; 7259val dfn'SW_def = Def 7260 ("dfn'SW",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 7261 Close 7262 (qVar"state", 7263 Let(Var("v",F64), 7264 Bop(Add, 7265 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7266 Mop(SE F64,Var("offs",FTy 12))), 7267 Let(TP[Var("v0",OTy F64),qVar"s"], 7268 Apply 7269 (Call 7270 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7271 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7272 LC("Write",CTy"accessType")]),qVar"state"), 7273 CS(Var("v0",OTy F64), 7274 [(Mop(Some,Var("pAddr",F64)), 7275 Apply 7276 (Call 7277 ("rawWriteData",ATy(qTy,qTy), 7278 TP[Var("pAddr",F64), 7279 Apply 7280 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 7281 qVar"s"),LN 4]),qVar"s")), 7282 (LO F64, 7283 Apply 7284 (Call 7285 ("signalAddressException",ATy(qTy,qTy), 7286 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7287 Var("v",F64)]),qVar"s"))]))))) 7288; 7289val dfn'SH_def = Def 7290 ("dfn'SH",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 7291 Close 7292 (qVar"state", 7293 Let(Var("v",F64), 7294 Bop(Add, 7295 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7296 Mop(SE F64,Var("offs",FTy 12))), 7297 Let(TP[Var("v0",OTy F64),qVar"s"], 7298 Apply 7299 (Call 7300 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7301 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7302 LC("Write",CTy"accessType")]),qVar"state"), 7303 CS(Var("v0",OTy F64), 7304 [(Mop(Some,Var("pAddr",F64)), 7305 Apply 7306 (Call 7307 ("rawWriteData",ATy(qTy,qTy), 7308 TP[Var("pAddr",F64), 7309 Apply 7310 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 7311 qVar"s"),LN 2]),qVar"s")), 7312 (LO F64, 7313 Apply 7314 (Call 7315 ("signalAddressException",ATy(qTy,qTy), 7316 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7317 Var("v",F64)]),qVar"s"))]))))) 7318; 7319val dfn'SB_def = Def 7320 ("dfn'SB",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 7321 Close 7322 (qVar"state", 7323 Let(Var("v",F64), 7324 Bop(Add, 7325 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7326 Mop(SE F64,Var("offs",FTy 12))), 7327 Let(TP[Var("v0",OTy F64),qVar"s"], 7328 Apply 7329 (Call 7330 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7331 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7332 LC("Write",CTy"accessType")]),qVar"state"), 7333 CS(Var("v0",OTy F64), 7334 [(Mop(Some,Var("pAddr",F64)), 7335 Apply 7336 (Call 7337 ("rawWriteData",ATy(qTy,qTy), 7338 TP[Var("pAddr",F64), 7339 Apply 7340 (Call("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 7341 qVar"s"),LN 1]),qVar"s")), 7342 (LO F64, 7343 Apply 7344 (Call 7345 ("signalAddressException",ATy(qTy,qTy), 7346 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7347 Var("v",F64)]),qVar"s"))]))))) 7348; 7349val dfn'SD_def = Def 7350 ("dfn'SD",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 7351 Close 7352 (qVar"state", 7353 Let(TP[bVar"v",qVar"s"], 7354 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 7355 ITE(bVar"v", 7356 Apply 7357 (Call 7358 ("signalException",ATy(qTy,qTy), 7359 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 7360 Let(Var("v",F64), 7361 Bop(Add, 7362 Apply 7363 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"s"), 7364 Mop(SE F64,Var("offs",FTy 12))), 7365 Let(TP[Var("v0",OTy F64),qVar"s"], 7366 Apply 7367 (Call 7368 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7369 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7370 LC("Write",CTy"accessType")]),qVar"s"), 7371 CS(Var("v0",OTy F64), 7372 [(Mop(Some,Var("pAddr",F64)), 7373 Apply 7374 (Call 7375 ("rawWriteData",ATy(qTy,qTy), 7376 TP[Var("pAddr",F64), 7377 Apply 7378 (Call 7379 ("GPR",ATy(qTy,F64), 7380 Var("rs2",FTy 5)),qVar"s"),LN 8]), 7381 qVar"s")), 7382 (LO F64, 7383 Apply 7384 (Call 7385 ("signalAddressException",ATy(qTy,qTy), 7386 TP[LC("Store_AMO_Fault", 7387 CTy"ExceptionType"),Var("v",F64)]), 7388 qVar"s"))]))))))) 7389; 7390val dfn'FENCE_def = Def 7391 ("dfn'FENCE", 7392 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("pred",F4),Var("succ",F4)],LU) 7393; 7394val dfn'FENCE_I_def = Def 7395 ("dfn'FENCE_I",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)],LU) 7396; 7397val dfn'LR_W_def = Def 7398 ("dfn'LR_W", 7399 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5)], 7400 Close 7401 (qVar"state", 7402 Let(Var("v",F64), 7403 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7404 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 7405 Apply 7406 (Call 7407 ("signalAddressException",ATy(qTy,qTy), 7408 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7409 Var("v",F64)]),qVar"state"), 7410 Let(TP[Var("v0",OTy F64),qVar"s"], 7411 Apply 7412 (Call 7413 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7414 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7415 LC("Read",CTy"accessType")]),qVar"state"), 7416 CS(Var("v0",OTy F64), 7417 [(Mop(Some,Var("pAddr",F64)), 7418 Apply 7419 (Call 7420 ("write'ReserveLoad",ATy(qTy,qTy), 7421 Mop(Some,Var("v",F64))), 7422 Apply 7423 (Call 7424 ("write'GPR",ATy(qTy,qTy), 7425 TP[Mop(SE F64, 7426 EX(Apply 7427 (Call 7428 ("rawReadData", 7429 ATy(qTy,F64), 7430 Var("pAddr",F64)),qVar"s"), 7431 LN 31,LN 0,F32)),Var("rd",FTy 5)]), 7432 qVar"s"))), 7433 (LO F64, 7434 Apply 7435 (Call 7436 ("signalAddressException",ATy(qTy,qTy), 7437 TP[LC("Load_Fault",CTy"ExceptionType"), 7438 Var("v",F64)]),qVar"s"))])))))) 7439; 7440val dfn'LR_D_def = Def 7441 ("dfn'LR_D", 7442 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5)], 7443 Close 7444 (qVar"state", 7445 Let(TP[bVar"v",qVar"s"], 7446 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 7447 ITE(bVar"v", 7448 Apply 7449 (Call 7450 ("signalException",ATy(qTy,qTy), 7451 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 7452 Let(Var("v",F64), 7453 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"s"), 7454 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 7455 Apply 7456 (Call 7457 ("signalAddressException",ATy(qTy,qTy), 7458 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7459 Var("v",F64)]),qVar"s"), 7460 Let(TP[Var("v0",OTy F64),qVar"s"], 7461 Apply 7462 (Call 7463 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7464 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7465 LC("Read",CTy"accessType")]),qVar"s"), 7466 CS(Var("v0",OTy F64), 7467 [(Mop(Some,Var("pAddr",F64)), 7468 Apply 7469 (Call 7470 ("write'ReserveLoad",ATy(qTy,qTy), 7471 Mop(Some,Var("v",F64))), 7472 Apply 7473 (Call 7474 ("write'GPR",ATy(qTy,qTy), 7475 TP[Apply 7476 (Call 7477 ("rawReadData", 7478 ATy(qTy,F64), 7479 Var("pAddr",F64)),qVar"s"), 7480 Var("rd",FTy 5)]),qVar"s"))), 7481 (LO F64, 7482 Apply 7483 (Call 7484 ("signalAddressException", 7485 ATy(qTy,qTy), 7486 TP[LC("Load_Fault",CTy"ExceptionType"), 7487 Var("v",F64)]),qVar"s"))])))))))) 7488; 7489val dfn'SC_W_def = Def 7490 ("dfn'SC_W", 7491 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7492 Var("rs2",FTy 5)], 7493 Close 7494 (qVar"state", 7495 Let(Var("v",F64), 7496 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7497 ITB([(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 7498 Apply 7499 (Call 7500 ("signalAddressException",ATy(qTy,qTy), 7501 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7502 Var("v",F64)]),qVar"state")), 7503 (Mop(Not, 7504 Apply 7505 (Call 7506 ("matchLoadReservation",ATy(qTy,bTy),Var("v",F64)), 7507 qVar"state")), 7508 Apply 7509 (Call 7510 ("write'GPR",ATy(qTy,qTy), 7511 TP[LW(1,64),Var("rd",FTy 5)]),qVar"state"))], 7512 Let(TP[Var("v0",OTy F64),qVar"s"], 7513 Apply 7514 (Call 7515 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7516 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7517 LC("Read",CTy"accessType")]),qVar"state"), 7518 CS(Var("v0",OTy F64), 7519 [(Mop(Some,Var("pAddr",F64)), 7520 Apply 7521 (Call("write'ReserveLoad",ATy(qTy,qTy),LO F64), 7522 Apply 7523 (Call 7524 ("write'GPR",ATy(qTy,qTy), 7525 TP[LW(0,64),Var("rd",FTy 5)]), 7526 Apply 7527 (Call 7528 ("rawWriteData",ATy(qTy,qTy), 7529 TP[Var("pAddr",F64), 7530 Apply 7531 (Call 7532 ("GPR",ATy(qTy,F64), 7533 Var("rs2",FTy 5)),qVar"s"), 7534 LN 4]),qVar"s")))), 7535 (LO F64, 7536 Apply 7537 (Call 7538 ("signalAddressException",ATy(qTy,qTy), 7539 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7540 Var("v",F64)]),qVar"s"))])))))) 7541; 7542val dfn'SC_D_def = Def 7543 ("dfn'SC_D", 7544 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7545 Var("rs2",FTy 5)], 7546 Close 7547 (qVar"state", 7548 Let(TP[bVar"v",qVar"s"], 7549 Apply(Call("in32BitMode",ATy(qTy,PTy(bTy,qTy)),LU),qVar"state"), 7550 ITE(bVar"v", 7551 Apply 7552 (Call 7553 ("signalException",ATy(qTy,qTy), 7554 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"), 7555 Let(Var("v",F64), 7556 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"s"), 7557 ITB([(Mop(Not, 7558 EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 7559 Apply 7560 (Call 7561 ("signalAddressException",ATy(qTy,qTy), 7562 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7563 Var("v",F64)]),qVar"s")), 7564 (Mop(Not, 7565 Apply 7566 (Call 7567 ("matchLoadReservation",ATy(qTy,bTy), 7568 Var("v",F64)),qVar"s")), 7569 Apply 7570 (Call 7571 ("write'GPR",ATy(qTy,qTy), 7572 TP[LW(1,64),Var("rd",FTy 5)]),qVar"s"))], 7573 Let(TP[Var("v0",OTy F64),qVar"s"], 7574 Apply 7575 (Call 7576 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7577 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7578 LC("Read",CTy"accessType")]),qVar"s"), 7579 CS(Var("v0",OTy F64), 7580 [(Mop(Some,Var("pAddr",F64)), 7581 Apply 7582 (Call 7583 ("write'ReserveLoad",ATy(qTy,qTy), 7584 LO F64), 7585 Apply 7586 (Call 7587 ("write'GPR",ATy(qTy,qTy), 7588 TP[LW(0,64),Var("rd",FTy 5)]), 7589 Apply 7590 (Call 7591 ("rawWriteData",ATy(qTy,qTy), 7592 TP[Var("pAddr",F64), 7593 Apply 7594 (Call 7595 ("GPR",ATy(qTy,F64), 7596 Var("rs2",FTy 5)), 7597 qVar"s"),LN 8]),qVar"s")))), 7598 (LO F64, 7599 Apply 7600 (Call 7601 ("signalAddressException", 7602 ATy(qTy,qTy), 7603 TP[LC("Store_AMO_Fault", 7604 CTy"ExceptionType"), 7605 Var("v",F64)]),qVar"s"))])))))))) 7606; 7607val dfn'AMOSWAP_W_def = Def 7608 ("dfn'AMOSWAP_W", 7609 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7610 Var("rs2",FTy 5)], 7611 Close 7612 (qVar"state", 7613 Let(Var("v",F64), 7614 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7615 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 7616 Apply 7617 (Call 7618 ("signalAddressException",ATy(qTy,qTy), 7619 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7620 Var("v",F64)]),qVar"state"), 7621 Let(TP[Var("v0",OTy F64),qVar"s"], 7622 Apply 7623 (Call 7624 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7625 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7626 LC("Write",CTy"accessType")]),qVar"state"), 7627 CS(Var("v0",OTy F64), 7628 [(Mop(Some,Var("pAddr",F64)), 7629 Apply 7630 (Call 7631 ("rawWriteData",ATy(qTy,qTy), 7632 TP[Var("pAddr",F64), 7633 Apply 7634 (Call 7635 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 7636 qVar"s"),LN 4]), 7637 Apply 7638 (Call 7639 ("write'GPR",ATy(qTy,qTy), 7640 TP[Mop(SE F64, 7641 EX(Apply 7642 (Call 7643 ("rawReadData", 7644 ATy(qTy,F64), 7645 Var("pAddr",F64)),qVar"s"), 7646 LN 31,LN 0,F32)),Var("rd",FTy 5)]), 7647 qVar"s"))), 7648 (LO F64, 7649 Apply 7650 (Call 7651 ("signalAddressException",ATy(qTy,qTy), 7652 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7653 Var("v",F64)]),qVar"s"))])))))) 7654; 7655val dfn'AMOSWAP_D_def = Def 7656 ("dfn'AMOSWAP_D", 7657 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7658 Var("rs2",FTy 5)], 7659 Close 7660 (qVar"state", 7661 Let(Var("v",F64), 7662 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7663 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 7664 Apply 7665 (Call 7666 ("signalAddressException",ATy(qTy,qTy), 7667 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7668 Var("v",F64)]),qVar"state"), 7669 Let(TP[Var("v0",OTy F64),qVar"s"], 7670 Apply 7671 (Call 7672 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7673 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7674 LC("Write",CTy"accessType")]),qVar"state"), 7675 CS(Var("v0",OTy F64), 7676 [(Mop(Some,Var("pAddr",F64)), 7677 Apply 7678 (Call 7679 ("rawWriteData",ATy(qTy,qTy), 7680 TP[Var("pAddr",F64), 7681 Apply 7682 (Call 7683 ("GPR",ATy(qTy,F64),Var("rs2",FTy 5)), 7684 qVar"s"),LN 8]), 7685 Apply 7686 (Call 7687 ("write'GPR",ATy(qTy,qTy), 7688 TP[Apply 7689 (Call 7690 ("rawReadData",ATy(qTy,F64), 7691 Var("pAddr",F64)),qVar"s"), 7692 Var("rd",FTy 5)]),qVar"s"))), 7693 (LO F64, 7694 Apply 7695 (Call 7696 ("signalAddressException",ATy(qTy,qTy), 7697 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7698 Var("v",F64)]),qVar"s"))])))))) 7699; 7700val dfn'AMOADD_W_def = Def 7701 ("dfn'AMOADD_W", 7702 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7703 Var("rs2",FTy 5)], 7704 Close 7705 (qVar"state", 7706 Let(Var("v",F64), 7707 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7708 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 7709 Apply 7710 (Call 7711 ("signalAddressException",ATy(qTy,qTy), 7712 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7713 Var("v",F64)]),qVar"state"), 7714 Let(TP[Var("v0",OTy F64),qVar"s"], 7715 Apply 7716 (Call 7717 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7718 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7719 LC("Write",CTy"accessType")]),qVar"state"), 7720 CS(Var("v0",OTy F64), 7721 [(Mop(Some,Var("pAddr",F64)), 7722 Let(Var("v",F64), 7723 Mop(SE F64, 7724 EX(Apply 7725 (Call 7726 ("rawReadData",ATy(qTy,F64), 7727 Var("pAddr",F64)),qVar"s"),LN 31, 7728 LN 0,F32)), 7729 Apply 7730 (Call 7731 ("rawWriteData",ATy(qTy,qTy), 7732 TP[Var("pAddr",F64), 7733 Bop(Add, 7734 Apply 7735 (Call 7736 ("GPR",ATy(qTy,F64), 7737 Var("rs2",FTy 5)),qVar"s"), 7738 Var("v",F64)),LN 4]), 7739 Apply 7740 (Call 7741 ("write'GPR",ATy(qTy,qTy), 7742 TP[Var("v",F64),Var("rd",FTy 5)]), 7743 qVar"s")))), 7744 (LO F64, 7745 Apply 7746 (Call 7747 ("signalAddressException",ATy(qTy,qTy), 7748 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7749 Var("v",F64)]),qVar"s"))])))))) 7750; 7751val dfn'AMOADD_D_def = Def 7752 ("dfn'AMOADD_D", 7753 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7754 Var("rs2",FTy 5)], 7755 Close 7756 (qVar"state", 7757 Let(Var("v",F64), 7758 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7759 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 7760 Apply 7761 (Call 7762 ("signalAddressException",ATy(qTy,qTy), 7763 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7764 Var("v",F64)]),qVar"state"), 7765 Let(TP[Var("v0",OTy F64),qVar"s"], 7766 Apply 7767 (Call 7768 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7769 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7770 LC("Write",CTy"accessType")]),qVar"state"), 7771 CS(Var("v0",OTy F64), 7772 [(Mop(Some,Var("pAddr",F64)), 7773 Let(Var("v",F64), 7774 Apply 7775 (Call 7776 ("rawReadData",ATy(qTy,F64), 7777 Var("pAddr",F64)),qVar"s"), 7778 Apply 7779 (Call 7780 ("rawWriteData",ATy(qTy,qTy), 7781 TP[Var("pAddr",F64), 7782 Bop(Add, 7783 Apply 7784 (Call 7785 ("GPR",ATy(qTy,F64), 7786 Var("rs2",FTy 5)),qVar"s"), 7787 Var("v",F64)),LN 8]), 7788 Apply 7789 (Call 7790 ("write'GPR",ATy(qTy,qTy), 7791 TP[Var("v",F64),Var("rd",FTy 5)]), 7792 qVar"s")))), 7793 (LO F64, 7794 Apply 7795 (Call 7796 ("signalAddressException",ATy(qTy,qTy), 7797 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7798 Var("v",F64)]),qVar"s"))])))))) 7799; 7800val dfn'AMOXOR_W_def = Def 7801 ("dfn'AMOXOR_W", 7802 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7803 Var("rs2",FTy 5)], 7804 Close 7805 (qVar"state", 7806 Let(Var("v",F64), 7807 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7808 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 7809 Apply 7810 (Call 7811 ("signalAddressException",ATy(qTy,qTy), 7812 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7813 Var("v",F64)]),qVar"state"), 7814 Let(TP[Var("v0",OTy F64),qVar"s"], 7815 Apply 7816 (Call 7817 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7818 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7819 LC("Write",CTy"accessType")]),qVar"state"), 7820 CS(Var("v0",OTy F64), 7821 [(Mop(Some,Var("pAddr",F64)), 7822 Let(Var("v",F64), 7823 Mop(SE F64, 7824 EX(Apply 7825 (Call 7826 ("rawReadData",ATy(qTy,F64), 7827 Var("pAddr",F64)),qVar"s"),LN 31, 7828 LN 0,F32)), 7829 Apply 7830 (Call 7831 ("rawWriteData",ATy(qTy,qTy), 7832 TP[Var("pAddr",F64), 7833 Bop(BXor, 7834 Apply 7835 (Call 7836 ("GPR",ATy(qTy,F64), 7837 Var("rs2",FTy 5)),qVar"s"), 7838 Var("v",F64)),LN 4]), 7839 Apply 7840 (Call 7841 ("write'GPR",ATy(qTy,qTy), 7842 TP[Var("v",F64),Var("rd",FTy 5)]), 7843 qVar"s")))), 7844 (LO F64, 7845 Apply 7846 (Call 7847 ("signalAddressException",ATy(qTy,qTy), 7848 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7849 Var("v",F64)]),qVar"s"))])))))) 7850; 7851val dfn'AMOXOR_D_def = Def 7852 ("dfn'AMOXOR_D", 7853 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7854 Var("rs2",FTy 5)], 7855 Close 7856 (qVar"state", 7857 Let(Var("v",F64), 7858 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7859 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 7860 Apply 7861 (Call 7862 ("signalAddressException",ATy(qTy,qTy), 7863 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7864 Var("v",F64)]),qVar"state"), 7865 Let(TP[Var("v0",OTy F64),qVar"s"], 7866 Apply 7867 (Call 7868 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7869 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7870 LC("Write",CTy"accessType")]),qVar"state"), 7871 CS(Var("v0",OTy F64), 7872 [(Mop(Some,Var("pAddr",F64)), 7873 Let(Var("v",F64), 7874 Apply 7875 (Call 7876 ("rawReadData",ATy(qTy,F64), 7877 Var("pAddr",F64)),qVar"s"), 7878 Apply 7879 (Call 7880 ("rawWriteData",ATy(qTy,qTy), 7881 TP[Var("pAddr",F64), 7882 Bop(BXor, 7883 Apply 7884 (Call 7885 ("GPR",ATy(qTy,F64), 7886 Var("rs2",FTy 5)),qVar"s"), 7887 Var("v",F64)),LN 8]), 7888 Apply 7889 (Call 7890 ("write'GPR",ATy(qTy,qTy), 7891 TP[Var("v",F64),Var("rd",FTy 5)]), 7892 qVar"s")))), 7893 (LO F64, 7894 Apply 7895 (Call 7896 ("signalAddressException",ATy(qTy,qTy), 7897 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7898 Var("v",F64)]),qVar"s"))])))))) 7899; 7900val dfn'AMOAND_W_def = Def 7901 ("dfn'AMOAND_W", 7902 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7903 Var("rs2",FTy 5)], 7904 Close 7905 (qVar"state", 7906 Let(Var("v",F64), 7907 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7908 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 7909 Apply 7910 (Call 7911 ("signalAddressException",ATy(qTy,qTy), 7912 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7913 Var("v",F64)]),qVar"state"), 7914 Let(TP[Var("v0",OTy F64),qVar"s"], 7915 Apply 7916 (Call 7917 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7918 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7919 LC("Write",CTy"accessType")]),qVar"state"), 7920 CS(Var("v0",OTy F64), 7921 [(Mop(Some,Var("pAddr",F64)), 7922 Let(Var("v",F64), 7923 Mop(SE F64, 7924 EX(Apply 7925 (Call 7926 ("rawReadData",ATy(qTy,F64), 7927 Var("pAddr",F64)),qVar"s"),LN 31, 7928 LN 0,F32)), 7929 Apply 7930 (Call 7931 ("rawWriteData",ATy(qTy,qTy), 7932 TP[Var("pAddr",F64), 7933 Bop(BAnd, 7934 Apply 7935 (Call 7936 ("GPR",ATy(qTy,F64), 7937 Var("rs2",FTy 5)),qVar"s"), 7938 Var("v",F64)),LN 4]), 7939 Apply 7940 (Call 7941 ("write'GPR",ATy(qTy,qTy), 7942 TP[Var("v",F64),Var("rd",FTy 5)]), 7943 qVar"s")))), 7944 (LO F64, 7945 Apply 7946 (Call 7947 ("signalAddressException",ATy(qTy,qTy), 7948 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7949 Var("v",F64)]),qVar"s"))])))))) 7950; 7951val dfn'AMOAND_D_def = Def 7952 ("dfn'AMOAND_D", 7953 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 7954 Var("rs2",FTy 5)], 7955 Close 7956 (qVar"state", 7957 Let(Var("v",F64), 7958 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 7959 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 7960 Apply 7961 (Call 7962 ("signalAddressException",ATy(qTy,qTy), 7963 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 7964 Var("v",F64)]),qVar"state"), 7965 Let(TP[Var("v0",OTy F64),qVar"s"], 7966 Apply 7967 (Call 7968 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 7969 TP[Var("v",F64),LC("Data",CTy"fetchType"), 7970 LC("Write",CTy"accessType")]),qVar"state"), 7971 CS(Var("v0",OTy F64), 7972 [(Mop(Some,Var("pAddr",F64)), 7973 Let(Var("v",F64), 7974 Apply 7975 (Call 7976 ("rawReadData",ATy(qTy,F64), 7977 Var("pAddr",F64)),qVar"s"), 7978 Apply 7979 (Call 7980 ("rawWriteData",ATy(qTy,qTy), 7981 TP[Var("pAddr",F64), 7982 Bop(BAnd, 7983 Apply 7984 (Call 7985 ("GPR",ATy(qTy,F64), 7986 Var("rs2",FTy 5)),qVar"s"), 7987 Var("v",F64)),LN 8]), 7988 Apply 7989 (Call 7990 ("write'GPR",ATy(qTy,qTy), 7991 TP[Var("v",F64),Var("rd",FTy 5)]), 7992 qVar"s")))), 7993 (LO F64, 7994 Apply 7995 (Call 7996 ("signalAddressException",ATy(qTy,qTy), 7997 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 7998 Var("v",F64)]),qVar"s"))])))))) 7999; 8000val dfn'AMOOR_W_def = Def 8001 ("dfn'AMOOR_W", 8002 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8003 Var("rs2",FTy 5)], 8004 Close 8005 (qVar"state", 8006 Let(Var("v",F64), 8007 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8008 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 8009 Apply 8010 (Call 8011 ("signalAddressException",ATy(qTy,qTy), 8012 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8013 Var("v",F64)]),qVar"state"), 8014 Let(TP[Var("v0",OTy F64),qVar"s"], 8015 Apply 8016 (Call 8017 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8018 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8019 LC("Write",CTy"accessType")]),qVar"state"), 8020 CS(Var("v0",OTy F64), 8021 [(Mop(Some,Var("pAddr",F64)), 8022 Let(Var("v",F64), 8023 Mop(SE F64, 8024 EX(Apply 8025 (Call 8026 ("rawReadData",ATy(qTy,F64), 8027 Var("pAddr",F64)),qVar"s"),LN 31, 8028 LN 0,F32)), 8029 Apply 8030 (Call 8031 ("rawWriteData",ATy(qTy,qTy), 8032 TP[Var("pAddr",F64), 8033 Bop(BOr, 8034 Apply 8035 (Call 8036 ("GPR",ATy(qTy,F64), 8037 Var("rs2",FTy 5)),qVar"s"), 8038 Var("v",F64)),LN 4]), 8039 Apply 8040 (Call 8041 ("write'GPR",ATy(qTy,qTy), 8042 TP[Var("v",F64),Var("rd",FTy 5)]), 8043 qVar"s")))), 8044 (LO F64, 8045 Apply 8046 (Call 8047 ("signalAddressException",ATy(qTy,qTy), 8048 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8049 Var("v",F64)]),qVar"s"))])))))) 8050; 8051val dfn'AMOOR_D_def = Def 8052 ("dfn'AMOOR_D", 8053 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8054 Var("rs2",FTy 5)], 8055 Close 8056 (qVar"state", 8057 Let(Var("v",F64), 8058 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8059 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 8060 Apply 8061 (Call 8062 ("signalAddressException",ATy(qTy,qTy), 8063 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8064 Var("v",F64)]),qVar"state"), 8065 Let(TP[Var("v0",OTy F64),qVar"s"], 8066 Apply 8067 (Call 8068 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8069 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8070 LC("Write",CTy"accessType")]),qVar"state"), 8071 CS(Var("v0",OTy F64), 8072 [(Mop(Some,Var("pAddr",F64)), 8073 Let(Var("v",F64), 8074 Apply 8075 (Call 8076 ("rawReadData",ATy(qTy,F64), 8077 Var("pAddr",F64)),qVar"s"), 8078 Apply 8079 (Call 8080 ("rawWriteData",ATy(qTy,qTy), 8081 TP[Var("pAddr",F64), 8082 Bop(BOr, 8083 Apply 8084 (Call 8085 ("GPR",ATy(qTy,F64), 8086 Var("rs2",FTy 5)),qVar"s"), 8087 Var("v",F64)),LN 8]), 8088 Apply 8089 (Call 8090 ("write'GPR",ATy(qTy,qTy), 8091 TP[Var("v",F64),Var("rd",FTy 5)]), 8092 qVar"s")))), 8093 (LO F64, 8094 Apply 8095 (Call 8096 ("signalAddressException",ATy(qTy,qTy), 8097 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8098 Var("v",F64)]),qVar"s"))])))))) 8099; 8100val dfn'AMOMIN_W_def = Def 8101 ("dfn'AMOMIN_W", 8102 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8103 Var("rs2",FTy 5)], 8104 Close 8105 (qVar"state", 8106 Let(Var("v",F64), 8107 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8108 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 8109 Apply 8110 (Call 8111 ("signalAddressException",ATy(qTy,qTy), 8112 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8113 Var("v",F64)]),qVar"state"), 8114 Let(TP[Var("v0",OTy F64),qVar"s"], 8115 Apply 8116 (Call 8117 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8118 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8119 LC("Write",CTy"accessType")]),qVar"state"), 8120 CS(Var("v0",OTy F64), 8121 [(Mop(Some,Var("pAddr",F64)), 8122 Let(Var("v",F64), 8123 Mop(SE F64, 8124 EX(Apply 8125 (Call 8126 ("rawReadData",ATy(qTy,F64), 8127 Var("pAddr",F64)),qVar"s"),LN 31, 8128 LN 0,F32)), 8129 Apply 8130 (Call 8131 ("rawWriteData",ATy(qTy,qTy), 8132 TP[Var("pAddr",F64), 8133 Mop(Smin, 8134 TP[Apply 8135 (Call 8136 ("GPR",ATy(qTy,F64), 8137 Var("rs2",FTy 5)),qVar"s"), 8138 Var("v",F64)]),LN 4]), 8139 Apply 8140 (Call 8141 ("write'GPR",ATy(qTy,qTy), 8142 TP[Var("v",F64),Var("rd",FTy 5)]), 8143 qVar"s")))), 8144 (LO F64, 8145 Apply 8146 (Call 8147 ("signalAddressException",ATy(qTy,qTy), 8148 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8149 Var("v",F64)]),qVar"s"))])))))) 8150; 8151val dfn'AMOMIN_D_def = Def 8152 ("dfn'AMOMIN_D", 8153 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8154 Var("rs2",FTy 5)], 8155 Close 8156 (qVar"state", 8157 Let(Var("v",F64), 8158 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8159 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 8160 Apply 8161 (Call 8162 ("signalAddressException",ATy(qTy,qTy), 8163 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8164 Var("v",F64)]),qVar"state"), 8165 Let(TP[Var("v0",OTy F64),qVar"s"], 8166 Apply 8167 (Call 8168 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8169 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8170 LC("Write",CTy"accessType")]),qVar"state"), 8171 CS(Var("v0",OTy F64), 8172 [(Mop(Some,Var("pAddr",F64)), 8173 Let(Var("v",F64), 8174 Apply 8175 (Call 8176 ("rawReadData",ATy(qTy,F64), 8177 Var("pAddr",F64)),qVar"s"), 8178 Apply 8179 (Call 8180 ("rawWriteData",ATy(qTy,qTy), 8181 TP[Var("pAddr",F64), 8182 Mop(Smin, 8183 TP[Apply 8184 (Call 8185 ("GPR",ATy(qTy,F64), 8186 Var("rs2",FTy 5)),qVar"s"), 8187 Var("v",F64)]),LN 8]), 8188 Apply 8189 (Call 8190 ("write'GPR",ATy(qTy,qTy), 8191 TP[Var("v",F64),Var("rd",FTy 5)]), 8192 qVar"s")))), 8193 (LO F64, 8194 Apply 8195 (Call 8196 ("signalAddressException",ATy(qTy,qTy), 8197 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8198 Var("v",F64)]),qVar"s"))])))))) 8199; 8200val dfn'AMOMAX_W_def = Def 8201 ("dfn'AMOMAX_W", 8202 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8203 Var("rs2",FTy 5)], 8204 Close 8205 (qVar"state", 8206 Let(Var("v",F64), 8207 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8208 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 8209 Apply 8210 (Call 8211 ("signalAddressException",ATy(qTy,qTy), 8212 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8213 Var("v",F64)]),qVar"state"), 8214 Let(TP[Var("v0",OTy F64),qVar"s"], 8215 Apply 8216 (Call 8217 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8218 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8219 LC("Write",CTy"accessType")]),qVar"state"), 8220 CS(Var("v0",OTy F64), 8221 [(Mop(Some,Var("pAddr",F64)), 8222 Let(Var("v",F64), 8223 Mop(SE F64, 8224 EX(Apply 8225 (Call 8226 ("rawReadData",ATy(qTy,F64), 8227 Var("pAddr",F64)),qVar"s"),LN 31, 8228 LN 0,F32)), 8229 Apply 8230 (Call 8231 ("rawWriteData",ATy(qTy,qTy), 8232 TP[Var("pAddr",F64), 8233 Mop(Smax, 8234 TP[Apply 8235 (Call 8236 ("GPR",ATy(qTy,F64), 8237 Var("rs2",FTy 5)),qVar"s"), 8238 Var("v",F64)]),LN 4]), 8239 Apply 8240 (Call 8241 ("write'GPR",ATy(qTy,qTy), 8242 TP[Var("v",F64),Var("rd",FTy 5)]), 8243 qVar"s")))), 8244 (LO F64, 8245 Apply 8246 (Call 8247 ("signalAddressException",ATy(qTy,qTy), 8248 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8249 Var("v",F64)]),qVar"s"))])))))) 8250; 8251val dfn'AMOMAX_D_def = Def 8252 ("dfn'AMOMAX_D", 8253 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8254 Var("rs2",FTy 5)], 8255 Close 8256 (qVar"state", 8257 Let(Var("v",F64), 8258 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8259 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 8260 Apply 8261 (Call 8262 ("signalAddressException",ATy(qTy,qTy), 8263 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8264 Var("v",F64)]),qVar"state"), 8265 Let(TP[Var("v0",OTy F64),qVar"s"], 8266 Apply 8267 (Call 8268 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8269 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8270 LC("Write",CTy"accessType")]),qVar"state"), 8271 CS(Var("v0",OTy F64), 8272 [(Mop(Some,Var("pAddr",F64)), 8273 Let(Var("v",F64), 8274 Apply 8275 (Call 8276 ("rawReadData",ATy(qTy,F64), 8277 Var("pAddr",F64)),qVar"s"), 8278 Apply 8279 (Call 8280 ("rawWriteData",ATy(qTy,qTy), 8281 TP[Var("pAddr",F64), 8282 Mop(Smax, 8283 TP[Apply 8284 (Call 8285 ("GPR",ATy(qTy,F64), 8286 Var("rs2",FTy 5)),qVar"s"), 8287 Var("v",F64)]),LN 8]), 8288 Apply 8289 (Call 8290 ("write'GPR",ATy(qTy,qTy), 8291 TP[Var("v",F64),Var("rd",FTy 5)]), 8292 qVar"s")))), 8293 (LO F64, 8294 Apply 8295 (Call 8296 ("signalAddressException",ATy(qTy,qTy), 8297 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8298 Var("v",F64)]),qVar"s"))])))))) 8299; 8300val dfn'AMOMINU_W_def = Def 8301 ("dfn'AMOMINU_W", 8302 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8303 Var("rs2",FTy 5)], 8304 Close 8305 (qVar"state", 8306 Let(Var("v",F64), 8307 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8308 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 8309 Apply 8310 (Call 8311 ("signalAddressException",ATy(qTy,qTy), 8312 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8313 Var("v",F64)]),qVar"state"), 8314 Let(TP[Var("v0",OTy F64),qVar"s"], 8315 Apply 8316 (Call 8317 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8318 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8319 LC("Write",CTy"accessType")]),qVar"state"), 8320 CS(Var("v0",OTy F64), 8321 [(Mop(Some,Var("pAddr",F64)), 8322 Let(Var("v",F64), 8323 Mop(SE F64, 8324 EX(Apply 8325 (Call 8326 ("rawReadData",ATy(qTy,F64), 8327 Var("pAddr",F64)),qVar"s"),LN 31, 8328 LN 0,F32)), 8329 Apply 8330 (Call 8331 ("rawWriteData",ATy(qTy,qTy), 8332 TP[Var("pAddr",F64), 8333 Mop(Min, 8334 TP[Apply 8335 (Call 8336 ("GPR",ATy(qTy,F64), 8337 Var("rs2",FTy 5)),qVar"s"), 8338 Var("v",F64)]),LN 4]), 8339 Apply 8340 (Call 8341 ("write'GPR",ATy(qTy,qTy), 8342 TP[Var("v",F64),Var("rd",FTy 5)]), 8343 qVar"s")))), 8344 (LO F64, 8345 Apply 8346 (Call 8347 ("signalAddressException",ATy(qTy,qTy), 8348 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8349 Var("v",F64)]),qVar"s"))])))))) 8350; 8351val dfn'AMOMINU_D_def = Def 8352 ("dfn'AMOMINU_D", 8353 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8354 Var("rs2",FTy 5)], 8355 Close 8356 (qVar"state", 8357 Let(Var("v",F64), 8358 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8359 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 8360 Apply 8361 (Call 8362 ("signalAddressException",ATy(qTy,qTy), 8363 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8364 Var("v",F64)]),qVar"state"), 8365 Let(TP[Var("v0",OTy F64),qVar"s"], 8366 Apply 8367 (Call 8368 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8369 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8370 LC("Write",CTy"accessType")]),qVar"state"), 8371 CS(Var("v0",OTy F64), 8372 [(Mop(Some,Var("pAddr",F64)), 8373 Let(Var("v",F64), 8374 Apply 8375 (Call 8376 ("rawReadData",ATy(qTy,F64), 8377 Var("pAddr",F64)),qVar"s"), 8378 Apply 8379 (Call 8380 ("rawWriteData",ATy(qTy,qTy), 8381 TP[Var("pAddr",F64), 8382 Mop(Min, 8383 TP[Apply 8384 (Call 8385 ("GPR",ATy(qTy,F64), 8386 Var("rs2",FTy 5)),qVar"s"), 8387 Var("v",F64)]),LN 8]), 8388 Apply 8389 (Call 8390 ("write'GPR",ATy(qTy,qTy), 8391 TP[Var("v",F64),Var("rd",FTy 5)]), 8392 qVar"s")))), 8393 (LO F64, 8394 Apply 8395 (Call 8396 ("signalAddressException",ATy(qTy,qTy), 8397 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8398 Var("v",F64)]),qVar"s"))])))))) 8399; 8400val dfn'AMOMAXU_W_def = Def 8401 ("dfn'AMOMAXU_W", 8402 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8403 Var("rs2",FTy 5)], 8404 Close 8405 (qVar"state", 8406 Let(Var("v",F64), 8407 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8408 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 8409 Apply 8410 (Call 8411 ("signalAddressException",ATy(qTy,qTy), 8412 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8413 Var("v",F64)]),qVar"state"), 8414 Let(TP[Var("v0",OTy F64),qVar"s"], 8415 Apply 8416 (Call 8417 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8418 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8419 LC("Write",CTy"accessType")]),qVar"state"), 8420 CS(Var("v0",OTy F64), 8421 [(Mop(Some,Var("pAddr",F64)), 8422 Let(Var("v",F64), 8423 Mop(SE F64, 8424 EX(Apply 8425 (Call 8426 ("rawReadData",ATy(qTy,F64), 8427 Var("pAddr",F64)),qVar"s"),LN 31, 8428 LN 0,F32)), 8429 Apply 8430 (Call 8431 ("rawWriteData",ATy(qTy,qTy), 8432 TP[Var("pAddr",F64), 8433 Mop(Max, 8434 TP[Apply 8435 (Call 8436 ("GPR",ATy(qTy,F64), 8437 Var("rs2",FTy 5)),qVar"s"), 8438 Var("v",F64)]),LN 4]), 8439 Apply 8440 (Call 8441 ("write'GPR",ATy(qTy,qTy), 8442 TP[Var("v",F64),Var("rd",FTy 5)]), 8443 qVar"s")))), 8444 (LO F64, 8445 Apply 8446 (Call 8447 ("signalAddressException",ATy(qTy,qTy), 8448 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8449 Var("v",F64)]),qVar"s"))])))))) 8450; 8451val dfn'AMOMAXU_D_def = Def 8452 ("dfn'AMOMAXU_D", 8453 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 8454 Var("rs2",FTy 5)], 8455 Close 8456 (qVar"state", 8457 Let(Var("v",F64), 8458 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8459 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 2,LN 0,FTy 3),LW(0,3))), 8460 Apply 8461 (Call 8462 ("signalAddressException",ATy(qTy,qTy), 8463 TP[LC("AMO_Misaligned",CTy"ExceptionType"), 8464 Var("v",F64)]),qVar"state"), 8465 Let(TP[Var("v0",OTy F64),qVar"s"], 8466 Apply 8467 (Call 8468 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8469 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8470 LC("Write",CTy"accessType")]),qVar"state"), 8471 CS(Var("v0",OTy F64), 8472 [(Mop(Some,Var("pAddr",F64)), 8473 Let(Var("v",F64), 8474 Apply 8475 (Call 8476 ("rawReadData",ATy(qTy,F64), 8477 Var("pAddr",F64)),qVar"s"), 8478 Apply 8479 (Call 8480 ("rawWriteData",ATy(qTy,qTy), 8481 TP[Var("pAddr",F64), 8482 Mop(Max, 8483 TP[Apply 8484 (Call 8485 ("GPR",ATy(qTy,F64), 8486 Var("rs2",FTy 5)),qVar"s"), 8487 Var("v",F64)]),LN 8]), 8488 Apply 8489 (Call 8490 ("write'GPR",ATy(qTy,qTy), 8491 TP[Var("v",F64),Var("rd",FTy 5)]), 8492 qVar"s")))), 8493 (LO F64, 8494 Apply 8495 (Call 8496 ("signalAddressException",ATy(qTy,qTy), 8497 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8498 Var("v",F64)]),qVar"s"))])))))) 8499; 8500val dfn'FLW_def = Def 8501 ("dfn'FLW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 8502 Close 8503 (qVar"state", 8504 Let(Var("v",F64), 8505 Bop(Add, 8506 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8507 Mop(SE F64,Var("offs",FTy 12))), 8508 Let(TP[Var("v0",OTy F64),qVar"s"], 8509 Apply 8510 (Call 8511 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8512 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8513 LC("Read",CTy"accessType")]),qVar"state"), 8514 CS(Var("v0",OTy F64), 8515 [(Mop(Some,Var("pAddr",F64)), 8516 Apply 8517 (Call 8518 ("write'FPRS",ATy(qTy,qTy), 8519 TP[EX(Apply 8520 (Call 8521 ("rawReadData",ATy(qTy,F64), 8522 Var("pAddr",F64)),qVar"s"),LN 31, 8523 LN 0,F32),Var("rd",FTy 5)]),qVar"s")), 8524 (LO F64, 8525 Apply 8526 (Call 8527 ("signalAddressException",ATy(qTy,qTy), 8528 TP[LC("Load_Fault",CTy"ExceptionType"), 8529 Var("v",F64)]),qVar"s"))]))))) 8530; 8531val dfn'FSW_def = Def 8532 ("dfn'FSW",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 8533 Close 8534 (qVar"state", 8535 Let(Var("v",F64), 8536 Bop(Add, 8537 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 8538 Mop(SE F64,Var("offs",FTy 12))), 8539 Let(TP[Var("v0",OTy F64),qVar"s"], 8540 Apply 8541 (Call 8542 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 8543 TP[Var("v",F64),LC("Data",CTy"fetchType"), 8544 LC("Write",CTy"accessType")]),qVar"state"), 8545 CS(Var("v0",OTy F64), 8546 [(Mop(Some,Var("pAddr",F64)), 8547 Apply 8548 (Call 8549 ("rawWriteData",ATy(qTy,qTy), 8550 TP[Var("pAddr",F64), 8551 Mop(Cast F64, 8552 Apply 8553 (Call 8554 ("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)), 8555 qVar"s")),LN 4]),qVar"s")), 8556 (LO F64, 8557 Apply 8558 (Call 8559 ("signalAddressException",ATy(qTy,qTy), 8560 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 8561 Var("v",F64)]),qVar"s"))]))))) 8562; 8563val dfn'FADD_S_def = Def 8564 ("dfn'FADD_S", 8565 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("fprnd",FTy 3)], 8566 Close 8567 (qVar"state", 8568 CS(Apply 8569 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8570 [(Mop(Some,Var("r",rTy)), 8571 Apply 8572 (Call 8573 ("writeFPRS",ATy(qTy,qTy), 8574 TP[Var("rd",FTy 5), 8575 Mop(FPAdd 32, 8576 TP[Var("r",rTy), 8577 Apply 8578 (Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)), 8579 qVar"state"), 8580 Apply 8581 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)), 8582 qVar"state")])]),qVar"state")), 8583 (LO rTy, 8584 Apply 8585 (Call 8586 ("signalException",ATy(qTy,qTy), 8587 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8588; 8589val dfn'FSUB_S_def = Def 8590 ("dfn'FSUB_S", 8591 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("fprnd",FTy 3)], 8592 Close 8593 (qVar"state", 8594 CS(Apply 8595 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8596 [(Mop(Some,Var("r",rTy)), 8597 Apply 8598 (Call 8599 ("writeFPRS",ATy(qTy,qTy), 8600 TP[Var("rd",FTy 5), 8601 Mop(FPSub 32, 8602 TP[Var("r",rTy), 8603 Apply 8604 (Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)), 8605 qVar"state"), 8606 Apply 8607 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)), 8608 qVar"state")])]),qVar"state")), 8609 (LO rTy, 8610 Apply 8611 (Call 8612 ("signalException",ATy(qTy,qTy), 8613 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8614; 8615val dfn'FMUL_S_def = Def 8616 ("dfn'FMUL_S", 8617 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("fprnd",FTy 3)], 8618 Close 8619 (qVar"state", 8620 CS(Apply 8621 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8622 [(Mop(Some,Var("r",rTy)), 8623 Apply 8624 (Call 8625 ("writeFPRS",ATy(qTy,qTy), 8626 TP[Var("rd",FTy 5), 8627 Mop(FPMul 32, 8628 TP[Var("r",rTy), 8629 Apply 8630 (Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)), 8631 qVar"state"), 8632 Apply 8633 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)), 8634 qVar"state")])]),qVar"state")), 8635 (LO rTy, 8636 Apply 8637 (Call 8638 ("signalException",ATy(qTy,qTy), 8639 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8640; 8641val dfn'FDIV_S_def = Def 8642 ("dfn'FDIV_S", 8643 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("fprnd",FTy 3)], 8644 Close 8645 (qVar"state", 8646 CS(Apply 8647 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8648 [(Mop(Some,Var("r",rTy)), 8649 Apply 8650 (Call 8651 ("writeFPRS",ATy(qTy,qTy), 8652 TP[Var("rd",FTy 5), 8653 Mop(FPDiv 32, 8654 TP[Var("r",rTy), 8655 Apply 8656 (Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)), 8657 qVar"state"), 8658 Apply 8659 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)), 8660 qVar"state")])]),qVar"state")), 8661 (LO rTy, 8662 Apply 8663 (Call 8664 ("signalException",ATy(qTy,qTy), 8665 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8666; 8667val dfn'FSQRT_S_def = Def 8668 ("dfn'FSQRT_S",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 8669 Close 8670 (qVar"state", 8671 CS(Apply 8672 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8673 [(Mop(Some,Var("r",rTy)), 8674 Apply 8675 (Call 8676 ("writeFPRS",ATy(qTy,qTy), 8677 TP[Var("rd",FTy 5), 8678 Mop(FPSqrt 32, 8679 TP[Var("r",rTy), 8680 Apply 8681 (Call("FPRS",ATy(qTy,F32),Var("rs",FTy 5)), 8682 qVar"state")])]),qVar"state")), 8683 (LO rTy, 8684 Apply 8685 (Call 8686 ("signalException",ATy(qTy,qTy), 8687 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8688; 8689val dfn'FMIN_S_def = Def 8690 ("dfn'FMIN_S",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 8691 Close 8692 (qVar"state", 8693 Let(Var("v",F32), 8694 Apply(Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)),qVar"state"), 8695 Let(Var("v0",F32), 8696 Apply 8697 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)),qVar"state"), 8698 Apply 8699 (Call 8700 ("writeFPRS",ATy(qTy,qTy), 8701 TP[Var("rd",FTy 5), 8702 CS(Mop(FPCmp 32,TP[Var("v",F32),Var("v0",F32)]), 8703 [(binary_ieeeSyntax.LT_tm,Var("v",F32)), 8704 (binary_ieeeSyntax.EQ_tm,Var("v",F32)), 8705 (binary_ieeeSyntax.GT_tm,Var("v0",F32)), 8706 (binary_ieeeSyntax.UN_tm, 8707 ITB([(Bop(Or, 8708 Bop(Or, 8709 Call 8710 ("FP32_IsSignalingNan",bTy, 8711 Var("v",F32)), 8712 Call 8713 ("FP32_IsSignalingNan",bTy, 8714 Var("v0",F32))), 8715 Bop(And, 8716 EQ(Var("v",F32), 8717 Const 8718 ("RV32_CanonicalNan",F32)), 8719 EQ(Var("v0",F32), 8720 Const 8721 ("RV32_CanonicalNan",F32)))), 8722 Const("RV32_CanonicalNan",F32)), 8723 (EQ(Var("v",F32), 8724 Const("RV32_CanonicalNan",F32)), 8725 Var("v0",F32))],Var("v",F32)))])]), 8726 qVar"state"))))) 8727; 8728val dfn'FMAX_S_def = Def 8729 ("dfn'FMAX_S",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 8730 Close 8731 (qVar"state", 8732 Let(Var("v",F32), 8733 Apply(Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)),qVar"state"), 8734 Let(Var("v0",F32), 8735 Apply 8736 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)),qVar"state"), 8737 Apply 8738 (Call 8739 ("writeFPRS",ATy(qTy,qTy), 8740 TP[Var("rd",FTy 5), 8741 CS(Mop(FPCmp 32,TP[Var("v",F32),Var("v0",F32)]), 8742 [(binary_ieeeSyntax.LT_tm,Var("v0",F32)), 8743 (binary_ieeeSyntax.EQ_tm,Var("v0",F32)), 8744 (binary_ieeeSyntax.GT_tm,Var("v",F32)), 8745 (binary_ieeeSyntax.UN_tm, 8746 ITB([(Bop(Or, 8747 Bop(Or, 8748 Call 8749 ("FP32_IsSignalingNan",bTy, 8750 Var("v",F32)), 8751 Call 8752 ("FP32_IsSignalingNan",bTy, 8753 Var("v0",F32))), 8754 Bop(And, 8755 EQ(Var("v",F32), 8756 Const 8757 ("RV32_CanonicalNan",F32)), 8758 EQ(Var("v0",F32), 8759 Const 8760 ("RV32_CanonicalNan",F32)))), 8761 Const("RV32_CanonicalNan",F32)), 8762 (EQ(Var("v",F32), 8763 Const("RV32_CanonicalNan",F32)), 8764 Var("v0",F32))],Var("v",F32)))])]), 8765 qVar"state"))))) 8766; 8767val dfn'FMADD_S_def = Def 8768 ("dfn'FMADD_S", 8769 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5), 8770 Var("fprnd",FTy 3)], 8771 Close 8772 (qVar"state", 8773 CS(Apply 8774 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8775 [(Mop(Some,Var("r",rTy)), 8776 Apply 8777 (Call 8778 ("writeFPRS",ATy(qTy,qTy), 8779 TP[Var("rd",FTy 5), 8780 Mop(FPAdd 32, 8781 TP[Var("r",rTy), 8782 Mop(FPMul 32, 8783 TP[Var("r",rTy), 8784 Apply 8785 (Call 8786 ("FPRS",ATy(qTy,F32), 8787 Var("rs1",FTy 5)),qVar"state"), 8788 Apply 8789 (Call 8790 ("FPRS",ATy(qTy,F32), 8791 Var("rs2",FTy 5)),qVar"state")]), 8792 Apply 8793 (Call("FPRS",ATy(qTy,F32),Var("rs3",FTy 5)), 8794 qVar"state")])]),qVar"state")), 8795 (LO rTy, 8796 Apply 8797 (Call 8798 ("signalException",ATy(qTy,qTy), 8799 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8800; 8801val dfn'FMSUB_S_def = Def 8802 ("dfn'FMSUB_S", 8803 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5), 8804 Var("fprnd",FTy 3)], 8805 Close 8806 (qVar"state", 8807 CS(Apply 8808 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8809 [(Mop(Some,Var("r",rTy)), 8810 Apply 8811 (Call 8812 ("writeFPRS",ATy(qTy,qTy), 8813 TP[Var("rd",FTy 5), 8814 Mop(FPSub 32, 8815 TP[Var("r",rTy), 8816 Mop(FPMul 32, 8817 TP[Var("r",rTy), 8818 Apply 8819 (Call 8820 ("FPRS",ATy(qTy,F32), 8821 Var("rs1",FTy 5)),qVar"state"), 8822 Apply 8823 (Call 8824 ("FPRS",ATy(qTy,F32), 8825 Var("rs2",FTy 5)),qVar"state")]), 8826 Apply 8827 (Call("FPRS",ATy(qTy,F32),Var("rs3",FTy 5)), 8828 qVar"state")])]),qVar"state")), 8829 (LO rTy, 8830 Apply 8831 (Call 8832 ("signalException",ATy(qTy,qTy), 8833 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8834; 8835val dfn'FNMADD_S_def = Def 8836 ("dfn'FNMADD_S", 8837 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5), 8838 Var("fprnd",FTy 3)], 8839 Close 8840 (qVar"state", 8841 CS(Apply 8842 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8843 [(Mop(Some,Var("r",rTy)), 8844 Apply 8845 (Call 8846 ("writeFPRS",ATy(qTy,qTy), 8847 TP[Var("rd",FTy 5), 8848 Mop(FPNeg 32, 8849 Mop(FPAdd 32, 8850 TP[Var("r",rTy), 8851 Mop(FPMul 32, 8852 TP[Var("r",rTy), 8853 Apply 8854 (Call 8855 ("FPRS",ATy(qTy,F32), 8856 Var("rs1",FTy 5)),qVar"state"), 8857 Apply 8858 (Call 8859 ("FPRS",ATy(qTy,F32), 8860 Var("rs2",FTy 5)),qVar"state")]), 8861 Apply 8862 (Call 8863 ("FPRS",ATy(qTy,F32),Var("rs3",FTy 5)), 8864 qVar"state")]))]),qVar"state")), 8865 (LO rTy, 8866 Apply 8867 (Call 8868 ("signalException",ATy(qTy,qTy), 8869 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8870; 8871val dfn'FNMSUB_S_def = Def 8872 ("dfn'FNMSUB_S", 8873 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5), 8874 Var("fprnd",FTy 3)], 8875 Close 8876 (qVar"state", 8877 CS(Apply 8878 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8879 [(Mop(Some,Var("r",rTy)), 8880 Apply 8881 (Call 8882 ("writeFPRS",ATy(qTy,qTy), 8883 TP[Var("rd",FTy 5), 8884 Mop(FPNeg 32, 8885 Mop(FPSub 32, 8886 TP[Var("r",rTy), 8887 Mop(FPMul 32, 8888 TP[Var("r",rTy), 8889 Apply 8890 (Call 8891 ("FPRS",ATy(qTy,F32), 8892 Var("rs1",FTy 5)),qVar"state"), 8893 Apply 8894 (Call 8895 ("FPRS",ATy(qTy,F32), 8896 Var("rs2",FTy 5)),qVar"state")]), 8897 Apply 8898 (Call 8899 ("FPRS",ATy(qTy,F32),Var("rs3",FTy 5)), 8900 qVar"state")]))]),qVar"state")), 8901 (LO rTy, 8902 Apply 8903 (Call 8904 ("signalException",ATy(qTy,qTy), 8905 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8906; 8907val dfn'FCVT_S_W_def = Def 8908 ("dfn'FCVT_S_W",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 8909 Close 8910 (qVar"state", 8911 CS(Apply 8912 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8913 [(Mop(Some,Var("r",rTy)), 8914 Apply 8915 (Call 8916 ("writeFPRS",ATy(qTy,qTy), 8917 TP[Var("rd",FTy 5), 8918 Mop(FPFromInt 32, 8919 TP[Var("r",rTy), 8920 Mop(Cast iTy, 8921 EX(Apply 8922 (Call 8923 ("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 8924 qVar"state"),LN 31,LN 0,F32))])]), 8925 qVar"state")), 8926 (LO rTy, 8927 Apply 8928 (Call 8929 ("signalException",ATy(qTy,qTy), 8930 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8931; 8932val dfn'FCVT_S_WU_def = Def 8933 ("dfn'FCVT_S_WU",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 8934 Close 8935 (qVar"state", 8936 CS(Apply 8937 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8938 [(Mop(Some,Var("r",rTy)), 8939 Apply 8940 (Call 8941 ("writeFPRS",ATy(qTy,qTy), 8942 TP[Var("rd",FTy 5), 8943 Mop(FPFromInt 32, 8944 TP[Var("r",rTy), 8945 Mop(Cast iTy, 8946 CC[LW(0,1), 8947 EX(Apply 8948 (Call 8949 ("GPR",ATy(qTy,F64), 8950 Var("rs",FTy 5)),qVar"state"), 8951 LN 31,LN 0,F32)])])]),qVar"state")), 8952 (LO rTy, 8953 Apply 8954 (Call 8955 ("signalException",ATy(qTy,qTy), 8956 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8957; 8958val dfn'FCVT_W_S_def = Def 8959 ("dfn'FCVT_W_S",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 8960 Close 8961 (qVar"state", 8962 CS(Apply 8963 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 8964 [(Mop(Some,Var("r",rTy)), 8965 Let(Var("v",F32), 8966 Apply 8967 (Call("FPRS",ATy(qTy,F32),Var("rs",FTy 5)),qVar"state"), 8968 Let(iVar"val", 8969 Mop(ValOf,Mop(FPToInt 32,TP[Var("r",rTy),Var("v",F32)])), 8970 Apply 8971 (Call 8972 ("write'GPR",ATy(qTy,qTy), 8973 TP[ITB([(Bop(Or,Mop(FPIsNan 32,Var("v",F32)), 8974 EQ(Var("v",F32),POSINF32)), 8975 Mop(Cast F64, 8976 Bop(Sub,Bop(Exp,LN 2,LN 31),LN 1))), 8977 (EQ(Var("v",F32),NEGINF32), 8978 Mop(Neg, 8979 Mop(Cast F64,Bop(Exp,LN 2,LN 31)))), 8980 (Bop(Gt,iVar"val", 8981 Bop(Sub,Bop(Exp,LI 2,LN 31),LI 1)), 8982 Mop(Cast F64, 8983 Bop(Sub,Bop(Exp,LN 2,LN 31),LN 1))), 8984 (Bop(Lt,iVar"val", 8985 Mop(Neg,Bop(Exp,LI 2,LN 31))), 8986 Mop(Neg, 8987 Mop(Cast F64,Bop(Exp,LN 2,LN 31))))], 8988 Mop(Cast F64,iVar"val")),Var("rd",FTy 5)]), 8989 qVar"state")))), 8990 (LO rTy, 8991 Apply 8992 (Call 8993 ("signalException",ATy(qTy,qTy), 8994 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 8995; 8996val dfn'FCVT_WU_S_def = Def 8997 ("dfn'FCVT_WU_S",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 8998 Close 8999 (qVar"state", 9000 CS(Apply 9001 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9002 [(Mop(Some,Var("r",rTy)), 9003 Let(Var("v",F32), 9004 Apply 9005 (Call("FPRS",ATy(qTy,F32),Var("rs",FTy 5)),qVar"state"), 9006 Let(iVar"val", 9007 Mop(ValOf,Mop(FPToInt 32,TP[Var("r",rTy),Var("v",F32)])), 9008 Apply 9009 (Call 9010 ("write'GPR",ATy(qTy,qTy), 9011 TP[ITB([(Bop(Or,Mop(FPIsNan 32,Var("v",F32)), 9012 EQ(Var("v",F32),POSINF32)), 9013 Mop(Cast F64, 9014 Bop(Sub,Bop(Exp,LN 2,LN 32),LN 1))), 9015 (EQ(Var("v",F32),NEGINF32),LW(0,64)), 9016 (Bop(Gt,iVar"val", 9017 Bop(Sub,Bop(Exp,LI 2,LN 32),LI 1)), 9018 Mop(Cast F64, 9019 Bop(Sub,Bop(Exp,LN 2,LN 32),LN 1))), 9020 (Bop(Lt,iVar"val",LI 0),LW(0,64))], 9021 Mop(Cast F64,iVar"val")),Var("rd",FTy 5)]), 9022 qVar"state")))), 9023 (LO rTy, 9024 Apply 9025 (Call 9026 ("signalException",ATy(qTy,qTy), 9027 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9028; 9029val dfn'FCVT_S_L_def = Def 9030 ("dfn'FCVT_S_L",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9031 Close 9032 (qVar"state", 9033 CS(Apply 9034 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9035 [(Mop(Some,Var("r",rTy)), 9036 Apply 9037 (Call 9038 ("writeFPRS",ATy(qTy,qTy), 9039 TP[Var("rd",FTy 5), 9040 Mop(FPFromInt 32, 9041 TP[Var("r",rTy), 9042 Mop(Cast iTy, 9043 Apply 9044 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 9045 qVar"state"))])]),qVar"state")), 9046 (LO rTy, 9047 Apply 9048 (Call 9049 ("signalException",ATy(qTy,qTy), 9050 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9051; 9052val dfn'FCVT_S_LU_def = Def 9053 ("dfn'FCVT_S_LU",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9054 Close 9055 (qVar"state", 9056 CS(Apply 9057 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9058 [(Mop(Some,Var("r",rTy)), 9059 Apply 9060 (Call 9061 ("writeFPRS",ATy(qTy,qTy), 9062 TP[Var("rd",FTy 5), 9063 Mop(FPFromInt 32, 9064 TP[Var("r",rTy), 9065 Mop(Cast iTy, 9066 CC[LW(0,1), 9067 Apply 9068 (Call 9069 ("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 9070 qVar"state")])])]),qVar"state")), 9071 (LO rTy, 9072 Apply 9073 (Call 9074 ("signalException",ATy(qTy,qTy), 9075 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9076; 9077val dfn'FCVT_L_S_def = Def 9078 ("dfn'FCVT_L_S",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9079 Close 9080 (qVar"state", 9081 CS(Apply 9082 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9083 [(Mop(Some,Var("r",rTy)), 9084 Let(Var("v",F32), 9085 Apply 9086 (Call("FPRS",ATy(qTy,F32),Var("rs",FTy 5)),qVar"state"), 9087 Let(iVar"val", 9088 Mop(ValOf,Mop(FPToInt 32,TP[Var("r",rTy),Var("v",F32)])), 9089 Apply 9090 (Call 9091 ("write'GPR",ATy(qTy,qTy), 9092 TP[ITB([(Bop(Or,Mop(FPIsNan 32,Var("v",F32)), 9093 EQ(Var("v",F32),POSINF32)), 9094 Mop(Cast F64, 9095 Bop(Sub,Bop(Exp,LN 2,LN 63),LN 1))), 9096 (EQ(Var("v",F32),NEGINF32), 9097 Mop(Neg, 9098 Mop(Cast F64,Bop(Exp,LN 2,LN 63)))), 9099 (Bop(Gt,iVar"val", 9100 Bop(Sub,Bop(Exp,LI 2,LN 63),LI 1)), 9101 Mop(Cast F64, 9102 Bop(Sub,Bop(Exp,LN 2,LN 63),LN 1))), 9103 (Bop(Lt,iVar"val", 9104 Mop(Neg,Bop(Exp,LI 2,LN 63))), 9105 Mop(Neg, 9106 Mop(Cast F64,Bop(Exp,LN 2,LN 63))))], 9107 Mop(Cast F64,iVar"val")),Var("rd",FTy 5)]), 9108 qVar"state")))), 9109 (LO rTy, 9110 Apply 9111 (Call 9112 ("signalException",ATy(qTy,qTy), 9113 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9114; 9115val dfn'FCVT_LU_S_def = Def 9116 ("dfn'FCVT_LU_S",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9117 Close 9118 (qVar"state", 9119 CS(Apply 9120 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9121 [(Mop(Some,Var("r",rTy)), 9122 Let(Var("v",F32), 9123 Apply 9124 (Call("FPRS",ATy(qTy,F32),Var("rs",FTy 5)),qVar"state"), 9125 Let(iVar"val", 9126 Mop(ValOf,Mop(FPToInt 32,TP[Var("r",rTy),Var("v",F32)])), 9127 Apply 9128 (Call 9129 ("write'GPR",ATy(qTy,qTy), 9130 TP[ITB([(Bop(Or,Mop(FPIsNan 32,Var("v",F32)), 9131 EQ(Var("v",F32),POSINF32)), 9132 Mop(Cast F64, 9133 Bop(Sub,Bop(Exp,LN 2,LN 64),LN 1))), 9134 (EQ(Var("v",F32),NEGINF32),LW(0,64)), 9135 (Bop(Gt,iVar"val", 9136 Bop(Sub,Bop(Exp,LI 2,LN 64),LI 1)), 9137 Mop(Cast F64, 9138 Bop(Sub,Bop(Exp,LN 2,LN 64),LN 1))), 9139 (Bop(Lt,iVar"val",LI 0),LW(0,64))], 9140 Mop(Cast F64,iVar"val")),Var("rd",FTy 5)]), 9141 qVar"state")))), 9142 (LO rTy, 9143 Apply 9144 (Call 9145 ("signalException",ATy(qTy,qTy), 9146 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9147; 9148val dfn'FSGNJ_S_def = Def 9149 ("dfn'FSGNJ_S",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 9150 Close 9151 (qVar"state", 9152 Apply 9153 (Call 9154 ("writeFPRS",ATy(qTy,qTy), 9155 TP[Var("rd",FTy 5), 9156 CC[Mop(Cast F1, 9157 Call 9158 ("FP32_Sign",bTy, 9159 Apply 9160 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)), 9161 qVar"state"))), 9162 EX(Apply 9163 (Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)), 9164 qVar"state"),LN 30,LN 0,FTy 31)]]),qVar"state"))) 9165; 9166val dfn'FSGNJN_S_def = Def 9167 ("dfn'FSGNJN_S",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 9168 Close 9169 (qVar"state", 9170 Apply 9171 (Call 9172 ("writeFPRS",ATy(qTy,qTy), 9173 TP[Var("rd",FTy 5), 9174 CC[Mop(Cast F1, 9175 Mop(Not, 9176 Call 9177 ("FP32_Sign",bTy, 9178 Apply 9179 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)), 9180 qVar"state")))), 9181 EX(Apply 9182 (Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)), 9183 qVar"state"),LN 30,LN 0,FTy 31)]]),qVar"state"))) 9184; 9185val dfn'FSGNJX_S_def = Def 9186 ("dfn'FSGNJX_S",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 9187 Close 9188 (qVar"state", 9189 Let(Var("v",F32), 9190 Apply(Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)),qVar"state"), 9191 Apply 9192 (Call 9193 ("writeFPRS",ATy(qTy,qTy), 9194 TP[Var("rd",FTy 5), 9195 CC[Bop(BXor, 9196 Mop(Cast F1, 9197 Call 9198 ("FP32_Sign",bTy, 9199 Apply 9200 (Call 9201 ("FPRS",ATy(qTy,F32), 9202 Var("rs2",FTy 5)),qVar"state"))), 9203 Mop(Cast F1,Call("FP32_Sign",bTy,Var("v",F32)))), 9204 EX(Var("v",F32),LN 30,LN 0,FTy 31)]]),qVar"state")))) 9205; 9206val dfn'FMV_X_S_def = Def 9207 ("dfn'FMV_X_S",TP[Var("rd",FTy 5),Var("rs",FTy 5)], 9208 Close 9209 (qVar"state", 9210 Apply 9211 (Call 9212 ("write'GPR",ATy(qTy,qTy), 9213 TP[Mop(SE F64, 9214 Apply 9215 (Call("FPRS",ATy(qTy,F32),Var("rs",FTy 5)), 9216 qVar"state")),Var("rd",FTy 5)]),qVar"state"))) 9217; 9218val dfn'FMV_S_X_def = Def 9219 ("dfn'FMV_S_X",TP[Var("rd",FTy 5),Var("rs",FTy 5)], 9220 Close 9221 (qVar"state", 9222 Apply 9223 (Call 9224 ("writeFPRS",ATy(qTy,qTy), 9225 TP[Var("rd",FTy 5), 9226 EX(Apply 9227 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 9228 LN 31,LN 0,F32)]),qVar"state"))) 9229; 9230val dfn'FEQ_S_def = Def 9231 ("dfn'FEQ_S",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 9232 Close 9233 (qVar"state", 9234 Let(Var("v",F32), 9235 Apply(Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)),qVar"state"), 9236 Let(Var("v0",F32), 9237 Apply 9238 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)),qVar"state"), 9239 ITE(Bop(Or,Call("FP32_IsSignalingNan",bTy,Var("v",F32)), 9240 Call("FP32_IsSignalingNan",bTy,Var("v0",F32))), 9241 Apply 9242 (Call("setFP_Invalid",ATy(qTy,qTy),LU), 9243 Apply 9244 (Call 9245 ("write'GPR",ATy(qTy,qTy), 9246 TP[LW(0,64),Var("rd",FTy 5)]),qVar"state")), 9247 Apply 9248 (Call 9249 ("write'GPR",ATy(qTy,qTy), 9250 TP[CS(Mop(FPCmp 32,TP[Var("v",F32),Var("v0",F32)]), 9251 [(binary_ieeeSyntax.LT_tm,LW(0,64)), 9252 (binary_ieeeSyntax.EQ_tm,LW(1,64)), 9253 (binary_ieeeSyntax.GT_tm,LW(0,64)), 9254 (binary_ieeeSyntax.UN_tm,LW(0,64))]), 9255 Var("rd",FTy 5)]),qVar"state")))))) 9256; 9257val dfn'FLT_S_def = Def 9258 ("dfn'FLT_S",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 9259 Close 9260 (qVar"state", 9261 Let(Var("v",F32), 9262 Apply(Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)),qVar"state"), 9263 Let(Var("v0",F32), 9264 Apply 9265 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)),qVar"state"), 9266 ITE(Bop(Or,Mop(FPIsNan 32,Var("v",F32)), 9267 Mop(FPIsNan 32,Var("v0",F32))), 9268 Apply 9269 (Call("setFP_Invalid",ATy(qTy,qTy),LU), 9270 Apply 9271 (Call 9272 ("write'GPR",ATy(qTy,qTy), 9273 TP[LW(0,64),Var("rd",FTy 5)]),qVar"state")), 9274 Apply 9275 (Call 9276 ("write'GPR",ATy(qTy,qTy), 9277 TP[CS(Mop(FPCmp 32,TP[Var("v",F32),Var("v0",F32)]), 9278 [(binary_ieeeSyntax.LT_tm,LW(1,64)), 9279 (binary_ieeeSyntax.EQ_tm,LW(0,64)), 9280 (binary_ieeeSyntax.GT_tm,LW(0,64)), 9281 (binary_ieeeSyntax.UN_tm,LW(0,64))]), 9282 Var("rd",FTy 5)]),qVar"state")))))) 9283; 9284val dfn'FLE_S_def = Def 9285 ("dfn'FLE_S",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 9286 Close 9287 (qVar"state", 9288 Let(Var("v",F32), 9289 Apply(Call("FPRS",ATy(qTy,F32),Var("rs1",FTy 5)),qVar"state"), 9290 Let(Var("v0",F32), 9291 Apply 9292 (Call("FPRS",ATy(qTy,F32),Var("rs2",FTy 5)),qVar"state"), 9293 ITE(Bop(Or,Mop(FPIsNan 32,Var("v",F32)), 9294 Mop(FPIsNan 32,Var("v0",F32))), 9295 Apply 9296 (Call("setFP_Invalid",ATy(qTy,qTy),LU), 9297 Apply 9298 (Call 9299 ("write'GPR",ATy(qTy,qTy), 9300 TP[LW(0,64),Var("rd",FTy 5)]),qVar"state")), 9301 Apply 9302 (Call 9303 ("write'GPR",ATy(qTy,qTy), 9304 TP[CS(Mop(FPCmp 32,TP[Var("v",F32),Var("v0",F32)]), 9305 [(binary_ieeeSyntax.LT_tm,LW(1,64)), 9306 (binary_ieeeSyntax.EQ_tm,LW(1,64)), 9307 (binary_ieeeSyntax.GT_tm,LW(0,64)), 9308 (binary_ieeeSyntax.UN_tm,LW(0,64))]), 9309 Var("rd",FTy 5)]),qVar"state")))))) 9310; 9311val dfn'FCLASS_S_def = Def 9312 ("dfn'FCLASS_S",TP[Var("rd",FTy 5),Var("rs",FTy 5)], 9313 Close 9314 (qVar"state", 9315 Let(TP[Var("v",F32),Var("s",PTy(FTy 10,qTy))], 9316 TP[Apply(Call("FPRS",ATy(qTy,F32),Var("rs",FTy 5)),qVar"state"), 9317 LW(0,10),qVar"state"], 9318 Apply 9319 (Call 9320 ("write'GPR",ATy(qTy,qTy), 9321 TP[Mop(Cast F64, 9322 BFI(LN 9,LN 9, 9323 Mop(Cast F1, 9324 EQ(Var("v",F32), 9325 Const("RV32_CanonicalNan",F32))), 9326 BFI(LN 8,LN 8, 9327 Mop(Cast F1, 9328 Call 9329 ("FP32_IsSignalingNan",bTy, 9330 Var("v",F32))), 9331 BFI(LN 7,LN 7, 9332 Mop(Cast F1,EQ(Var("v",F32),POSINF32)), 9333 BFI(LN 6,LN 6, 9334 Mop(Cast F1, 9335 Bop(And, 9336 Mop(Not, 9337 Call 9338 ("FP32_Sign",bTy, 9339 Var("v",F32))), 9340 Mop(FPIsNormal 32, 9341 Var("v",F32)))), 9342 BFI(LN 5,LN 5, 9343 Mop(Cast F1, 9344 Bop(And, 9345 Mop(Not, 9346 Call 9347 ("FP32_Sign",bTy, 9348 Var("v",F32))), 9349 Mop(FPIsSubnormal 32, 9350 Var("v",F32)))), 9351 BFI(LN 4,LN 4, 9352 Mop(Cast F1, 9353 EQ(Var("v",F32), 9354 POSZERO32)), 9355 BFI(LN 3,LN 3, 9356 Mop(Cast F1, 9357 EQ(Var("v",F32), 9358 NEGZERO32)), 9359 BFI(LN 2,LN 2, 9360 Mop(Cast F1, 9361 Bop(And, 9362 Call 9363 ("FP32_Sign", 9364 bTy, 9365 Var("v", 9366 F32)), 9367 Mop(FPIsSubnormal 32, 9368 Var("v", 9369 F32)))), 9370 BFI(LN 1,LN 1, 9371 Mop(Cast F1, 9372 Bop(And, 9373 Call 9374 ("FP32_Sign", 9375 bTy, 9376 Var("v", 9377 F32)), 9378 Mop(FPIsNormal 32, 9379 Var("v", 9380 F32)))), 9381 BFI(LN 0,LN 0, 9382 Mop(Cast F1, 9383 EQ(Var("v", 9384 F32), 9385 NEGINF32)), 9386 Mop(Fst, 9387 Var("s", 9388 PTy(FTy 10, 9389 qTy)))))))))))))), 9390 Var("rd",FTy 5)]),Mop(Snd,Var("s",PTy(FTy 10,qTy))))))) 9391; 9392val dfn'FLD_def = Def 9393 ("dfn'FLD",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("offs",FTy 12)], 9394 Close 9395 (qVar"state", 9396 Let(Var("v",F64), 9397 Bop(Add, 9398 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 9399 Mop(SE F64,Var("offs",FTy 12))), 9400 Let(TP[Var("v0",OTy F64),qVar"s"], 9401 Apply 9402 (Call 9403 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 9404 TP[Var("v",F64),LC("Data",CTy"fetchType"), 9405 LC("Read",CTy"accessType")]),qVar"state"), 9406 CS(Var("v0",OTy F64), 9407 [(Mop(Some,Var("pAddr",F64)), 9408 Apply 9409 (Call 9410 ("write'FPRD",ATy(qTy,qTy), 9411 TP[Apply 9412 (Call 9413 ("rawReadData",ATy(qTy,F64), 9414 Var("pAddr",F64)),qVar"s"), 9415 Var("rd",FTy 5)]),qVar"s")), 9416 (LO F64, 9417 Apply 9418 (Call 9419 ("signalAddressException",ATy(qTy,qTy), 9420 TP[LC("Load_Fault",CTy"ExceptionType"), 9421 Var("v",F64)]),qVar"s"))]))))) 9422; 9423val dfn'FSD_def = Def 9424 ("dfn'FSD",TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("offs",FTy 12)], 9425 Close 9426 (qVar"state", 9427 Let(Var("v",F64), 9428 Bop(Add, 9429 Apply(Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 9430 Mop(SE F64,Var("offs",FTy 12))), 9431 Let(TP[Var("v0",OTy F64),qVar"s"], 9432 Apply 9433 (Call 9434 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 9435 TP[Var("v",F64),LC("Data",CTy"fetchType"), 9436 LC("Write",CTy"accessType")]),qVar"state"), 9437 CS(Var("v0",OTy F64), 9438 [(Mop(Some,Var("pAddr",F64)), 9439 Apply 9440 (Call 9441 ("rawWriteData",ATy(qTy,qTy), 9442 TP[Var("pAddr",F64), 9443 Apply 9444 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)), 9445 qVar"s"),LN 8]),qVar"s")), 9446 (LO F64, 9447 Apply 9448 (Call 9449 ("signalAddressException",ATy(qTy,qTy), 9450 TP[LC("Store_AMO_Fault",CTy"ExceptionType"), 9451 Var("v",F64)]),qVar"s"))]))))) 9452; 9453val dfn'FADD_D_def = Def 9454 ("dfn'FADD_D", 9455 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("fprnd",FTy 3)], 9456 Close 9457 (qVar"state", 9458 CS(Apply 9459 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9460 [(Mop(Some,Var("r",rTy)), 9461 Apply 9462 (Call 9463 ("writeFPRD",ATy(qTy,qTy), 9464 TP[Var("rd",FTy 5), 9465 Mop(FPAdd 64, 9466 TP[Var("r",rTy), 9467 Apply 9468 (Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)), 9469 qVar"state"), 9470 Apply 9471 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)), 9472 qVar"state")])]),qVar"state")), 9473 (LO rTy, 9474 Apply 9475 (Call 9476 ("signalException",ATy(qTy,qTy), 9477 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9478; 9479val dfn'FSUB_D_def = Def 9480 ("dfn'FSUB_D", 9481 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("fprnd",FTy 3)], 9482 Close 9483 (qVar"state", 9484 CS(Apply 9485 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9486 [(Mop(Some,Var("r",rTy)), 9487 Apply 9488 (Call 9489 ("writeFPRD",ATy(qTy,qTy), 9490 TP[Var("rd",FTy 5), 9491 Mop(FPSub 64, 9492 TP[Var("r",rTy), 9493 Apply 9494 (Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)), 9495 qVar"state"), 9496 Apply 9497 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)), 9498 qVar"state")])]),qVar"state")), 9499 (LO rTy, 9500 Apply 9501 (Call 9502 ("signalException",ATy(qTy,qTy), 9503 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9504; 9505val dfn'FMUL_D_def = Def 9506 ("dfn'FMUL_D", 9507 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("fprnd",FTy 3)], 9508 Close 9509 (qVar"state", 9510 CS(Apply 9511 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9512 [(Mop(Some,Var("r",rTy)), 9513 Apply 9514 (Call 9515 ("writeFPRD",ATy(qTy,qTy), 9516 TP[Var("rd",FTy 5), 9517 Mop(FPMul 64, 9518 TP[Var("r",rTy), 9519 Apply 9520 (Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)), 9521 qVar"state"), 9522 Apply 9523 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)), 9524 qVar"state")])]),qVar"state")), 9525 (LO rTy, 9526 Apply 9527 (Call 9528 ("signalException",ATy(qTy,qTy), 9529 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9530; 9531val dfn'FDIV_D_def = Def 9532 ("dfn'FDIV_D", 9533 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("fprnd",FTy 3)], 9534 Close 9535 (qVar"state", 9536 CS(Apply 9537 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9538 [(Mop(Some,Var("r",rTy)), 9539 Apply 9540 (Call 9541 ("writeFPRD",ATy(qTy,qTy), 9542 TP[Var("rd",FTy 5), 9543 Mop(FPDiv 64, 9544 TP[Var("r",rTy), 9545 Apply 9546 (Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)), 9547 qVar"state"), 9548 Apply 9549 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)), 9550 qVar"state")])]),qVar"state")), 9551 (LO rTy, 9552 Apply 9553 (Call 9554 ("signalException",ATy(qTy,qTy), 9555 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9556; 9557val dfn'FSQRT_D_def = Def 9558 ("dfn'FSQRT_D",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9559 Close 9560 (qVar"state", 9561 CS(Apply 9562 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9563 [(Mop(Some,Var("r",rTy)), 9564 Apply 9565 (Call 9566 ("writeFPRD",ATy(qTy,qTy), 9567 TP[Var("rd",FTy 5), 9568 Mop(FPSqrt 64, 9569 TP[Var("r",rTy), 9570 Apply 9571 (Call("FPRD",ATy(qTy,F64),Var("rs",FTy 5)), 9572 qVar"state")])]),qVar"state")), 9573 (LO rTy, 9574 Apply 9575 (Call 9576 ("signalException",ATy(qTy,qTy), 9577 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9578; 9579val dfn'FMIN_D_def = Def 9580 ("dfn'FMIN_D",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 9581 Close 9582 (qVar"state", 9583 Let(Var("v",F64), 9584 Apply(Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 9585 Let(Var("v0",F64), 9586 Apply 9587 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"state"), 9588 Apply 9589 (Call 9590 ("writeFPRD",ATy(qTy,qTy), 9591 TP[Var("rd",FTy 5), 9592 CS(Mop(FPCmp 64,TP[Var("v",F64),Var("v0",F64)]), 9593 [(binary_ieeeSyntax.LT_tm,Var("v",F64)), 9594 (binary_ieeeSyntax.EQ_tm,Var("v",F64)), 9595 (binary_ieeeSyntax.GT_tm,Var("v0",F64)), 9596 (binary_ieeeSyntax.UN_tm, 9597 ITB([(Bop(Or, 9598 Bop(Or, 9599 Call 9600 ("FP64_IsSignalingNan",bTy, 9601 Var("v",F64)), 9602 Call 9603 ("FP64_IsSignalingNan",bTy, 9604 Var("v0",F64))), 9605 Bop(And, 9606 EQ(Var("v",F64), 9607 Const 9608 ("RV64_CanonicalNan",F64)), 9609 EQ(Var("v0",F64), 9610 Const 9611 ("RV64_CanonicalNan",F64)))), 9612 Const("RV64_CanonicalNan",F64)), 9613 (EQ(Var("v",F64), 9614 Const("RV64_CanonicalNan",F64)), 9615 Var("v0",F64))],Var("v",F64)))])]), 9616 qVar"state"))))) 9617; 9618val dfn'FMAX_D_def = Def 9619 ("dfn'FMAX_D",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 9620 Close 9621 (qVar"state", 9622 Let(Var("v",F64), 9623 Apply(Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 9624 Let(Var("v0",F64), 9625 Apply 9626 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"state"), 9627 Apply 9628 (Call 9629 ("writeFPRD",ATy(qTy,qTy), 9630 TP[Var("rd",FTy 5), 9631 CS(Mop(FPCmp 64,TP[Var("v",F64),Var("v0",F64)]), 9632 [(binary_ieeeSyntax.LT_tm,Var("v0",F64)), 9633 (binary_ieeeSyntax.EQ_tm,Var("v0",F64)), 9634 (binary_ieeeSyntax.GT_tm,Var("v",F64)), 9635 (binary_ieeeSyntax.UN_tm, 9636 ITB([(Bop(Or, 9637 Bop(Or, 9638 Call 9639 ("FP64_IsSignalingNan",bTy, 9640 Var("v",F64)), 9641 Call 9642 ("FP64_IsSignalingNan",bTy, 9643 Var("v0",F64))), 9644 Bop(And, 9645 EQ(Var("v",F64), 9646 Const 9647 ("RV64_CanonicalNan",F64)), 9648 EQ(Var("v0",F64), 9649 Const 9650 ("RV64_CanonicalNan",F64)))), 9651 Const("RV64_CanonicalNan",F64)), 9652 (EQ(Var("v",F64), 9653 Const("RV64_CanonicalNan",F64)), 9654 Var("v0",F64))],Var("v",F64)))])]), 9655 qVar"state"))))) 9656; 9657val dfn'FMADD_D_def = Def 9658 ("dfn'FMADD_D", 9659 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5), 9660 Var("fprnd",FTy 3)], 9661 Close 9662 (qVar"state", 9663 CS(Apply 9664 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9665 [(Mop(Some,Var("r",rTy)), 9666 Apply 9667 (Call 9668 ("writeFPRD",ATy(qTy,qTy), 9669 TP[Var("rd",FTy 5), 9670 Mop(FPAdd 64, 9671 TP[Var("r",rTy), 9672 Mop(FPMul 64, 9673 TP[Var("r",rTy), 9674 Apply 9675 (Call 9676 ("FPRD",ATy(qTy,F64), 9677 Var("rs1",FTy 5)),qVar"state"), 9678 Apply 9679 (Call 9680 ("FPRD",ATy(qTy,F64), 9681 Var("rs2",FTy 5)),qVar"state")]), 9682 Apply 9683 (Call("FPRD",ATy(qTy,F64),Var("rs3",FTy 5)), 9684 qVar"state")])]),qVar"state")), 9685 (LO rTy, 9686 Apply 9687 (Call 9688 ("signalException",ATy(qTy,qTy), 9689 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9690; 9691val dfn'FMSUB_D_def = Def 9692 ("dfn'FMSUB_D", 9693 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5), 9694 Var("fprnd",FTy 3)], 9695 Close 9696 (qVar"state", 9697 CS(Apply 9698 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9699 [(Mop(Some,Var("r",rTy)), 9700 Apply 9701 (Call 9702 ("writeFPRD",ATy(qTy,qTy), 9703 TP[Var("rd",FTy 5), 9704 Mop(FPSub 64, 9705 TP[Var("r",rTy), 9706 Mop(FPMul 64, 9707 TP[Var("r",rTy), 9708 Apply 9709 (Call 9710 ("FPRD",ATy(qTy,F64), 9711 Var("rs1",FTy 5)),qVar"state"), 9712 Apply 9713 (Call 9714 ("FPRD",ATy(qTy,F64), 9715 Var("rs2",FTy 5)),qVar"state")]), 9716 Apply 9717 (Call("FPRD",ATy(qTy,F64),Var("rs3",FTy 5)), 9718 qVar"state")])]),qVar"state")), 9719 (LO rTy, 9720 Apply 9721 (Call 9722 ("signalException",ATy(qTy,qTy), 9723 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9724; 9725val dfn'FNMADD_D_def = Def 9726 ("dfn'FNMADD_D", 9727 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5), 9728 Var("fprnd",FTy 3)], 9729 Close 9730 (qVar"state", 9731 CS(Apply 9732 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9733 [(Mop(Some,Var("r",rTy)), 9734 Apply 9735 (Call 9736 ("writeFPRD",ATy(qTy,qTy), 9737 TP[Var("rd",FTy 5), 9738 Mop(FPNeg 64, 9739 Mop(FPAdd 64, 9740 TP[Var("r",rTy), 9741 Mop(FPMul 64, 9742 TP[Var("r",rTy), 9743 Apply 9744 (Call 9745 ("FPRD",ATy(qTy,F64), 9746 Var("rs1",FTy 5)),qVar"state"), 9747 Apply 9748 (Call 9749 ("FPRD",ATy(qTy,F64), 9750 Var("rs2",FTy 5)),qVar"state")]), 9751 Apply 9752 (Call 9753 ("FPRD",ATy(qTy,F64),Var("rs3",FTy 5)), 9754 qVar"state")]))]),qVar"state")), 9755 (LO rTy, 9756 Apply 9757 (Call 9758 ("signalException",ATy(qTy,qTy), 9759 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9760; 9761val dfn'FNMSUB_D_def = Def 9762 ("dfn'FNMSUB_D", 9763 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5), 9764 Var("fprnd",FTy 3)], 9765 Close 9766 (qVar"state", 9767 CS(Apply 9768 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9769 [(Mop(Some,Var("r",rTy)), 9770 Apply 9771 (Call 9772 ("writeFPRD",ATy(qTy,qTy), 9773 TP[Var("rd",FTy 5), 9774 Mop(FPNeg 64, 9775 Mop(FPSub 64, 9776 TP[Var("r",rTy), 9777 Mop(FPMul 64, 9778 TP[Var("r",rTy), 9779 Apply 9780 (Call 9781 ("FPRD",ATy(qTy,F64), 9782 Var("rs1",FTy 5)),qVar"state"), 9783 Apply 9784 (Call 9785 ("FPRD",ATy(qTy,F64), 9786 Var("rs2",FTy 5)),qVar"state")]), 9787 Apply 9788 (Call 9789 ("FPRD",ATy(qTy,F64),Var("rs3",FTy 5)), 9790 qVar"state")]))]),qVar"state")), 9791 (LO rTy, 9792 Apply 9793 (Call 9794 ("signalException",ATy(qTy,qTy), 9795 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9796; 9797val dfn'FCVT_D_W_def = Def 9798 ("dfn'FCVT_D_W",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9799 Close 9800 (qVar"state", 9801 CS(Apply 9802 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9803 [(Mop(Some,Var("r",rTy)), 9804 Apply 9805 (Call 9806 ("writeFPRD",ATy(qTy,qTy), 9807 TP[Var("rd",FTy 5), 9808 Mop(FPFromInt 64, 9809 TP[Var("r",rTy), 9810 Mop(Cast iTy, 9811 EX(Apply 9812 (Call 9813 ("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 9814 qVar"state"),LN 31,LN 0,F32))])]), 9815 qVar"state")), 9816 (LO rTy, 9817 Apply 9818 (Call 9819 ("signalException",ATy(qTy,qTy), 9820 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9821; 9822val dfn'FCVT_D_WU_def = Def 9823 ("dfn'FCVT_D_WU",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9824 Close 9825 (qVar"state", 9826 CS(Apply 9827 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9828 [(Mop(Some,Var("r",rTy)), 9829 Apply 9830 (Call 9831 ("writeFPRD",ATy(qTy,qTy), 9832 TP[Var("rd",FTy 5), 9833 Mop(FPFromInt 64, 9834 TP[Var("r",rTy), 9835 Mop(Cast iTy, 9836 CC[LW(0,1), 9837 EX(Apply 9838 (Call 9839 ("GPR",ATy(qTy,F64), 9840 Var("rs",FTy 5)),qVar"state"), 9841 LN 31,LN 0,F32)])])]),qVar"state")), 9842 (LO rTy, 9843 Apply 9844 (Call 9845 ("signalException",ATy(qTy,qTy), 9846 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9847; 9848val dfn'FCVT_W_D_def = Def 9849 ("dfn'FCVT_W_D",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9850 Close 9851 (qVar"state", 9852 CS(Apply 9853 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9854 [(Mop(Some,Var("r",rTy)), 9855 Let(Var("v",F64), 9856 Apply 9857 (Call("FPRD",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 9858 Let(iVar"val", 9859 Mop(ValOf,Mop(FPToInt 64,TP[Var("r",rTy),Var("v",F64)])), 9860 Apply 9861 (Call 9862 ("write'GPR",ATy(qTy,qTy), 9863 TP[ITB([(Bop(Or,Mop(FPIsNan 64,Var("v",F64)), 9864 EQ(Var("v",F64),POSINF64)), 9865 Mop(Cast F64, 9866 Bop(Sub,Bop(Exp,LN 2,LN 31),LN 1))), 9867 (EQ(Var("v",F64),NEGINF64), 9868 Mop(Neg, 9869 Mop(Cast F64,Bop(Exp,LN 2,LN 31)))), 9870 (Bop(Gt,iVar"val", 9871 Bop(Sub,Bop(Exp,LI 2,LN 31),LI 1)), 9872 Mop(Cast F64, 9873 Bop(Sub,Bop(Exp,LN 2,LN 31),LN 1))), 9874 (Bop(Lt,iVar"val", 9875 Mop(Neg,Bop(Exp,LI 2,LN 31))), 9876 Mop(Neg, 9877 Mop(Cast F64,Bop(Exp,LN 2,LN 31))))], 9878 Mop(Cast F64,iVar"val")),Var("rd",FTy 5)]), 9879 qVar"state")))), 9880 (LO rTy, 9881 Apply 9882 (Call 9883 ("signalException",ATy(qTy,qTy), 9884 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9885; 9886val dfn'FCVT_WU_D_def = Def 9887 ("dfn'FCVT_WU_D",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9888 Close 9889 (qVar"state", 9890 CS(Apply 9891 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9892 [(Mop(Some,Var("r",rTy)), 9893 Let(Var("v",F64), 9894 Apply 9895 (Call("FPRD",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 9896 Let(iVar"val", 9897 Mop(ValOf,Mop(FPToInt 64,TP[Var("r",rTy),Var("v",F64)])), 9898 Apply 9899 (Call 9900 ("write'GPR",ATy(qTy,qTy), 9901 TP[ITB([(Bop(Or,Mop(FPIsNan 64,Var("v",F64)), 9902 EQ(Var("v",F64),POSINF64)), 9903 Mop(Cast F64, 9904 Bop(Sub,Bop(Exp,LN 2,LN 32),LN 1))), 9905 (EQ(Var("v",F64),NEGINF64),LW(0,64)), 9906 (Bop(Gt,iVar"val", 9907 Bop(Sub,Bop(Exp,LI 2,LN 32),LI 1)), 9908 Mop(Cast F64, 9909 Bop(Sub,Bop(Exp,LN 2,LN 32),LN 1))), 9910 (Bop(Lt,iVar"val",LI 0),LW(0,64))], 9911 Mop(Cast F64,iVar"val")),Var("rd",FTy 5)]), 9912 qVar"state")))), 9913 (LO rTy, 9914 Apply 9915 (Call 9916 ("signalException",ATy(qTy,qTy), 9917 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9918; 9919val dfn'FCVT_D_L_def = Def 9920 ("dfn'FCVT_D_L",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9921 Close 9922 (qVar"state", 9923 CS(Apply 9924 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9925 [(Mop(Some,Var("r",rTy)), 9926 Apply 9927 (Call 9928 ("writeFPRD",ATy(qTy,qTy), 9929 TP[Var("rd",FTy 5), 9930 Mop(FPFromInt 64, 9931 TP[Var("r",rTy), 9932 Mop(Cast iTy, 9933 Apply 9934 (Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 9935 qVar"state"))])]),qVar"state")), 9936 (LO rTy, 9937 Apply 9938 (Call 9939 ("signalException",ATy(qTy,qTy), 9940 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9941; 9942val dfn'FCVT_D_LU_def = Def 9943 ("dfn'FCVT_D_LU",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9944 Close 9945 (qVar"state", 9946 CS(Apply 9947 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9948 [(Mop(Some,Var("r",rTy)), 9949 Apply 9950 (Call 9951 ("writeFPRD",ATy(qTy,qTy), 9952 TP[Var("rd",FTy 5), 9953 Mop(FPFromInt 64, 9954 TP[Var("r",rTy), 9955 Mop(Cast iTy, 9956 CC[LW(0,1), 9957 Apply 9958 (Call 9959 ("GPR",ATy(qTy,F64),Var("rs",FTy 5)), 9960 qVar"state")])])]),qVar"state")), 9961 (LO rTy, 9962 Apply 9963 (Call 9964 ("signalException",ATy(qTy,qTy), 9965 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 9966; 9967val dfn'FCVT_L_D_def = Def 9968 ("dfn'FCVT_L_D",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 9969 Close 9970 (qVar"state", 9971 CS(Apply 9972 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 9973 [(Mop(Some,Var("r",rTy)), 9974 Let(Var("v",F64), 9975 Apply 9976 (Call("FPRD",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 9977 Let(iVar"val", 9978 Mop(ValOf,Mop(FPToInt 64,TP[Var("r",rTy),Var("v",F64)])), 9979 Apply 9980 (Call 9981 ("write'GPR",ATy(qTy,qTy), 9982 TP[ITB([(Bop(Or,Mop(FPIsNan 64,Var("v",F64)), 9983 EQ(Var("v",F64),POSINF64)), 9984 Mop(Cast F64, 9985 Bop(Sub,Bop(Exp,LN 2,LN 63),LN 1))), 9986 (EQ(Var("v",F64),NEGINF64), 9987 Mop(Neg, 9988 Mop(Cast F64,Bop(Exp,LN 2,LN 63)))), 9989 (Bop(Gt,iVar"val", 9990 Bop(Sub,Bop(Exp,LI 2,LN 63),LI 1)), 9991 Mop(Cast F64, 9992 Bop(Sub,Bop(Exp,LN 2,LN 63),LN 1))), 9993 (Bop(Lt,iVar"val", 9994 Mop(Neg,Bop(Exp,LI 2,LN 63))), 9995 Mop(Neg, 9996 Mop(Cast F64,Bop(Exp,LN 2,LN 63))))], 9997 Mop(Cast F64,iVar"val")),Var("rd",FTy 5)]), 9998 qVar"state")))), 9999 (LO rTy, 10000 Apply 10001 (Call 10002 ("signalException",ATy(qTy,qTy), 10003 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 10004; 10005val dfn'FCVT_LU_D_def = Def 10006 ("dfn'FCVT_LU_D",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 10007 Close 10008 (qVar"state", 10009 CS(Apply 10010 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 10011 [(Mop(Some,Var("r",rTy)), 10012 Let(Var("v",F64), 10013 Apply 10014 (Call("FPRD",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 10015 Let(iVar"val", 10016 Mop(ValOf,Mop(FPToInt 64,TP[Var("r",rTy),Var("v",F64)])), 10017 Apply 10018 (Call 10019 ("write'GPR",ATy(qTy,qTy), 10020 TP[ITB([(Bop(Or,Mop(FPIsNan 64,Var("v",F64)), 10021 EQ(Var("v",F64),POSINF64)), 10022 Mop(Cast F64, 10023 Bop(Sub,Bop(Exp,LN 2,LN 64),LN 1))), 10024 (EQ(Var("v",F64),NEGINF64),LW(0,64)), 10025 (Bop(Gt,iVar"val", 10026 Bop(Sub,Bop(Exp,LI 2,LN 64),LI 1)), 10027 Mop(Cast F64, 10028 Bop(Sub,Bop(Exp,LN 2,LN 64),LN 1))), 10029 (Bop(Lt,iVar"val",LI 0),LW(0,64))], 10030 Mop(Cast F64,iVar"val")),Var("rd",FTy 5)]), 10031 qVar"state")))), 10032 (LO rTy, 10033 Apply 10034 (Call 10035 ("signalException",ATy(qTy,qTy), 10036 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 10037; 10038val dfn'FCVT_S_D_def = Def 10039 ("dfn'FCVT_S_D",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 10040 Close 10041 (qVar"state", 10042 CS(Apply 10043 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 10044 [(Mop(Some,Var("r",rTy)), 10045 Apply 10046 (Call 10047 ("writeFPRS",ATy(qTy,qTy), 10048 TP[Var("rd",FTy 5), 10049 Mop(FP64To32, 10050 TP[Var("r",rTy), 10051 Apply 10052 (Call("FPRD",ATy(qTy,F64),Var("rs",FTy 5)), 10053 qVar"state")])]),qVar"state")), 10054 (LO rTy, 10055 Apply 10056 (Call 10057 ("signalException",ATy(qTy,qTy), 10058 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 10059; 10060val dfn'FCVT_D_S_def = Def 10061 ("dfn'FCVT_D_S",TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("fprnd",FTy 3)], 10062 Close 10063 (qVar"state", 10064 CS(Apply 10065 (Call("round",ATy(qTy,OTy rTy),Var("fprnd",FTy 3)),qVar"state"), 10066 [(Mop(Some,Var("r",rTy)), 10067 Apply 10068 (Call 10069 ("writeFPRD",ATy(qTy,qTy), 10070 TP[Var("rd",FTy 5), 10071 Mop(FP32To64, 10072 Apply 10073 (Call("FPRS",ATy(qTy,F32),Var("rs",FTy 5)), 10074 qVar"state"))]),qVar"state")), 10075 (LO rTy, 10076 Apply 10077 (Call 10078 ("signalException",ATy(qTy,qTy), 10079 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state"))]))) 10080; 10081val dfn'FSGNJ_D_def = Def 10082 ("dfn'FSGNJ_D",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 10083 Close 10084 (qVar"state", 10085 Apply 10086 (Call 10087 ("writeFPRD",ATy(qTy,qTy), 10088 TP[Var("rd",FTy 5), 10089 CC[Mop(Cast F1, 10090 Call 10091 ("FP64_Sign",bTy, 10092 Apply 10093 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)), 10094 qVar"state"))), 10095 EX(Apply 10096 (Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)), 10097 qVar"state"),LN 62,LN 0,FTy 63)]]),qVar"state"))) 10098; 10099val dfn'FSGNJN_D_def = Def 10100 ("dfn'FSGNJN_D",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 10101 Close 10102 (qVar"state", 10103 Apply 10104 (Call 10105 ("writeFPRD",ATy(qTy,qTy), 10106 TP[Var("rd",FTy 5), 10107 CC[Mop(Cast F1, 10108 Mop(Not, 10109 Call 10110 ("FP64_Sign",bTy, 10111 Apply 10112 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)), 10113 qVar"state")))), 10114 EX(Apply 10115 (Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)), 10116 qVar"state"),LN 62,LN 0,FTy 63)]]),qVar"state"))) 10117; 10118val dfn'FSGNJX_D_def = Def 10119 ("dfn'FSGNJX_D",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 10120 Close 10121 (qVar"state", 10122 Let(Var("v",F64), 10123 Apply(Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 10124 Apply 10125 (Call 10126 ("writeFPRD",ATy(qTy,qTy), 10127 TP[Var("rd",FTy 5), 10128 CC[Bop(BXor, 10129 Mop(Cast F1, 10130 Call 10131 ("FP64_Sign",bTy, 10132 Apply 10133 (Call 10134 ("FPRD",ATy(qTy,F64), 10135 Var("rs2",FTy 5)),qVar"state"))), 10136 Mop(Cast F1,Call("FP64_Sign",bTy,Var("v",F64)))), 10137 EX(Var("v",F64),LN 62,LN 0,FTy 63)]]),qVar"state")))) 10138; 10139val dfn'FMV_X_D_def = Def 10140 ("dfn'FMV_X_D",TP[Var("rd",FTy 5),Var("rs",FTy 5)], 10141 Close 10142 (qVar"state", 10143 Apply 10144 (Call 10145 ("write'GPR",ATy(qTy,qTy), 10146 TP[Mop(SE F64, 10147 Apply 10148 (Call("FPRD",ATy(qTy,F64),Var("rs",FTy 5)), 10149 qVar"state")),Var("rd",FTy 5)]),qVar"state"))) 10150; 10151val dfn'FMV_D_X_def = Def 10152 ("dfn'FMV_D_X",TP[Var("rd",FTy 5),Var("rs",FTy 5)], 10153 Close 10154 (qVar"state", 10155 Apply 10156 (Call 10157 ("writeFPRD",ATy(qTy,qTy), 10158 TP[Var("rd",FTy 5), 10159 Apply(Call("GPR",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state")]), 10160 qVar"state"))) 10161; 10162val dfn'FEQ_D_def = Def 10163 ("dfn'FEQ_D",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 10164 Close 10165 (qVar"state", 10166 Let(Var("v",F64), 10167 Apply(Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 10168 Let(Var("v0",F64), 10169 Apply 10170 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"state"), 10171 ITE(Bop(Or,Call("FP64_IsSignalingNan",bTy,Var("v",F64)), 10172 Call("FP64_IsSignalingNan",bTy,Var("v0",F64))), 10173 Apply 10174 (Call("setFP_Invalid",ATy(qTy,qTy),LU), 10175 Apply 10176 (Call 10177 ("write'GPR",ATy(qTy,qTy), 10178 TP[LW(0,64),Var("rd",FTy 5)]),qVar"state")), 10179 Apply 10180 (Call 10181 ("write'GPR",ATy(qTy,qTy), 10182 TP[CS(Mop(FPCmp 64,TP[Var("v",F64),Var("v0",F64)]), 10183 [(binary_ieeeSyntax.LT_tm,LW(0,64)), 10184 (binary_ieeeSyntax.EQ_tm,LW(1,64)), 10185 (binary_ieeeSyntax.GT_tm,LW(0,64)), 10186 (binary_ieeeSyntax.UN_tm,LW(0,64))]), 10187 Var("rd",FTy 5)]),qVar"state")))))) 10188; 10189val dfn'FLT_D_def = Def 10190 ("dfn'FLT_D",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 10191 Close 10192 (qVar"state", 10193 Let(Var("v",F64), 10194 Apply(Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 10195 Let(Var("v0",F64), 10196 Apply 10197 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"state"), 10198 ITE(Bop(Or,Mop(FPIsNan 64,Var("v",F64)), 10199 Mop(FPIsNan 64,Var("v0",F64))), 10200 Apply 10201 (Call("setFP_Invalid",ATy(qTy,qTy),LU), 10202 Apply 10203 (Call 10204 ("write'GPR",ATy(qTy,qTy), 10205 TP[LW(0,64),Var("rd",FTy 5)]),qVar"state")), 10206 Apply 10207 (Call 10208 ("write'GPR",ATy(qTy,qTy), 10209 TP[CS(Mop(FPCmp 64,TP[Var("v",F64),Var("v0",F64)]), 10210 [(binary_ieeeSyntax.LT_tm,LW(1,64)), 10211 (binary_ieeeSyntax.EQ_tm,LW(0,64)), 10212 (binary_ieeeSyntax.GT_tm,LW(0,64)), 10213 (binary_ieeeSyntax.UN_tm,LW(0,64))]), 10214 Var("rd",FTy 5)]),qVar"state")))))) 10215; 10216val dfn'FLE_D_def = Def 10217 ("dfn'FLE_D",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 10218 Close 10219 (qVar"state", 10220 Let(Var("v",F64), 10221 Apply(Call("FPRD",ATy(qTy,F64),Var("rs1",FTy 5)),qVar"state"), 10222 Let(Var("v0",F64), 10223 Apply 10224 (Call("FPRD",ATy(qTy,F64),Var("rs2",FTy 5)),qVar"state"), 10225 ITE(Bop(Or,Mop(FPIsNan 64,Var("v",F64)), 10226 Mop(FPIsNan 64,Var("v0",F64))), 10227 Apply 10228 (Call("setFP_Invalid",ATy(qTy,qTy),LU), 10229 Apply 10230 (Call 10231 ("write'GPR",ATy(qTy,qTy), 10232 TP[LW(0,64),Var("rd",FTy 5)]),qVar"state")), 10233 Apply 10234 (Call 10235 ("write'GPR",ATy(qTy,qTy), 10236 TP[CS(Mop(FPCmp 64,TP[Var("v",F64),Var("v0",F64)]), 10237 [(binary_ieeeSyntax.LT_tm,LW(1,64)), 10238 (binary_ieeeSyntax.EQ_tm,LW(1,64)), 10239 (binary_ieeeSyntax.GT_tm,LW(0,64)), 10240 (binary_ieeeSyntax.UN_tm,LW(0,64))]), 10241 Var("rd",FTy 5)]),qVar"state")))))) 10242; 10243val dfn'FCLASS_D_def = Def 10244 ("dfn'FCLASS_D",TP[Var("rd",FTy 5),Var("rs",FTy 5)], 10245 Close 10246 (qVar"state", 10247 Let(TP[Var("v",F64),Var("s",PTy(FTy 10,qTy))], 10248 TP[Apply(Call("FPRD",ATy(qTy,F64),Var("rs",FTy 5)),qVar"state"), 10249 LW(0,10),qVar"state"], 10250 Apply 10251 (Call 10252 ("write'GPR",ATy(qTy,qTy), 10253 TP[Mop(Cast F64, 10254 BFI(LN 9,LN 9, 10255 Mop(Cast F1, 10256 EQ(Var("v",F64), 10257 Const("RV64_CanonicalNan",F64))), 10258 BFI(LN 8,LN 8, 10259 Mop(Cast F1, 10260 Call 10261 ("FP64_IsSignalingNan",bTy, 10262 Var("v",F64))), 10263 BFI(LN 7,LN 7, 10264 Mop(Cast F1,EQ(Var("v",F64),POSINF64)), 10265 BFI(LN 6,LN 6, 10266 Mop(Cast F1, 10267 Bop(And, 10268 Mop(Not, 10269 Call 10270 ("FP64_Sign",bTy, 10271 Var("v",F64))), 10272 Mop(FPIsNormal 64, 10273 Var("v",F64)))), 10274 BFI(LN 5,LN 5, 10275 Mop(Cast F1, 10276 Bop(And, 10277 Mop(Not, 10278 Call 10279 ("FP64_Sign",bTy, 10280 Var("v",F64))), 10281 Mop(FPIsSubnormal 64, 10282 Var("v",F64)))), 10283 BFI(LN 4,LN 4, 10284 Mop(Cast F1, 10285 EQ(Var("v",F64), 10286 POSZERO64)), 10287 BFI(LN 3,LN 3, 10288 Mop(Cast F1, 10289 EQ(Var("v",F64), 10290 NEGZERO64)), 10291 BFI(LN 2,LN 2, 10292 Mop(Cast F1, 10293 Bop(And, 10294 Call 10295 ("FP64_Sign", 10296 bTy, 10297 Var("v", 10298 F64)), 10299 Mop(FPIsSubnormal 64, 10300 Var("v", 10301 F64)))), 10302 BFI(LN 1,LN 1, 10303 Mop(Cast F1, 10304 Bop(And, 10305 Call 10306 ("FP64_Sign", 10307 bTy, 10308 Var("v", 10309 F64)), 10310 Mop(FPIsNormal 64, 10311 Var("v", 10312 F64)))), 10313 BFI(LN 0,LN 0, 10314 Mop(Cast F1, 10315 EQ(Var("v", 10316 F64), 10317 NEGINF64)), 10318 Mop(Fst, 10319 Var("s", 10320 PTy(FTy 10, 10321 qTy)))))))))))))), 10322 Var("rd",FTy 5)]),Mop(Snd,Var("s",PTy(FTy 10,qTy))))))) 10323; 10324val dfn'ECALL_def = Def 10325 ("dfn'ECALL",qVar"state", 10326 Apply(Call("signalEnvCall",ATy(qTy,qTy),LU),qVar"state")) 10327; 10328val dfn'EBREAK_def = Def 10329 ("dfn'EBREAK",qVar"state", 10330 Apply 10331 (Call 10332 ("signalException",ATy(qTy,qTy), 10333 LC("Breakpoint",CTy"ExceptionType")),qVar"state")) 10334; 10335val dfn'ERET_def = Def 10336 ("dfn'ERET",qVar"state", 10337 Apply 10338 (Call 10339 ("write'NextFetch",ATy(qTy,qTy), 10340 Mop(Some,Const("Ereturn",CTy"TransferControl"))),qVar"state")) 10341; 10342val dfn'MRTS_def = Def 10343 ("dfn'MRTS",qVar"state", 10344 Let(TP[Var("v",CTy"SupervisorCSR"),qVar"s"], 10345 Let(qVar"s0", 10346 Apply 10347 (Call 10348 ("write'SCSR",ATy(qTy,qTy), 10349 Rupd 10350 ("scause", 10351 TP[Apply 10352 (Const("SCSR",ATy(qTy,CTy"SupervisorCSR")), 10353 qVar"state"), 10354 Dest 10355 ("mcause",CTy"mcause", 10356 Apply 10357 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 10358 qVar"state"))])),qVar"state"), 10359 TP[Apply(Const("SCSR",ATy(qTy,CTy"SupervisorCSR")),qVar"s0"), 10360 qVar"s0"]), 10361 Let(TP[Var("v",CTy"SupervisorCSR"),qVar"s"], 10362 Let(qVar"s0", 10363 Apply 10364 (Call 10365 ("write'SCSR",ATy(qTy,qTy), 10366 Rupd 10367 ("sbadaddr", 10368 TP[Var("v",CTy"SupervisorCSR"), 10369 Dest 10370 ("mbadaddr",F64, 10371 Apply 10372 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 10373 qVar"s"))])),qVar"s"), 10374 TP[Apply 10375 (Const("SCSR",ATy(qTy,CTy"SupervisorCSR")),qVar"s0"), 10376 qVar"s0"]), 10377 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 10378 Let(qVar"s0", 10379 Apply 10380 (Call 10381 ("write'SCSR",ATy(qTy,qTy), 10382 Rupd 10383 ("sepc", 10384 TP[Var("v",CTy"SupervisorCSR"), 10385 Dest 10386 ("mepc",F64, 10387 Apply 10388 (Const 10389 ("MCSR",ATy(qTy,CTy"MachineCSR")), 10390 qVar"s"))])),qVar"s"), 10391 TP[Apply 10392 (Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s0"), 10393 qVar"s0"]), 10394 Apply 10395 (Call 10396 ("write'NextFetch",ATy(qTy,qTy), 10397 Mop(Some,Const("Mrts",CTy"TransferControl"))), 10398 Apply 10399 (Call 10400 ("write'MCSR",ATy(qTy,qTy), 10401 Rupd 10402 ("mstatus", 10403 TP[Var("v",CTy"MachineCSR"), 10404 Rupd 10405 ("MPRV", 10406 TP[Dest 10407 ("mstatus",CTy"mstatus", 10408 Var("v",CTy"MachineCSR")), 10409 Call 10410 ("privLevel",FTy 2, 10411 LC("Supervisor",CTy"Privilege"))])])), 10412 qVar"s")))))) 10413; 10414val dfn'WFI_def = Def0 ("dfn'WFI",LU) 10415; 10416val checkCSROp_def = Def 10417 ("checkCSROp", 10418 TP[Var("csr",FTy 12),Var("rs1",FTy 5),Var("a",CTy"accessType")], 10419 Close 10420 (qVar"state", 10421 Let(TP[bVar"v",qVar"s"], 10422 Apply 10423 (Call 10424 ("is_CSR_defined",ATy(qTy,PTy(bTy,qTy)),Var("csr",FTy 12)), 10425 qVar"state"), 10426 TP[Bop(And,bVar"v", 10427 Call 10428 ("check_CSR_access",bTy, 10429 TP[Call("csrRW",FTy 2,Var("csr",FTy 12)), 10430 Call("csrPR",FTy 2,Var("csr",FTy 12)), 10431 Apply 10432 (Call("curPrivilege",ATy(qTy,CTy"Privilege"),LU), 10433 qVar"s"),Var("a",CTy"accessType")])),qVar"s"]))) 10434; 10435val dfn'CSRRW_def = Def 10436 ("dfn'CSRRW",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)], 10437 Close 10438 (qVar"state", 10439 Let(TP[bVar"v",qVar"s"], 10440 Apply 10441 (Call 10442 ("checkCSROp",ATy(qTy,PTy(bTy,qTy)), 10443 TP[Var("csr",FTy 12),Var("rs1",FTy 5), 10444 LC("Write",CTy"accessType")]),qVar"state"), 10445 ITE(bVar"v", 10446 Let(TP[Var("v",F64),qVar"s"], 10447 Apply 10448 (Call("CSR",ATy(qTy,PTy(F64,qTy)),Var("csr",FTy 12)), 10449 qVar"s"), 10450 Apply 10451 (Call 10452 ("write'GPR",ATy(qTy,qTy), 10453 TP[Var("v",F64),Var("rd",FTy 5)]), 10454 Apply 10455 (Call 10456 ("writeCSR",ATy(qTy,qTy), 10457 TP[Var("csr",FTy 12), 10458 Apply 10459 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 10460 qVar"s")]),qVar"s"))), 10461 Apply 10462 (Call 10463 ("signalException",ATy(qTy,qTy), 10464 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"))))) 10465; 10466val dfn'CSRRS_def = Def 10467 ("dfn'CSRRS",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)], 10468 Close 10469 (qVar"state", 10470 Let(TP[bVar"v",qVar"s"], 10471 Apply 10472 (Call 10473 ("checkCSROp",ATy(qTy,PTy(bTy,qTy)), 10474 TP[Var("csr",FTy 12),Var("rs1",FTy 5), 10475 ITE(EQ(Var("rs1",FTy 5),LW(0,5)), 10476 LC("Read",CTy"accessType"), 10477 LC("Write",CTy"accessType"))]),qVar"state"), 10478 ITE(bVar"v", 10479 Let(TP[Var("v",F64),qVar"s"], 10480 Apply 10481 (Call("CSR",ATy(qTy,PTy(F64,qTy)),Var("csr",FTy 12)), 10482 qVar"s"), 10483 Apply 10484 (Call 10485 ("write'GPR",ATy(qTy,qTy), 10486 TP[Var("v",F64),Var("rd",FTy 5)]), 10487 ITE(Mop(Not,EQ(Var("rs1",FTy 5),LW(0,5))), 10488 Apply 10489 (Call 10490 ("writeCSR",ATy(qTy,qTy), 10491 TP[Var("csr",FTy 12), 10492 Bop(BOr,Var("v",F64), 10493 Apply 10494 (Call 10495 ("GPR",ATy(qTy,F64), 10496 Var("rs1",FTy 5)),qVar"s"))]), 10497 qVar"s"),qVar"s"))), 10498 Apply 10499 (Call 10500 ("signalException",ATy(qTy,qTy), 10501 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"))))) 10502; 10503val dfn'CSRRC_def = Def 10504 ("dfn'CSRRC",TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)], 10505 Close 10506 (qVar"state", 10507 Let(TP[bVar"v",qVar"s"], 10508 Apply 10509 (Call 10510 ("checkCSROp",ATy(qTy,PTy(bTy,qTy)), 10511 TP[Var("csr",FTy 12),Var("rs1",FTy 5), 10512 ITE(EQ(Var("rs1",FTy 5),LW(0,5)), 10513 LC("Read",CTy"accessType"), 10514 LC("Write",CTy"accessType"))]),qVar"state"), 10515 ITE(bVar"v", 10516 Let(TP[Var("v",F64),qVar"s"], 10517 Apply 10518 (Call("CSR",ATy(qTy,PTy(F64,qTy)),Var("csr",FTy 12)), 10519 qVar"s"), 10520 Apply 10521 (Call 10522 ("write'GPR",ATy(qTy,qTy), 10523 TP[Var("v",F64),Var("rd",FTy 5)]), 10524 ITE(Mop(Not,EQ(Var("rs1",FTy 5),LW(0,5))), 10525 Apply 10526 (Call 10527 ("writeCSR",ATy(qTy,qTy), 10528 TP[Var("csr",FTy 12), 10529 Bop(BAnd,Var("v",F64), 10530 Mop(BNot, 10531 Apply 10532 (Call 10533 ("GPR",ATy(qTy,F64), 10534 Var("rs1",FTy 5)),qVar"s")))]), 10535 qVar"s"),qVar"s"))), 10536 Apply 10537 (Call 10538 ("signalException",ATy(qTy,qTy), 10539 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"))))) 10540; 10541val dfn'CSRRWI_def = Def 10542 ("dfn'CSRRWI",TP[Var("rd",FTy 5),Var("zimm",FTy 5),Var("csr",FTy 12)], 10543 Close 10544 (qVar"state", 10545 Let(TP[bVar"v",qVar"s"], 10546 Apply 10547 (Call 10548 ("checkCSROp",ATy(qTy,PTy(bTy,qTy)), 10549 TP[Var("csr",FTy 12),Var("zimm",FTy 5), 10550 ITE(EQ(Var("zimm",FTy 5),LW(0,5)), 10551 LC("Read",CTy"accessType"), 10552 LC("Write",CTy"accessType"))]),qVar"state"), 10553 ITE(bVar"v", 10554 Let(TP[Var("v",F64),qVar"s"], 10555 Apply 10556 (Call("CSR",ATy(qTy,PTy(F64,qTy)),Var("csr",FTy 12)), 10557 qVar"s"), 10558 Apply 10559 (Call 10560 ("write'GPR",ATy(qTy,qTy), 10561 TP[Var("v",F64),Var("rd",FTy 5)]), 10562 ITE(Mop(Not,EQ(Var("zimm",FTy 5),LW(0,5))), 10563 Apply 10564 (Call 10565 ("writeCSR",ATy(qTy,qTy), 10566 TP[Var("csr",FTy 12), 10567 Mop(Cast F64,Var("zimm",FTy 5))]), 10568 qVar"s"),qVar"s"))), 10569 Apply 10570 (Call 10571 ("signalException",ATy(qTy,qTy), 10572 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"))))) 10573; 10574val dfn'CSRRSI_def = Def 10575 ("dfn'CSRRSI",TP[Var("rd",FTy 5),Var("zimm",FTy 5),Var("csr",FTy 12)], 10576 Close 10577 (qVar"state", 10578 Let(TP[bVar"v",qVar"s"], 10579 Apply 10580 (Call 10581 ("checkCSROp",ATy(qTy,PTy(bTy,qTy)), 10582 TP[Var("csr",FTy 12),Var("zimm",FTy 5), 10583 ITE(EQ(Var("zimm",FTy 5),LW(0,5)), 10584 LC("Read",CTy"accessType"), 10585 LC("Write",CTy"accessType"))]),qVar"state"), 10586 ITE(bVar"v", 10587 Let(TP[Var("v",F64),qVar"s"], 10588 Apply 10589 (Call("CSR",ATy(qTy,PTy(F64,qTy)),Var("csr",FTy 12)), 10590 qVar"s"), 10591 Apply 10592 (Call 10593 ("write'GPR",ATy(qTy,qTy), 10594 TP[Var("v",F64),Var("rd",FTy 5)]), 10595 ITE(Mop(Not,EQ(Var("zimm",FTy 5),LW(0,5))), 10596 Apply 10597 (Call 10598 ("writeCSR",ATy(qTy,qTy), 10599 TP[Var("csr",FTy 12), 10600 Bop(BOr,Var("v",F64), 10601 Mop(Cast F64,Var("zimm",FTy 5)))]), 10602 qVar"s"),qVar"s"))), 10603 Apply 10604 (Call 10605 ("signalException",ATy(qTy,qTy), 10606 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"))))) 10607; 10608val dfn'CSRRCI_def = Def 10609 ("dfn'CSRRCI",TP[Var("rd",FTy 5),Var("zimm",FTy 5),Var("csr",FTy 12)], 10610 Close 10611 (qVar"state", 10612 Let(TP[bVar"v",qVar"s"], 10613 Apply 10614 (Call 10615 ("checkCSROp",ATy(qTy,PTy(bTy,qTy)), 10616 TP[Var("csr",FTy 12),Var("zimm",FTy 5), 10617 ITE(EQ(Var("zimm",FTy 5),LW(0,5)), 10618 LC("Read",CTy"accessType"), 10619 LC("Write",CTy"accessType"))]),qVar"state"), 10620 ITE(bVar"v", 10621 Let(TP[Var("v",F64),qVar"s"], 10622 Apply 10623 (Call("CSR",ATy(qTy,PTy(F64,qTy)),Var("csr",FTy 12)), 10624 qVar"s"), 10625 Apply 10626 (Call 10627 ("write'GPR",ATy(qTy,qTy), 10628 TP[Var("v",F64),Var("rd",FTy 5)]), 10629 ITE(Mop(Not,EQ(Var("zimm",FTy 5),LW(0,5))), 10630 Apply 10631 (Call 10632 ("writeCSR",ATy(qTy,qTy), 10633 TP[Var("csr",FTy 12), 10634 Bop(BAnd,Var("v",F64), 10635 Mop(BNot, 10636 Mop(Cast F64,Var("zimm",FTy 5))))]), 10637 qVar"s"),qVar"s"))), 10638 Apply 10639 (Call 10640 ("signalException",ATy(qTy,qTy), 10641 LC("Illegal_Instr",CTy"ExceptionType")),qVar"s"))))) 10642; 10643val dfn'SFENCE_VM_def = Def 10644 ("dfn'SFENCE_VM",Var("rs1",FTy 5), 10645 Close 10646 (qVar"state", 10647 Apply 10648 (Call 10649 ("write'TLB",ATy(qTy,qTy), 10650 Call 10651 ("flushTLB",ATy(F4,OTy(CTy"TLBEntry")), 10652 TP[Apply(Call("curASID",ATy(qTy,FTy 6),LU),qVar"state"), 10653 ITE(EQ(Var("rs1",FTy 5),LW(0,5)),LO F64, 10654 Mop(Some, 10655 Apply 10656 (Call("GPR",ATy(qTy,F64),Var("rs1",FTy 5)), 10657 qVar"state"))), 10658 Apply 10659 (Const("TLB",ATy(qTy,ATy(F4,OTy(CTy"TLBEntry")))), 10660 qVar"state")])),qVar"state"))) 10661; 10662val dfn'UnknownInstruction_def = Def 10663 ("dfn'UnknownInstruction",qVar"state", 10664 Apply 10665 (Call 10666 ("signalException",ATy(qTy,qTy), 10667 LC("Illegal_Instr",CTy"ExceptionType")),qVar"state")) 10668; 10669val dfn'FETCH_MISALIGNED_def = Def 10670 ("dfn'FETCH_MISALIGNED",Var("addr",F64), 10671 Close 10672 (qVar"state", 10673 Apply 10674 (Call 10675 ("signalAddressException",ATy(qTy,qTy), 10676 TP[LC("Fetch_Misaligned",CTy"ExceptionType"),Var("addr",F64)]), 10677 qVar"state"))) 10678; 10679val dfn'FETCH_FAULT_def = Def 10680 ("dfn'FETCH_FAULT",Var("addr",F64), 10681 Close 10682 (qVar"state", 10683 Apply 10684 (Call 10685 ("signalAddressException",ATy(qTy,qTy), 10686 TP[LC("Fetch_Fault",CTy"ExceptionType"),Var("addr",F64)]), 10687 qVar"state"))) 10688; 10689val Run_def = Def 10690 ("Run",Var("v0",CTy"instruction"), 10691 Close 10692 (qVar"state", 10693 CS(Var("v0",CTy"instruction"), 10694 [(Const("UnknownInstruction",CTy"instruction"), 10695 Apply(Const("dfn'UnknownInstruction",ATy(qTy,qTy)),qVar"state")), 10696 (Call 10697 ("FENCE",CTy"instruction", 10698 Var("v170",PTy(FTy 5,PTy(FTy 5,PTy(F4,F4))))),qVar"state"), 10699 (Call 10700 ("FENCE_I",CTy"instruction", 10701 Var("v171",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state"), 10702 (Call("AMO",CTy"instruction",Var("v1",CTy"AMO")), 10703 CS(Var("v1",CTy"AMO"), 10704 [(Call 10705 ("AMOADD_D",CTy"AMO", 10706 Var("v2",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10707 Apply 10708 (Call 10709 ("dfn'AMOADD_D",ATy(qTy,qTy), 10710 Var("v2",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10711 qVar"state")), 10712 (Call 10713 ("AMOADD_W",CTy"AMO", 10714 Var("v3",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10715 Apply 10716 (Call 10717 ("dfn'AMOADD_W",ATy(qTy,qTy), 10718 Var("v3",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10719 qVar"state")), 10720 (Call 10721 ("AMOAND_D",CTy"AMO", 10722 Var("v4",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10723 Apply 10724 (Call 10725 ("dfn'AMOAND_D",ATy(qTy,qTy), 10726 Var("v4",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10727 qVar"state")), 10728 (Call 10729 ("AMOAND_W",CTy"AMO", 10730 Var("v5",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10731 Apply 10732 (Call 10733 ("dfn'AMOAND_W",ATy(qTy,qTy), 10734 Var("v5",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10735 qVar"state")), 10736 (Call 10737 ("AMOMAXU_D",CTy"AMO", 10738 Var("v6",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10739 Apply 10740 (Call 10741 ("dfn'AMOMAXU_D",ATy(qTy,qTy), 10742 Var("v6",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10743 qVar"state")), 10744 (Call 10745 ("AMOMAXU_W",CTy"AMO", 10746 Var("v7",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10747 Apply 10748 (Call 10749 ("dfn'AMOMAXU_W",ATy(qTy,qTy), 10750 Var("v7",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10751 qVar"state")), 10752 (Call 10753 ("AMOMAX_D",CTy"AMO", 10754 Var("v8",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10755 Apply 10756 (Call 10757 ("dfn'AMOMAX_D",ATy(qTy,qTy), 10758 Var("v8",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10759 qVar"state")), 10760 (Call 10761 ("AMOMAX_W",CTy"AMO", 10762 Var("v9",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10763 Apply 10764 (Call 10765 ("dfn'AMOMAX_W",ATy(qTy,qTy), 10766 Var("v9",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10767 qVar"state")), 10768 (Call 10769 ("AMOMINU_D",CTy"AMO", 10770 Var("v10",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10771 Apply 10772 (Call 10773 ("dfn'AMOMINU_D",ATy(qTy,qTy), 10774 Var("v10", 10775 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10776 qVar"state")), 10777 (Call 10778 ("AMOMINU_W",CTy"AMO", 10779 Var("v11",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10780 Apply 10781 (Call 10782 ("dfn'AMOMINU_W",ATy(qTy,qTy), 10783 Var("v11", 10784 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10785 qVar"state")), 10786 (Call 10787 ("AMOMIN_D",CTy"AMO", 10788 Var("v12",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10789 Apply 10790 (Call 10791 ("dfn'AMOMIN_D",ATy(qTy,qTy), 10792 Var("v12", 10793 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10794 qVar"state")), 10795 (Call 10796 ("AMOMIN_W",CTy"AMO", 10797 Var("v13",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10798 Apply 10799 (Call 10800 ("dfn'AMOMIN_W",ATy(qTy,qTy), 10801 Var("v13", 10802 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10803 qVar"state")), 10804 (Call 10805 ("AMOOR_D",CTy"AMO", 10806 Var("v14",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10807 Apply 10808 (Call 10809 ("dfn'AMOOR_D",ATy(qTy,qTy), 10810 Var("v14", 10811 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10812 qVar"state")), 10813 (Call 10814 ("AMOOR_W",CTy"AMO", 10815 Var("v15",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10816 Apply 10817 (Call 10818 ("dfn'AMOOR_W",ATy(qTy,qTy), 10819 Var("v15", 10820 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10821 qVar"state")), 10822 (Call 10823 ("AMOSWAP_D",CTy"AMO", 10824 Var("v16",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10825 Apply 10826 (Call 10827 ("dfn'AMOSWAP_D",ATy(qTy,qTy), 10828 Var("v16", 10829 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10830 qVar"state")), 10831 (Call 10832 ("AMOSWAP_W",CTy"AMO", 10833 Var("v17",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10834 Apply 10835 (Call 10836 ("dfn'AMOSWAP_W",ATy(qTy,qTy), 10837 Var("v17", 10838 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10839 qVar"state")), 10840 (Call 10841 ("AMOXOR_D",CTy"AMO", 10842 Var("v18",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10843 Apply 10844 (Call 10845 ("dfn'AMOXOR_D",ATy(qTy,qTy), 10846 Var("v18", 10847 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10848 qVar"state")), 10849 (Call 10850 ("AMOXOR_W",CTy"AMO", 10851 Var("v19",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10852 Apply 10853 (Call 10854 ("dfn'AMOXOR_W",ATy(qTy,qTy), 10855 Var("v19", 10856 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10857 qVar"state")), 10858 (Call 10859 ("LR_D",CTy"AMO", 10860 Var("v20",PTy(F1,PTy(F1,PTy(FTy 5,FTy 5))))), 10861 Apply 10862 (Call 10863 ("dfn'LR_D",ATy(qTy,qTy), 10864 Var("v20",PTy(F1,PTy(F1,PTy(FTy 5,FTy 5))))), 10865 qVar"state")), 10866 (Call 10867 ("LR_W",CTy"AMO", 10868 Var("v21",PTy(F1,PTy(F1,PTy(FTy 5,FTy 5))))), 10869 Apply 10870 (Call 10871 ("dfn'LR_W",ATy(qTy,qTy), 10872 Var("v21",PTy(F1,PTy(F1,PTy(FTy 5,FTy 5))))), 10873 qVar"state")), 10874 (Call 10875 ("SC_D",CTy"AMO", 10876 Var("v22",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10877 Apply 10878 (Call 10879 ("dfn'SC_D",ATy(qTy,qTy), 10880 Var("v22", 10881 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10882 qVar"state")), 10883 (Call 10884 ("SC_W",CTy"AMO", 10885 Var("v23",PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10886 Apply 10887 (Call 10888 ("dfn'SC_W",ATy(qTy,qTy), 10889 Var("v23", 10890 PTy(F1,PTy(F1,PTy(FTy 5,PTy(FTy 5,FTy 5)))))), 10891 qVar"state"))])), 10892 (Call("ArithI",CTy"instruction",Var("v24",CTy"ArithI")), 10893 CS(Var("v24",CTy"ArithI"), 10894 [(Call 10895 ("ADDI",CTy"ArithI", 10896 Var("v25",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 10897 Apply 10898 (Call 10899 ("dfn'ADDI",ATy(qTy,qTy), 10900 Var("v25",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 10901 (Call 10902 ("ADDIW",CTy"ArithI", 10903 Var("v26",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 10904 Apply 10905 (Call 10906 ("dfn'ADDIW",ATy(qTy,qTy), 10907 Var("v26",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 10908 (Call 10909 ("ANDI",CTy"ArithI", 10910 Var("v27",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 10911 Apply 10912 (Call 10913 ("dfn'ANDI",ATy(qTy,qTy), 10914 Var("v27",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 10915 (Call("AUIPC",CTy"ArithI",Var("v28",PTy(FTy 5,FTy 20))), 10916 Apply 10917 (Call 10918 ("dfn'AUIPC",ATy(qTy,qTy), 10919 Var("v28",PTy(FTy 5,FTy 20))),qVar"state")), 10920 (Call("LUI",CTy"ArithI",Var("v29",PTy(FTy 5,FTy 20))), 10921 Apply 10922 (Call 10923 ("dfn'LUI",ATy(qTy,qTy),Var("v29",PTy(FTy 5,FTy 20))), 10924 qVar"state")), 10925 (Call 10926 ("ORI",CTy"ArithI", 10927 Var("v30",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 10928 Apply 10929 (Call 10930 ("dfn'ORI",ATy(qTy,qTy), 10931 Var("v30",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 10932 (Call 10933 ("SLTI",CTy"ArithI", 10934 Var("v31",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 10935 Apply 10936 (Call 10937 ("dfn'SLTI",ATy(qTy,qTy), 10938 Var("v31",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 10939 (Call 10940 ("SLTIU",CTy"ArithI", 10941 Var("v32",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 10942 Apply 10943 (Call 10944 ("dfn'SLTIU",ATy(qTy,qTy), 10945 Var("v32",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 10946 (Call 10947 ("XORI",CTy"ArithI", 10948 Var("v33",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 10949 Apply 10950 (Call 10951 ("dfn'XORI",ATy(qTy,qTy), 10952 Var("v33",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state"))])), 10953 (Call("ArithR",CTy"instruction",Var("v34",CTy"ArithR")), 10954 CS(Var("v34",CTy"ArithR"), 10955 [(Call 10956 ("ADD",CTy"ArithR", 10957 Var("v35",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 10958 Apply 10959 (Call 10960 ("dfn'ADD",ATy(qTy,qTy), 10961 Var("v35",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 10962 (Call 10963 ("ADDW",CTy"ArithR", 10964 Var("v36",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 10965 Apply 10966 (Call 10967 ("dfn'ADDW",ATy(qTy,qTy), 10968 Var("v36",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 10969 (Call 10970 ("AND",CTy"ArithR", 10971 Var("v37",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 10972 Apply 10973 (Call 10974 ("dfn'AND",ATy(qTy,qTy), 10975 Var("v37",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 10976 (Call 10977 ("OR",CTy"ArithR",Var("v38",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 10978 Apply 10979 (Call 10980 ("dfn'OR",ATy(qTy,qTy), 10981 Var("v38",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 10982 (Call 10983 ("SLT",CTy"ArithR", 10984 Var("v39",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 10985 Apply 10986 (Call 10987 ("dfn'SLT",ATy(qTy,qTy), 10988 Var("v39",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 10989 (Call 10990 ("SLTU",CTy"ArithR", 10991 Var("v40",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 10992 Apply 10993 (Call 10994 ("dfn'SLTU",ATy(qTy,qTy), 10995 Var("v40",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 10996 (Call 10997 ("SUB",CTy"ArithR", 10998 Var("v41",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 10999 Apply 11000 (Call 11001 ("dfn'SUB",ATy(qTy,qTy), 11002 Var("v41",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11003 (Call 11004 ("SUBW",CTy"ArithR", 11005 Var("v42",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11006 Apply 11007 (Call 11008 ("dfn'SUBW",ATy(qTy,qTy), 11009 Var("v42",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11010 (Call 11011 ("XOR",CTy"ArithR", 11012 Var("v43",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11013 Apply 11014 (Call 11015 ("dfn'XOR",ATy(qTy,qTy), 11016 Var("v43",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state"))])), 11017 (Call("Branch",CTy"instruction",Var("v44",CTy"Branch")), 11018 CS(Var("v44",CTy"Branch"), 11019 [(Call 11020 ("BEQ",CTy"Branch", 11021 Var("v45",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11022 Apply 11023 (Call 11024 ("dfn'BEQ",ATy(qTy,qTy), 11025 Var("v45",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 11026 (Call 11027 ("BGE",CTy"Branch", 11028 Var("v46",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11029 Apply 11030 (Call 11031 ("dfn'BGE",ATy(qTy,qTy), 11032 Var("v46",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 11033 (Call 11034 ("BGEU",CTy"Branch", 11035 Var("v47",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11036 Apply 11037 (Call 11038 ("dfn'BGEU",ATy(qTy,qTy), 11039 Var("v47",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 11040 (Call 11041 ("BLT",CTy"Branch", 11042 Var("v48",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11043 Apply 11044 (Call 11045 ("dfn'BLT",ATy(qTy,qTy), 11046 Var("v48",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 11047 (Call 11048 ("BLTU",CTy"Branch", 11049 Var("v49",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11050 Apply 11051 (Call 11052 ("dfn'BLTU",ATy(qTy,qTy), 11053 Var("v49",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 11054 (Call 11055 ("BNE",CTy"Branch", 11056 Var("v50",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11057 Apply 11058 (Call 11059 ("dfn'BNE",ATy(qTy,qTy), 11060 Var("v50",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state")), 11061 (Call("JAL",CTy"Branch",Var("v51",PTy(FTy 5,FTy 20))), 11062 Apply 11063 (Call 11064 ("dfn'JAL",ATy(qTy,qTy),Var("v51",PTy(FTy 5,FTy 20))), 11065 qVar"state")), 11066 (Call 11067 ("JALR",CTy"Branch", 11068 Var("v52",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11069 Apply 11070 (Call 11071 ("dfn'JALR",ATy(qTy,qTy), 11072 Var("v52",PTy(FTy 5,PTy(FTy 5,FTy 12)))),qVar"state"))])), 11073 (Call("FArith",CTy"instruction",Var("v53",CTy"FArith")), 11074 CS(Var("v53",CTy"FArith"), 11075 [(Call 11076 ("FADD_D",CTy"FArith", 11077 Var("v54",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11078 Apply 11079 (Call 11080 ("dfn'FADD_D",ATy(qTy,qTy), 11081 Var("v54",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11082 qVar"state")), 11083 (Call 11084 ("FADD_S",CTy"FArith", 11085 Var("v55",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11086 Apply 11087 (Call 11088 ("dfn'FADD_S",ATy(qTy,qTy), 11089 Var("v55",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11090 qVar"state")), 11091 (Call 11092 ("FDIV_D",CTy"FArith", 11093 Var("v56",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11094 Apply 11095 (Call 11096 ("dfn'FDIV_D",ATy(qTy,qTy), 11097 Var("v56",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11098 qVar"state")), 11099 (Call 11100 ("FDIV_S",CTy"FArith", 11101 Var("v57",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11102 Apply 11103 (Call 11104 ("dfn'FDIV_S",ATy(qTy,qTy), 11105 Var("v57",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11106 qVar"state")), 11107 (Call 11108 ("FEQ_D",CTy"FArith", 11109 Var("v58",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11110 Apply 11111 (Call 11112 ("dfn'FEQ_D",ATy(qTy,qTy), 11113 Var("v58",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11114 (Call 11115 ("FEQ_S",CTy"FArith", 11116 Var("v59",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11117 Apply 11118 (Call 11119 ("dfn'FEQ_S",ATy(qTy,qTy), 11120 Var("v59",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11121 (Call 11122 ("FLE_D",CTy"FArith", 11123 Var("v60",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11124 Apply 11125 (Call 11126 ("dfn'FLE_D",ATy(qTy,qTy), 11127 Var("v60",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11128 (Call 11129 ("FLE_S",CTy"FArith", 11130 Var("v61",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11131 Apply 11132 (Call 11133 ("dfn'FLE_S",ATy(qTy,qTy), 11134 Var("v61",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11135 (Call 11136 ("FLT_D",CTy"FArith", 11137 Var("v62",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11138 Apply 11139 (Call 11140 ("dfn'FLT_D",ATy(qTy,qTy), 11141 Var("v62",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11142 (Call 11143 ("FLT_S",CTy"FArith", 11144 Var("v63",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11145 Apply 11146 (Call 11147 ("dfn'FLT_S",ATy(qTy,qTy), 11148 Var("v63",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11149 (Call 11150 ("FMADD_D",CTy"FArith", 11151 Var("v64", 11152 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11153 Apply 11154 (Call 11155 ("dfn'FMADD_D",ATy(qTy,qTy), 11156 Var("v64", 11157 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11158 qVar"state")), 11159 (Call 11160 ("FMADD_S",CTy"FArith", 11161 Var("v65", 11162 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11163 Apply 11164 (Call 11165 ("dfn'FMADD_S",ATy(qTy,qTy), 11166 Var("v65", 11167 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11168 qVar"state")), 11169 (Call 11170 ("FMAX_D",CTy"FArith", 11171 Var("v66",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11172 Apply 11173 (Call 11174 ("dfn'FMAX_D",ATy(qTy,qTy), 11175 Var("v66",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11176 (Call 11177 ("FMAX_S",CTy"FArith", 11178 Var("v67",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11179 Apply 11180 (Call 11181 ("dfn'FMAX_S",ATy(qTy,qTy), 11182 Var("v67",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11183 (Call 11184 ("FMIN_D",CTy"FArith", 11185 Var("v68",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11186 Apply 11187 (Call 11188 ("dfn'FMIN_D",ATy(qTy,qTy), 11189 Var("v68",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11190 (Call 11191 ("FMIN_S",CTy"FArith", 11192 Var("v69",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11193 Apply 11194 (Call 11195 ("dfn'FMIN_S",ATy(qTy,qTy), 11196 Var("v69",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11197 (Call 11198 ("FMSUB_D",CTy"FArith", 11199 Var("v70", 11200 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11201 Apply 11202 (Call 11203 ("dfn'FMSUB_D",ATy(qTy,qTy), 11204 Var("v70", 11205 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11206 qVar"state")), 11207 (Call 11208 ("FMSUB_S",CTy"FArith", 11209 Var("v71", 11210 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11211 Apply 11212 (Call 11213 ("dfn'FMSUB_S",ATy(qTy,qTy), 11214 Var("v71", 11215 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11216 qVar"state")), 11217 (Call 11218 ("FMUL_D",CTy"FArith", 11219 Var("v72",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11220 Apply 11221 (Call 11222 ("dfn'FMUL_D",ATy(qTy,qTy), 11223 Var("v72",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11224 qVar"state")), 11225 (Call 11226 ("FMUL_S",CTy"FArith", 11227 Var("v73",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11228 Apply 11229 (Call 11230 ("dfn'FMUL_S",ATy(qTy,qTy), 11231 Var("v73",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11232 qVar"state")), 11233 (Call 11234 ("FNMADD_D",CTy"FArith", 11235 Var("v74", 11236 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11237 Apply 11238 (Call 11239 ("dfn'FNMADD_D",ATy(qTy,qTy), 11240 Var("v74", 11241 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11242 qVar"state")), 11243 (Call 11244 ("FNMADD_S",CTy"FArith", 11245 Var("v75", 11246 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11247 Apply 11248 (Call 11249 ("dfn'FNMADD_S",ATy(qTy,qTy), 11250 Var("v75", 11251 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11252 qVar"state")), 11253 (Call 11254 ("FNMSUB_D",CTy"FArith", 11255 Var("v76", 11256 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11257 Apply 11258 (Call 11259 ("dfn'FNMSUB_D",ATy(qTy,qTy), 11260 Var("v76", 11261 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11262 qVar"state")), 11263 (Call 11264 ("FNMSUB_S",CTy"FArith", 11265 Var("v77", 11266 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11267 Apply 11268 (Call 11269 ("dfn'FNMSUB_S",ATy(qTy,qTy), 11270 Var("v77", 11271 PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3)))))), 11272 qVar"state")), 11273 (Call 11274 ("FSQRT_D",CTy"FArith", 11275 Var("v78",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11276 Apply 11277 (Call 11278 ("dfn'FSQRT_D",ATy(qTy,qTy), 11279 Var("v78",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11280 (Call 11281 ("FSQRT_S",CTy"FArith", 11282 Var("v79",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11283 Apply 11284 (Call 11285 ("dfn'FSQRT_S",ATy(qTy,qTy), 11286 Var("v79",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11287 (Call 11288 ("FSUB_D",CTy"FArith", 11289 Var("v80",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11290 Apply 11291 (Call 11292 ("dfn'FSUB_D",ATy(qTy,qTy), 11293 Var("v80",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11294 qVar"state")), 11295 (Call 11296 ("FSUB_S",CTy"FArith", 11297 Var("v81",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11298 Apply 11299 (Call 11300 ("dfn'FSUB_S",ATy(qTy,qTy), 11301 Var("v81",PTy(FTy 5,PTy(FTy 5,PTy(FTy 5,FTy 3))))), 11302 qVar"state"))])), 11303 (Call("FConv",CTy"instruction",Var("v82",CTy"FConv")), 11304 CS(Var("v82",CTy"FConv"), 11305 [(Call("FCLASS_D",CTy"FConv",Var("v83",PTy(FTy 5,FTy 5))), 11306 Apply 11307 (Call 11308 ("dfn'FCLASS_D",ATy(qTy,qTy), 11309 Var("v83",PTy(FTy 5,FTy 5))),qVar"state")), 11310 (Call("FCLASS_S",CTy"FConv",Var("v84",PTy(FTy 5,FTy 5))), 11311 Apply 11312 (Call 11313 ("dfn'FCLASS_S",ATy(qTy,qTy), 11314 Var("v84",PTy(FTy 5,FTy 5))),qVar"state")), 11315 (Call 11316 ("FCVT_D_L",CTy"FConv", 11317 Var("v85",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11318 Apply 11319 (Call 11320 ("dfn'FCVT_D_L",ATy(qTy,qTy), 11321 Var("v85",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11322 (Call 11323 ("FCVT_D_LU",CTy"FConv", 11324 Var("v86",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11325 Apply 11326 (Call 11327 ("dfn'FCVT_D_LU",ATy(qTy,qTy), 11328 Var("v86",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11329 (Call 11330 ("FCVT_D_S",CTy"FConv", 11331 Var("v87",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11332 Apply 11333 (Call 11334 ("dfn'FCVT_D_S",ATy(qTy,qTy), 11335 Var("v87",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11336 (Call 11337 ("FCVT_D_W",CTy"FConv", 11338 Var("v88",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11339 Apply 11340 (Call 11341 ("dfn'FCVT_D_W",ATy(qTy,qTy), 11342 Var("v88",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11343 (Call 11344 ("FCVT_D_WU",CTy"FConv", 11345 Var("v89",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11346 Apply 11347 (Call 11348 ("dfn'FCVT_D_WU",ATy(qTy,qTy), 11349 Var("v89",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11350 (Call 11351 ("FCVT_LU_D",CTy"FConv", 11352 Var("v90",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11353 Apply 11354 (Call 11355 ("dfn'FCVT_LU_D",ATy(qTy,qTy), 11356 Var("v90",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11357 (Call 11358 ("FCVT_LU_S",CTy"FConv", 11359 Var("v91",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11360 Apply 11361 (Call 11362 ("dfn'FCVT_LU_S",ATy(qTy,qTy), 11363 Var("v91",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11364 (Call 11365 ("FCVT_L_D",CTy"FConv", 11366 Var("v92",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11367 Apply 11368 (Call 11369 ("dfn'FCVT_L_D",ATy(qTy,qTy), 11370 Var("v92",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11371 (Call 11372 ("FCVT_L_S",CTy"FConv", 11373 Var("v93",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11374 Apply 11375 (Call 11376 ("dfn'FCVT_L_S",ATy(qTy,qTy), 11377 Var("v93",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11378 (Call 11379 ("FCVT_S_D",CTy"FConv", 11380 Var("v94",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11381 Apply 11382 (Call 11383 ("dfn'FCVT_S_D",ATy(qTy,qTy), 11384 Var("v94",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11385 (Call 11386 ("FCVT_S_L",CTy"FConv", 11387 Var("v95",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11388 Apply 11389 (Call 11390 ("dfn'FCVT_S_L",ATy(qTy,qTy), 11391 Var("v95",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11392 (Call 11393 ("FCVT_S_LU",CTy"FConv", 11394 Var("v96",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11395 Apply 11396 (Call 11397 ("dfn'FCVT_S_LU",ATy(qTy,qTy), 11398 Var("v96",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11399 (Call 11400 ("FCVT_S_W",CTy"FConv", 11401 Var("v97",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11402 Apply 11403 (Call 11404 ("dfn'FCVT_S_W",ATy(qTy,qTy), 11405 Var("v97",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11406 (Call 11407 ("FCVT_S_WU",CTy"FConv", 11408 Var("v98",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11409 Apply 11410 (Call 11411 ("dfn'FCVT_S_WU",ATy(qTy,qTy), 11412 Var("v98",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11413 (Call 11414 ("FCVT_WU_D",CTy"FConv", 11415 Var("v99",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11416 Apply 11417 (Call 11418 ("dfn'FCVT_WU_D",ATy(qTy,qTy), 11419 Var("v99",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11420 (Call 11421 ("FCVT_WU_S",CTy"FConv", 11422 Var("v100",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11423 Apply 11424 (Call 11425 ("dfn'FCVT_WU_S",ATy(qTy,qTy), 11426 Var("v100",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11427 (Call 11428 ("FCVT_W_D",CTy"FConv", 11429 Var("v101",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11430 Apply 11431 (Call 11432 ("dfn'FCVT_W_D",ATy(qTy,qTy), 11433 Var("v101",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11434 (Call 11435 ("FCVT_W_S",CTy"FConv", 11436 Var("v102",PTy(FTy 5,PTy(FTy 5,FTy 3)))), 11437 Apply 11438 (Call 11439 ("dfn'FCVT_W_S",ATy(qTy,qTy), 11440 Var("v102",PTy(FTy 5,PTy(FTy 5,FTy 3)))),qVar"state")), 11441 (Call("FMV_D_X",CTy"FConv",Var("v103",PTy(FTy 5,FTy 5))), 11442 Apply 11443 (Call 11444 ("dfn'FMV_D_X",ATy(qTy,qTy), 11445 Var("v103",PTy(FTy 5,FTy 5))),qVar"state")), 11446 (Call("FMV_S_X",CTy"FConv",Var("v104",PTy(FTy 5,FTy 5))), 11447 Apply 11448 (Call 11449 ("dfn'FMV_S_X",ATy(qTy,qTy), 11450 Var("v104",PTy(FTy 5,FTy 5))),qVar"state")), 11451 (Call("FMV_X_D",CTy"FConv",Var("v105",PTy(FTy 5,FTy 5))), 11452 Apply 11453 (Call 11454 ("dfn'FMV_X_D",ATy(qTy,qTy), 11455 Var("v105",PTy(FTy 5,FTy 5))),qVar"state")), 11456 (Call("FMV_X_S",CTy"FConv",Var("v106",PTy(FTy 5,FTy 5))), 11457 Apply 11458 (Call 11459 ("dfn'FMV_X_S",ATy(qTy,qTy), 11460 Var("v106",PTy(FTy 5,FTy 5))),qVar"state")), 11461 (Call 11462 ("FSGNJN_D",CTy"FConv", 11463 Var("v107",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11464 Apply 11465 (Call 11466 ("dfn'FSGNJN_D",ATy(qTy,qTy), 11467 Var("v107",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11468 (Call 11469 ("FSGNJN_S",CTy"FConv", 11470 Var("v108",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11471 Apply 11472 (Call 11473 ("dfn'FSGNJN_S",ATy(qTy,qTy), 11474 Var("v108",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11475 (Call 11476 ("FSGNJX_D",CTy"FConv", 11477 Var("v109",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11478 Apply 11479 (Call 11480 ("dfn'FSGNJX_D",ATy(qTy,qTy), 11481 Var("v109",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11482 (Call 11483 ("FSGNJX_S",CTy"FConv", 11484 Var("v110",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11485 Apply 11486 (Call 11487 ("dfn'FSGNJX_S",ATy(qTy,qTy), 11488 Var("v110",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11489 (Call 11490 ("FSGNJ_D",CTy"FConv", 11491 Var("v111",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11492 Apply 11493 (Call 11494 ("dfn'FSGNJ_D",ATy(qTy,qTy), 11495 Var("v111",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11496 (Call 11497 ("FSGNJ_S",CTy"FConv", 11498 Var("v112",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11499 Apply 11500 (Call 11501 ("dfn'FSGNJ_S",ATy(qTy,qTy), 11502 Var("v112",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state"))])), 11503 (Call("FPLoad",CTy"instruction",Var("v113",CTy"FPLoad")), 11504 CS(Var("v113",CTy"FPLoad"), 11505 [(Call 11506 ("FLD",CTy"FPLoad", 11507 Var("v114",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11508 Apply 11509 (Call 11510 ("dfn'FLD",ATy(qTy,qTy), 11511 Var("v114",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11512 qVar"state")), 11513 (Call 11514 ("FLW",CTy"FPLoad", 11515 Var("v115",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11516 Apply 11517 (Call 11518 ("dfn'FLW",ATy(qTy,qTy), 11519 Var("v115",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11520 qVar"state"))])), 11521 (Call("FPStore",CTy"instruction",Var("v116",CTy"FPStore")), 11522 CS(Var("v116",CTy"FPStore"), 11523 [(Call 11524 ("FSD",CTy"FPStore", 11525 Var("v117",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11526 Apply 11527 (Call 11528 ("dfn'FSD",ATy(qTy,qTy), 11529 Var("v117",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11530 qVar"state")), 11531 (Call 11532 ("FSW",CTy"FPStore", 11533 Var("v118",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11534 Apply 11535 (Call 11536 ("dfn'FSW",ATy(qTy,qTy), 11537 Var("v118",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11538 qVar"state"))])), 11539 (Call("Internal",CTy"instruction",Var("v119",CTy"Internal")), 11540 CS(Var("v119",CTy"Internal"), 11541 [(Call("FETCH_FAULT",CTy"Internal",Var("v120",F64)), 11542 Apply 11543 (Call("dfn'FETCH_FAULT",ATy(qTy,qTy),Var("v120",F64)), 11544 qVar"state")), 11545 (Call("FETCH_MISALIGNED",CTy"Internal",Var("v121",F64)), 11546 Apply 11547 (Call 11548 ("dfn'FETCH_MISALIGNED",ATy(qTy,qTy),Var("v121",F64)), 11549 qVar"state"))])), 11550 (Call("Load",CTy"instruction",Var("v122",CTy"Load")), 11551 CS(Var("v122",CTy"Load"), 11552 [(Call 11553 ("LB",CTy"Load",Var("v123",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11554 Apply 11555 (Call 11556 ("dfn'LB",ATy(qTy,qTy), 11557 Var("v123",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11558 qVar"state")), 11559 (Call 11560 ("LBU",CTy"Load", 11561 Var("v124",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11562 Apply 11563 (Call 11564 ("dfn'LBU",ATy(qTy,qTy), 11565 Var("v124",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11566 qVar"state")), 11567 (Call 11568 ("LD",CTy"Load",Var("v125",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11569 Apply 11570 (Call 11571 ("dfn'LD",ATy(qTy,qTy), 11572 Var("v125",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11573 qVar"state")), 11574 (Call 11575 ("LH",CTy"Load",Var("v126",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11576 Apply 11577 (Call 11578 ("dfn'LH",ATy(qTy,qTy), 11579 Var("v126",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11580 qVar"state")), 11581 (Call 11582 ("LHU",CTy"Load", 11583 Var("v127",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11584 Apply 11585 (Call 11586 ("dfn'LHU",ATy(qTy,qTy), 11587 Var("v127",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11588 qVar"state")), 11589 (Call 11590 ("LW",CTy"Load",Var("v128",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11591 Apply 11592 (Call 11593 ("dfn'LW",ATy(qTy,qTy), 11594 Var("v128",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11595 qVar"state")), 11596 (Call 11597 ("LWU",CTy"Load", 11598 Var("v129",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11599 Apply 11600 (Call 11601 ("dfn'LWU",ATy(qTy,qTy), 11602 Var("v129",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11603 qVar"state"))])), 11604 (Call("MulDiv",CTy"instruction",Var("v130",CTy"MulDiv")), 11605 CS(Var("v130",CTy"MulDiv"), 11606 [(Call 11607 ("DIV",CTy"MulDiv", 11608 Var("v131",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11609 Apply 11610 (Call 11611 ("dfn'DIV",ATy(qTy,qTy), 11612 Var("v131",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11613 (Call 11614 ("DIVU",CTy"MulDiv", 11615 Var("v132",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11616 Apply 11617 (Call 11618 ("dfn'DIVU",ATy(qTy,qTy), 11619 Var("v132",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11620 (Call 11621 ("DIVUW",CTy"MulDiv", 11622 Var("v133",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11623 Apply 11624 (Call 11625 ("dfn'DIVUW",ATy(qTy,qTy), 11626 Var("v133",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11627 (Call 11628 ("DIVW",CTy"MulDiv", 11629 Var("v134",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11630 Apply 11631 (Call 11632 ("dfn'DIVW",ATy(qTy,qTy), 11633 Var("v134",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11634 (Call 11635 ("MUL",CTy"MulDiv", 11636 Var("v135",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11637 Apply 11638 (Call 11639 ("dfn'MUL",ATy(qTy,qTy), 11640 Var("v135",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11641 (Call 11642 ("MULH",CTy"MulDiv", 11643 Var("v136",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11644 Apply 11645 (Call 11646 ("dfn'MULH",ATy(qTy,qTy), 11647 Var("v136",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11648 (Call 11649 ("MULHSU",CTy"MulDiv", 11650 Var("v137",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11651 Apply 11652 (Call 11653 ("dfn'MULHSU",ATy(qTy,qTy), 11654 Var("v137",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11655 (Call 11656 ("MULHU",CTy"MulDiv", 11657 Var("v138",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11658 Apply 11659 (Call 11660 ("dfn'MULHU",ATy(qTy,qTy), 11661 Var("v138",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11662 (Call 11663 ("MULW",CTy"MulDiv", 11664 Var("v139",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11665 Apply 11666 (Call 11667 ("dfn'MULW",ATy(qTy,qTy), 11668 Var("v139",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11669 (Call 11670 ("REM",CTy"MulDiv", 11671 Var("v140",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11672 Apply 11673 (Call 11674 ("dfn'REM",ATy(qTy,qTy), 11675 Var("v140",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11676 (Call 11677 ("REMU",CTy"MulDiv", 11678 Var("v141",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11679 Apply 11680 (Call 11681 ("dfn'REMU",ATy(qTy,qTy), 11682 Var("v141",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11683 (Call 11684 ("REMUW",CTy"MulDiv", 11685 Var("v142",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11686 Apply 11687 (Call 11688 ("dfn'REMUW",ATy(qTy,qTy), 11689 Var("v142",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11690 (Call 11691 ("REMW",CTy"MulDiv", 11692 Var("v143",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11693 Apply 11694 (Call 11695 ("dfn'REMW",ATy(qTy,qTy), 11696 Var("v143",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state"))])), 11697 (Call("Shift",CTy"instruction",Var("v144",CTy"Shift")), 11698 CS(Var("v144",CTy"Shift"), 11699 [(Call 11700 ("SLL",CTy"Shift", 11701 Var("v145",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11702 Apply 11703 (Call 11704 ("dfn'SLL",ATy(qTy,qTy), 11705 Var("v145",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11706 (Call 11707 ("SLLI",CTy"Shift", 11708 Var("v146",PTy(FTy 5,PTy(FTy 5,FTy 6)))), 11709 Apply 11710 (Call 11711 ("dfn'SLLI",ATy(qTy,qTy), 11712 Var("v146",PTy(FTy 5,PTy(FTy 5,FTy 6)))),qVar"state")), 11713 (Call 11714 ("SLLIW",CTy"Shift", 11715 Var("v147",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11716 Apply 11717 (Call 11718 ("dfn'SLLIW",ATy(qTy,qTy), 11719 Var("v147",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11720 (Call 11721 ("SLLW",CTy"Shift", 11722 Var("v148",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11723 Apply 11724 (Call 11725 ("dfn'SLLW",ATy(qTy,qTy), 11726 Var("v148",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11727 (Call 11728 ("SRA",CTy"Shift", 11729 Var("v149",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11730 Apply 11731 (Call 11732 ("dfn'SRA",ATy(qTy,qTy), 11733 Var("v149",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11734 (Call 11735 ("SRAI",CTy"Shift", 11736 Var("v150",PTy(FTy 5,PTy(FTy 5,FTy 6)))), 11737 Apply 11738 (Call 11739 ("dfn'SRAI",ATy(qTy,qTy), 11740 Var("v150",PTy(FTy 5,PTy(FTy 5,FTy 6)))),qVar"state")), 11741 (Call 11742 ("SRAIW",CTy"Shift", 11743 Var("v151",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11744 Apply 11745 (Call 11746 ("dfn'SRAIW",ATy(qTy,qTy), 11747 Var("v151",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11748 (Call 11749 ("SRAW",CTy"Shift", 11750 Var("v152",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11751 Apply 11752 (Call 11753 ("dfn'SRAW",ATy(qTy,qTy), 11754 Var("v152",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11755 (Call 11756 ("SRL",CTy"Shift", 11757 Var("v153",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11758 Apply 11759 (Call 11760 ("dfn'SRL",ATy(qTy,qTy), 11761 Var("v153",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11762 (Call 11763 ("SRLI",CTy"Shift", 11764 Var("v154",PTy(FTy 5,PTy(FTy 5,FTy 6)))), 11765 Apply 11766 (Call 11767 ("dfn'SRLI",ATy(qTy,qTy), 11768 Var("v154",PTy(FTy 5,PTy(FTy 5,FTy 6)))),qVar"state")), 11769 (Call 11770 ("SRLIW",CTy"Shift", 11771 Var("v155",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11772 Apply 11773 (Call 11774 ("dfn'SRLIW",ATy(qTy,qTy), 11775 Var("v155",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state")), 11776 (Call 11777 ("SRLW",CTy"Shift", 11778 Var("v156",PTy(FTy 5,PTy(FTy 5,FTy 5)))), 11779 Apply 11780 (Call 11781 ("dfn'SRLW",ATy(qTy,qTy), 11782 Var("v156",PTy(FTy 5,PTy(FTy 5,FTy 5)))),qVar"state"))])), 11783 (Call("Store",CTy"instruction",Var("v157",CTy"Store")), 11784 CS(Var("v157",CTy"Store"), 11785 [(Call 11786 ("SB",CTy"Store", 11787 Var("v158",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11788 Apply 11789 (Call 11790 ("dfn'SB",ATy(qTy,qTy), 11791 Var("v158",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11792 qVar"state")), 11793 (Call 11794 ("SD",CTy"Store", 11795 Var("v159",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11796 Apply 11797 (Call 11798 ("dfn'SD",ATy(qTy,qTy), 11799 Var("v159",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11800 qVar"state")), 11801 (Call 11802 ("SH",CTy"Store", 11803 Var("v160",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11804 Apply 11805 (Call 11806 ("dfn'SH",ATy(qTy,qTy), 11807 Var("v160",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11808 qVar"state")), 11809 (Call 11810 ("SW",CTy"Store", 11811 Var("v161",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11812 Apply 11813 (Call 11814 ("dfn'SW",ATy(qTy,qTy), 11815 Var("v161",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11816 qVar"state"))])), 11817 (Call("System",CTy"instruction",Var("v162",CTy"System")), 11818 CS(Var("v162",CTy"System"), 11819 [(Const("EBREAK",CTy"System"), 11820 Apply(Const("dfn'EBREAK",ATy(qTy,qTy)),qVar"state")), 11821 (Const("ECALL",CTy"System"), 11822 Apply(Const("dfn'ECALL",ATy(qTy,qTy)),qVar"state")), 11823 (Const("ERET",CTy"System"), 11824 Apply(Const("dfn'ERET",ATy(qTy,qTy)),qVar"state")), 11825 (Const("MRTS",CTy"System"), 11826 Apply(Const("dfn'MRTS",ATy(qTy,qTy)),qVar"state")), 11827 (Const("WFI",CTy"System"),qVar"state"), 11828 (Call 11829 ("CSRRC",CTy"System", 11830 Var("v163",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11831 Apply 11832 (Call 11833 ("dfn'CSRRC",ATy(qTy,qTy), 11834 Var("v163",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11835 qVar"state")), 11836 (Call 11837 ("CSRRCI",CTy"System", 11838 Var("v164",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11839 Apply 11840 (Call 11841 ("dfn'CSRRCI",ATy(qTy,qTy), 11842 Var("v164",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11843 qVar"state")), 11844 (Call 11845 ("CSRRS",CTy"System", 11846 Var("v165",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11847 Apply 11848 (Call 11849 ("dfn'CSRRS",ATy(qTy,qTy), 11850 Var("v165",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11851 qVar"state")), 11852 (Call 11853 ("CSRRSI",CTy"System", 11854 Var("v166",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11855 Apply 11856 (Call 11857 ("dfn'CSRRSI",ATy(qTy,qTy), 11858 Var("v166",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11859 qVar"state")), 11860 (Call 11861 ("CSRRW",CTy"System", 11862 Var("v167",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11863 Apply 11864 (Call 11865 ("dfn'CSRRW",ATy(qTy,qTy), 11866 Var("v167",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11867 qVar"state")), 11868 (Call 11869 ("CSRRWI",CTy"System", 11870 Var("v168",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11871 Apply 11872 (Call 11873 ("dfn'CSRRWI",ATy(qTy,qTy), 11874 Var("v168",PTy(FTy 5,PTy(FTy 5,FTy 12)))), 11875 qVar"state")), 11876 (Call("SFENCE_VM",CTy"System",Var("v169",FTy 5)), 11877 Apply 11878 (Call("dfn'SFENCE_VM",ATy(qTy,qTy),Var("v169",FTy 5)), 11879 qVar"state"))]))]))) 11880; 11881val Fetch_def = Def 11882 ("Fetch",AVar uTy, 11883 Close 11884 (qVar"state", 11885 Let(Var("v",F64),Apply(Const("PC",ATy(qTy,F64)),qVar"state"), 11886 ITE(Mop(Not,EQ(EX(Var("v",F64),LN 1,LN 0,FTy 2),LW(0,2))), 11887 TP[Call 11888 ("F_Error",CTy"FetchResult", 11889 Call 11890 ("Internal",CTy"instruction", 11891 Call("FETCH_MISALIGNED",CTy"Internal",Var("v",F64)))), 11892 qVar"state"], 11893 Let(TP[Var("v0",OTy F64),qVar"s"], 11894 Apply 11895 (Call 11896 ("translateAddr",ATy(qTy,PTy(OTy F64,qTy)), 11897 TP[Var("v",F64),LC("Instruction",CTy"fetchType"), 11898 LC("Read",CTy"accessType")]),qVar"state"), 11899 CS(Var("v0",OTy F64), 11900 [(Mop(Some,Var("pPC",F64)), 11901 Let(Var("v0",F32), 11902 Apply 11903 (Call 11904 ("rawReadInst",ATy(qTy,F32),Var("pPC",F64)), 11905 qVar"s"), 11906 TP[Call 11907 ("F_Result",CTy"FetchResult",Var("v0",F32)), 11908 Let(TP[Var("v1",CTy"StateDelta"),qVar"s"], 11909 Let(qVar"s0", 11910 Apply 11911 (Call 11912 ("write'Delta",ATy(qTy,qTy), 11913 Rupd 11914 ("exc_taken", 11915 TP[Apply 11916 (Const 11917 ("Delta", 11918 ATy(qTy, 11919 CTy"StateDelta")), 11920 qVar"s"),LF])), 11921 qVar"s"), 11922 TP[Apply 11923 (Const 11924 ("Delta", 11925 ATy(qTy,CTy"StateDelta")), 11926 qVar"s0"),qVar"s0"]), 11927 Let(TP[Var("v1",CTy"StateDelta"),qVar"s"], 11928 Let(qVar"s0", 11929 Apply 11930 (Call 11931 ("write'Delta", 11932 ATy(qTy,qTy), 11933 Rupd 11934 ("fetch_exc", 11935 TP[Var("v1", 11936 CTy"StateDelta"), 11937 LF])),qVar"s"), 11938 TP[Apply 11939 (Const 11940 ("Delta", 11941 ATy(qTy,CTy"StateDelta")), 11942 qVar"s0"),qVar"s0"]), 11943 Let(TP[Var("v1",CTy"StateDelta"), 11944 qVar"s"], 11945 Let(qVar"s0", 11946 Apply 11947 (Call 11948 ("write'Delta", 11949 ATy(qTy,qTy), 11950 Rupd 11951 ("pc", 11952 TP[Var("v1", 11953 CTy"StateDelta"), 11954 Var("v",F64)])), 11955 qVar"s"), 11956 TP[Apply 11957 (Const 11958 ("Delta", 11959 ATy(qTy, 11960 CTy"StateDelta")), 11961 qVar"s0"),qVar"s0"]), 11962 Let(TP[Var("v",CTy"StateDelta"), 11963 qVar"s"], 11964 Let(qVar"s0", 11965 Apply 11966 (Call 11967 ("write'Delta", 11968 ATy(qTy,qTy), 11969 Rupd 11970 ("rinstr", 11971 TP[Var("v1", 11972 CTy"StateDelta"), 11973 Var("v0",F32)])), 11974 qVar"s"), 11975 TP[Apply 11976 (Const 11977 ("Delta", 11978 ATy(qTy, 11979 CTy"StateDelta")), 11980 qVar"s0"),qVar"s0"]), 11981 Let(TP[Var("v", 11982 CTy"StateDelta"), 11983 qVar"s"], 11984 Let(qVar"s0", 11985 Apply 11986 (Call 11987 ("write'Delta", 11988 ATy(qTy,qTy), 11989 Rupd 11990 ("addr", 11991 TP[Var("v", 11992 CTy"StateDelta"), 11993 LO F64])), 11994 qVar"s"), 11995 TP[Apply 11996 (Const 11997 ("Delta", 11998 ATy(qTy, 11999 CTy"StateDelta")), 12000 qVar"s0"), 12001 qVar"s0"]), 12002 Let(TP[Var("v", 12003 CTy"StateDelta"), 12004 qVar"s"], 12005 Let(qVar"s0", 12006 Apply 12007 (Call 12008 ("write'Delta", 12009 ATy(qTy, 12010 qTy), 12011 Rupd 12012 ("data1", 12013 TP[Var("v", 12014 CTy"StateDelta"), 12015 LO F64])), 12016 qVar"s"), 12017 TP[Apply 12018 (Const 12019 ("Delta", 12020 ATy(qTy, 12021 CTy"StateDelta")), 12022 qVar"s0"), 12023 qVar"s0"]), 12024 Let(TP[Var("v", 12025 CTy"StateDelta"), 12026 qVar"s"], 12027 Let(qVar"s0", 12028 Apply 12029 (Call 12030 ("write'Delta", 12031 ATy(qTy, 12032 qTy), 12033 Rupd 12034 ("data2", 12035 TP[Var("v", 12036 CTy"StateDelta"), 12037 LO F64])), 12038 qVar"s"), 12039 TP[Apply 12040 (Const 12041 ("Delta", 12042 ATy(qTy, 12043 CTy"StateDelta")), 12044 qVar"s0"), 12045 qVar"s0"]), 12046 Let(TP[Var("v", 12047 CTy"StateDelta"), 12048 qVar"s"], 12049 Let(qVar"s0", 12050 Apply 12051 (Call 12052 ("write'Delta", 12053 ATy(qTy, 12054 qTy), 12055 Rupd 12056 ("fp_data", 12057 TP[Var("v", 12058 CTy"StateDelta"), 12059 LO F64])), 12060 qVar"s"), 12061 TP[Apply 12062 (Const 12063 ("Delta", 12064 ATy(qTy, 12065 CTy"StateDelta")), 12066 qVar"s0"), 12067 qVar"s0"]), 12068 Apply 12069 (Call 12070 ("write'Delta", 12071 ATy(qTy, 12072 qTy), 12073 Rupd 12074 ("st_width", 12075 TP[Var("v", 12076 CTy"StateDelta"), 12077 LO F32])), 12078 qVar"s")))))))))])), 12079 (LO F64, 12080 TP[Call 12081 ("F_Error",CTy"FetchResult", 12082 Call 12083 ("Internal",CTy"instruction", 12084 Call 12085 ("FETCH_FAULT",CTy"Internal", 12086 Var("v",F64)))),qVar"s"])])))))) 12087; 12088val asImm12_def = Def 12089 ("asImm12", 12090 TP[Var("imm12",F1),Var("imm11",F1),Var("immhi",FTy 6),Var("immlo",F4)], 12091 CC[Var("imm12",F1),Var("imm11",F1),Var("immhi",FTy 6),Var("immlo",F4)]) 12092; 12093val asImm20_def = Def 12094 ("asImm20", 12095 TP[Var("imm20",F1),Var("immhi",F8),Var("imm11",F1),Var("immlo",FTy 10)], 12096 CC[Var("imm20",F1),Var("immhi",F8),Var("imm11",F1),Var("immlo",FTy 10)]) 12097; 12098val asSImm12_def = Def 12099 ("asSImm12",TP[Var("immhi",FTy 7),Var("immlo",FTy 5)], 12100 CC[Var("immhi",FTy 7),Var("immlo",FTy 5)]) 12101; 12102val Decode_def = Def 12103 ("Decode",Var("w",F32), 12104 Let(TP[bVar"b'31",bVar"b'30",bVar"b'29",bVar"b'28",bVar"b'27", 12105 bVar"b'26",bVar"b'25",bVar"b'24",bVar"b'23",bVar"b'22", 12106 bVar"b'21",bVar"b'20",bVar"b'19",bVar"b'18",bVar"b'17", 12107 bVar"b'16",bVar"b'15",bVar"b'14",bVar"b'13",bVar"b'12", 12108 bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8",bVar"b'7",bVar"b'6", 12109 bVar"b'5",bVar"b'4",bVar"b'3",bVar"b'2",bVar"b'1",bVar"b'0"], 12110 BL(32,Var("w",F32)), 12111 ITB([(bVar"b'6", 12112 ITE(Bop(And,bVar"b'1",bVar"b'0"), 12113 ITB([(Bop(And,Mop(Not,bVar"b'14"), 12114 Bop(And,Mop(Not,bVar"b'13"), 12115 Bop(And,Mop(Not,bVar"b'12"), 12116 Bop(And,bVar"b'5", 12117 Bop(And,Mop(Not,bVar"b'4"), 12118 Bop(And,Mop(Not,bVar"b'3"), 12119 Mop(Not,bVar"b'2"))))))), 12120 Call 12121 ("Branch",CTy"instruction", 12122 Call 12123 ("BEQ",CTy"Branch", 12124 TP[Mop(Cast(FTy 5), 12125 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12126 bVar"b'16",bVar"b'15"]), 12127 Mop(Cast(FTy 5), 12128 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12129 bVar"b'21",bVar"b'20"]), 12130 Call 12131 ("asImm12",FTy 12, 12132 TP[Mop(Cast F1,LL[bVar"b'31"]), 12133 Mop(Cast F1,LL[bVar"b'7"]), 12134 Mop(Cast(FTy 6), 12135 LL[bVar"b'30",bVar"b'29", 12136 bVar"b'28",bVar"b'27", 12137 bVar"b'26",bVar"b'25"]), 12138 Mop(Cast F4, 12139 LL[bVar"b'11",bVar"b'10", 12140 bVar"b'9",bVar"b'8"])])]))), 12141 (Bop(And,Mop(Not,bVar"b'14"), 12142 Bop(And,Mop(Not,bVar"b'13"), 12143 Bop(And,bVar"b'12", 12144 Bop(And,bVar"b'5", 12145 Bop(And,Mop(Not,bVar"b'4"), 12146 Bop(And,Mop(Not,bVar"b'3"), 12147 Mop(Not,bVar"b'2"))))))), 12148 Call 12149 ("Branch",CTy"instruction", 12150 Call 12151 ("BNE",CTy"Branch", 12152 TP[Mop(Cast(FTy 5), 12153 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12154 bVar"b'16",bVar"b'15"]), 12155 Mop(Cast(FTy 5), 12156 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12157 bVar"b'21",bVar"b'20"]), 12158 Call 12159 ("asImm12",FTy 12, 12160 TP[Mop(Cast F1,LL[bVar"b'31"]), 12161 Mop(Cast F1,LL[bVar"b'7"]), 12162 Mop(Cast(FTy 6), 12163 LL[bVar"b'30",bVar"b'29", 12164 bVar"b'28",bVar"b'27", 12165 bVar"b'26",bVar"b'25"]), 12166 Mop(Cast F4, 12167 LL[bVar"b'11",bVar"b'10", 12168 bVar"b'9",bVar"b'8"])])]))), 12169 (Bop(And,bVar"b'14", 12170 Bop(And,Mop(Not,bVar"b'13"), 12171 Bop(And,Mop(Not,bVar"b'12"), 12172 Bop(And,bVar"b'5", 12173 Bop(And,Mop(Not,bVar"b'4"), 12174 Bop(And,Mop(Not,bVar"b'3"), 12175 Mop(Not,bVar"b'2"))))))), 12176 Call 12177 ("Branch",CTy"instruction", 12178 Call 12179 ("BLT",CTy"Branch", 12180 TP[Mop(Cast(FTy 5), 12181 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12182 bVar"b'16",bVar"b'15"]), 12183 Mop(Cast(FTy 5), 12184 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12185 bVar"b'21",bVar"b'20"]), 12186 Call 12187 ("asImm12",FTy 12, 12188 TP[Mop(Cast F1,LL[bVar"b'31"]), 12189 Mop(Cast F1,LL[bVar"b'7"]), 12190 Mop(Cast(FTy 6), 12191 LL[bVar"b'30",bVar"b'29", 12192 bVar"b'28",bVar"b'27", 12193 bVar"b'26",bVar"b'25"]), 12194 Mop(Cast F4, 12195 LL[bVar"b'11",bVar"b'10", 12196 bVar"b'9",bVar"b'8"])])]))), 12197 (Bop(And,bVar"b'14", 12198 Bop(And,Mop(Not,bVar"b'13"), 12199 Bop(And,bVar"b'12", 12200 Bop(And,bVar"b'5", 12201 Bop(And,Mop(Not,bVar"b'4"), 12202 Bop(And,Mop(Not,bVar"b'3"), 12203 Mop(Not,bVar"b'2"))))))), 12204 Call 12205 ("Branch",CTy"instruction", 12206 Call 12207 ("BGE",CTy"Branch", 12208 TP[Mop(Cast(FTy 5), 12209 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12210 bVar"b'16",bVar"b'15"]), 12211 Mop(Cast(FTy 5), 12212 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12213 bVar"b'21",bVar"b'20"]), 12214 Call 12215 ("asImm12",FTy 12, 12216 TP[Mop(Cast F1,LL[bVar"b'31"]), 12217 Mop(Cast F1,LL[bVar"b'7"]), 12218 Mop(Cast(FTy 6), 12219 LL[bVar"b'30",bVar"b'29", 12220 bVar"b'28",bVar"b'27", 12221 bVar"b'26",bVar"b'25"]), 12222 Mop(Cast F4, 12223 LL[bVar"b'11",bVar"b'10", 12224 bVar"b'9",bVar"b'8"])])]))), 12225 (Bop(And,bVar"b'14", 12226 Bop(And,bVar"b'13", 12227 Bop(And,Mop(Not,bVar"b'12"), 12228 Bop(And,bVar"b'5", 12229 Bop(And,Mop(Not,bVar"b'4"), 12230 Bop(And,Mop(Not,bVar"b'3"), 12231 Mop(Not,bVar"b'2"))))))), 12232 Call 12233 ("Branch",CTy"instruction", 12234 Call 12235 ("BLTU",CTy"Branch", 12236 TP[Mop(Cast(FTy 5), 12237 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12238 bVar"b'16",bVar"b'15"]), 12239 Mop(Cast(FTy 5), 12240 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12241 bVar"b'21",bVar"b'20"]), 12242 Call 12243 ("asImm12",FTy 12, 12244 TP[Mop(Cast F1,LL[bVar"b'31"]), 12245 Mop(Cast F1,LL[bVar"b'7"]), 12246 Mop(Cast(FTy 6), 12247 LL[bVar"b'30",bVar"b'29", 12248 bVar"b'28",bVar"b'27", 12249 bVar"b'26",bVar"b'25"]), 12250 Mop(Cast F4, 12251 LL[bVar"b'11",bVar"b'10", 12252 bVar"b'9",bVar"b'8"])])]))), 12253 (Bop(And,bVar"b'14", 12254 Bop(And,bVar"b'13", 12255 Bop(And,bVar"b'12", 12256 Bop(And,bVar"b'5", 12257 Bop(And,Mop(Not,bVar"b'4"), 12258 Bop(And,Mop(Not,bVar"b'3"), 12259 Mop(Not,bVar"b'2"))))))), 12260 Call 12261 ("Branch",CTy"instruction", 12262 Call 12263 ("BGEU",CTy"Branch", 12264 TP[Mop(Cast(FTy 5), 12265 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12266 bVar"b'16",bVar"b'15"]), 12267 Mop(Cast(FTy 5), 12268 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12269 bVar"b'21",bVar"b'20"]), 12270 Call 12271 ("asImm12",FTy 12, 12272 TP[Mop(Cast F1,LL[bVar"b'31"]), 12273 Mop(Cast F1,LL[bVar"b'7"]), 12274 Mop(Cast(FTy 6), 12275 LL[bVar"b'30",bVar"b'29", 12276 bVar"b'28",bVar"b'27", 12277 bVar"b'26",bVar"b'25"]), 12278 Mop(Cast F4, 12279 LL[bVar"b'11",bVar"b'10", 12280 bVar"b'9",bVar"b'8"])])]))), 12281 (Bop(And,Mop(Not,bVar"b'14"), 12282 Bop(And,Mop(Not,bVar"b'13"), 12283 Bop(And,Mop(Not,bVar"b'12"), 12284 Bop(And,bVar"b'5", 12285 Bop(And,Mop(Not,bVar"b'4"), 12286 Bop(And,Mop(Not,bVar"b'3"), 12287 bVar"b'2")))))), 12288 Call 12289 ("Branch",CTy"instruction", 12290 Call 12291 ("JALR",CTy"Branch", 12292 TP[Mop(Cast(FTy 5), 12293 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12294 bVar"b'8",bVar"b'7"]), 12295 Mop(Cast(FTy 5), 12296 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12297 bVar"b'16",bVar"b'15"]), 12298 Mop(Cast(FTy 12), 12299 LL[bVar"b'31",bVar"b'30",bVar"b'29", 12300 bVar"b'28",bVar"b'27",bVar"b'26", 12301 bVar"b'25",bVar"b'24",bVar"b'23", 12302 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 12303 (Bop(And,bVar"b'5", 12304 Bop(And,Mop(Not,bVar"b'4"), 12305 Bop(And,bVar"b'3",bVar"b'2"))), 12306 Call 12307 ("Branch",CTy"instruction", 12308 Call 12309 ("JAL",CTy"Branch", 12310 TP[Mop(Cast(FTy 5), 12311 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12312 bVar"b'8",bVar"b'7"]), 12313 Call 12314 ("asImm20",FTy 20, 12315 TP[Mop(Cast F1,LL[bVar"b'31"]), 12316 Mop(Cast F8, 12317 LL[bVar"b'19",bVar"b'18", 12318 bVar"b'17",bVar"b'16", 12319 bVar"b'15",bVar"b'14", 12320 bVar"b'13",bVar"b'12"]), 12321 Mop(Cast F1,LL[bVar"b'20"]), 12322 Mop(Cast(FTy 10), 12323 LL[bVar"b'30",bVar"b'29", 12324 bVar"b'28",bVar"b'27", 12325 bVar"b'26",bVar"b'25", 12326 bVar"b'24",bVar"b'23", 12327 bVar"b'22",bVar"b'21"])])]))), 12328 (Bop(And,Mop(Not,bVar"b'26"), 12329 Bop(And,Mop(Not,bVar"b'25"), 12330 Bop(And,Mop(Not,bVar"b'5"), 12331 Bop(And,Mop(Not,bVar"b'4"), 12332 Bop(And,Mop(Not,bVar"b'3"), 12333 Mop(Not,bVar"b'2")))))), 12334 Call 12335 ("FArith",CTy"instruction", 12336 Call 12337 ("FMADD_S",CTy"FArith", 12338 TP[Mop(Cast(FTy 5), 12339 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12340 bVar"b'8",bVar"b'7"]), 12341 Mop(Cast(FTy 5), 12342 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12343 bVar"b'16",bVar"b'15"]), 12344 Mop(Cast(FTy 5), 12345 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12346 bVar"b'21",bVar"b'20"]), 12347 Mop(Cast(FTy 5), 12348 LL[bVar"b'31",bVar"b'30",bVar"b'29", 12349 bVar"b'28",bVar"b'27"]), 12350 Mop(Cast(FTy 3), 12351 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12352 (Bop(And,Mop(Not,bVar"b'26"), 12353 Bop(And,Mop(Not,bVar"b'25"), 12354 Bop(And,Mop(Not,bVar"b'5"), 12355 Bop(And,Mop(Not,bVar"b'4"), 12356 Bop(And,Mop(Not,bVar"b'3"), 12357 bVar"b'2"))))), 12358 Call 12359 ("FArith",CTy"instruction", 12360 Call 12361 ("FMSUB_S",CTy"FArith", 12362 TP[Mop(Cast(FTy 5), 12363 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12364 bVar"b'8",bVar"b'7"]), 12365 Mop(Cast(FTy 5), 12366 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12367 bVar"b'16",bVar"b'15"]), 12368 Mop(Cast(FTy 5), 12369 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12370 bVar"b'21",bVar"b'20"]), 12371 Mop(Cast(FTy 5), 12372 LL[bVar"b'31",bVar"b'30",bVar"b'29", 12373 bVar"b'28",bVar"b'27"]), 12374 Mop(Cast(FTy 3), 12375 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12376 (Bop(And,Mop(Not,bVar"b'26"), 12377 Bop(And,Mop(Not,bVar"b'25"), 12378 Bop(And,Mop(Not,bVar"b'5"), 12379 Bop(And,Mop(Not,bVar"b'4"), 12380 Bop(And,bVar"b'3", 12381 Mop(Not,bVar"b'2")))))), 12382 Call 12383 ("FArith",CTy"instruction", 12384 Call 12385 ("FNMSUB_S",CTy"FArith", 12386 TP[Mop(Cast(FTy 5), 12387 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12388 bVar"b'8",bVar"b'7"]), 12389 Mop(Cast(FTy 5), 12390 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12391 bVar"b'16",bVar"b'15"]), 12392 Mop(Cast(FTy 5), 12393 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12394 bVar"b'21",bVar"b'20"]), 12395 Mop(Cast(FTy 5), 12396 LL[bVar"b'31",bVar"b'30",bVar"b'29", 12397 bVar"b'28",bVar"b'27"]), 12398 Mop(Cast(FTy 3), 12399 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12400 (Bop(And,Mop(Not,bVar"b'26"), 12401 Bop(And,Mop(Not,bVar"b'25"), 12402 Bop(And,Mop(Not,bVar"b'5"), 12403 Bop(And,Mop(Not,bVar"b'4"), 12404 Bop(And,bVar"b'3",bVar"b'2"))))), 12405 Call 12406 ("FArith",CTy"instruction", 12407 Call 12408 ("FNMADD_S",CTy"FArith", 12409 TP[Mop(Cast(FTy 5), 12410 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12411 bVar"b'8",bVar"b'7"]), 12412 Mop(Cast(FTy 5), 12413 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12414 bVar"b'16",bVar"b'15"]), 12415 Mop(Cast(FTy 5), 12416 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12417 bVar"b'21",bVar"b'20"]), 12418 Mop(Cast(FTy 5), 12419 LL[bVar"b'31",bVar"b'30",bVar"b'29", 12420 bVar"b'28",bVar"b'27"]), 12421 Mop(Cast(FTy 3), 12422 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12423 (Bop(And,Mop(Not,bVar"b'31"), 12424 Bop(And,Mop(Not,bVar"b'30"), 12425 Bop(And,Mop(Not,bVar"b'29"), 12426 Bop(And,Mop(Not,bVar"b'28"), 12427 Bop(And,Mop(Not,bVar"b'27"), 12428 Bop(And,Mop(Not,bVar"b'26"), 12429 Bop(And, 12430 Mop(Not,bVar"b'25"), 12431 Bop(And, 12432 Mop(Not,bVar"b'5"), 12433 Bop(And,bVar"b'4", 12434 Bop(And, 12435 Mop(Not, 12436 bVar"b'3"), 12437 Mop(Not, 12438 bVar"b'2"))))))))))), 12439 Call 12440 ("FArith",CTy"instruction", 12441 Call 12442 ("FADD_S",CTy"FArith", 12443 TP[Mop(Cast(FTy 5), 12444 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12445 bVar"b'8",bVar"b'7"]), 12446 Mop(Cast(FTy 5), 12447 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12448 bVar"b'16",bVar"b'15"]), 12449 Mop(Cast(FTy 5), 12450 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12451 bVar"b'21",bVar"b'20"]), 12452 Mop(Cast(FTy 3), 12453 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12454 (Bop(And,Mop(Not,bVar"b'31"), 12455 Bop(And,Mop(Not,bVar"b'30"), 12456 Bop(And,Mop(Not,bVar"b'29"), 12457 Bop(And,Mop(Not,bVar"b'28"), 12458 Bop(And,bVar"b'27", 12459 Bop(And,Mop(Not,bVar"b'26"), 12460 Bop(And, 12461 Mop(Not,bVar"b'25"), 12462 Bop(And, 12463 Mop(Not,bVar"b'5"), 12464 Bop(And,bVar"b'4", 12465 Bop(And, 12466 Mop(Not, 12467 bVar"b'3"), 12468 Mop(Not, 12469 bVar"b'2"))))))))))), 12470 Call 12471 ("FArith",CTy"instruction", 12472 Call 12473 ("FSUB_S",CTy"FArith", 12474 TP[Mop(Cast(FTy 5), 12475 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12476 bVar"b'8",bVar"b'7"]), 12477 Mop(Cast(FTy 5), 12478 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12479 bVar"b'16",bVar"b'15"]), 12480 Mop(Cast(FTy 5), 12481 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12482 bVar"b'21",bVar"b'20"]), 12483 Mop(Cast(FTy 3), 12484 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12485 (Bop(And,Mop(Not,bVar"b'31"), 12486 Bop(And,Mop(Not,bVar"b'30"), 12487 Bop(And,Mop(Not,bVar"b'29"), 12488 Bop(And,bVar"b'28", 12489 Bop(And,Mop(Not,bVar"b'27"), 12490 Bop(And,Mop(Not,bVar"b'26"), 12491 Bop(And, 12492 Mop(Not,bVar"b'25"), 12493 Bop(And, 12494 Mop(Not,bVar"b'5"), 12495 Bop(And,bVar"b'4", 12496 Bop(And, 12497 Mop(Not, 12498 bVar"b'3"), 12499 Mop(Not, 12500 bVar"b'2"))))))))))), 12501 Call 12502 ("FArith",CTy"instruction", 12503 Call 12504 ("FMUL_S",CTy"FArith", 12505 TP[Mop(Cast(FTy 5), 12506 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12507 bVar"b'8",bVar"b'7"]), 12508 Mop(Cast(FTy 5), 12509 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12510 bVar"b'16",bVar"b'15"]), 12511 Mop(Cast(FTy 5), 12512 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12513 bVar"b'21",bVar"b'20"]), 12514 Mop(Cast(FTy 3), 12515 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12516 (Bop(And,Mop(Not,bVar"b'31"), 12517 Bop(And,Mop(Not,bVar"b'30"), 12518 Bop(And,Mop(Not,bVar"b'29"), 12519 Bop(And,bVar"b'28", 12520 Bop(And,bVar"b'27", 12521 Bop(And,Mop(Not,bVar"b'26"), 12522 Bop(And, 12523 Mop(Not,bVar"b'25"), 12524 Bop(And, 12525 Mop(Not,bVar"b'5"), 12526 Bop(And,bVar"b'4", 12527 Bop(And, 12528 Mop(Not, 12529 bVar"b'3"), 12530 Mop(Not, 12531 bVar"b'2"))))))))))), 12532 Call 12533 ("FArith",CTy"instruction", 12534 Call 12535 ("FDIV_S",CTy"FArith", 12536 TP[Mop(Cast(FTy 5), 12537 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12538 bVar"b'8",bVar"b'7"]), 12539 Mop(Cast(FTy 5), 12540 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12541 bVar"b'16",bVar"b'15"]), 12542 Mop(Cast(FTy 5), 12543 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12544 bVar"b'21",bVar"b'20"]), 12545 Mop(Cast(FTy 3), 12546 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12547 (Bop(And,Mop(Not,bVar"b'31"), 12548 Bop(And,bVar"b'30", 12549 Bop(And,Mop(Not,bVar"b'29"), 12550 Bop(And,bVar"b'28", 12551 Bop(And,bVar"b'27", 12552 Bop(And,Mop(Not,bVar"b'26"), 12553 Bop(And, 12554 Mop(Not,bVar"b'25"), 12555 Bop(And, 12556 Mop(Not,bVar"b'24"), 12557 Bop(And, 12558 Mop(Not, 12559 bVar"b'23"), 12560 Bop(And, 12561 Mop(Not, 12562 bVar"b'22"), 12563 Bop(And, 12564 Mop(Not, 12565 bVar"b'21"), 12566 Bop(And, 12567 Mop(Not, 12568 bVar"b'20"), 12569 Bop(And, 12570 Mop(Not, 12571 bVar"b'5"), 12572 Bop(And, 12573 bVar"b'4", 12574 Bop(And, 12575 Mop(Not, 12576 bVar"b'3"), 12577 Mop(Not, 12578 bVar"b'2")))))))))))))))), 12579 Call 12580 ("FArith",CTy"instruction", 12581 Call 12582 ("FSQRT_S",CTy"FArith", 12583 TP[Mop(Cast(FTy 5), 12584 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12585 bVar"b'8",bVar"b'7"]), 12586 Mop(Cast(FTy 5), 12587 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12588 bVar"b'16",bVar"b'15"]), 12589 Mop(Cast(FTy 3), 12590 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12591 (Bop(And,Mop(Not,bVar"b'31"), 12592 Bop(And,Mop(Not,bVar"b'30"), 12593 Bop(And,bVar"b'29", 12594 Bop(And,Mop(Not,bVar"b'28"), 12595 Bop(And,bVar"b'27", 12596 Bop(And,Mop(Not,bVar"b'26"), 12597 Bop(And, 12598 Mop(Not,bVar"b'25"), 12599 Bop(And, 12600 Mop(Not,bVar"b'14"), 12601 Bop(And, 12602 Mop(Not, 12603 bVar"b'13"), 12604 Bop(And, 12605 Mop(Not, 12606 bVar"b'12"), 12607 Bop(And, 12608 Mop(Not, 12609 bVar"b'5"), 12610 Bop(And, 12611 bVar"b'4", 12612 Bop(And, 12613 Mop(Not, 12614 bVar"b'3"), 12615 Mop(Not, 12616 bVar"b'2")))))))))))))), 12617 Call 12618 ("FArith",CTy"instruction", 12619 Call 12620 ("FMIN_S",CTy"FArith", 12621 TP[Mop(Cast(FTy 5), 12622 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12623 bVar"b'8",bVar"b'7"]), 12624 Mop(Cast(FTy 5), 12625 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12626 bVar"b'16",bVar"b'15"]), 12627 Mop(Cast(FTy 5), 12628 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12629 bVar"b'21",bVar"b'20"])]))), 12630 (Bop(And,Mop(Not,bVar"b'31"), 12631 Bop(And,Mop(Not,bVar"b'30"), 12632 Bop(And,bVar"b'29", 12633 Bop(And,Mop(Not,bVar"b'28"), 12634 Bop(And,bVar"b'27", 12635 Bop(And,Mop(Not,bVar"b'26"), 12636 Bop(And, 12637 Mop(Not,bVar"b'25"), 12638 Bop(And, 12639 Mop(Not,bVar"b'14"), 12640 Bop(And, 12641 Mop(Not, 12642 bVar"b'13"), 12643 Bop(And, 12644 bVar"b'12", 12645 Bop(And, 12646 Mop(Not, 12647 bVar"b'5"), 12648 Bop(And, 12649 bVar"b'4", 12650 Bop(And, 12651 Mop(Not, 12652 bVar"b'3"), 12653 Mop(Not, 12654 bVar"b'2")))))))))))))), 12655 Call 12656 ("FArith",CTy"instruction", 12657 Call 12658 ("FMAX_S",CTy"FArith", 12659 TP[Mop(Cast(FTy 5), 12660 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12661 bVar"b'8",bVar"b'7"]), 12662 Mop(Cast(FTy 5), 12663 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12664 bVar"b'16",bVar"b'15"]), 12665 Mop(Cast(FTy 5), 12666 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12667 bVar"b'21",bVar"b'20"])]))), 12668 (Bop(And,bVar"b'31", 12669 Bop(And,Mop(Not,bVar"b'30"), 12670 Bop(And,bVar"b'29", 12671 Bop(And,Mop(Not,bVar"b'28"), 12672 Bop(And,Mop(Not,bVar"b'27"), 12673 Bop(And,Mop(Not,bVar"b'26"), 12674 Bop(And, 12675 Mop(Not,bVar"b'25"), 12676 Bop(And, 12677 Mop(Not,bVar"b'14"), 12678 Bop(And,bVar"b'13", 12679 Bop(And, 12680 Mop(Not, 12681 bVar"b'12"), 12682 Bop(And, 12683 Mop(Not, 12684 bVar"b'5"), 12685 Bop(And, 12686 bVar"b'4", 12687 Bop(And, 12688 Mop(Not, 12689 bVar"b'3"), 12690 Mop(Not, 12691 bVar"b'2")))))))))))))), 12692 Call 12693 ("FArith",CTy"instruction", 12694 Call 12695 ("FEQ_S",CTy"FArith", 12696 TP[Mop(Cast(FTy 5), 12697 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12698 bVar"b'8",bVar"b'7"]), 12699 Mop(Cast(FTy 5), 12700 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12701 bVar"b'16",bVar"b'15"]), 12702 Mop(Cast(FTy 5), 12703 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12704 bVar"b'21",bVar"b'20"])]))), 12705 (Bop(And,bVar"b'31", 12706 Bop(And,Mop(Not,bVar"b'30"), 12707 Bop(And,bVar"b'29", 12708 Bop(And,Mop(Not,bVar"b'28"), 12709 Bop(And,Mop(Not,bVar"b'27"), 12710 Bop(And,Mop(Not,bVar"b'26"), 12711 Bop(And, 12712 Mop(Not,bVar"b'25"), 12713 Bop(And, 12714 Mop(Not,bVar"b'14"), 12715 Bop(And, 12716 Mop(Not, 12717 bVar"b'13"), 12718 Bop(And, 12719 bVar"b'12", 12720 Bop(And, 12721 Mop(Not, 12722 bVar"b'5"), 12723 Bop(And, 12724 bVar"b'4", 12725 Bop(And, 12726 Mop(Not, 12727 bVar"b'3"), 12728 Mop(Not, 12729 bVar"b'2")))))))))))))), 12730 Call 12731 ("FArith",CTy"instruction", 12732 Call 12733 ("FLT_S",CTy"FArith", 12734 TP[Mop(Cast(FTy 5), 12735 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12736 bVar"b'8",bVar"b'7"]), 12737 Mop(Cast(FTy 5), 12738 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12739 bVar"b'16",bVar"b'15"]), 12740 Mop(Cast(FTy 5), 12741 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12742 bVar"b'21",bVar"b'20"])]))), 12743 (Bop(And,bVar"b'31", 12744 Bop(And,Mop(Not,bVar"b'30"), 12745 Bop(And,bVar"b'29", 12746 Bop(And,Mop(Not,bVar"b'28"), 12747 Bop(And,Mop(Not,bVar"b'27"), 12748 Bop(And,Mop(Not,bVar"b'26"), 12749 Bop(And, 12750 Mop(Not,bVar"b'25"), 12751 Bop(And, 12752 Mop(Not,bVar"b'14"), 12753 Bop(And, 12754 Mop(Not, 12755 bVar"b'13"), 12756 Bop(And, 12757 Mop(Not, 12758 bVar"b'12"), 12759 Bop(And, 12760 Mop(Not, 12761 bVar"b'5"), 12762 Bop(And, 12763 bVar"b'4", 12764 Bop(And, 12765 Mop(Not, 12766 bVar"b'3"), 12767 Mop(Not, 12768 bVar"b'2")))))))))))))), 12769 Call 12770 ("FArith",CTy"instruction", 12771 Call 12772 ("FLE_S",CTy"FArith", 12773 TP[Mop(Cast(FTy 5), 12774 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12775 bVar"b'8",bVar"b'7"]), 12776 Mop(Cast(FTy 5), 12777 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12778 bVar"b'16",bVar"b'15"]), 12779 Mop(Cast(FTy 5), 12780 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12781 bVar"b'21",bVar"b'20"])]))), 12782 (Bop(And,Mop(Not,bVar"b'31"), 12783 Bop(And,Mop(Not,bVar"b'30"), 12784 Bop(And,bVar"b'29", 12785 Bop(And,Mop(Not,bVar"b'28"), 12786 Bop(And,Mop(Not,bVar"b'27"), 12787 Bop(And,Mop(Not,bVar"b'26"), 12788 Bop(And, 12789 Mop(Not,bVar"b'25"), 12790 Bop(And, 12791 Mop(Not,bVar"b'14"), 12792 Bop(And, 12793 Mop(Not, 12794 bVar"b'13"), 12795 Bop(And, 12796 Mop(Not, 12797 bVar"b'12"), 12798 Bop(And, 12799 Mop(Not, 12800 bVar"b'5"), 12801 Bop(And, 12802 bVar"b'4", 12803 Bop(And, 12804 Mop(Not, 12805 bVar"b'3"), 12806 Mop(Not, 12807 bVar"b'2")))))))))))))), 12808 Call 12809 ("FConv",CTy"instruction", 12810 Call 12811 ("FSGNJ_S",CTy"FConv", 12812 TP[Mop(Cast(FTy 5), 12813 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12814 bVar"b'8",bVar"b'7"]), 12815 Mop(Cast(FTy 5), 12816 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12817 bVar"b'16",bVar"b'15"]), 12818 Mop(Cast(FTy 5), 12819 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12820 bVar"b'21",bVar"b'20"])]))), 12821 (Bop(And,Mop(Not,bVar"b'31"), 12822 Bop(And,Mop(Not,bVar"b'30"), 12823 Bop(And,bVar"b'29", 12824 Bop(And,Mop(Not,bVar"b'28"), 12825 Bop(And,Mop(Not,bVar"b'27"), 12826 Bop(And,Mop(Not,bVar"b'26"), 12827 Bop(And, 12828 Mop(Not,bVar"b'25"), 12829 Bop(And, 12830 Mop(Not,bVar"b'14"), 12831 Bop(And, 12832 Mop(Not, 12833 bVar"b'13"), 12834 Bop(And, 12835 bVar"b'12", 12836 Bop(And, 12837 Mop(Not, 12838 bVar"b'5"), 12839 Bop(And, 12840 bVar"b'4", 12841 Bop(And, 12842 Mop(Not, 12843 bVar"b'3"), 12844 Mop(Not, 12845 bVar"b'2")))))))))))))), 12846 Call 12847 ("FConv",CTy"instruction", 12848 Call 12849 ("FSGNJN_S",CTy"FConv", 12850 TP[Mop(Cast(FTy 5), 12851 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12852 bVar"b'8",bVar"b'7"]), 12853 Mop(Cast(FTy 5), 12854 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12855 bVar"b'16",bVar"b'15"]), 12856 Mop(Cast(FTy 5), 12857 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12858 bVar"b'21",bVar"b'20"])]))), 12859 (Bop(And,Mop(Not,bVar"b'31"), 12860 Bop(And,Mop(Not,bVar"b'30"), 12861 Bop(And,bVar"b'29", 12862 Bop(And,Mop(Not,bVar"b'28"), 12863 Bop(And,Mop(Not,bVar"b'27"), 12864 Bop(And,Mop(Not,bVar"b'26"), 12865 Bop(And, 12866 Mop(Not,bVar"b'25"), 12867 Bop(And, 12868 Mop(Not,bVar"b'14"), 12869 Bop(And,bVar"b'13", 12870 Bop(And, 12871 Mop(Not, 12872 bVar"b'12"), 12873 Bop(And, 12874 Mop(Not, 12875 bVar"b'5"), 12876 Bop(And, 12877 bVar"b'4", 12878 Bop(And, 12879 Mop(Not, 12880 bVar"b'3"), 12881 Mop(Not, 12882 bVar"b'2")))))))))))))), 12883 Call 12884 ("FConv",CTy"instruction", 12885 Call 12886 ("FSGNJX_S",CTy"FConv", 12887 TP[Mop(Cast(FTy 5), 12888 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12889 bVar"b'8",bVar"b'7"]), 12890 Mop(Cast(FTy 5), 12891 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12892 bVar"b'16",bVar"b'15"]), 12893 Mop(Cast(FTy 5), 12894 LL[bVar"b'24",bVar"b'23",bVar"b'22", 12895 bVar"b'21",bVar"b'20"])]))), 12896 (Bop(And,bVar"b'31", 12897 Bop(And,bVar"b'30", 12898 Bop(And,Mop(Not,bVar"b'29"), 12899 Bop(And,Mop(Not,bVar"b'28"), 12900 Bop(And,Mop(Not,bVar"b'27"), 12901 Bop(And,Mop(Not,bVar"b'26"), 12902 Bop(And, 12903 Mop(Not,bVar"b'25"), 12904 Bop(And, 12905 Mop(Not,bVar"b'24"), 12906 Bop(And, 12907 Mop(Not, 12908 bVar"b'23"), 12909 Bop(And, 12910 Mop(Not, 12911 bVar"b'22"), 12912 Bop(And, 12913 Mop(Not, 12914 bVar"b'21"), 12915 Bop(And, 12916 Mop(Not, 12917 bVar"b'20"), 12918 Bop(And, 12919 Mop(Not, 12920 bVar"b'5"), 12921 Bop(And, 12922 bVar"b'4", 12923 Bop(And, 12924 Mop(Not, 12925 bVar"b'3"), 12926 Mop(Not, 12927 bVar"b'2")))))))))))))))), 12928 Call 12929 ("FConv",CTy"instruction", 12930 Call 12931 ("FCVT_W_S",CTy"FConv", 12932 TP[Mop(Cast(FTy 5), 12933 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12934 bVar"b'8",bVar"b'7"]), 12935 Mop(Cast(FTy 5), 12936 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12937 bVar"b'16",bVar"b'15"]), 12938 Mop(Cast(FTy 3), 12939 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12940 (Bop(And,bVar"b'31", 12941 Bop(And,bVar"b'30", 12942 Bop(And,Mop(Not,bVar"b'29"), 12943 Bop(And,Mop(Not,bVar"b'28"), 12944 Bop(And,Mop(Not,bVar"b'27"), 12945 Bop(And,Mop(Not,bVar"b'26"), 12946 Bop(And, 12947 Mop(Not,bVar"b'25"), 12948 Bop(And, 12949 Mop(Not,bVar"b'24"), 12950 Bop(And, 12951 Mop(Not, 12952 bVar"b'23"), 12953 Bop(And, 12954 Mop(Not, 12955 bVar"b'22"), 12956 Bop(And, 12957 Mop(Not, 12958 bVar"b'21"), 12959 Bop(And, 12960 bVar"b'20", 12961 Bop(And, 12962 Mop(Not, 12963 bVar"b'5"), 12964 Bop(And, 12965 bVar"b'4", 12966 Bop(And, 12967 Mop(Not, 12968 bVar"b'3"), 12969 Mop(Not, 12970 bVar"b'2")))))))))))))))), 12971 Call 12972 ("FConv",CTy"instruction", 12973 Call 12974 ("FCVT_WU_S",CTy"FConv", 12975 TP[Mop(Cast(FTy 5), 12976 LL[bVar"b'11",bVar"b'10",bVar"b'9", 12977 bVar"b'8",bVar"b'7"]), 12978 Mop(Cast(FTy 5), 12979 LL[bVar"b'19",bVar"b'18",bVar"b'17", 12980 bVar"b'16",bVar"b'15"]), 12981 Mop(Cast(FTy 3), 12982 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 12983 (Bop(And,bVar"b'31", 12984 Bop(And,bVar"b'30", 12985 Bop(And,bVar"b'29", 12986 Bop(And,Mop(Not,bVar"b'28"), 12987 Bop(And,Mop(Not,bVar"b'27"), 12988 Bop(And,Mop(Not,bVar"b'26"), 12989 Bop(And, 12990 Mop(Not,bVar"b'25"), 12991 Bop(And, 12992 Mop(Not,bVar"b'24"), 12993 Bop(And, 12994 Mop(Not, 12995 bVar"b'23"), 12996 Bop(And, 12997 Mop(Not, 12998 bVar"b'22"), 12999 Bop(And, 13000 Mop(Not, 13001 bVar"b'21"), 13002 Bop(And, 13003 Mop(Not, 13004 bVar"b'20"), 13005 Bop(And, 13006 Mop(Not, 13007 bVar"b'14"), 13008 Bop(And, 13009 Mop(Not, 13010 bVar"b'13"), 13011 Bop(And, 13012 Mop(Not, 13013 bVar"b'12"), 13014 Bop(And, 13015 Mop(Not, 13016 bVar"b'5"), 13017 Bop(And, 13018 bVar"b'4", 13019 Bop(And, 13020 Mop(Not, 13021 bVar"b'3"), 13022 Mop(Not, 13023 bVar"b'2"))))))))))))))))))), 13024 Call 13025 ("FConv",CTy"instruction", 13026 Call 13027 ("FMV_X_S",CTy"FConv", 13028 TP[Mop(Cast(FTy 5), 13029 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13030 bVar"b'8",bVar"b'7"]), 13031 Mop(Cast(FTy 5), 13032 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13033 bVar"b'16",bVar"b'15"])]))), 13034 (Bop(And,bVar"b'31", 13035 Bop(And,bVar"b'30", 13036 Bop(And,bVar"b'29", 13037 Bop(And,Mop(Not,bVar"b'28"), 13038 Bop(And,Mop(Not,bVar"b'27"), 13039 Bop(And,Mop(Not,bVar"b'26"), 13040 Bop(And, 13041 Mop(Not,bVar"b'25"), 13042 Bop(And, 13043 Mop(Not,bVar"b'24"), 13044 Bop(And, 13045 Mop(Not, 13046 bVar"b'23"), 13047 Bop(And, 13048 Mop(Not, 13049 bVar"b'22"), 13050 Bop(And, 13051 Mop(Not, 13052 bVar"b'21"), 13053 Bop(And, 13054 Mop(Not, 13055 bVar"b'20"), 13056 Bop(And, 13057 Mop(Not, 13058 bVar"b'14"), 13059 Bop(And, 13060 Mop(Not, 13061 bVar"b'13"), 13062 Bop(And, 13063 bVar"b'12", 13064 Bop(And, 13065 Mop(Not, 13066 bVar"b'5"), 13067 Bop(And, 13068 bVar"b'4", 13069 Bop(And, 13070 Mop(Not, 13071 bVar"b'3"), 13072 Mop(Not, 13073 bVar"b'2"))))))))))))))))))), 13074 Call 13075 ("FConv",CTy"instruction", 13076 Call 13077 ("FCLASS_S",CTy"FConv", 13078 TP[Mop(Cast(FTy 5), 13079 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13080 bVar"b'8",bVar"b'7"]), 13081 Mop(Cast(FTy 5), 13082 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13083 bVar"b'16",bVar"b'15"])]))), 13084 (Bop(And,bVar"b'31", 13085 Bop(And,bVar"b'30", 13086 Bop(And,Mop(Not,bVar"b'29"), 13087 Bop(And,bVar"b'28", 13088 Bop(And,Mop(Not,bVar"b'27"), 13089 Bop(And,Mop(Not,bVar"b'26"), 13090 Bop(And, 13091 Mop(Not,bVar"b'25"), 13092 Bop(And, 13093 Mop(Not,bVar"b'24"), 13094 Bop(And, 13095 Mop(Not, 13096 bVar"b'23"), 13097 Bop(And, 13098 Mop(Not, 13099 bVar"b'22"), 13100 Bop(And, 13101 Mop(Not, 13102 bVar"b'21"), 13103 Bop(And, 13104 Mop(Not, 13105 bVar"b'20"), 13106 Bop(And, 13107 Mop(Not, 13108 bVar"b'5"), 13109 Bop(And, 13110 bVar"b'4", 13111 Bop(And, 13112 Mop(Not, 13113 bVar"b'3"), 13114 Mop(Not, 13115 bVar"b'2")))))))))))))))), 13116 Call 13117 ("FConv",CTy"instruction", 13118 Call 13119 ("FCVT_S_W",CTy"FConv", 13120 TP[Mop(Cast(FTy 5), 13121 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13122 bVar"b'8",bVar"b'7"]), 13123 Mop(Cast(FTy 5), 13124 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13125 bVar"b'16",bVar"b'15"]), 13126 Mop(Cast(FTy 3), 13127 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13128 (Bop(And,bVar"b'31", 13129 Bop(And,bVar"b'30", 13130 Bop(And,Mop(Not,bVar"b'29"), 13131 Bop(And,bVar"b'28", 13132 Bop(And,Mop(Not,bVar"b'27"), 13133 Bop(And,Mop(Not,bVar"b'26"), 13134 Bop(And, 13135 Mop(Not,bVar"b'25"), 13136 Bop(And, 13137 Mop(Not,bVar"b'24"), 13138 Bop(And, 13139 Mop(Not, 13140 bVar"b'23"), 13141 Bop(And, 13142 Mop(Not, 13143 bVar"b'22"), 13144 Bop(And, 13145 Mop(Not, 13146 bVar"b'21"), 13147 Bop(And, 13148 bVar"b'20", 13149 Bop(And, 13150 Mop(Not, 13151 bVar"b'5"), 13152 Bop(And, 13153 bVar"b'4", 13154 Bop(And, 13155 Mop(Not, 13156 bVar"b'3"), 13157 Mop(Not, 13158 bVar"b'2")))))))))))))))), 13159 Call 13160 ("FConv",CTy"instruction", 13161 Call 13162 ("FCVT_S_WU",CTy"FConv", 13163 TP[Mop(Cast(FTy 5), 13164 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13165 bVar"b'8",bVar"b'7"]), 13166 Mop(Cast(FTy 5), 13167 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13168 bVar"b'16",bVar"b'15"]), 13169 Mop(Cast(FTy 3), 13170 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13171 (Bop(And,bVar"b'31", 13172 Bop(And,bVar"b'30", 13173 Bop(And,bVar"b'29", 13174 Bop(And,bVar"b'28", 13175 Bop(And,Mop(Not,bVar"b'27"), 13176 Bop(And,Mop(Not,bVar"b'26"), 13177 Bop(And, 13178 Mop(Not,bVar"b'25"), 13179 Bop(And, 13180 Mop(Not,bVar"b'24"), 13181 Bop(And, 13182 Mop(Not, 13183 bVar"b'23"), 13184 Bop(And, 13185 Mop(Not, 13186 bVar"b'22"), 13187 Bop(And, 13188 Mop(Not, 13189 bVar"b'21"), 13190 Bop(And, 13191 Mop(Not, 13192 bVar"b'20"), 13193 Bop(And, 13194 Mop(Not, 13195 bVar"b'14"), 13196 Bop(And, 13197 Mop(Not, 13198 bVar"b'13"), 13199 Bop(And, 13200 Mop(Not, 13201 bVar"b'12"), 13202 Bop(And, 13203 Mop(Not, 13204 bVar"b'5"), 13205 Bop(And, 13206 bVar"b'4", 13207 Bop(And, 13208 Mop(Not, 13209 bVar"b'3"), 13210 Mop(Not, 13211 bVar"b'2"))))))))))))))))))), 13212 Call 13213 ("FConv",CTy"instruction", 13214 Call 13215 ("FMV_S_X",CTy"FConv", 13216 TP[Mop(Cast(FTy 5), 13217 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13218 bVar"b'8",bVar"b'7"]), 13219 Mop(Cast(FTy 5), 13220 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13221 bVar"b'16",bVar"b'15"])]))), 13222 (Bop(And,Mop(Not,bVar"b'26"), 13223 Bop(And,bVar"b'25", 13224 Bop(And,Mop(Not,bVar"b'5"), 13225 Bop(And,Mop(Not,bVar"b'4"), 13226 Bop(And,Mop(Not,bVar"b'3"), 13227 Mop(Not,bVar"b'2")))))), 13228 Call 13229 ("FArith",CTy"instruction", 13230 Call 13231 ("FMADD_D",CTy"FArith", 13232 TP[Mop(Cast(FTy 5), 13233 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13234 bVar"b'8",bVar"b'7"]), 13235 Mop(Cast(FTy 5), 13236 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13237 bVar"b'16",bVar"b'15"]), 13238 Mop(Cast(FTy 5), 13239 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13240 bVar"b'21",bVar"b'20"]), 13241 Mop(Cast(FTy 5), 13242 LL[bVar"b'31",bVar"b'30",bVar"b'29", 13243 bVar"b'28",bVar"b'27"]), 13244 Mop(Cast(FTy 3), 13245 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13246 (Bop(And,Mop(Not,bVar"b'26"), 13247 Bop(And,bVar"b'25", 13248 Bop(And,Mop(Not,bVar"b'5"), 13249 Bop(And,Mop(Not,bVar"b'4"), 13250 Bop(And,Mop(Not,bVar"b'3"), 13251 bVar"b'2"))))), 13252 Call 13253 ("FArith",CTy"instruction", 13254 Call 13255 ("FMSUB_D",CTy"FArith", 13256 TP[Mop(Cast(FTy 5), 13257 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13258 bVar"b'8",bVar"b'7"]), 13259 Mop(Cast(FTy 5), 13260 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13261 bVar"b'16",bVar"b'15"]), 13262 Mop(Cast(FTy 5), 13263 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13264 bVar"b'21",bVar"b'20"]), 13265 Mop(Cast(FTy 5), 13266 LL[bVar"b'31",bVar"b'30",bVar"b'29", 13267 bVar"b'28",bVar"b'27"]), 13268 Mop(Cast(FTy 3), 13269 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13270 (Bop(And,Mop(Not,bVar"b'26"), 13271 Bop(And,bVar"b'25", 13272 Bop(And,Mop(Not,bVar"b'5"), 13273 Bop(And,Mop(Not,bVar"b'4"), 13274 Bop(And,bVar"b'3", 13275 Mop(Not,bVar"b'2")))))), 13276 Call 13277 ("FArith",CTy"instruction", 13278 Call 13279 ("FNMSUB_D",CTy"FArith", 13280 TP[Mop(Cast(FTy 5), 13281 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13282 bVar"b'8",bVar"b'7"]), 13283 Mop(Cast(FTy 5), 13284 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13285 bVar"b'16",bVar"b'15"]), 13286 Mop(Cast(FTy 5), 13287 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13288 bVar"b'21",bVar"b'20"]), 13289 Mop(Cast(FTy 5), 13290 LL[bVar"b'31",bVar"b'30",bVar"b'29", 13291 bVar"b'28",bVar"b'27"]), 13292 Mop(Cast(FTy 3), 13293 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13294 (Bop(And,Mop(Not,bVar"b'26"), 13295 Bop(And,bVar"b'25", 13296 Bop(And,Mop(Not,bVar"b'5"), 13297 Bop(And,Mop(Not,bVar"b'4"), 13298 Bop(And,bVar"b'3",bVar"b'2"))))), 13299 Call 13300 ("FArith",CTy"instruction", 13301 Call 13302 ("FNMADD_D",CTy"FArith", 13303 TP[Mop(Cast(FTy 5), 13304 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13305 bVar"b'8",bVar"b'7"]), 13306 Mop(Cast(FTy 5), 13307 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13308 bVar"b'16",bVar"b'15"]), 13309 Mop(Cast(FTy 5), 13310 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13311 bVar"b'21",bVar"b'20"]), 13312 Mop(Cast(FTy 5), 13313 LL[bVar"b'31",bVar"b'30",bVar"b'29", 13314 bVar"b'28",bVar"b'27"]), 13315 Mop(Cast(FTy 3), 13316 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13317 (Bop(And,Mop(Not,bVar"b'31"), 13318 Bop(And,Mop(Not,bVar"b'30"), 13319 Bop(And,Mop(Not,bVar"b'29"), 13320 Bop(And,Mop(Not,bVar"b'28"), 13321 Bop(And,Mop(Not,bVar"b'27"), 13322 Bop(And,Mop(Not,bVar"b'26"), 13323 Bop(And,bVar"b'25", 13324 Bop(And, 13325 Mop(Not,bVar"b'5"), 13326 Bop(And,bVar"b'4", 13327 Bop(And, 13328 Mop(Not, 13329 bVar"b'3"), 13330 Mop(Not, 13331 bVar"b'2"))))))))))), 13332 Call 13333 ("FArith",CTy"instruction", 13334 Call 13335 ("FADD_D",CTy"FArith", 13336 TP[Mop(Cast(FTy 5), 13337 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13338 bVar"b'8",bVar"b'7"]), 13339 Mop(Cast(FTy 5), 13340 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13341 bVar"b'16",bVar"b'15"]), 13342 Mop(Cast(FTy 5), 13343 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13344 bVar"b'21",bVar"b'20"]), 13345 Mop(Cast(FTy 3), 13346 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13347 (Bop(And,Mop(Not,bVar"b'31"), 13348 Bop(And,Mop(Not,bVar"b'30"), 13349 Bop(And,Mop(Not,bVar"b'29"), 13350 Bop(And,Mop(Not,bVar"b'28"), 13351 Bop(And,bVar"b'27", 13352 Bop(And,Mop(Not,bVar"b'26"), 13353 Bop(And,bVar"b'25", 13354 Bop(And, 13355 Mop(Not,bVar"b'5"), 13356 Bop(And,bVar"b'4", 13357 Bop(And, 13358 Mop(Not, 13359 bVar"b'3"), 13360 Mop(Not, 13361 bVar"b'2"))))))))))), 13362 Call 13363 ("FArith",CTy"instruction", 13364 Call 13365 ("FSUB_D",CTy"FArith", 13366 TP[Mop(Cast(FTy 5), 13367 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13368 bVar"b'8",bVar"b'7"]), 13369 Mop(Cast(FTy 5), 13370 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13371 bVar"b'16",bVar"b'15"]), 13372 Mop(Cast(FTy 5), 13373 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13374 bVar"b'21",bVar"b'20"]), 13375 Mop(Cast(FTy 3), 13376 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13377 (Bop(And,Mop(Not,bVar"b'31"), 13378 Bop(And,Mop(Not,bVar"b'30"), 13379 Bop(And,Mop(Not,bVar"b'29"), 13380 Bop(And,bVar"b'28", 13381 Bop(And,Mop(Not,bVar"b'27"), 13382 Bop(And,Mop(Not,bVar"b'26"), 13383 Bop(And,bVar"b'25", 13384 Bop(And, 13385 Mop(Not,bVar"b'5"), 13386 Bop(And,bVar"b'4", 13387 Bop(And, 13388 Mop(Not, 13389 bVar"b'3"), 13390 Mop(Not, 13391 bVar"b'2"))))))))))), 13392 Call 13393 ("FArith",CTy"instruction", 13394 Call 13395 ("FMUL_D",CTy"FArith", 13396 TP[Mop(Cast(FTy 5), 13397 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13398 bVar"b'8",bVar"b'7"]), 13399 Mop(Cast(FTy 5), 13400 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13401 bVar"b'16",bVar"b'15"]), 13402 Mop(Cast(FTy 5), 13403 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13404 bVar"b'21",bVar"b'20"]), 13405 Mop(Cast(FTy 3), 13406 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13407 (Bop(And,Mop(Not,bVar"b'31"), 13408 Bop(And,Mop(Not,bVar"b'30"), 13409 Bop(And,Mop(Not,bVar"b'29"), 13410 Bop(And,bVar"b'28", 13411 Bop(And,bVar"b'27", 13412 Bop(And,Mop(Not,bVar"b'26"), 13413 Bop(And,bVar"b'25", 13414 Bop(And, 13415 Mop(Not,bVar"b'5"), 13416 Bop(And,bVar"b'4", 13417 Bop(And, 13418 Mop(Not, 13419 bVar"b'3"), 13420 Mop(Not, 13421 bVar"b'2"))))))))))), 13422 Call 13423 ("FArith",CTy"instruction", 13424 Call 13425 ("FDIV_D",CTy"FArith", 13426 TP[Mop(Cast(FTy 5), 13427 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13428 bVar"b'8",bVar"b'7"]), 13429 Mop(Cast(FTy 5), 13430 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13431 bVar"b'16",bVar"b'15"]), 13432 Mop(Cast(FTy 5), 13433 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13434 bVar"b'21",bVar"b'20"]), 13435 Mop(Cast(FTy 3), 13436 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13437 (Bop(And,Mop(Not,bVar"b'31"), 13438 Bop(And,bVar"b'30", 13439 Bop(And,Mop(Not,bVar"b'29"), 13440 Bop(And,bVar"b'28", 13441 Bop(And,bVar"b'27", 13442 Bop(And,Mop(Not,bVar"b'26"), 13443 Bop(And,bVar"b'25", 13444 Bop(And, 13445 Mop(Not,bVar"b'24"), 13446 Bop(And, 13447 Mop(Not, 13448 bVar"b'23"), 13449 Bop(And, 13450 Mop(Not, 13451 bVar"b'22"), 13452 Bop(And, 13453 Mop(Not, 13454 bVar"b'21"), 13455 Bop(And, 13456 Mop(Not, 13457 bVar"b'20"), 13458 Bop(And, 13459 Mop(Not, 13460 bVar"b'5"), 13461 Bop(And, 13462 bVar"b'4", 13463 Bop(And, 13464 Mop(Not, 13465 bVar"b'3"), 13466 Mop(Not, 13467 bVar"b'2")))))))))))))))), 13468 Call 13469 ("FArith",CTy"instruction", 13470 Call 13471 ("FSQRT_D",CTy"FArith", 13472 TP[Mop(Cast(FTy 5), 13473 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13474 bVar"b'8",bVar"b'7"]), 13475 Mop(Cast(FTy 5), 13476 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13477 bVar"b'16",bVar"b'15"]), 13478 Mop(Cast(FTy 3), 13479 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13480 (Bop(And,Mop(Not,bVar"b'31"), 13481 Bop(And,Mop(Not,bVar"b'30"), 13482 Bop(And,bVar"b'29", 13483 Bop(And,Mop(Not,bVar"b'28"), 13484 Bop(And,bVar"b'27", 13485 Bop(And,Mop(Not,bVar"b'26"), 13486 Bop(And,bVar"b'25", 13487 Bop(And, 13488 Mop(Not,bVar"b'14"), 13489 Bop(And, 13490 Mop(Not, 13491 bVar"b'13"), 13492 Bop(And, 13493 Mop(Not, 13494 bVar"b'12"), 13495 Bop(And, 13496 Mop(Not, 13497 bVar"b'5"), 13498 Bop(And, 13499 bVar"b'4", 13500 Bop(And, 13501 Mop(Not, 13502 bVar"b'3"), 13503 Mop(Not, 13504 bVar"b'2")))))))))))))), 13505 Call 13506 ("FArith",CTy"instruction", 13507 Call 13508 ("FMIN_D",CTy"FArith", 13509 TP[Mop(Cast(FTy 5), 13510 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13511 bVar"b'8",bVar"b'7"]), 13512 Mop(Cast(FTy 5), 13513 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13514 bVar"b'16",bVar"b'15"]), 13515 Mop(Cast(FTy 5), 13516 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13517 bVar"b'21",bVar"b'20"])]))), 13518 (Bop(And,Mop(Not,bVar"b'31"), 13519 Bop(And,Mop(Not,bVar"b'30"), 13520 Bop(And,bVar"b'29", 13521 Bop(And,Mop(Not,bVar"b'28"), 13522 Bop(And,bVar"b'27", 13523 Bop(And,Mop(Not,bVar"b'26"), 13524 Bop(And,bVar"b'25", 13525 Bop(And, 13526 Mop(Not,bVar"b'14"), 13527 Bop(And, 13528 Mop(Not, 13529 bVar"b'13"), 13530 Bop(And, 13531 bVar"b'12", 13532 Bop(And, 13533 Mop(Not, 13534 bVar"b'5"), 13535 Bop(And, 13536 bVar"b'4", 13537 Bop(And, 13538 Mop(Not, 13539 bVar"b'3"), 13540 Mop(Not, 13541 bVar"b'2")))))))))))))), 13542 Call 13543 ("FArith",CTy"instruction", 13544 Call 13545 ("FMAX_D",CTy"FArith", 13546 TP[Mop(Cast(FTy 5), 13547 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13548 bVar"b'8",bVar"b'7"]), 13549 Mop(Cast(FTy 5), 13550 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13551 bVar"b'16",bVar"b'15"]), 13552 Mop(Cast(FTy 5), 13553 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13554 bVar"b'21",bVar"b'20"])]))), 13555 (Bop(And,bVar"b'31", 13556 Bop(And,Mop(Not,bVar"b'30"), 13557 Bop(And,bVar"b'29", 13558 Bop(And,Mop(Not,bVar"b'28"), 13559 Bop(And,Mop(Not,bVar"b'27"), 13560 Bop(And,Mop(Not,bVar"b'26"), 13561 Bop(And,bVar"b'25", 13562 Bop(And, 13563 Mop(Not,bVar"b'14"), 13564 Bop(And,bVar"b'13", 13565 Bop(And, 13566 Mop(Not, 13567 bVar"b'12"), 13568 Bop(And, 13569 Mop(Not, 13570 bVar"b'5"), 13571 Bop(And, 13572 bVar"b'4", 13573 Bop(And, 13574 Mop(Not, 13575 bVar"b'3"), 13576 Mop(Not, 13577 bVar"b'2")))))))))))))), 13578 Call 13579 ("FArith",CTy"instruction", 13580 Call 13581 ("FEQ_D",CTy"FArith", 13582 TP[Mop(Cast(FTy 5), 13583 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13584 bVar"b'8",bVar"b'7"]), 13585 Mop(Cast(FTy 5), 13586 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13587 bVar"b'16",bVar"b'15"]), 13588 Mop(Cast(FTy 5), 13589 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13590 bVar"b'21",bVar"b'20"])]))), 13591 (Bop(And,bVar"b'31", 13592 Bop(And,Mop(Not,bVar"b'30"), 13593 Bop(And,bVar"b'29", 13594 Bop(And,Mop(Not,bVar"b'28"), 13595 Bop(And,Mop(Not,bVar"b'27"), 13596 Bop(And,Mop(Not,bVar"b'26"), 13597 Bop(And,bVar"b'25", 13598 Bop(And, 13599 Mop(Not,bVar"b'14"), 13600 Bop(And, 13601 Mop(Not, 13602 bVar"b'13"), 13603 Bop(And, 13604 bVar"b'12", 13605 Bop(And, 13606 Mop(Not, 13607 bVar"b'5"), 13608 Bop(And, 13609 bVar"b'4", 13610 Bop(And, 13611 Mop(Not, 13612 bVar"b'3"), 13613 Mop(Not, 13614 bVar"b'2")))))))))))))), 13615 Call 13616 ("FArith",CTy"instruction", 13617 Call 13618 ("FLT_D",CTy"FArith", 13619 TP[Mop(Cast(FTy 5), 13620 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13621 bVar"b'8",bVar"b'7"]), 13622 Mop(Cast(FTy 5), 13623 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13624 bVar"b'16",bVar"b'15"]), 13625 Mop(Cast(FTy 5), 13626 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13627 bVar"b'21",bVar"b'20"])]))), 13628 (Bop(And,bVar"b'31", 13629 Bop(And,Mop(Not,bVar"b'30"), 13630 Bop(And,bVar"b'29", 13631 Bop(And,Mop(Not,bVar"b'28"), 13632 Bop(And,Mop(Not,bVar"b'27"), 13633 Bop(And,Mop(Not,bVar"b'26"), 13634 Bop(And,bVar"b'25", 13635 Bop(And, 13636 Mop(Not,bVar"b'14"), 13637 Bop(And, 13638 Mop(Not, 13639 bVar"b'13"), 13640 Bop(And, 13641 Mop(Not, 13642 bVar"b'12"), 13643 Bop(And, 13644 Mop(Not, 13645 bVar"b'5"), 13646 Bop(And, 13647 bVar"b'4", 13648 Bop(And, 13649 Mop(Not, 13650 bVar"b'3"), 13651 Mop(Not, 13652 bVar"b'2")))))))))))))), 13653 Call 13654 ("FArith",CTy"instruction", 13655 Call 13656 ("FLE_D",CTy"FArith", 13657 TP[Mop(Cast(FTy 5), 13658 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13659 bVar"b'8",bVar"b'7"]), 13660 Mop(Cast(FTy 5), 13661 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13662 bVar"b'16",bVar"b'15"]), 13663 Mop(Cast(FTy 5), 13664 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13665 bVar"b'21",bVar"b'20"])]))), 13666 (Bop(And,Mop(Not,bVar"b'31"), 13667 Bop(And,Mop(Not,bVar"b'30"), 13668 Bop(And,bVar"b'29", 13669 Bop(And,Mop(Not,bVar"b'28"), 13670 Bop(And,Mop(Not,bVar"b'27"), 13671 Bop(And,Mop(Not,bVar"b'26"), 13672 Bop(And,bVar"b'25", 13673 Bop(And, 13674 Mop(Not,bVar"b'14"), 13675 Bop(And, 13676 Mop(Not, 13677 bVar"b'13"), 13678 Bop(And, 13679 Mop(Not, 13680 bVar"b'12"), 13681 Bop(And, 13682 Mop(Not, 13683 bVar"b'5"), 13684 Bop(And, 13685 bVar"b'4", 13686 Bop(And, 13687 Mop(Not, 13688 bVar"b'3"), 13689 Mop(Not, 13690 bVar"b'2")))))))))))))), 13691 Call 13692 ("FConv",CTy"instruction", 13693 Call 13694 ("FSGNJ_D",CTy"FConv", 13695 TP[Mop(Cast(FTy 5), 13696 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13697 bVar"b'8",bVar"b'7"]), 13698 Mop(Cast(FTy 5), 13699 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13700 bVar"b'16",bVar"b'15"]), 13701 Mop(Cast(FTy 5), 13702 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13703 bVar"b'21",bVar"b'20"])]))), 13704 (Bop(And,Mop(Not,bVar"b'31"), 13705 Bop(And,Mop(Not,bVar"b'30"), 13706 Bop(And,bVar"b'29", 13707 Bop(And,Mop(Not,bVar"b'28"), 13708 Bop(And,Mop(Not,bVar"b'27"), 13709 Bop(And,Mop(Not,bVar"b'26"), 13710 Bop(And,bVar"b'25", 13711 Bop(And, 13712 Mop(Not,bVar"b'14"), 13713 Bop(And, 13714 Mop(Not, 13715 bVar"b'13"), 13716 Bop(And, 13717 bVar"b'12", 13718 Bop(And, 13719 Mop(Not, 13720 bVar"b'5"), 13721 Bop(And, 13722 bVar"b'4", 13723 Bop(And, 13724 Mop(Not, 13725 bVar"b'3"), 13726 Mop(Not, 13727 bVar"b'2")))))))))))))), 13728 Call 13729 ("FConv",CTy"instruction", 13730 Call 13731 ("FSGNJN_D",CTy"FConv", 13732 TP[Mop(Cast(FTy 5), 13733 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13734 bVar"b'8",bVar"b'7"]), 13735 Mop(Cast(FTy 5), 13736 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13737 bVar"b'16",bVar"b'15"]), 13738 Mop(Cast(FTy 5), 13739 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13740 bVar"b'21",bVar"b'20"])]))), 13741 (Bop(And,Mop(Not,bVar"b'31"), 13742 Bop(And,Mop(Not,bVar"b'30"), 13743 Bop(And,bVar"b'29", 13744 Bop(And,Mop(Not,bVar"b'28"), 13745 Bop(And,Mop(Not,bVar"b'27"), 13746 Bop(And,Mop(Not,bVar"b'26"), 13747 Bop(And,bVar"b'25", 13748 Bop(And, 13749 Mop(Not,bVar"b'14"), 13750 Bop(And,bVar"b'13", 13751 Bop(And, 13752 Mop(Not, 13753 bVar"b'12"), 13754 Bop(And, 13755 Mop(Not, 13756 bVar"b'5"), 13757 Bop(And, 13758 bVar"b'4", 13759 Bop(And, 13760 Mop(Not, 13761 bVar"b'3"), 13762 Mop(Not, 13763 bVar"b'2")))))))))))))), 13764 Call 13765 ("FConv",CTy"instruction", 13766 Call 13767 ("FSGNJX_D",CTy"FConv", 13768 TP[Mop(Cast(FTy 5), 13769 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13770 bVar"b'8",bVar"b'7"]), 13771 Mop(Cast(FTy 5), 13772 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13773 bVar"b'16",bVar"b'15"]), 13774 Mop(Cast(FTy 5), 13775 LL[bVar"b'24",bVar"b'23",bVar"b'22", 13776 bVar"b'21",bVar"b'20"])]))), 13777 (Bop(And,bVar"b'31", 13778 Bop(And,bVar"b'30", 13779 Bop(And,Mop(Not,bVar"b'29"), 13780 Bop(And,Mop(Not,bVar"b'28"), 13781 Bop(And,Mop(Not,bVar"b'27"), 13782 Bop(And,Mop(Not,bVar"b'26"), 13783 Bop(And,bVar"b'25", 13784 Bop(And, 13785 Mop(Not,bVar"b'24"), 13786 Bop(And, 13787 Mop(Not, 13788 bVar"b'23"), 13789 Bop(And, 13790 Mop(Not, 13791 bVar"b'22"), 13792 Bop(And, 13793 Mop(Not, 13794 bVar"b'21"), 13795 Bop(And, 13796 Mop(Not, 13797 bVar"b'20"), 13798 Bop(And, 13799 Mop(Not, 13800 bVar"b'5"), 13801 Bop(And, 13802 bVar"b'4", 13803 Bop(And, 13804 Mop(Not, 13805 bVar"b'3"), 13806 Mop(Not, 13807 bVar"b'2")))))))))))))))), 13808 Call 13809 ("FConv",CTy"instruction", 13810 Call 13811 ("FCVT_W_D",CTy"FConv", 13812 TP[Mop(Cast(FTy 5), 13813 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13814 bVar"b'8",bVar"b'7"]), 13815 Mop(Cast(FTy 5), 13816 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13817 bVar"b'16",bVar"b'15"]), 13818 Mop(Cast(FTy 3), 13819 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13820 (Bop(And,bVar"b'31", 13821 Bop(And,bVar"b'30", 13822 Bop(And,Mop(Not,bVar"b'29"), 13823 Bop(And,Mop(Not,bVar"b'28"), 13824 Bop(And,Mop(Not,bVar"b'27"), 13825 Bop(And,Mop(Not,bVar"b'26"), 13826 Bop(And,bVar"b'25", 13827 Bop(And, 13828 Mop(Not,bVar"b'24"), 13829 Bop(And, 13830 Mop(Not, 13831 bVar"b'23"), 13832 Bop(And, 13833 Mop(Not, 13834 bVar"b'22"), 13835 Bop(And, 13836 Mop(Not, 13837 bVar"b'21"), 13838 Bop(And, 13839 bVar"b'20", 13840 Bop(And, 13841 Mop(Not, 13842 bVar"b'5"), 13843 Bop(And, 13844 bVar"b'4", 13845 Bop(And, 13846 Mop(Not, 13847 bVar"b'3"), 13848 Mop(Not, 13849 bVar"b'2")))))))))))))))), 13850 Call 13851 ("FConv",CTy"instruction", 13852 Call 13853 ("FCVT_WU_D",CTy"FConv", 13854 TP[Mop(Cast(FTy 5), 13855 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13856 bVar"b'8",bVar"b'7"]), 13857 Mop(Cast(FTy 5), 13858 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13859 bVar"b'16",bVar"b'15"]), 13860 Mop(Cast(FTy 3), 13861 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13862 (Bop(And,bVar"b'31", 13863 Bop(And,bVar"b'30", 13864 Bop(And,bVar"b'29", 13865 Bop(And,Mop(Not,bVar"b'28"), 13866 Bop(And,Mop(Not,bVar"b'27"), 13867 Bop(And,Mop(Not,bVar"b'26"), 13868 Bop(And,bVar"b'25", 13869 Bop(And, 13870 Mop(Not,bVar"b'24"), 13871 Bop(And, 13872 Mop(Not, 13873 bVar"b'23"), 13874 Bop(And, 13875 Mop(Not, 13876 bVar"b'22"), 13877 Bop(And, 13878 Mop(Not, 13879 bVar"b'21"), 13880 Bop(And, 13881 Mop(Not, 13882 bVar"b'20"), 13883 Bop(And, 13884 Mop(Not, 13885 bVar"b'14"), 13886 Bop(And, 13887 Mop(Not, 13888 bVar"b'13"), 13889 Bop(And, 13890 bVar"b'12", 13891 Bop(And, 13892 Mop(Not, 13893 bVar"b'5"), 13894 Bop(And, 13895 bVar"b'4", 13896 Bop(And, 13897 Mop(Not, 13898 bVar"b'3"), 13899 Mop(Not, 13900 bVar"b'2"))))))))))))))))))), 13901 Call 13902 ("FConv",CTy"instruction", 13903 Call 13904 ("FCLASS_D",CTy"FConv", 13905 TP[Mop(Cast(FTy 5), 13906 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13907 bVar"b'8",bVar"b'7"]), 13908 Mop(Cast(FTy 5), 13909 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13910 bVar"b'16",bVar"b'15"])]))), 13911 (Bop(And,bVar"b'31", 13912 Bop(And,bVar"b'30", 13913 Bop(And,Mop(Not,bVar"b'29"), 13914 Bop(And,bVar"b'28", 13915 Bop(And,Mop(Not,bVar"b'27"), 13916 Bop(And,Mop(Not,bVar"b'26"), 13917 Bop(And,bVar"b'25", 13918 Bop(And, 13919 Mop(Not,bVar"b'24"), 13920 Bop(And, 13921 Mop(Not, 13922 bVar"b'23"), 13923 Bop(And, 13924 Mop(Not, 13925 bVar"b'22"), 13926 Bop(And, 13927 Mop(Not, 13928 bVar"b'21"), 13929 Bop(And, 13930 Mop(Not, 13931 bVar"b'20"), 13932 Bop(And, 13933 Mop(Not, 13934 bVar"b'5"), 13935 Bop(And, 13936 bVar"b'4", 13937 Bop(And, 13938 Mop(Not, 13939 bVar"b'3"), 13940 Mop(Not, 13941 bVar"b'2")))))))))))))))), 13942 Call 13943 ("FConv",CTy"instruction", 13944 Call 13945 ("FCVT_D_W",CTy"FConv", 13946 TP[Mop(Cast(FTy 5), 13947 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13948 bVar"b'8",bVar"b'7"]), 13949 Mop(Cast(FTy 5), 13950 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13951 bVar"b'16",bVar"b'15"]), 13952 Mop(Cast(FTy 3), 13953 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13954 (Bop(And,bVar"b'31", 13955 Bop(And,bVar"b'30", 13956 Bop(And,Mop(Not,bVar"b'29"), 13957 Bop(And,bVar"b'28", 13958 Bop(And,Mop(Not,bVar"b'27"), 13959 Bop(And,Mop(Not,bVar"b'26"), 13960 Bop(And,bVar"b'25", 13961 Bop(And, 13962 Mop(Not,bVar"b'24"), 13963 Bop(And, 13964 Mop(Not, 13965 bVar"b'23"), 13966 Bop(And, 13967 Mop(Not, 13968 bVar"b'22"), 13969 Bop(And, 13970 Mop(Not, 13971 bVar"b'21"), 13972 Bop(And, 13973 bVar"b'20", 13974 Bop(And, 13975 Mop(Not, 13976 bVar"b'5"), 13977 Bop(And, 13978 bVar"b'4", 13979 Bop(And, 13980 Mop(Not, 13981 bVar"b'3"), 13982 Mop(Not, 13983 bVar"b'2")))))))))))))))), 13984 Call 13985 ("FConv",CTy"instruction", 13986 Call 13987 ("FCVT_D_WU",CTy"FConv", 13988 TP[Mop(Cast(FTy 5), 13989 LL[bVar"b'11",bVar"b'10",bVar"b'9", 13990 bVar"b'8",bVar"b'7"]), 13991 Mop(Cast(FTy 5), 13992 LL[bVar"b'19",bVar"b'18",bVar"b'17", 13993 bVar"b'16",bVar"b'15"]), 13994 Mop(Cast(FTy 3), 13995 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 13996 (Bop(And,bVar"b'31", 13997 Bop(And,bVar"b'30", 13998 Bop(And,Mop(Not,bVar"b'29"), 13999 Bop(And,Mop(Not,bVar"b'28"), 14000 Bop(And,Mop(Not,bVar"b'27"), 14001 Bop(And,Mop(Not,bVar"b'26"), 14002 Bop(And, 14003 Mop(Not,bVar"b'25"), 14004 Bop(And, 14005 Mop(Not,bVar"b'24"), 14006 Bop(And, 14007 Mop(Not, 14008 bVar"b'23"), 14009 Bop(And, 14010 Mop(Not, 14011 bVar"b'22"), 14012 Bop(And, 14013 bVar"b'21", 14014 Bop(And, 14015 Mop(Not, 14016 bVar"b'20"), 14017 Bop(And, 14018 Mop(Not, 14019 bVar"b'5"), 14020 Bop(And, 14021 bVar"b'4", 14022 Bop(And, 14023 Mop(Not, 14024 bVar"b'3"), 14025 Mop(Not, 14026 bVar"b'2")))))))))))))))), 14027 Call 14028 ("FConv",CTy"instruction", 14029 Call 14030 ("FCVT_L_S",CTy"FConv", 14031 TP[Mop(Cast(FTy 5), 14032 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14033 bVar"b'8",bVar"b'7"]), 14034 Mop(Cast(FTy 5), 14035 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14036 bVar"b'16",bVar"b'15"]), 14037 Mop(Cast(FTy 3), 14038 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14039 (Bop(And,bVar"b'31", 14040 Bop(And,bVar"b'30", 14041 Bop(And,Mop(Not,bVar"b'29"), 14042 Bop(And,Mop(Not,bVar"b'28"), 14043 Bop(And,Mop(Not,bVar"b'27"), 14044 Bop(And,Mop(Not,bVar"b'26"), 14045 Bop(And, 14046 Mop(Not,bVar"b'25"), 14047 Bop(And, 14048 Mop(Not,bVar"b'24"), 14049 Bop(And, 14050 Mop(Not, 14051 bVar"b'23"), 14052 Bop(And, 14053 Mop(Not, 14054 bVar"b'22"), 14055 Bop(And, 14056 bVar"b'21", 14057 Bop(And, 14058 bVar"b'20", 14059 Bop(And, 14060 Mop(Not, 14061 bVar"b'5"), 14062 Bop(And, 14063 bVar"b'4", 14064 Bop(And, 14065 Mop(Not, 14066 bVar"b'3"), 14067 Mop(Not, 14068 bVar"b'2")))))))))))))))), 14069 Call 14070 ("FConv",CTy"instruction", 14071 Call 14072 ("FCVT_LU_S",CTy"FConv", 14073 TP[Mop(Cast(FTy 5), 14074 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14075 bVar"b'8",bVar"b'7"]), 14076 Mop(Cast(FTy 5), 14077 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14078 bVar"b'16",bVar"b'15"]), 14079 Mop(Cast(FTy 3), 14080 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14081 (Bop(And,bVar"b'31", 14082 Bop(And,bVar"b'30", 14083 Bop(And,Mop(Not,bVar"b'29"), 14084 Bop(And,bVar"b'28", 14085 Bop(And,Mop(Not,bVar"b'27"), 14086 Bop(And,Mop(Not,bVar"b'26"), 14087 Bop(And, 14088 Mop(Not,bVar"b'25"), 14089 Bop(And, 14090 Mop(Not,bVar"b'24"), 14091 Bop(And, 14092 Mop(Not, 14093 bVar"b'23"), 14094 Bop(And, 14095 Mop(Not, 14096 bVar"b'22"), 14097 Bop(And, 14098 bVar"b'21", 14099 Bop(And, 14100 Mop(Not, 14101 bVar"b'20"), 14102 Bop(And, 14103 Mop(Not, 14104 bVar"b'5"), 14105 Bop(And, 14106 bVar"b'4", 14107 Bop(And, 14108 Mop(Not, 14109 bVar"b'3"), 14110 Mop(Not, 14111 bVar"b'2")))))))))))))))), 14112 Call 14113 ("FConv",CTy"instruction", 14114 Call 14115 ("FCVT_S_L",CTy"FConv", 14116 TP[Mop(Cast(FTy 5), 14117 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14118 bVar"b'8",bVar"b'7"]), 14119 Mop(Cast(FTy 5), 14120 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14121 bVar"b'16",bVar"b'15"]), 14122 Mop(Cast(FTy 3), 14123 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14124 (Bop(And,bVar"b'31", 14125 Bop(And,bVar"b'30", 14126 Bop(And,Mop(Not,bVar"b'29"), 14127 Bop(And,bVar"b'28", 14128 Bop(And,Mop(Not,bVar"b'27"), 14129 Bop(And,Mop(Not,bVar"b'26"), 14130 Bop(And, 14131 Mop(Not,bVar"b'25"), 14132 Bop(And, 14133 Mop(Not,bVar"b'24"), 14134 Bop(And, 14135 Mop(Not, 14136 bVar"b'23"), 14137 Bop(And, 14138 Mop(Not, 14139 bVar"b'22"), 14140 Bop(And, 14141 bVar"b'21", 14142 Bop(And, 14143 bVar"b'20", 14144 Bop(And, 14145 Mop(Not, 14146 bVar"b'5"), 14147 Bop(And, 14148 bVar"b'4", 14149 Bop(And, 14150 Mop(Not, 14151 bVar"b'3"), 14152 Mop(Not, 14153 bVar"b'2")))))))))))))))), 14154 Call 14155 ("FConv",CTy"instruction", 14156 Call 14157 ("FCVT_S_LU",CTy"FConv", 14158 TP[Mop(Cast(FTy 5), 14159 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14160 bVar"b'8",bVar"b'7"]), 14161 Mop(Cast(FTy 5), 14162 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14163 bVar"b'16",bVar"b'15"]), 14164 Mop(Cast(FTy 3), 14165 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14166 (Bop(And,bVar"b'31", 14167 Bop(And,bVar"b'30", 14168 Bop(And,Mop(Not,bVar"b'29"), 14169 Bop(And,Mop(Not,bVar"b'28"), 14170 Bop(And,Mop(Not,bVar"b'27"), 14171 Bop(And,Mop(Not,bVar"b'26"), 14172 Bop(And,bVar"b'25", 14173 Bop(And, 14174 Mop(Not,bVar"b'24"), 14175 Bop(And, 14176 Mop(Not, 14177 bVar"b'23"), 14178 Bop(And, 14179 Mop(Not, 14180 bVar"b'22"), 14181 Bop(And, 14182 bVar"b'21", 14183 Bop(And, 14184 Mop(Not, 14185 bVar"b'20"), 14186 Bop(And, 14187 Mop(Not, 14188 bVar"b'5"), 14189 Bop(And, 14190 bVar"b'4", 14191 Bop(And, 14192 Mop(Not, 14193 bVar"b'3"), 14194 Mop(Not, 14195 bVar"b'2")))))))))))))))), 14196 Call 14197 ("FConv",CTy"instruction", 14198 Call 14199 ("FCVT_L_D",CTy"FConv", 14200 TP[Mop(Cast(FTy 5), 14201 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14202 bVar"b'8",bVar"b'7"]), 14203 Mop(Cast(FTy 5), 14204 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14205 bVar"b'16",bVar"b'15"]), 14206 Mop(Cast(FTy 3), 14207 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14208 (Bop(And,bVar"b'31", 14209 Bop(And,bVar"b'30", 14210 Bop(And,Mop(Not,bVar"b'29"), 14211 Bop(And,Mop(Not,bVar"b'28"), 14212 Bop(And,Mop(Not,bVar"b'27"), 14213 Bop(And,Mop(Not,bVar"b'26"), 14214 Bop(And,bVar"b'25", 14215 Bop(And, 14216 Mop(Not,bVar"b'24"), 14217 Bop(And, 14218 Mop(Not, 14219 bVar"b'23"), 14220 Bop(And, 14221 Mop(Not, 14222 bVar"b'22"), 14223 Bop(And, 14224 bVar"b'21", 14225 Bop(And, 14226 bVar"b'20", 14227 Bop(And, 14228 Mop(Not, 14229 bVar"b'5"), 14230 Bop(And, 14231 bVar"b'4", 14232 Bop(And, 14233 Mop(Not, 14234 bVar"b'3"), 14235 Mop(Not, 14236 bVar"b'2")))))))))))))))), 14237 Call 14238 ("FConv",CTy"instruction", 14239 Call 14240 ("FCVT_LU_D",CTy"FConv", 14241 TP[Mop(Cast(FTy 5), 14242 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14243 bVar"b'8",bVar"b'7"]), 14244 Mop(Cast(FTy 5), 14245 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14246 bVar"b'16",bVar"b'15"]), 14247 Mop(Cast(FTy 3), 14248 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14249 (Bop(And,bVar"b'31", 14250 Bop(And,bVar"b'30", 14251 Bop(And,Mop(Not,bVar"b'29"), 14252 Bop(And,bVar"b'28", 14253 Bop(And,Mop(Not,bVar"b'27"), 14254 Bop(And,Mop(Not,bVar"b'26"), 14255 Bop(And,bVar"b'25", 14256 Bop(And, 14257 Mop(Not,bVar"b'24"), 14258 Bop(And, 14259 Mop(Not, 14260 bVar"b'23"), 14261 Bop(And, 14262 Mop(Not, 14263 bVar"b'22"), 14264 Bop(And, 14265 bVar"b'21", 14266 Bop(And, 14267 Mop(Not, 14268 bVar"b'20"), 14269 Bop(And, 14270 Mop(Not, 14271 bVar"b'5"), 14272 Bop(And, 14273 bVar"b'4", 14274 Bop(And, 14275 Mop(Not, 14276 bVar"b'3"), 14277 Mop(Not, 14278 bVar"b'2")))))))))))))))), 14279 Call 14280 ("FConv",CTy"instruction", 14281 Call 14282 ("FCVT_D_L",CTy"FConv", 14283 TP[Mop(Cast(FTy 5), 14284 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14285 bVar"b'8",bVar"b'7"]), 14286 Mop(Cast(FTy 5), 14287 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14288 bVar"b'16",bVar"b'15"]), 14289 Mop(Cast(FTy 3), 14290 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14291 (Bop(And,bVar"b'31", 14292 Bop(And,bVar"b'30", 14293 Bop(And,Mop(Not,bVar"b'29"), 14294 Bop(And,bVar"b'28", 14295 Bop(And,Mop(Not,bVar"b'27"), 14296 Bop(And,Mop(Not,bVar"b'26"), 14297 Bop(And,bVar"b'25", 14298 Bop(And, 14299 Mop(Not,bVar"b'24"), 14300 Bop(And, 14301 Mop(Not, 14302 bVar"b'23"), 14303 Bop(And, 14304 Mop(Not, 14305 bVar"b'22"), 14306 Bop(And, 14307 bVar"b'21", 14308 Bop(And, 14309 bVar"b'20", 14310 Bop(And, 14311 Mop(Not, 14312 bVar"b'5"), 14313 Bop(And, 14314 bVar"b'4", 14315 Bop(And, 14316 Mop(Not, 14317 bVar"b'3"), 14318 Mop(Not, 14319 bVar"b'2")))))))))))))))), 14320 Call 14321 ("FConv",CTy"instruction", 14322 Call 14323 ("FCVT_D_LU",CTy"FConv", 14324 TP[Mop(Cast(FTy 5), 14325 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14326 bVar"b'8",bVar"b'7"]), 14327 Mop(Cast(FTy 5), 14328 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14329 bVar"b'16",bVar"b'15"]), 14330 Mop(Cast(FTy 3), 14331 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14332 (Bop(And,bVar"b'31", 14333 Bop(And,bVar"b'30", 14334 Bop(And,bVar"b'29", 14335 Bop(And,Mop(Not,bVar"b'28"), 14336 Bop(And,Mop(Not,bVar"b'27"), 14337 Bop(And,Mop(Not,bVar"b'26"), 14338 Bop(And,bVar"b'25", 14339 Bop(And, 14340 Mop(Not,bVar"b'24"), 14341 Bop(And, 14342 Mop(Not, 14343 bVar"b'23"), 14344 Bop(And, 14345 Mop(Not, 14346 bVar"b'22"), 14347 Bop(And, 14348 Mop(Not, 14349 bVar"b'21"), 14350 Bop(And, 14351 Mop(Not, 14352 bVar"b'20"), 14353 Bop(And, 14354 Mop(Not, 14355 bVar"b'14"), 14356 Bop(And, 14357 Mop(Not, 14358 bVar"b'13"), 14359 Bop(And, 14360 Mop(Not, 14361 bVar"b'12"), 14362 Bop(And, 14363 Mop(Not, 14364 bVar"b'5"), 14365 Bop(And, 14366 bVar"b'4", 14367 Bop(And, 14368 Mop(Not, 14369 bVar"b'3"), 14370 Mop(Not, 14371 bVar"b'2"))))))))))))))))))), 14372 Call 14373 ("FConv",CTy"instruction", 14374 Call 14375 ("FMV_X_D",CTy"FConv", 14376 TP[Mop(Cast(FTy 5), 14377 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14378 bVar"b'8",bVar"b'7"]), 14379 Mop(Cast(FTy 5), 14380 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14381 bVar"b'16",bVar"b'15"])]))), 14382 (Bop(And,bVar"b'31", 14383 Bop(And,bVar"b'30", 14384 Bop(And,bVar"b'29", 14385 Bop(And,bVar"b'28", 14386 Bop(And,Mop(Not,bVar"b'27"), 14387 Bop(And,Mop(Not,bVar"b'26"), 14388 Bop(And,bVar"b'25", 14389 Bop(And, 14390 Mop(Not,bVar"b'24"), 14391 Bop(And, 14392 Mop(Not, 14393 bVar"b'23"), 14394 Bop(And, 14395 Mop(Not, 14396 bVar"b'22"), 14397 Bop(And, 14398 Mop(Not, 14399 bVar"b'21"), 14400 Bop(And, 14401 Mop(Not, 14402 bVar"b'20"), 14403 Bop(And, 14404 Mop(Not, 14405 bVar"b'14"), 14406 Bop(And, 14407 Mop(Not, 14408 bVar"b'13"), 14409 Bop(And, 14410 Mop(Not, 14411 bVar"b'12"), 14412 Bop(And, 14413 Mop(Not, 14414 bVar"b'5"), 14415 Bop(And, 14416 bVar"b'4", 14417 Bop(And, 14418 Mop(Not, 14419 bVar"b'3"), 14420 Mop(Not, 14421 bVar"b'2"))))))))))))))))))), 14422 Call 14423 ("FConv",CTy"instruction", 14424 Call 14425 ("FMV_D_X",CTy"FConv", 14426 TP[Mop(Cast(FTy 5), 14427 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14428 bVar"b'8",bVar"b'7"]), 14429 Mop(Cast(FTy 5), 14430 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14431 bVar"b'16",bVar"b'15"])]))), 14432 (Bop(And,Mop(Not,bVar"b'31"), 14433 Bop(And,bVar"b'30", 14434 Bop(And,Mop(Not,bVar"b'29"), 14435 Bop(And,Mop(Not,bVar"b'28"), 14436 Bop(And,Mop(Not,bVar"b'27"), 14437 Bop(And,Mop(Not,bVar"b'26"), 14438 Bop(And, 14439 Mop(Not,bVar"b'25"), 14440 Bop(And, 14441 Mop(Not,bVar"b'24"), 14442 Bop(And, 14443 Mop(Not, 14444 bVar"b'23"), 14445 Bop(And, 14446 Mop(Not, 14447 bVar"b'22"), 14448 Bop(And, 14449 Mop(Not, 14450 bVar"b'21"), 14451 Bop(And, 14452 bVar"b'20", 14453 Bop(And, 14454 Mop(Not, 14455 bVar"b'5"), 14456 Bop(And, 14457 bVar"b'4", 14458 Bop(And, 14459 Mop(Not, 14460 bVar"b'3"), 14461 Mop(Not, 14462 bVar"b'2")))))))))))))))), 14463 Call 14464 ("FConv",CTy"instruction", 14465 Call 14466 ("FCVT_S_D",CTy"FConv", 14467 TP[Mop(Cast(FTy 5), 14468 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14469 bVar"b'8",bVar"b'7"]), 14470 Mop(Cast(FTy 5), 14471 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14472 bVar"b'16",bVar"b'15"]), 14473 Mop(Cast(FTy 3), 14474 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14475 (Bop(And,Mop(Not,bVar"b'31"), 14476 Bop(And,bVar"b'30", 14477 Bop(And,Mop(Not,bVar"b'29"), 14478 Bop(And,Mop(Not,bVar"b'28"), 14479 Bop(And,Mop(Not,bVar"b'27"), 14480 Bop(And,Mop(Not,bVar"b'26"), 14481 Bop(And,bVar"b'25", 14482 Bop(And, 14483 Mop(Not,bVar"b'24"), 14484 Bop(And, 14485 Mop(Not, 14486 bVar"b'23"), 14487 Bop(And, 14488 Mop(Not, 14489 bVar"b'22"), 14490 Bop(And, 14491 Mop(Not, 14492 bVar"b'21"), 14493 Bop(And, 14494 Mop(Not, 14495 bVar"b'20"), 14496 Bop(And, 14497 Mop(Not, 14498 bVar"b'5"), 14499 Bop(And, 14500 bVar"b'4", 14501 Bop(And, 14502 Mop(Not, 14503 bVar"b'3"), 14504 Mop(Not, 14505 bVar"b'2")))))))))))))))), 14506 Call 14507 ("FConv",CTy"instruction", 14508 Call 14509 ("FCVT_D_S",CTy"FConv", 14510 TP[Mop(Cast(FTy 5), 14511 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14512 bVar"b'8",bVar"b'7"]), 14513 Mop(Cast(FTy 5), 14514 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14515 bVar"b'16",bVar"b'15"]), 14516 Mop(Cast(FTy 3), 14517 LL[bVar"b'14",bVar"b'13",bVar"b'12"])]))), 14518 (Bop(And,Mop(Not,bVar"b'14"), 14519 Bop(And,Mop(Not,bVar"b'13"), 14520 Bop(And,bVar"b'12", 14521 Bop(And,bVar"b'5", 14522 Bop(And,bVar"b'4", 14523 Bop(And,Mop(Not,bVar"b'3"), 14524 Mop(Not,bVar"b'2"))))))), 14525 Call 14526 ("System",CTy"instruction", 14527 Call 14528 ("CSRRW",CTy"System", 14529 TP[Mop(Cast(FTy 5), 14530 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14531 bVar"b'8",bVar"b'7"]), 14532 Mop(Cast(FTy 5), 14533 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14534 bVar"b'16",bVar"b'15"]), 14535 Mop(Cast(FTy 12), 14536 LL[bVar"b'31",bVar"b'30",bVar"b'29", 14537 bVar"b'28",bVar"b'27",bVar"b'26", 14538 bVar"b'25",bVar"b'24",bVar"b'23", 14539 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 14540 (Bop(And,Mop(Not,bVar"b'14"), 14541 Bop(And,bVar"b'13", 14542 Bop(And,Mop(Not,bVar"b'12"), 14543 Bop(And,bVar"b'5", 14544 Bop(And,bVar"b'4", 14545 Bop(And,Mop(Not,bVar"b'3"), 14546 Mop(Not,bVar"b'2"))))))), 14547 Call 14548 ("System",CTy"instruction", 14549 Call 14550 ("CSRRS",CTy"System", 14551 TP[Mop(Cast(FTy 5), 14552 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14553 bVar"b'8",bVar"b'7"]), 14554 Mop(Cast(FTy 5), 14555 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14556 bVar"b'16",bVar"b'15"]), 14557 Mop(Cast(FTy 12), 14558 LL[bVar"b'31",bVar"b'30",bVar"b'29", 14559 bVar"b'28",bVar"b'27",bVar"b'26", 14560 bVar"b'25",bVar"b'24",bVar"b'23", 14561 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 14562 (Bop(And,Mop(Not,bVar"b'14"), 14563 Bop(And,bVar"b'13", 14564 Bop(And,bVar"b'12", 14565 Bop(And,bVar"b'5", 14566 Bop(And,bVar"b'4", 14567 Bop(And,Mop(Not,bVar"b'3"), 14568 Mop(Not,bVar"b'2"))))))), 14569 Call 14570 ("System",CTy"instruction", 14571 Call 14572 ("CSRRC",CTy"System", 14573 TP[Mop(Cast(FTy 5), 14574 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14575 bVar"b'8",bVar"b'7"]), 14576 Mop(Cast(FTy 5), 14577 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14578 bVar"b'16",bVar"b'15"]), 14579 Mop(Cast(FTy 12), 14580 LL[bVar"b'31",bVar"b'30",bVar"b'29", 14581 bVar"b'28",bVar"b'27",bVar"b'26", 14582 bVar"b'25",bVar"b'24",bVar"b'23", 14583 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 14584 (Bop(And,bVar"b'14", 14585 Bop(And,Mop(Not,bVar"b'13"), 14586 Bop(And,bVar"b'12", 14587 Bop(And,bVar"b'5", 14588 Bop(And,bVar"b'4", 14589 Bop(And,Mop(Not,bVar"b'3"), 14590 Mop(Not,bVar"b'2"))))))), 14591 Call 14592 ("System",CTy"instruction", 14593 Call 14594 ("CSRRWI",CTy"System", 14595 TP[Mop(Cast(FTy 5), 14596 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14597 bVar"b'8",bVar"b'7"]), 14598 Mop(Cast(FTy 5), 14599 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14600 bVar"b'16",bVar"b'15"]), 14601 Mop(Cast(FTy 12), 14602 LL[bVar"b'31",bVar"b'30",bVar"b'29", 14603 bVar"b'28",bVar"b'27",bVar"b'26", 14604 bVar"b'25",bVar"b'24",bVar"b'23", 14605 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 14606 (Bop(And,bVar"b'14", 14607 Bop(And,bVar"b'13", 14608 Bop(And,Mop(Not,bVar"b'12"), 14609 Bop(And,bVar"b'5", 14610 Bop(And,bVar"b'4", 14611 Bop(And,Mop(Not,bVar"b'3"), 14612 Mop(Not,bVar"b'2"))))))), 14613 Call 14614 ("System",CTy"instruction", 14615 Call 14616 ("CSRRSI",CTy"System", 14617 TP[Mop(Cast(FTy 5), 14618 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14619 bVar"b'8",bVar"b'7"]), 14620 Mop(Cast(FTy 5), 14621 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14622 bVar"b'16",bVar"b'15"]), 14623 Mop(Cast(FTy 12), 14624 LL[bVar"b'31",bVar"b'30",bVar"b'29", 14625 bVar"b'28",bVar"b'27",bVar"b'26", 14626 bVar"b'25",bVar"b'24",bVar"b'23", 14627 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 14628 (Bop(And,bVar"b'14", 14629 Bop(And,bVar"b'13", 14630 Bop(And,bVar"b'12", 14631 Bop(And,bVar"b'5", 14632 Bop(And,bVar"b'4", 14633 Bop(And,Mop(Not,bVar"b'3"), 14634 Mop(Not,bVar"b'2"))))))), 14635 Call 14636 ("System",CTy"instruction", 14637 Call 14638 ("CSRRCI",CTy"System", 14639 TP[Mop(Cast(FTy 5), 14640 LL[bVar"b'11",bVar"b'10",bVar"b'9", 14641 bVar"b'8",bVar"b'7"]), 14642 Mop(Cast(FTy 5), 14643 LL[bVar"b'19",bVar"b'18",bVar"b'17", 14644 bVar"b'16",bVar"b'15"]), 14645 Mop(Cast(FTy 12), 14646 LL[bVar"b'31",bVar"b'30",bVar"b'29", 14647 bVar"b'28",bVar"b'27",bVar"b'26", 14648 bVar"b'25",bVar"b'24",bVar"b'23", 14649 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 14650 (Bop(And,Mop(Not,bVar"b'31"), 14651 Bop(And,Mop(Not,bVar"b'30"), 14652 Bop(And,Mop(Not,bVar"b'29"), 14653 Bop(And,Mop(Not,bVar"b'28"), 14654 Bop(And,Mop(Not,bVar"b'27"), 14655 Bop(And,Mop(Not,bVar"b'26"), 14656 Bop(And, 14657 Mop(Not,bVar"b'25"), 14658 Bop(And, 14659 Mop(Not,bVar"b'24"), 14660 Bop(And, 14661 Mop(Not, 14662 bVar"b'23"), 14663 Bop(And, 14664 Mop(Not, 14665 bVar"b'22"), 14666 Bop(And, 14667 Mop(Not, 14668 bVar"b'21"), 14669 Bop(And, 14670 Mop(Not, 14671 bVar"b'20"), 14672 Bop(And, 14673 Mop(Not, 14674 bVar"b'19"), 14675 Bop(And, 14676 Mop(Not, 14677 bVar"b'18"), 14678 Bop(And, 14679 Mop(Not, 14680 bVar"b'17"), 14681 Bop(And, 14682 Mop(Not, 14683 bVar"b'16"), 14684 Bop(And, 14685 Mop(Not, 14686 bVar"b'15"), 14687 Bop(And, 14688 Mop(Not, 14689 bVar"b'14"), 14690 Bop(And, 14691 Mop(Not, 14692 bVar"b'13"), 14693 Bop(And, 14694 Mop(Not, 14695 bVar"b'12"), 14696 Bop(And, 14697 Mop(Not, 14698 bVar"b'11"), 14699 Bop(And, 14700 Mop(Not, 14701 bVar"b'10"), 14702 Bop(And, 14703 Mop(Not, 14704 bVar"b'9"), 14705 Bop(And, 14706 Mop(Not, 14707 bVar"b'8"), 14708 Bop(And, 14709 Mop(Not, 14710 bVar"b'7"), 14711 Bop(And, 14712 bVar"b'5", 14713 Bop(And, 14714 bVar"b'4", 14715 Bop(And, 14716 Mop(Not, 14717 bVar"b'3"), 14718 Mop(Not, 14719 bVar"b'2"))))))))))))))))))))))))))))), 14720 Call 14721 ("System",CTy"instruction", 14722 Const("ECALL",CTy"System"))), 14723 (Bop(And,Mop(Not,bVar"b'31"), 14724 Bop(And,Mop(Not,bVar"b'30"), 14725 Bop(And,Mop(Not,bVar"b'29"), 14726 Bop(And,Mop(Not,bVar"b'28"), 14727 Bop(And,Mop(Not,bVar"b'27"), 14728 Bop(And,Mop(Not,bVar"b'26"), 14729 Bop(And, 14730 Mop(Not,bVar"b'25"), 14731 Bop(And, 14732 Mop(Not,bVar"b'24"), 14733 Bop(And, 14734 Mop(Not, 14735 bVar"b'23"), 14736 Bop(And, 14737 Mop(Not, 14738 bVar"b'22"), 14739 Bop(And, 14740 Mop(Not, 14741 bVar"b'21"), 14742 Bop(And, 14743 bVar"b'20", 14744 Bop(And, 14745 Mop(Not, 14746 bVar"b'19"), 14747 Bop(And, 14748 Mop(Not, 14749 bVar"b'18"), 14750 Bop(And, 14751 Mop(Not, 14752 bVar"b'17"), 14753 Bop(And, 14754 Mop(Not, 14755 bVar"b'16"), 14756 Bop(And, 14757 Mop(Not, 14758 bVar"b'15"), 14759 Bop(And, 14760 Mop(Not, 14761 bVar"b'14"), 14762 Bop(And, 14763 Mop(Not, 14764 bVar"b'13"), 14765 Bop(And, 14766 Mop(Not, 14767 bVar"b'12"), 14768 Bop(And, 14769 Mop(Not, 14770 bVar"b'11"), 14771 Bop(And, 14772 Mop(Not, 14773 bVar"b'10"), 14774 Bop(And, 14775 Mop(Not, 14776 bVar"b'9"), 14777 Bop(And, 14778 Mop(Not, 14779 bVar"b'8"), 14780 Bop(And, 14781 Mop(Not, 14782 bVar"b'7"), 14783 Bop(And, 14784 bVar"b'5", 14785 Bop(And, 14786 bVar"b'4", 14787 Bop(And, 14788 Mop(Not, 14789 bVar"b'3"), 14790 Mop(Not, 14791 bVar"b'2"))))))))))))))))))))))))))))), 14792 Call 14793 ("System",CTy"instruction", 14794 Const("EBREAK",CTy"System"))), 14795 (Bop(And,Mop(Not,bVar"b'31"), 14796 Bop(And,Mop(Not,bVar"b'30"), 14797 Bop(And,Mop(Not,bVar"b'29"), 14798 Bop(And,bVar"b'28", 14799 Bop(And,Mop(Not,bVar"b'27"), 14800 Bop(And,Mop(Not,bVar"b'26"), 14801 Bop(And, 14802 Mop(Not,bVar"b'25"), 14803 Bop(And, 14804 Mop(Not,bVar"b'24"), 14805 Bop(And, 14806 Mop(Not, 14807 bVar"b'23"), 14808 Bop(And, 14809 Mop(Not, 14810 bVar"b'22"), 14811 Bop(And, 14812 Mop(Not, 14813 bVar"b'21"), 14814 Bop(And, 14815 Mop(Not, 14816 bVar"b'20"), 14817 Bop(And, 14818 Mop(Not, 14819 bVar"b'19"), 14820 Bop(And, 14821 Mop(Not, 14822 bVar"b'18"), 14823 Bop(And, 14824 Mop(Not, 14825 bVar"b'17"), 14826 Bop(And, 14827 Mop(Not, 14828 bVar"b'16"), 14829 Bop(And, 14830 Mop(Not, 14831 bVar"b'15"), 14832 Bop(And, 14833 Mop(Not, 14834 bVar"b'14"), 14835 Bop(And, 14836 Mop(Not, 14837 bVar"b'13"), 14838 Bop(And, 14839 Mop(Not, 14840 bVar"b'12"), 14841 Bop(And, 14842 Mop(Not, 14843 bVar"b'11"), 14844 Bop(And, 14845 Mop(Not, 14846 bVar"b'10"), 14847 Bop(And, 14848 Mop(Not, 14849 bVar"b'9"), 14850 Bop(And, 14851 Mop(Not, 14852 bVar"b'8"), 14853 Bop(And, 14854 Mop(Not, 14855 bVar"b'7"), 14856 Bop(And, 14857 bVar"b'5", 14858 Bop(And, 14859 bVar"b'4", 14860 Bop(And, 14861 Mop(Not, 14862 bVar"b'3"), 14863 Mop(Not, 14864 bVar"b'2"))))))))))))))))))))))))))))), 14865 Call 14866 ("System",CTy"instruction", 14867 Const("ERET",CTy"System"))), 14868 (Bop(And,Mop(Not,bVar"b'31"), 14869 Bop(And,Mop(Not,bVar"b'30"), 14870 Bop(And,bVar"b'29", 14871 Bop(And,bVar"b'28", 14872 Bop(And,Mop(Not,bVar"b'27"), 14873 Bop(And,Mop(Not,bVar"b'26"), 14874 Bop(And, 14875 Mop(Not,bVar"b'25"), 14876 Bop(And, 14877 Mop(Not,bVar"b'24"), 14878 Bop(And, 14879 Mop(Not, 14880 bVar"b'23"), 14881 Bop(And, 14882 bVar"b'22", 14883 Bop(And, 14884 Mop(Not, 14885 bVar"b'21"), 14886 Bop(And, 14887 bVar"b'20", 14888 Bop(And, 14889 Mop(Not, 14890 bVar"b'19"), 14891 Bop(And, 14892 Mop(Not, 14893 bVar"b'18"), 14894 Bop(And, 14895 Mop(Not, 14896 bVar"b'17"), 14897 Bop(And, 14898 Mop(Not, 14899 bVar"b'16"), 14900 Bop(And, 14901 Mop(Not, 14902 bVar"b'15"), 14903 Bop(And, 14904 Mop(Not, 14905 bVar"b'14"), 14906 Bop(And, 14907 Mop(Not, 14908 bVar"b'13"), 14909 Bop(And, 14910 Mop(Not, 14911 bVar"b'12"), 14912 Bop(And, 14913 Mop(Not, 14914 bVar"b'11"), 14915 Bop(And, 14916 Mop(Not, 14917 bVar"b'10"), 14918 Bop(And, 14919 Mop(Not, 14920 bVar"b'9"), 14921 Bop(And, 14922 Mop(Not, 14923 bVar"b'8"), 14924 Bop(And, 14925 Mop(Not, 14926 bVar"b'7"), 14927 Bop(And, 14928 bVar"b'5", 14929 Bop(And, 14930 bVar"b'4", 14931 Bop(And, 14932 Mop(Not, 14933 bVar"b'3"), 14934 Mop(Not, 14935 bVar"b'2"))))))))))))))))))))))))))))), 14936 Call 14937 ("System",CTy"instruction", 14938 Const("MRTS",CTy"System"))), 14939 (Bop(And,Mop(Not,bVar"b'31"), 14940 Bop(And,Mop(Not,bVar"b'30"), 14941 Bop(And,Mop(Not,bVar"b'29"), 14942 Bop(And,bVar"b'28", 14943 Bop(And,Mop(Not,bVar"b'27"), 14944 Bop(And,Mop(Not,bVar"b'26"), 14945 Bop(And, 14946 Mop(Not,bVar"b'25"), 14947 Bop(And, 14948 Mop(Not,bVar"b'24"), 14949 Bop(And, 14950 Mop(Not, 14951 bVar"b'23"), 14952 Bop(And, 14953 Mop(Not, 14954 bVar"b'22"), 14955 Bop(And, 14956 bVar"b'21", 14957 Bop(And, 14958 Mop(Not, 14959 bVar"b'20"), 14960 Bop(And, 14961 Mop(Not, 14962 bVar"b'19"), 14963 Bop(And, 14964 Mop(Not, 14965 bVar"b'18"), 14966 Bop(And, 14967 Mop(Not, 14968 bVar"b'17"), 14969 Bop(And, 14970 Mop(Not, 14971 bVar"b'16"), 14972 Bop(And, 14973 Mop(Not, 14974 bVar"b'15"), 14975 Bop(And, 14976 Mop(Not, 14977 bVar"b'14"), 14978 Bop(And, 14979 Mop(Not, 14980 bVar"b'13"), 14981 Bop(And, 14982 Mop(Not, 14983 bVar"b'12"), 14984 Bop(And, 14985 Mop(Not, 14986 bVar"b'11"), 14987 Bop(And, 14988 Mop(Not, 14989 bVar"b'10"), 14990 Bop(And, 14991 Mop(Not, 14992 bVar"b'9"), 14993 Bop(And, 14994 Mop(Not, 14995 bVar"b'8"), 14996 Bop(And, 14997 Mop(Not, 14998 bVar"b'7"), 14999 Bop(And, 15000 bVar"b'5", 15001 Bop(And, 15002 bVar"b'4", 15003 Bop(And, 15004 Mop(Not, 15005 bVar"b'3"), 15006 Mop(Not, 15007 bVar"b'2"))))))))))))))))))))))))))))), 15008 Call 15009 ("System",CTy"instruction", 15010 Const("WFI",CTy"System"))), 15011 (Bop(And,Mop(Not,bVar"b'31"), 15012 Bop(And,Mop(Not,bVar"b'30"), 15013 Bop(And,Mop(Not,bVar"b'29"), 15014 Bop(And,bVar"b'28", 15015 Bop(And,Mop(Not,bVar"b'27"), 15016 Bop(And,Mop(Not,bVar"b'26"), 15017 Bop(And, 15018 Mop(Not,bVar"b'25"), 15019 Bop(And, 15020 Mop(Not,bVar"b'24"), 15021 Bop(And, 15022 Mop(Not, 15023 bVar"b'23"), 15024 Bop(And, 15025 Mop(Not, 15026 bVar"b'22"), 15027 Bop(And, 15028 Mop(Not, 15029 bVar"b'21"), 15030 Bop(And, 15031 bVar"b'20", 15032 Bop(And, 15033 Mop(Not, 15034 bVar"b'14"), 15035 Bop(And, 15036 Mop(Not, 15037 bVar"b'13"), 15038 Bop(And, 15039 Mop(Not, 15040 bVar"b'12"), 15041 Bop(And, 15042 Mop(Not, 15043 bVar"b'11"), 15044 Bop(And, 15045 Mop(Not, 15046 bVar"b'10"), 15047 Bop(And, 15048 Mop(Not, 15049 bVar"b'9"), 15050 Bop(And, 15051 Mop(Not, 15052 bVar"b'8"), 15053 Bop(And, 15054 Mop(Not, 15055 bVar"b'7"), 15056 Bop(And, 15057 bVar"b'5", 15058 Bop(And, 15059 bVar"b'4", 15060 Bop(And, 15061 Mop(Not, 15062 bVar"b'3"), 15063 Mop(Not, 15064 bVar"b'2")))))))))))))))))))))))), 15065 Call 15066 ("System",CTy"instruction", 15067 Call 15068 ("SFENCE_VM",CTy"System", 15069 Mop(Cast(FTy 5), 15070 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15071 bVar"b'16",bVar"b'15"]))))], 15072 Const("UnknownInstruction",CTy"instruction")), 15073 Const("UnknownInstruction",CTy"instruction"))), 15074 (Bop(And,bVar"b'1",bVar"b'0"), 15075 ITB([(Bop(And,bVar"b'5", 15076 Bop(And,bVar"b'4", 15077 Bop(And,Mop(Not,bVar"b'3"),bVar"b'2"))), 15078 Call 15079 ("ArithI",CTy"instruction", 15080 Call 15081 ("LUI",CTy"ArithI", 15082 TP[Mop(Cast(FTy 5), 15083 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15084 bVar"b'8",bVar"b'7"]), 15085 Mop(Cast(FTy 20), 15086 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15087 bVar"b'28",bVar"b'27",bVar"b'26", 15088 bVar"b'25",bVar"b'24",bVar"b'23", 15089 bVar"b'22",bVar"b'21",bVar"b'20", 15090 bVar"b'19",bVar"b'18",bVar"b'17", 15091 bVar"b'16",bVar"b'15",bVar"b'14", 15092 bVar"b'13",bVar"b'12"])]))), 15093 (Bop(And,Mop(Not,bVar"b'5"), 15094 Bop(And,bVar"b'4", 15095 Bop(And,Mop(Not,bVar"b'3"),bVar"b'2"))), 15096 Call 15097 ("ArithI",CTy"instruction", 15098 Call 15099 ("AUIPC",CTy"ArithI", 15100 TP[Mop(Cast(FTy 5), 15101 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15102 bVar"b'8",bVar"b'7"]), 15103 Mop(Cast(FTy 20), 15104 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15105 bVar"b'28",bVar"b'27",bVar"b'26", 15106 bVar"b'25",bVar"b'24",bVar"b'23", 15107 bVar"b'22",bVar"b'21",bVar"b'20", 15108 bVar"b'19",bVar"b'18",bVar"b'17", 15109 bVar"b'16",bVar"b'15",bVar"b'14", 15110 bVar"b'13",bVar"b'12"])]))), 15111 (Bop(And,Mop(Not,bVar"b'14"), 15112 Bop(And,Mop(Not,bVar"b'13"), 15113 Bop(And,Mop(Not,bVar"b'12"), 15114 Bop(And,Mop(Not,bVar"b'5"), 15115 Bop(And,bVar"b'4", 15116 Bop(And,Mop(Not,bVar"b'3"), 15117 Mop(Not,bVar"b'2"))))))), 15118 Call 15119 ("ArithI",CTy"instruction", 15120 Call 15121 ("ADDI",CTy"ArithI", 15122 TP[Mop(Cast(FTy 5), 15123 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15124 bVar"b'8",bVar"b'7"]), 15125 Mop(Cast(FTy 5), 15126 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15127 bVar"b'16",bVar"b'15"]), 15128 Mop(Cast(FTy 12), 15129 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15130 bVar"b'28",bVar"b'27",bVar"b'26", 15131 bVar"b'25",bVar"b'24",bVar"b'23", 15132 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15133 (Bop(And,Mop(Not,bVar"b'31"), 15134 Bop(And,Mop(Not,bVar"b'30"), 15135 Bop(And,Mop(Not,bVar"b'29"), 15136 Bop(And,Mop(Not,bVar"b'28"), 15137 Bop(And,Mop(Not,bVar"b'27"), 15138 Bop(And,Mop(Not,bVar"b'26"), 15139 Bop(And,Mop(Not,bVar"b'14"), 15140 Bop(And, 15141 Mop(Not,bVar"b'13"), 15142 Bop(And,bVar"b'12", 15143 Bop(And, 15144 Mop(Not, 15145 bVar"b'5"), 15146 Bop(And, 15147 bVar"b'4", 15148 Bop(And, 15149 Mop(Not, 15150 bVar"b'3"), 15151 Mop(Not, 15152 bVar"b'2"))))))))))))), 15153 Call 15154 ("Shift",CTy"instruction", 15155 Call 15156 ("SLLI",CTy"Shift", 15157 TP[Mop(Cast(FTy 5), 15158 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15159 bVar"b'8",bVar"b'7"]), 15160 Mop(Cast(FTy 5), 15161 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15162 bVar"b'16",bVar"b'15"]), 15163 Mop(Cast(FTy 6), 15164 LL[bVar"b'25",bVar"b'24",bVar"b'23", 15165 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15166 (Bop(And,Mop(Not,bVar"b'14"), 15167 Bop(And,bVar"b'13", 15168 Bop(And,Mop(Not,bVar"b'12"), 15169 Bop(And,Mop(Not,bVar"b'5"), 15170 Bop(And,bVar"b'4", 15171 Bop(And,Mop(Not,bVar"b'3"), 15172 Mop(Not,bVar"b'2"))))))), 15173 Call 15174 ("ArithI",CTy"instruction", 15175 Call 15176 ("SLTI",CTy"ArithI", 15177 TP[Mop(Cast(FTy 5), 15178 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15179 bVar"b'8",bVar"b'7"]), 15180 Mop(Cast(FTy 5), 15181 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15182 bVar"b'16",bVar"b'15"]), 15183 Mop(Cast(FTy 12), 15184 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15185 bVar"b'28",bVar"b'27",bVar"b'26", 15186 bVar"b'25",bVar"b'24",bVar"b'23", 15187 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15188 (Bop(And,Mop(Not,bVar"b'14"), 15189 Bop(And,bVar"b'13", 15190 Bop(And,bVar"b'12", 15191 Bop(And,Mop(Not,bVar"b'5"), 15192 Bop(And,bVar"b'4", 15193 Bop(And,Mop(Not,bVar"b'3"), 15194 Mop(Not,bVar"b'2"))))))), 15195 Call 15196 ("ArithI",CTy"instruction", 15197 Call 15198 ("SLTIU",CTy"ArithI", 15199 TP[Mop(Cast(FTy 5), 15200 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15201 bVar"b'8",bVar"b'7"]), 15202 Mop(Cast(FTy 5), 15203 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15204 bVar"b'16",bVar"b'15"]), 15205 Mop(Cast(FTy 12), 15206 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15207 bVar"b'28",bVar"b'27",bVar"b'26", 15208 bVar"b'25",bVar"b'24",bVar"b'23", 15209 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15210 (Bop(And,bVar"b'14", 15211 Bop(And,Mop(Not,bVar"b'13"), 15212 Bop(And,Mop(Not,bVar"b'12"), 15213 Bop(And,Mop(Not,bVar"b'5"), 15214 Bop(And,bVar"b'4", 15215 Bop(And,Mop(Not,bVar"b'3"), 15216 Mop(Not,bVar"b'2"))))))), 15217 Call 15218 ("ArithI",CTy"instruction", 15219 Call 15220 ("XORI",CTy"ArithI", 15221 TP[Mop(Cast(FTy 5), 15222 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15223 bVar"b'8",bVar"b'7"]), 15224 Mop(Cast(FTy 5), 15225 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15226 bVar"b'16",bVar"b'15"]), 15227 Mop(Cast(FTy 12), 15228 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15229 bVar"b'28",bVar"b'27",bVar"b'26", 15230 bVar"b'25",bVar"b'24",bVar"b'23", 15231 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15232 (Bop(And,Mop(Not,bVar"b'31"), 15233 Bop(And,Mop(Not,bVar"b'30"), 15234 Bop(And,Mop(Not,bVar"b'29"), 15235 Bop(And,Mop(Not,bVar"b'28"), 15236 Bop(And,Mop(Not,bVar"b'27"), 15237 Bop(And,Mop(Not,bVar"b'26"), 15238 Bop(And,bVar"b'14", 15239 Bop(And, 15240 Mop(Not,bVar"b'13"), 15241 Bop(And,bVar"b'12", 15242 Bop(And, 15243 Mop(Not, 15244 bVar"b'5"), 15245 Bop(And, 15246 bVar"b'4", 15247 Bop(And, 15248 Mop(Not, 15249 bVar"b'3"), 15250 Mop(Not, 15251 bVar"b'2"))))))))))))), 15252 Call 15253 ("Shift",CTy"instruction", 15254 Call 15255 ("SRLI",CTy"Shift", 15256 TP[Mop(Cast(FTy 5), 15257 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15258 bVar"b'8",bVar"b'7"]), 15259 Mop(Cast(FTy 5), 15260 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15261 bVar"b'16",bVar"b'15"]), 15262 Mop(Cast(FTy 6), 15263 LL[bVar"b'25",bVar"b'24",bVar"b'23", 15264 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15265 (Bop(And,Mop(Not,bVar"b'31"), 15266 Bop(And,bVar"b'30", 15267 Bop(And,Mop(Not,bVar"b'29"), 15268 Bop(And,Mop(Not,bVar"b'28"), 15269 Bop(And,Mop(Not,bVar"b'27"), 15270 Bop(And,Mop(Not,bVar"b'26"), 15271 Bop(And,bVar"b'14", 15272 Bop(And, 15273 Mop(Not,bVar"b'13"), 15274 Bop(And,bVar"b'12", 15275 Bop(And, 15276 Mop(Not, 15277 bVar"b'5"), 15278 Bop(And, 15279 bVar"b'4", 15280 Bop(And, 15281 Mop(Not, 15282 bVar"b'3"), 15283 Mop(Not, 15284 bVar"b'2"))))))))))))), 15285 Call 15286 ("Shift",CTy"instruction", 15287 Call 15288 ("SRAI",CTy"Shift", 15289 TP[Mop(Cast(FTy 5), 15290 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15291 bVar"b'8",bVar"b'7"]), 15292 Mop(Cast(FTy 5), 15293 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15294 bVar"b'16",bVar"b'15"]), 15295 Mop(Cast(FTy 6), 15296 LL[bVar"b'25",bVar"b'24",bVar"b'23", 15297 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15298 (Bop(And,bVar"b'14", 15299 Bop(And,bVar"b'13", 15300 Bop(And,Mop(Not,bVar"b'12"), 15301 Bop(And,Mop(Not,bVar"b'5"), 15302 Bop(And,bVar"b'4", 15303 Bop(And,Mop(Not,bVar"b'3"), 15304 Mop(Not,bVar"b'2"))))))), 15305 Call 15306 ("ArithI",CTy"instruction", 15307 Call 15308 ("ORI",CTy"ArithI", 15309 TP[Mop(Cast(FTy 5), 15310 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15311 bVar"b'8",bVar"b'7"]), 15312 Mop(Cast(FTy 5), 15313 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15314 bVar"b'16",bVar"b'15"]), 15315 Mop(Cast(FTy 12), 15316 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15317 bVar"b'28",bVar"b'27",bVar"b'26", 15318 bVar"b'25",bVar"b'24",bVar"b'23", 15319 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15320 (Bop(And,bVar"b'14", 15321 Bop(And,bVar"b'13", 15322 Bop(And,bVar"b'12", 15323 Bop(And,Mop(Not,bVar"b'5"), 15324 Bop(And,bVar"b'4", 15325 Bop(And,Mop(Not,bVar"b'3"), 15326 Mop(Not,bVar"b'2"))))))), 15327 Call 15328 ("ArithI",CTy"instruction", 15329 Call 15330 ("ANDI",CTy"ArithI", 15331 TP[Mop(Cast(FTy 5), 15332 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15333 bVar"b'8",bVar"b'7"]), 15334 Mop(Cast(FTy 5), 15335 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15336 bVar"b'16",bVar"b'15"]), 15337 Mop(Cast(FTy 12), 15338 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15339 bVar"b'28",bVar"b'27",bVar"b'26", 15340 bVar"b'25",bVar"b'24",bVar"b'23", 15341 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15342 (Bop(And,Mop(Not,bVar"b'31"), 15343 Bop(And,Mop(Not,bVar"b'30"), 15344 Bop(And,Mop(Not,bVar"b'29"), 15345 Bop(And,Mop(Not,bVar"b'28"), 15346 Bop(And,Mop(Not,bVar"b'27"), 15347 Bop(And,Mop(Not,bVar"b'26"), 15348 Bop(And,Mop(Not,bVar"b'25"), 15349 Bop(And, 15350 Mop(Not,bVar"b'14"), 15351 Bop(And, 15352 Mop(Not,bVar"b'13"), 15353 Bop(And, 15354 Mop(Not, 15355 bVar"b'12"), 15356 Bop(And, 15357 bVar"b'5", 15358 Bop(And, 15359 bVar"b'4", 15360 Bop(And, 15361 Mop(Not, 15362 bVar"b'3"), 15363 Mop(Not, 15364 bVar"b'2")))))))))))))), 15365 Call 15366 ("ArithR",CTy"instruction", 15367 Call 15368 ("ADD",CTy"ArithR", 15369 TP[Mop(Cast(FTy 5), 15370 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15371 bVar"b'8",bVar"b'7"]), 15372 Mop(Cast(FTy 5), 15373 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15374 bVar"b'16",bVar"b'15"]), 15375 Mop(Cast(FTy 5), 15376 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15377 bVar"b'21",bVar"b'20"])]))), 15378 (Bop(And,Mop(Not,bVar"b'31"), 15379 Bop(And,bVar"b'30", 15380 Bop(And,Mop(Not,bVar"b'29"), 15381 Bop(And,Mop(Not,bVar"b'28"), 15382 Bop(And,Mop(Not,bVar"b'27"), 15383 Bop(And,Mop(Not,bVar"b'26"), 15384 Bop(And,Mop(Not,bVar"b'25"), 15385 Bop(And, 15386 Mop(Not,bVar"b'14"), 15387 Bop(And, 15388 Mop(Not,bVar"b'13"), 15389 Bop(And, 15390 Mop(Not, 15391 bVar"b'12"), 15392 Bop(And, 15393 bVar"b'5", 15394 Bop(And, 15395 bVar"b'4", 15396 Bop(And, 15397 Mop(Not, 15398 bVar"b'3"), 15399 Mop(Not, 15400 bVar"b'2")))))))))))))), 15401 Call 15402 ("ArithR",CTy"instruction", 15403 Call 15404 ("SUB",CTy"ArithR", 15405 TP[Mop(Cast(FTy 5), 15406 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15407 bVar"b'8",bVar"b'7"]), 15408 Mop(Cast(FTy 5), 15409 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15410 bVar"b'16",bVar"b'15"]), 15411 Mop(Cast(FTy 5), 15412 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15413 bVar"b'21",bVar"b'20"])]))), 15414 (Bop(And,Mop(Not,bVar"b'31"), 15415 Bop(And,Mop(Not,bVar"b'30"), 15416 Bop(And,Mop(Not,bVar"b'29"), 15417 Bop(And,Mop(Not,bVar"b'28"), 15418 Bop(And,Mop(Not,bVar"b'27"), 15419 Bop(And,Mop(Not,bVar"b'26"), 15420 Bop(And,Mop(Not,bVar"b'25"), 15421 Bop(And, 15422 Mop(Not,bVar"b'14"), 15423 Bop(And, 15424 Mop(Not,bVar"b'13"), 15425 Bop(And,bVar"b'12", 15426 Bop(And, 15427 bVar"b'5", 15428 Bop(And, 15429 bVar"b'4", 15430 Bop(And, 15431 Mop(Not, 15432 bVar"b'3"), 15433 Mop(Not, 15434 bVar"b'2")))))))))))))), 15435 Call 15436 ("Shift",CTy"instruction", 15437 Call 15438 ("SLL",CTy"Shift", 15439 TP[Mop(Cast(FTy 5), 15440 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15441 bVar"b'8",bVar"b'7"]), 15442 Mop(Cast(FTy 5), 15443 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15444 bVar"b'16",bVar"b'15"]), 15445 Mop(Cast(FTy 5), 15446 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15447 bVar"b'21",bVar"b'20"])]))), 15448 (Bop(And,Mop(Not,bVar"b'31"), 15449 Bop(And,Mop(Not,bVar"b'30"), 15450 Bop(And,Mop(Not,bVar"b'29"), 15451 Bop(And,Mop(Not,bVar"b'28"), 15452 Bop(And,Mop(Not,bVar"b'27"), 15453 Bop(And,Mop(Not,bVar"b'26"), 15454 Bop(And,Mop(Not,bVar"b'25"), 15455 Bop(And, 15456 Mop(Not,bVar"b'14"), 15457 Bop(And,bVar"b'13", 15458 Bop(And, 15459 Mop(Not, 15460 bVar"b'12"), 15461 Bop(And, 15462 bVar"b'5", 15463 Bop(And, 15464 bVar"b'4", 15465 Bop(And, 15466 Mop(Not, 15467 bVar"b'3"), 15468 Mop(Not, 15469 bVar"b'2")))))))))))))), 15470 Call 15471 ("ArithR",CTy"instruction", 15472 Call 15473 ("SLT",CTy"ArithR", 15474 TP[Mop(Cast(FTy 5), 15475 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15476 bVar"b'8",bVar"b'7"]), 15477 Mop(Cast(FTy 5), 15478 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15479 bVar"b'16",bVar"b'15"]), 15480 Mop(Cast(FTy 5), 15481 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15482 bVar"b'21",bVar"b'20"])]))), 15483 (Bop(And,Mop(Not,bVar"b'31"), 15484 Bop(And,Mop(Not,bVar"b'30"), 15485 Bop(And,Mop(Not,bVar"b'29"), 15486 Bop(And,Mop(Not,bVar"b'28"), 15487 Bop(And,Mop(Not,bVar"b'27"), 15488 Bop(And,Mop(Not,bVar"b'26"), 15489 Bop(And,Mop(Not,bVar"b'25"), 15490 Bop(And, 15491 Mop(Not,bVar"b'14"), 15492 Bop(And,bVar"b'13", 15493 Bop(And,bVar"b'12", 15494 Bop(And, 15495 bVar"b'5", 15496 Bop(And, 15497 bVar"b'4", 15498 Bop(And, 15499 Mop(Not, 15500 bVar"b'3"), 15501 Mop(Not, 15502 bVar"b'2")))))))))))))), 15503 Call 15504 ("ArithR",CTy"instruction", 15505 Call 15506 ("SLTU",CTy"ArithR", 15507 TP[Mop(Cast(FTy 5), 15508 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15509 bVar"b'8",bVar"b'7"]), 15510 Mop(Cast(FTy 5), 15511 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15512 bVar"b'16",bVar"b'15"]), 15513 Mop(Cast(FTy 5), 15514 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15515 bVar"b'21",bVar"b'20"])]))), 15516 (Bop(And,Mop(Not,bVar"b'31"), 15517 Bop(And,Mop(Not,bVar"b'30"), 15518 Bop(And,Mop(Not,bVar"b'29"), 15519 Bop(And,Mop(Not,bVar"b'28"), 15520 Bop(And,Mop(Not,bVar"b'27"), 15521 Bop(And,Mop(Not,bVar"b'26"), 15522 Bop(And,Mop(Not,bVar"b'25"), 15523 Bop(And,bVar"b'14", 15524 Bop(And, 15525 Mop(Not,bVar"b'13"), 15526 Bop(And, 15527 Mop(Not, 15528 bVar"b'12"), 15529 Bop(And, 15530 bVar"b'5", 15531 Bop(And, 15532 bVar"b'4", 15533 Bop(And, 15534 Mop(Not, 15535 bVar"b'3"), 15536 Mop(Not, 15537 bVar"b'2")))))))))))))), 15538 Call 15539 ("ArithR",CTy"instruction", 15540 Call 15541 ("XOR",CTy"ArithR", 15542 TP[Mop(Cast(FTy 5), 15543 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15544 bVar"b'8",bVar"b'7"]), 15545 Mop(Cast(FTy 5), 15546 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15547 bVar"b'16",bVar"b'15"]), 15548 Mop(Cast(FTy 5), 15549 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15550 bVar"b'21",bVar"b'20"])]))), 15551 (Bop(And,Mop(Not,bVar"b'31"), 15552 Bop(And,Mop(Not,bVar"b'30"), 15553 Bop(And,Mop(Not,bVar"b'29"), 15554 Bop(And,Mop(Not,bVar"b'28"), 15555 Bop(And,Mop(Not,bVar"b'27"), 15556 Bop(And,Mop(Not,bVar"b'26"), 15557 Bop(And,Mop(Not,bVar"b'25"), 15558 Bop(And,bVar"b'14", 15559 Bop(And, 15560 Mop(Not,bVar"b'13"), 15561 Bop(And,bVar"b'12", 15562 Bop(And, 15563 bVar"b'5", 15564 Bop(And, 15565 bVar"b'4", 15566 Bop(And, 15567 Mop(Not, 15568 bVar"b'3"), 15569 Mop(Not, 15570 bVar"b'2")))))))))))))), 15571 Call 15572 ("Shift",CTy"instruction", 15573 Call 15574 ("SRL",CTy"Shift", 15575 TP[Mop(Cast(FTy 5), 15576 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15577 bVar"b'8",bVar"b'7"]), 15578 Mop(Cast(FTy 5), 15579 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15580 bVar"b'16",bVar"b'15"]), 15581 Mop(Cast(FTy 5), 15582 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15583 bVar"b'21",bVar"b'20"])]))), 15584 (Bop(And,Mop(Not,bVar"b'31"), 15585 Bop(And,bVar"b'30", 15586 Bop(And,Mop(Not,bVar"b'29"), 15587 Bop(And,Mop(Not,bVar"b'28"), 15588 Bop(And,Mop(Not,bVar"b'27"), 15589 Bop(And,Mop(Not,bVar"b'26"), 15590 Bop(And,Mop(Not,bVar"b'25"), 15591 Bop(And,bVar"b'14", 15592 Bop(And, 15593 Mop(Not,bVar"b'13"), 15594 Bop(And,bVar"b'12", 15595 Bop(And, 15596 bVar"b'5", 15597 Bop(And, 15598 bVar"b'4", 15599 Bop(And, 15600 Mop(Not, 15601 bVar"b'3"), 15602 Mop(Not, 15603 bVar"b'2")))))))))))))), 15604 Call 15605 ("Shift",CTy"instruction", 15606 Call 15607 ("SRA",CTy"Shift", 15608 TP[Mop(Cast(FTy 5), 15609 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15610 bVar"b'8",bVar"b'7"]), 15611 Mop(Cast(FTy 5), 15612 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15613 bVar"b'16",bVar"b'15"]), 15614 Mop(Cast(FTy 5), 15615 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15616 bVar"b'21",bVar"b'20"])]))), 15617 (Bop(And,Mop(Not,bVar"b'31"), 15618 Bop(And,Mop(Not,bVar"b'30"), 15619 Bop(And,Mop(Not,bVar"b'29"), 15620 Bop(And,Mop(Not,bVar"b'28"), 15621 Bop(And,Mop(Not,bVar"b'27"), 15622 Bop(And,Mop(Not,bVar"b'26"), 15623 Bop(And,Mop(Not,bVar"b'25"), 15624 Bop(And,bVar"b'14", 15625 Bop(And,bVar"b'13", 15626 Bop(And, 15627 Mop(Not, 15628 bVar"b'12"), 15629 Bop(And, 15630 bVar"b'5", 15631 Bop(And, 15632 bVar"b'4", 15633 Bop(And, 15634 Mop(Not, 15635 bVar"b'3"), 15636 Mop(Not, 15637 bVar"b'2")))))))))))))), 15638 Call 15639 ("ArithR",CTy"instruction", 15640 Call 15641 ("OR",CTy"ArithR", 15642 TP[Mop(Cast(FTy 5), 15643 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15644 bVar"b'8",bVar"b'7"]), 15645 Mop(Cast(FTy 5), 15646 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15647 bVar"b'16",bVar"b'15"]), 15648 Mop(Cast(FTy 5), 15649 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15650 bVar"b'21",bVar"b'20"])]))), 15651 (Bop(And,Mop(Not,bVar"b'31"), 15652 Bop(And,Mop(Not,bVar"b'30"), 15653 Bop(And,Mop(Not,bVar"b'29"), 15654 Bop(And,Mop(Not,bVar"b'28"), 15655 Bop(And,Mop(Not,bVar"b'27"), 15656 Bop(And,Mop(Not,bVar"b'26"), 15657 Bop(And,Mop(Not,bVar"b'25"), 15658 Bop(And,bVar"b'14", 15659 Bop(And,bVar"b'13", 15660 Bop(And,bVar"b'12", 15661 Bop(And, 15662 bVar"b'5", 15663 Bop(And, 15664 bVar"b'4", 15665 Bop(And, 15666 Mop(Not, 15667 bVar"b'3"), 15668 Mop(Not, 15669 bVar"b'2")))))))))))))), 15670 Call 15671 ("ArithR",CTy"instruction", 15672 Call 15673 ("AND",CTy"ArithR", 15674 TP[Mop(Cast(FTy 5), 15675 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15676 bVar"b'8",bVar"b'7"]), 15677 Mop(Cast(FTy 5), 15678 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15679 bVar"b'16",bVar"b'15"]), 15680 Mop(Cast(FTy 5), 15681 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15682 bVar"b'21",bVar"b'20"])]))), 15683 (Bop(And,Mop(Not,bVar"b'14"), 15684 Bop(And,Mop(Not,bVar"b'13"), 15685 Bop(And,Mop(Not,bVar"b'12"), 15686 Bop(And,Mop(Not,bVar"b'5"), 15687 Bop(And,bVar"b'4", 15688 Bop(And,bVar"b'3", 15689 Mop(Not,bVar"b'2"))))))), 15690 Call 15691 ("ArithI",CTy"instruction", 15692 Call 15693 ("ADDIW",CTy"ArithI", 15694 TP[Mop(Cast(FTy 5), 15695 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15696 bVar"b'8",bVar"b'7"]), 15697 Mop(Cast(FTy 5), 15698 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15699 bVar"b'16",bVar"b'15"]), 15700 Mop(Cast(FTy 12), 15701 LL[bVar"b'31",bVar"b'30",bVar"b'29", 15702 bVar"b'28",bVar"b'27",bVar"b'26", 15703 bVar"b'25",bVar"b'24",bVar"b'23", 15704 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 15705 (Bop(And,Mop(Not,bVar"b'31"), 15706 Bop(And,Mop(Not,bVar"b'30"), 15707 Bop(And,Mop(Not,bVar"b'29"), 15708 Bop(And,Mop(Not,bVar"b'28"), 15709 Bop(And,Mop(Not,bVar"b'27"), 15710 Bop(And,Mop(Not,bVar"b'26"), 15711 Bop(And,Mop(Not,bVar"b'25"), 15712 Bop(And, 15713 Mop(Not,bVar"b'14"), 15714 Bop(And, 15715 Mop(Not,bVar"b'13"), 15716 Bop(And,bVar"b'12", 15717 Bop(And, 15718 Mop(Not, 15719 bVar"b'5"), 15720 Bop(And, 15721 bVar"b'4", 15722 Bop(And, 15723 bVar"b'3", 15724 Mop(Not, 15725 bVar"b'2")))))))))))))), 15726 Call 15727 ("Shift",CTy"instruction", 15728 Call 15729 ("SLLIW",CTy"Shift", 15730 TP[Mop(Cast(FTy 5), 15731 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15732 bVar"b'8",bVar"b'7"]), 15733 Mop(Cast(FTy 5), 15734 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15735 bVar"b'16",bVar"b'15"]), 15736 Mop(Cast(FTy 5), 15737 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15738 bVar"b'21",bVar"b'20"])]))), 15739 (Bop(And,Mop(Not,bVar"b'31"), 15740 Bop(And,Mop(Not,bVar"b'30"), 15741 Bop(And,Mop(Not,bVar"b'29"), 15742 Bop(And,Mop(Not,bVar"b'28"), 15743 Bop(And,Mop(Not,bVar"b'27"), 15744 Bop(And,Mop(Not,bVar"b'26"), 15745 Bop(And,Mop(Not,bVar"b'25"), 15746 Bop(And,bVar"b'14", 15747 Bop(And, 15748 Mop(Not,bVar"b'13"), 15749 Bop(And,bVar"b'12", 15750 Bop(And, 15751 Mop(Not, 15752 bVar"b'5"), 15753 Bop(And, 15754 bVar"b'4", 15755 Bop(And, 15756 bVar"b'3", 15757 Mop(Not, 15758 bVar"b'2")))))))))))))), 15759 Call 15760 ("Shift",CTy"instruction", 15761 Call 15762 ("SRLIW",CTy"Shift", 15763 TP[Mop(Cast(FTy 5), 15764 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15765 bVar"b'8",bVar"b'7"]), 15766 Mop(Cast(FTy 5), 15767 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15768 bVar"b'16",bVar"b'15"]), 15769 Mop(Cast(FTy 5), 15770 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15771 bVar"b'21",bVar"b'20"])]))), 15772 (Bop(And,Mop(Not,bVar"b'31"), 15773 Bop(And,bVar"b'30", 15774 Bop(And,Mop(Not,bVar"b'29"), 15775 Bop(And,Mop(Not,bVar"b'28"), 15776 Bop(And,Mop(Not,bVar"b'27"), 15777 Bop(And,Mop(Not,bVar"b'26"), 15778 Bop(And,Mop(Not,bVar"b'25"), 15779 Bop(And,bVar"b'14", 15780 Bop(And, 15781 Mop(Not,bVar"b'13"), 15782 Bop(And,bVar"b'12", 15783 Bop(And, 15784 Mop(Not, 15785 bVar"b'5"), 15786 Bop(And, 15787 bVar"b'4", 15788 Bop(And, 15789 bVar"b'3", 15790 Mop(Not, 15791 bVar"b'2")))))))))))))), 15792 Call 15793 ("Shift",CTy"instruction", 15794 Call 15795 ("SRAIW",CTy"Shift", 15796 TP[Mop(Cast(FTy 5), 15797 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15798 bVar"b'8",bVar"b'7"]), 15799 Mop(Cast(FTy 5), 15800 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15801 bVar"b'16",bVar"b'15"]), 15802 Mop(Cast(FTy 5), 15803 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15804 bVar"b'21",bVar"b'20"])]))), 15805 (Bop(And,Mop(Not,bVar"b'31"), 15806 Bop(And,Mop(Not,bVar"b'30"), 15807 Bop(And,Mop(Not,bVar"b'29"), 15808 Bop(And,Mop(Not,bVar"b'28"), 15809 Bop(And,Mop(Not,bVar"b'27"), 15810 Bop(And,Mop(Not,bVar"b'26"), 15811 Bop(And,Mop(Not,bVar"b'25"), 15812 Bop(And, 15813 Mop(Not,bVar"b'14"), 15814 Bop(And, 15815 Mop(Not,bVar"b'13"), 15816 Bop(And, 15817 Mop(Not, 15818 bVar"b'12"), 15819 Bop(And, 15820 bVar"b'5", 15821 Bop(And, 15822 bVar"b'4", 15823 Bop(And, 15824 bVar"b'3", 15825 Mop(Not, 15826 bVar"b'2")))))))))))))), 15827 Call 15828 ("ArithR",CTy"instruction", 15829 Call 15830 ("ADDW",CTy"ArithR", 15831 TP[Mop(Cast(FTy 5), 15832 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15833 bVar"b'8",bVar"b'7"]), 15834 Mop(Cast(FTy 5), 15835 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15836 bVar"b'16",bVar"b'15"]), 15837 Mop(Cast(FTy 5), 15838 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15839 bVar"b'21",bVar"b'20"])]))), 15840 (Bop(And,Mop(Not,bVar"b'31"), 15841 Bop(And,bVar"b'30", 15842 Bop(And,Mop(Not,bVar"b'29"), 15843 Bop(And,Mop(Not,bVar"b'28"), 15844 Bop(And,Mop(Not,bVar"b'27"), 15845 Bop(And,Mop(Not,bVar"b'26"), 15846 Bop(And,Mop(Not,bVar"b'25"), 15847 Bop(And, 15848 Mop(Not,bVar"b'14"), 15849 Bop(And, 15850 Mop(Not,bVar"b'13"), 15851 Bop(And, 15852 Mop(Not, 15853 bVar"b'12"), 15854 Bop(And, 15855 bVar"b'5", 15856 Bop(And, 15857 bVar"b'4", 15858 Bop(And, 15859 bVar"b'3", 15860 Mop(Not, 15861 bVar"b'2")))))))))))))), 15862 Call 15863 ("ArithR",CTy"instruction", 15864 Call 15865 ("SUBW",CTy"ArithR", 15866 TP[Mop(Cast(FTy 5), 15867 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15868 bVar"b'8",bVar"b'7"]), 15869 Mop(Cast(FTy 5), 15870 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15871 bVar"b'16",bVar"b'15"]), 15872 Mop(Cast(FTy 5), 15873 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15874 bVar"b'21",bVar"b'20"])]))), 15875 (Bop(And,Mop(Not,bVar"b'31"), 15876 Bop(And,Mop(Not,bVar"b'30"), 15877 Bop(And,Mop(Not,bVar"b'29"), 15878 Bop(And,Mop(Not,bVar"b'28"), 15879 Bop(And,Mop(Not,bVar"b'27"), 15880 Bop(And,Mop(Not,bVar"b'26"), 15881 Bop(And,Mop(Not,bVar"b'25"), 15882 Bop(And, 15883 Mop(Not,bVar"b'14"), 15884 Bop(And, 15885 Mop(Not,bVar"b'13"), 15886 Bop(And,bVar"b'12", 15887 Bop(And, 15888 bVar"b'5", 15889 Bop(And, 15890 bVar"b'4", 15891 Bop(And, 15892 bVar"b'3", 15893 Mop(Not, 15894 bVar"b'2")))))))))))))), 15895 Call 15896 ("Shift",CTy"instruction", 15897 Call 15898 ("SLLW",CTy"Shift", 15899 TP[Mop(Cast(FTy 5), 15900 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15901 bVar"b'8",bVar"b'7"]), 15902 Mop(Cast(FTy 5), 15903 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15904 bVar"b'16",bVar"b'15"]), 15905 Mop(Cast(FTy 5), 15906 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15907 bVar"b'21",bVar"b'20"])]))), 15908 (Bop(And,Mop(Not,bVar"b'31"), 15909 Bop(And,Mop(Not,bVar"b'30"), 15910 Bop(And,Mop(Not,bVar"b'29"), 15911 Bop(And,Mop(Not,bVar"b'28"), 15912 Bop(And,Mop(Not,bVar"b'27"), 15913 Bop(And,Mop(Not,bVar"b'26"), 15914 Bop(And,Mop(Not,bVar"b'25"), 15915 Bop(And,bVar"b'14", 15916 Bop(And, 15917 Mop(Not,bVar"b'13"), 15918 Bop(And,bVar"b'12", 15919 Bop(And, 15920 bVar"b'5", 15921 Bop(And, 15922 bVar"b'4", 15923 Bop(And, 15924 bVar"b'3", 15925 Mop(Not, 15926 bVar"b'2")))))))))))))), 15927 Call 15928 ("Shift",CTy"instruction", 15929 Call 15930 ("SRLW",CTy"Shift", 15931 TP[Mop(Cast(FTy 5), 15932 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15933 bVar"b'8",bVar"b'7"]), 15934 Mop(Cast(FTy 5), 15935 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15936 bVar"b'16",bVar"b'15"]), 15937 Mop(Cast(FTy 5), 15938 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15939 bVar"b'21",bVar"b'20"])]))), 15940 (Bop(And,Mop(Not,bVar"b'31"), 15941 Bop(And,bVar"b'30", 15942 Bop(And,Mop(Not,bVar"b'29"), 15943 Bop(And,Mop(Not,bVar"b'28"), 15944 Bop(And,Mop(Not,bVar"b'27"), 15945 Bop(And,Mop(Not,bVar"b'26"), 15946 Bop(And,Mop(Not,bVar"b'25"), 15947 Bop(And,bVar"b'14", 15948 Bop(And, 15949 Mop(Not,bVar"b'13"), 15950 Bop(And,bVar"b'12", 15951 Bop(And, 15952 bVar"b'5", 15953 Bop(And, 15954 bVar"b'4", 15955 Bop(And, 15956 bVar"b'3", 15957 Mop(Not, 15958 bVar"b'2")))))))))))))), 15959 Call 15960 ("Shift",CTy"instruction", 15961 Call 15962 ("SRAW",CTy"Shift", 15963 TP[Mop(Cast(FTy 5), 15964 LL[bVar"b'11",bVar"b'10",bVar"b'9", 15965 bVar"b'8",bVar"b'7"]), 15966 Mop(Cast(FTy 5), 15967 LL[bVar"b'19",bVar"b'18",bVar"b'17", 15968 bVar"b'16",bVar"b'15"]), 15969 Mop(Cast(FTy 5), 15970 LL[bVar"b'24",bVar"b'23",bVar"b'22", 15971 bVar"b'21",bVar"b'20"])]))), 15972 (Bop(And,Mop(Not,bVar"b'31"), 15973 Bop(And,Mop(Not,bVar"b'30"), 15974 Bop(And,Mop(Not,bVar"b'29"), 15975 Bop(And,Mop(Not,bVar"b'28"), 15976 Bop(And,Mop(Not,bVar"b'27"), 15977 Bop(And,Mop(Not,bVar"b'26"), 15978 Bop(And,bVar"b'25", 15979 Bop(And, 15980 Mop(Not,bVar"b'14"), 15981 Bop(And, 15982 Mop(Not,bVar"b'13"), 15983 Bop(And, 15984 Mop(Not, 15985 bVar"b'12"), 15986 Bop(And, 15987 bVar"b'5", 15988 Bop(And, 15989 bVar"b'4", 15990 Bop(And, 15991 Mop(Not, 15992 bVar"b'3"), 15993 Mop(Not, 15994 bVar"b'2")))))))))))))), 15995 Call 15996 ("MulDiv",CTy"instruction", 15997 Call 15998 ("MUL",CTy"MulDiv", 15999 TP[Mop(Cast(FTy 5), 16000 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16001 bVar"b'8",bVar"b'7"]), 16002 Mop(Cast(FTy 5), 16003 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16004 bVar"b'16",bVar"b'15"]), 16005 Mop(Cast(FTy 5), 16006 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16007 bVar"b'21",bVar"b'20"])]))), 16008 (Bop(And,Mop(Not,bVar"b'31"), 16009 Bop(And,Mop(Not,bVar"b'30"), 16010 Bop(And,Mop(Not,bVar"b'29"), 16011 Bop(And,Mop(Not,bVar"b'28"), 16012 Bop(And,Mop(Not,bVar"b'27"), 16013 Bop(And,Mop(Not,bVar"b'26"), 16014 Bop(And,bVar"b'25", 16015 Bop(And, 16016 Mop(Not,bVar"b'14"), 16017 Bop(And, 16018 Mop(Not,bVar"b'13"), 16019 Bop(And,bVar"b'12", 16020 Bop(And, 16021 bVar"b'5", 16022 Bop(And, 16023 bVar"b'4", 16024 Bop(And, 16025 Mop(Not, 16026 bVar"b'3"), 16027 Mop(Not, 16028 bVar"b'2")))))))))))))), 16029 Call 16030 ("MulDiv",CTy"instruction", 16031 Call 16032 ("MULH",CTy"MulDiv", 16033 TP[Mop(Cast(FTy 5), 16034 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16035 bVar"b'8",bVar"b'7"]), 16036 Mop(Cast(FTy 5), 16037 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16038 bVar"b'16",bVar"b'15"]), 16039 Mop(Cast(FTy 5), 16040 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16041 bVar"b'21",bVar"b'20"])]))), 16042 (Bop(And,Mop(Not,bVar"b'31"), 16043 Bop(And,Mop(Not,bVar"b'30"), 16044 Bop(And,Mop(Not,bVar"b'29"), 16045 Bop(And,Mop(Not,bVar"b'28"), 16046 Bop(And,Mop(Not,bVar"b'27"), 16047 Bop(And,Mop(Not,bVar"b'26"), 16048 Bop(And,bVar"b'25", 16049 Bop(And, 16050 Mop(Not,bVar"b'14"), 16051 Bop(And,bVar"b'13", 16052 Bop(And, 16053 Mop(Not, 16054 bVar"b'12"), 16055 Bop(And, 16056 bVar"b'5", 16057 Bop(And, 16058 bVar"b'4", 16059 Bop(And, 16060 Mop(Not, 16061 bVar"b'3"), 16062 Mop(Not, 16063 bVar"b'2")))))))))))))), 16064 Call 16065 ("MulDiv",CTy"instruction", 16066 Call 16067 ("MULHSU",CTy"MulDiv", 16068 TP[Mop(Cast(FTy 5), 16069 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16070 bVar"b'8",bVar"b'7"]), 16071 Mop(Cast(FTy 5), 16072 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16073 bVar"b'16",bVar"b'15"]), 16074 Mop(Cast(FTy 5), 16075 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16076 bVar"b'21",bVar"b'20"])]))), 16077 (Bop(And,Mop(Not,bVar"b'31"), 16078 Bop(And,Mop(Not,bVar"b'30"), 16079 Bop(And,Mop(Not,bVar"b'29"), 16080 Bop(And,Mop(Not,bVar"b'28"), 16081 Bop(And,Mop(Not,bVar"b'27"), 16082 Bop(And,Mop(Not,bVar"b'26"), 16083 Bop(And,bVar"b'25", 16084 Bop(And, 16085 Mop(Not,bVar"b'14"), 16086 Bop(And,bVar"b'13", 16087 Bop(And,bVar"b'12", 16088 Bop(And, 16089 bVar"b'5", 16090 Bop(And, 16091 bVar"b'4", 16092 Bop(And, 16093 Mop(Not, 16094 bVar"b'3"), 16095 Mop(Not, 16096 bVar"b'2")))))))))))))), 16097 Call 16098 ("MulDiv",CTy"instruction", 16099 Call 16100 ("MULHU",CTy"MulDiv", 16101 TP[Mop(Cast(FTy 5), 16102 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16103 bVar"b'8",bVar"b'7"]), 16104 Mop(Cast(FTy 5), 16105 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16106 bVar"b'16",bVar"b'15"]), 16107 Mop(Cast(FTy 5), 16108 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16109 bVar"b'21",bVar"b'20"])]))), 16110 (Bop(And,Mop(Not,bVar"b'31"), 16111 Bop(And,Mop(Not,bVar"b'30"), 16112 Bop(And,Mop(Not,bVar"b'29"), 16113 Bop(And,Mop(Not,bVar"b'28"), 16114 Bop(And,Mop(Not,bVar"b'27"), 16115 Bop(And,Mop(Not,bVar"b'26"), 16116 Bop(And,bVar"b'25", 16117 Bop(And,bVar"b'14", 16118 Bop(And, 16119 Mop(Not,bVar"b'13"), 16120 Bop(And, 16121 Mop(Not, 16122 bVar"b'12"), 16123 Bop(And, 16124 bVar"b'5", 16125 Bop(And, 16126 bVar"b'4", 16127 Bop(And, 16128 Mop(Not, 16129 bVar"b'3"), 16130 Mop(Not, 16131 bVar"b'2")))))))))))))), 16132 Call 16133 ("MulDiv",CTy"instruction", 16134 Call 16135 ("DIV",CTy"MulDiv", 16136 TP[Mop(Cast(FTy 5), 16137 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16138 bVar"b'8",bVar"b'7"]), 16139 Mop(Cast(FTy 5), 16140 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16141 bVar"b'16",bVar"b'15"]), 16142 Mop(Cast(FTy 5), 16143 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16144 bVar"b'21",bVar"b'20"])]))), 16145 (Bop(And,Mop(Not,bVar"b'31"), 16146 Bop(And,Mop(Not,bVar"b'30"), 16147 Bop(And,Mop(Not,bVar"b'29"), 16148 Bop(And,Mop(Not,bVar"b'28"), 16149 Bop(And,Mop(Not,bVar"b'27"), 16150 Bop(And,Mop(Not,bVar"b'26"), 16151 Bop(And,bVar"b'25", 16152 Bop(And,bVar"b'14", 16153 Bop(And, 16154 Mop(Not,bVar"b'13"), 16155 Bop(And,bVar"b'12", 16156 Bop(And, 16157 bVar"b'5", 16158 Bop(And, 16159 bVar"b'4", 16160 Bop(And, 16161 Mop(Not, 16162 bVar"b'3"), 16163 Mop(Not, 16164 bVar"b'2")))))))))))))), 16165 Call 16166 ("MulDiv",CTy"instruction", 16167 Call 16168 ("DIVU",CTy"MulDiv", 16169 TP[Mop(Cast(FTy 5), 16170 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16171 bVar"b'8",bVar"b'7"]), 16172 Mop(Cast(FTy 5), 16173 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16174 bVar"b'16",bVar"b'15"]), 16175 Mop(Cast(FTy 5), 16176 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16177 bVar"b'21",bVar"b'20"])]))), 16178 (Bop(And,Mop(Not,bVar"b'31"), 16179 Bop(And,Mop(Not,bVar"b'30"), 16180 Bop(And,Mop(Not,bVar"b'29"), 16181 Bop(And,Mop(Not,bVar"b'28"), 16182 Bop(And,Mop(Not,bVar"b'27"), 16183 Bop(And,Mop(Not,bVar"b'26"), 16184 Bop(And,bVar"b'25", 16185 Bop(And,bVar"b'14", 16186 Bop(And,bVar"b'13", 16187 Bop(And, 16188 Mop(Not, 16189 bVar"b'12"), 16190 Bop(And, 16191 bVar"b'5", 16192 Bop(And, 16193 bVar"b'4", 16194 Bop(And, 16195 Mop(Not, 16196 bVar"b'3"), 16197 Mop(Not, 16198 bVar"b'2")))))))))))))), 16199 Call 16200 ("MulDiv",CTy"instruction", 16201 Call 16202 ("REM",CTy"MulDiv", 16203 TP[Mop(Cast(FTy 5), 16204 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16205 bVar"b'8",bVar"b'7"]), 16206 Mop(Cast(FTy 5), 16207 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16208 bVar"b'16",bVar"b'15"]), 16209 Mop(Cast(FTy 5), 16210 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16211 bVar"b'21",bVar"b'20"])]))), 16212 (Bop(And,Mop(Not,bVar"b'31"), 16213 Bop(And,Mop(Not,bVar"b'30"), 16214 Bop(And,Mop(Not,bVar"b'29"), 16215 Bop(And,Mop(Not,bVar"b'28"), 16216 Bop(And,Mop(Not,bVar"b'27"), 16217 Bop(And,Mop(Not,bVar"b'26"), 16218 Bop(And,bVar"b'25", 16219 Bop(And,bVar"b'14", 16220 Bop(And,bVar"b'13", 16221 Bop(And,bVar"b'12", 16222 Bop(And, 16223 bVar"b'5", 16224 Bop(And, 16225 bVar"b'4", 16226 Bop(And, 16227 Mop(Not, 16228 bVar"b'3"), 16229 Mop(Not, 16230 bVar"b'2")))))))))))))), 16231 Call 16232 ("MulDiv",CTy"instruction", 16233 Call 16234 ("REMU",CTy"MulDiv", 16235 TP[Mop(Cast(FTy 5), 16236 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16237 bVar"b'8",bVar"b'7"]), 16238 Mop(Cast(FTy 5), 16239 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16240 bVar"b'16",bVar"b'15"]), 16241 Mop(Cast(FTy 5), 16242 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16243 bVar"b'21",bVar"b'20"])]))), 16244 (Bop(And,Mop(Not,bVar"b'31"), 16245 Bop(And,Mop(Not,bVar"b'30"), 16246 Bop(And,Mop(Not,bVar"b'29"), 16247 Bop(And,Mop(Not,bVar"b'28"), 16248 Bop(And,Mop(Not,bVar"b'27"), 16249 Bop(And,Mop(Not,bVar"b'26"), 16250 Bop(And,bVar"b'25", 16251 Bop(And, 16252 Mop(Not,bVar"b'14"), 16253 Bop(And, 16254 Mop(Not,bVar"b'13"), 16255 Bop(And, 16256 Mop(Not, 16257 bVar"b'12"), 16258 Bop(And, 16259 bVar"b'5", 16260 Bop(And, 16261 bVar"b'4", 16262 Bop(And, 16263 bVar"b'3", 16264 Mop(Not, 16265 bVar"b'2")))))))))))))), 16266 Call 16267 ("MulDiv",CTy"instruction", 16268 Call 16269 ("MULW",CTy"MulDiv", 16270 TP[Mop(Cast(FTy 5), 16271 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16272 bVar"b'8",bVar"b'7"]), 16273 Mop(Cast(FTy 5), 16274 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16275 bVar"b'16",bVar"b'15"]), 16276 Mop(Cast(FTy 5), 16277 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16278 bVar"b'21",bVar"b'20"])]))), 16279 (Bop(And,Mop(Not,bVar"b'31"), 16280 Bop(And,Mop(Not,bVar"b'30"), 16281 Bop(And,Mop(Not,bVar"b'29"), 16282 Bop(And,Mop(Not,bVar"b'28"), 16283 Bop(And,Mop(Not,bVar"b'27"), 16284 Bop(And,Mop(Not,bVar"b'26"), 16285 Bop(And,bVar"b'25", 16286 Bop(And,bVar"b'14", 16287 Bop(And, 16288 Mop(Not,bVar"b'13"), 16289 Bop(And, 16290 Mop(Not, 16291 bVar"b'12"), 16292 Bop(And, 16293 bVar"b'5", 16294 Bop(And, 16295 bVar"b'4", 16296 Bop(And, 16297 bVar"b'3", 16298 Mop(Not, 16299 bVar"b'2")))))))))))))), 16300 Call 16301 ("MulDiv",CTy"instruction", 16302 Call 16303 ("DIVW",CTy"MulDiv", 16304 TP[Mop(Cast(FTy 5), 16305 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16306 bVar"b'8",bVar"b'7"]), 16307 Mop(Cast(FTy 5), 16308 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16309 bVar"b'16",bVar"b'15"]), 16310 Mop(Cast(FTy 5), 16311 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16312 bVar"b'21",bVar"b'20"])]))), 16313 (Bop(And,Mop(Not,bVar"b'31"), 16314 Bop(And,Mop(Not,bVar"b'30"), 16315 Bop(And,Mop(Not,bVar"b'29"), 16316 Bop(And,Mop(Not,bVar"b'28"), 16317 Bop(And,Mop(Not,bVar"b'27"), 16318 Bop(And,Mop(Not,bVar"b'26"), 16319 Bop(And,bVar"b'25", 16320 Bop(And,bVar"b'14", 16321 Bop(And, 16322 Mop(Not,bVar"b'13"), 16323 Bop(And,bVar"b'12", 16324 Bop(And, 16325 bVar"b'5", 16326 Bop(And, 16327 bVar"b'4", 16328 Bop(And, 16329 bVar"b'3", 16330 Mop(Not, 16331 bVar"b'2")))))))))))))), 16332 Call 16333 ("MulDiv",CTy"instruction", 16334 Call 16335 ("DIVUW",CTy"MulDiv", 16336 TP[Mop(Cast(FTy 5), 16337 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16338 bVar"b'8",bVar"b'7"]), 16339 Mop(Cast(FTy 5), 16340 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16341 bVar"b'16",bVar"b'15"]), 16342 Mop(Cast(FTy 5), 16343 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16344 bVar"b'21",bVar"b'20"])]))), 16345 (Bop(And,Mop(Not,bVar"b'31"), 16346 Bop(And,Mop(Not,bVar"b'30"), 16347 Bop(And,Mop(Not,bVar"b'29"), 16348 Bop(And,Mop(Not,bVar"b'28"), 16349 Bop(And,Mop(Not,bVar"b'27"), 16350 Bop(And,Mop(Not,bVar"b'26"), 16351 Bop(And,bVar"b'25", 16352 Bop(And,bVar"b'14", 16353 Bop(And,bVar"b'13", 16354 Bop(And, 16355 Mop(Not, 16356 bVar"b'12"), 16357 Bop(And, 16358 bVar"b'5", 16359 Bop(And, 16360 bVar"b'4", 16361 Bop(And, 16362 bVar"b'3", 16363 Mop(Not, 16364 bVar"b'2")))))))))))))), 16365 Call 16366 ("MulDiv",CTy"instruction", 16367 Call 16368 ("REMW",CTy"MulDiv", 16369 TP[Mop(Cast(FTy 5), 16370 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16371 bVar"b'8",bVar"b'7"]), 16372 Mop(Cast(FTy 5), 16373 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16374 bVar"b'16",bVar"b'15"]), 16375 Mop(Cast(FTy 5), 16376 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16377 bVar"b'21",bVar"b'20"])]))), 16378 (Bop(And,Mop(Not,bVar"b'31"), 16379 Bop(And,Mop(Not,bVar"b'30"), 16380 Bop(And,Mop(Not,bVar"b'29"), 16381 Bop(And,Mop(Not,bVar"b'28"), 16382 Bop(And,Mop(Not,bVar"b'27"), 16383 Bop(And,Mop(Not,bVar"b'26"), 16384 Bop(And,bVar"b'25", 16385 Bop(And,bVar"b'14", 16386 Bop(And,bVar"b'13", 16387 Bop(And,bVar"b'12", 16388 Bop(And, 16389 bVar"b'5", 16390 Bop(And, 16391 bVar"b'4", 16392 Bop(And, 16393 bVar"b'3", 16394 Mop(Not, 16395 bVar"b'2")))))))))))))), 16396 Call 16397 ("MulDiv",CTy"instruction", 16398 Call 16399 ("REMUW",CTy"MulDiv", 16400 TP[Mop(Cast(FTy 5), 16401 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16402 bVar"b'8",bVar"b'7"]), 16403 Mop(Cast(FTy 5), 16404 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16405 bVar"b'16",bVar"b'15"]), 16406 Mop(Cast(FTy 5), 16407 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16408 bVar"b'21",bVar"b'20"])]))), 16409 (Bop(And,Mop(Not,bVar"b'14"), 16410 Bop(And,Mop(Not,bVar"b'13"), 16411 Bop(And,Mop(Not,bVar"b'12"), 16412 Bop(And,Mop(Not,bVar"b'5"), 16413 Bop(And,Mop(Not,bVar"b'4"), 16414 Bop(And,Mop(Not,bVar"b'3"), 16415 Mop(Not,bVar"b'2"))))))), 16416 Call 16417 ("Load",CTy"instruction", 16418 Call 16419 ("LB",CTy"Load", 16420 TP[Mop(Cast(FTy 5), 16421 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16422 bVar"b'8",bVar"b'7"]), 16423 Mop(Cast(FTy 5), 16424 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16425 bVar"b'16",bVar"b'15"]), 16426 Mop(Cast(FTy 12), 16427 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16428 bVar"b'28",bVar"b'27",bVar"b'26", 16429 bVar"b'25",bVar"b'24",bVar"b'23", 16430 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16431 (Bop(And,Mop(Not,bVar"b'14"), 16432 Bop(And,Mop(Not,bVar"b'13"), 16433 Bop(And,bVar"b'12", 16434 Bop(And,Mop(Not,bVar"b'5"), 16435 Bop(And,Mop(Not,bVar"b'4"), 16436 Bop(And,Mop(Not,bVar"b'3"), 16437 Mop(Not,bVar"b'2"))))))), 16438 Call 16439 ("Load",CTy"instruction", 16440 Call 16441 ("LH",CTy"Load", 16442 TP[Mop(Cast(FTy 5), 16443 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16444 bVar"b'8",bVar"b'7"]), 16445 Mop(Cast(FTy 5), 16446 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16447 bVar"b'16",bVar"b'15"]), 16448 Mop(Cast(FTy 12), 16449 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16450 bVar"b'28",bVar"b'27",bVar"b'26", 16451 bVar"b'25",bVar"b'24",bVar"b'23", 16452 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16453 (Bop(And,Mop(Not,bVar"b'14"), 16454 Bop(And,bVar"b'13", 16455 Bop(And,Mop(Not,bVar"b'12"), 16456 Bop(And,Mop(Not,bVar"b'5"), 16457 Bop(And,Mop(Not,bVar"b'4"), 16458 Bop(And,Mop(Not,bVar"b'3"), 16459 Mop(Not,bVar"b'2"))))))), 16460 Call 16461 ("Load",CTy"instruction", 16462 Call 16463 ("LW",CTy"Load", 16464 TP[Mop(Cast(FTy 5), 16465 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16466 bVar"b'8",bVar"b'7"]), 16467 Mop(Cast(FTy 5), 16468 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16469 bVar"b'16",bVar"b'15"]), 16470 Mop(Cast(FTy 12), 16471 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16472 bVar"b'28",bVar"b'27",bVar"b'26", 16473 bVar"b'25",bVar"b'24",bVar"b'23", 16474 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16475 (Bop(And,Mop(Not,bVar"b'14"), 16476 Bop(And,bVar"b'13", 16477 Bop(And,bVar"b'12", 16478 Bop(And,Mop(Not,bVar"b'5"), 16479 Bop(And,Mop(Not,bVar"b'4"), 16480 Bop(And,Mop(Not,bVar"b'3"), 16481 Mop(Not,bVar"b'2"))))))), 16482 Call 16483 ("Load",CTy"instruction", 16484 Call 16485 ("LD",CTy"Load", 16486 TP[Mop(Cast(FTy 5), 16487 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16488 bVar"b'8",bVar"b'7"]), 16489 Mop(Cast(FTy 5), 16490 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16491 bVar"b'16",bVar"b'15"]), 16492 Mop(Cast(FTy 12), 16493 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16494 bVar"b'28",bVar"b'27",bVar"b'26", 16495 bVar"b'25",bVar"b'24",bVar"b'23", 16496 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16497 (Bop(And,bVar"b'14", 16498 Bop(And,Mop(Not,bVar"b'13"), 16499 Bop(And,Mop(Not,bVar"b'12"), 16500 Bop(And,Mop(Not,bVar"b'5"), 16501 Bop(And,Mop(Not,bVar"b'4"), 16502 Bop(And,Mop(Not,bVar"b'3"), 16503 Mop(Not,bVar"b'2"))))))), 16504 Call 16505 ("Load",CTy"instruction", 16506 Call 16507 ("LBU",CTy"Load", 16508 TP[Mop(Cast(FTy 5), 16509 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16510 bVar"b'8",bVar"b'7"]), 16511 Mop(Cast(FTy 5), 16512 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16513 bVar"b'16",bVar"b'15"]), 16514 Mop(Cast(FTy 12), 16515 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16516 bVar"b'28",bVar"b'27",bVar"b'26", 16517 bVar"b'25",bVar"b'24",bVar"b'23", 16518 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16519 (Bop(And,bVar"b'14", 16520 Bop(And,Mop(Not,bVar"b'13"), 16521 Bop(And,bVar"b'12", 16522 Bop(And,Mop(Not,bVar"b'5"), 16523 Bop(And,Mop(Not,bVar"b'4"), 16524 Bop(And,Mop(Not,bVar"b'3"), 16525 Mop(Not,bVar"b'2"))))))), 16526 Call 16527 ("Load",CTy"instruction", 16528 Call 16529 ("LHU",CTy"Load", 16530 TP[Mop(Cast(FTy 5), 16531 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16532 bVar"b'8",bVar"b'7"]), 16533 Mop(Cast(FTy 5), 16534 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16535 bVar"b'16",bVar"b'15"]), 16536 Mop(Cast(FTy 12), 16537 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16538 bVar"b'28",bVar"b'27",bVar"b'26", 16539 bVar"b'25",bVar"b'24",bVar"b'23", 16540 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16541 (Bop(And,bVar"b'14", 16542 Bop(And,bVar"b'13", 16543 Bop(And,Mop(Not,bVar"b'12"), 16544 Bop(And,Mop(Not,bVar"b'5"), 16545 Bop(And,Mop(Not,bVar"b'4"), 16546 Bop(And,Mop(Not,bVar"b'3"), 16547 Mop(Not,bVar"b'2"))))))), 16548 Call 16549 ("Load",CTy"instruction", 16550 Call 16551 ("LWU",CTy"Load", 16552 TP[Mop(Cast(FTy 5), 16553 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16554 bVar"b'8",bVar"b'7"]), 16555 Mop(Cast(FTy 5), 16556 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16557 bVar"b'16",bVar"b'15"]), 16558 Mop(Cast(FTy 12), 16559 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16560 bVar"b'28",bVar"b'27",bVar"b'26", 16561 bVar"b'25",bVar"b'24",bVar"b'23", 16562 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16563 (Bop(And,Mop(Not,bVar"b'14"), 16564 Bop(And,Mop(Not,bVar"b'13"), 16565 Bop(And,Mop(Not,bVar"b'12"), 16566 Bop(And,bVar"b'5", 16567 Bop(And,Mop(Not,bVar"b'4"), 16568 Bop(And,Mop(Not,bVar"b'3"), 16569 Mop(Not,bVar"b'2"))))))), 16570 Call 16571 ("Store",CTy"instruction", 16572 Call 16573 ("SB",CTy"Store", 16574 TP[Mop(Cast(FTy 5), 16575 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16576 bVar"b'16",bVar"b'15"]), 16577 Mop(Cast(FTy 5), 16578 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16579 bVar"b'21",bVar"b'20"]), 16580 Call 16581 ("asSImm12",FTy 12, 16582 TP[Mop(Cast(FTy 7), 16583 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16584 bVar"b'28",bVar"b'27",bVar"b'26", 16585 bVar"b'25"]), 16586 Mop(Cast(FTy 5), 16587 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16588 bVar"b'8",bVar"b'7"])])]))), 16589 (Bop(And,Mop(Not,bVar"b'14"), 16590 Bop(And,Mop(Not,bVar"b'13"), 16591 Bop(And,bVar"b'12", 16592 Bop(And,bVar"b'5", 16593 Bop(And,Mop(Not,bVar"b'4"), 16594 Bop(And,Mop(Not,bVar"b'3"), 16595 Mop(Not,bVar"b'2"))))))), 16596 Call 16597 ("Store",CTy"instruction", 16598 Call 16599 ("SH",CTy"Store", 16600 TP[Mop(Cast(FTy 5), 16601 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16602 bVar"b'16",bVar"b'15"]), 16603 Mop(Cast(FTy 5), 16604 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16605 bVar"b'21",bVar"b'20"]), 16606 Call 16607 ("asSImm12",FTy 12, 16608 TP[Mop(Cast(FTy 7), 16609 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16610 bVar"b'28",bVar"b'27",bVar"b'26", 16611 bVar"b'25"]), 16612 Mop(Cast(FTy 5), 16613 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16614 bVar"b'8",bVar"b'7"])])]))), 16615 (Bop(And,Mop(Not,bVar"b'14"), 16616 Bop(And,bVar"b'13", 16617 Bop(And,Mop(Not,bVar"b'12"), 16618 Bop(And,bVar"b'5", 16619 Bop(And,Mop(Not,bVar"b'4"), 16620 Bop(And,Mop(Not,bVar"b'3"), 16621 Mop(Not,bVar"b'2"))))))), 16622 Call 16623 ("Store",CTy"instruction", 16624 Call 16625 ("SW",CTy"Store", 16626 TP[Mop(Cast(FTy 5), 16627 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16628 bVar"b'16",bVar"b'15"]), 16629 Mop(Cast(FTy 5), 16630 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16631 bVar"b'21",bVar"b'20"]), 16632 Call 16633 ("asSImm12",FTy 12, 16634 TP[Mop(Cast(FTy 7), 16635 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16636 bVar"b'28",bVar"b'27",bVar"b'26", 16637 bVar"b'25"]), 16638 Mop(Cast(FTy 5), 16639 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16640 bVar"b'8",bVar"b'7"])])]))), 16641 (Bop(And,Mop(Not,bVar"b'14"), 16642 Bop(And,bVar"b'13", 16643 Bop(And,bVar"b'12", 16644 Bop(And,bVar"b'5", 16645 Bop(And,Mop(Not,bVar"b'4"), 16646 Bop(And,Mop(Not,bVar"b'3"), 16647 Mop(Not,bVar"b'2"))))))), 16648 Call 16649 ("Store",CTy"instruction", 16650 Call 16651 ("SD",CTy"Store", 16652 TP[Mop(Cast(FTy 5), 16653 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16654 bVar"b'16",bVar"b'15"]), 16655 Mop(Cast(FTy 5), 16656 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16657 bVar"b'21",bVar"b'20"]), 16658 Call 16659 ("asSImm12",FTy 12, 16660 TP[Mop(Cast(FTy 7), 16661 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16662 bVar"b'28",bVar"b'27",bVar"b'26", 16663 bVar"b'25"]), 16664 Mop(Cast(FTy 5), 16665 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16666 bVar"b'8",bVar"b'7"])])]))), 16667 (Bop(And,Mop(Not,bVar"b'14"), 16668 Bop(And,Mop(Not,bVar"b'13"), 16669 Bop(And,Mop(Not,bVar"b'12"), 16670 Bop(And,Mop(Not,bVar"b'5"), 16671 Bop(And,Mop(Not,bVar"b'4"), 16672 Bop(And,bVar"b'3",bVar"b'2")))))), 16673 Call 16674 ("FENCE",CTy"instruction", 16675 TP[Mop(Cast(FTy 5), 16676 LL[bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8", 16677 bVar"b'7"]), 16678 Mop(Cast(FTy 5), 16679 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16680 bVar"b'16",bVar"b'15"]), 16681 Mop(Cast F4, 16682 LL[bVar"b'27",bVar"b'26",bVar"b'25", 16683 bVar"b'24"]), 16684 Mop(Cast F4, 16685 LL[bVar"b'23",bVar"b'22",bVar"b'21", 16686 bVar"b'20"])])), 16687 (Bop(And,Mop(Not,bVar"b'14"), 16688 Bop(And,Mop(Not,bVar"b'13"), 16689 Bop(And,bVar"b'12", 16690 Bop(And,Mop(Not,bVar"b'5"), 16691 Bop(And,Mop(Not,bVar"b'4"), 16692 Bop(And,bVar"b'3",bVar"b'2")))))), 16693 Call 16694 ("FENCE_I",CTy"instruction", 16695 TP[Mop(Cast(FTy 5), 16696 LL[bVar"b'11",bVar"b'10",bVar"b'9",bVar"b'8", 16697 bVar"b'7"]), 16698 Mop(Cast(FTy 5), 16699 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16700 bVar"b'16",bVar"b'15"]), 16701 Mop(Cast(FTy 12), 16702 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16703 bVar"b'28",bVar"b'27",bVar"b'26", 16704 bVar"b'25",bVar"b'24",bVar"b'23", 16705 bVar"b'22",bVar"b'21",bVar"b'20"])])), 16706 (Bop(And,Mop(Not,bVar"b'14"), 16707 Bop(And,bVar"b'13", 16708 Bop(And,Mop(Not,bVar"b'12"), 16709 Bop(And,Mop(Not,bVar"b'5"), 16710 Bop(And,Mop(Not,bVar"b'4"), 16711 Bop(And,Mop(Not,bVar"b'3"), 16712 bVar"b'2")))))), 16713 Call 16714 ("FPLoad",CTy"instruction", 16715 Call 16716 ("FLW",CTy"FPLoad", 16717 TP[Mop(Cast(FTy 5), 16718 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16719 bVar"b'8",bVar"b'7"]), 16720 Mop(Cast(FTy 5), 16721 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16722 bVar"b'16",bVar"b'15"]), 16723 Mop(Cast(FTy 12), 16724 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16725 bVar"b'28",bVar"b'27",bVar"b'26", 16726 bVar"b'25",bVar"b'24",bVar"b'23", 16727 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16728 (Bop(And,Mop(Not,bVar"b'14"), 16729 Bop(And,bVar"b'13", 16730 Bop(And,bVar"b'12", 16731 Bop(And,Mop(Not,bVar"b'5"), 16732 Bop(And,Mop(Not,bVar"b'4"), 16733 Bop(And,Mop(Not,bVar"b'3"), 16734 bVar"b'2")))))), 16735 Call 16736 ("FPLoad",CTy"instruction", 16737 Call 16738 ("FLD",CTy"FPLoad", 16739 TP[Mop(Cast(FTy 5), 16740 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16741 bVar"b'8",bVar"b'7"]), 16742 Mop(Cast(FTy 5), 16743 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16744 bVar"b'16",bVar"b'15"]), 16745 Mop(Cast(FTy 12), 16746 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16747 bVar"b'28",bVar"b'27",bVar"b'26", 16748 bVar"b'25",bVar"b'24",bVar"b'23", 16749 bVar"b'22",bVar"b'21",bVar"b'20"])]))), 16750 (Bop(And,Mop(Not,bVar"b'14"), 16751 Bop(And,bVar"b'13", 16752 Bop(And,Mop(Not,bVar"b'12"), 16753 Bop(And,bVar"b'5", 16754 Bop(And,Mop(Not,bVar"b'4"), 16755 Bop(And,Mop(Not,bVar"b'3"), 16756 bVar"b'2")))))), 16757 Call 16758 ("FPStore",CTy"instruction", 16759 Call 16760 ("FSW",CTy"FPStore", 16761 TP[Mop(Cast(FTy 5), 16762 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16763 bVar"b'16",bVar"b'15"]), 16764 Mop(Cast(FTy 5), 16765 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16766 bVar"b'21",bVar"b'20"]), 16767 Call 16768 ("asSImm12",FTy 12, 16769 TP[Mop(Cast(FTy 7), 16770 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16771 bVar"b'28",bVar"b'27",bVar"b'26", 16772 bVar"b'25"]), 16773 Mop(Cast(FTy 5), 16774 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16775 bVar"b'8",bVar"b'7"])])]))), 16776 (Bop(And,Mop(Not,bVar"b'14"), 16777 Bop(And,bVar"b'13", 16778 Bop(And,bVar"b'12", 16779 Bop(And,bVar"b'5", 16780 Bop(And,Mop(Not,bVar"b'4"), 16781 Bop(And,Mop(Not,bVar"b'3"), 16782 bVar"b'2")))))), 16783 Call 16784 ("FPStore",CTy"instruction", 16785 Call 16786 ("FSD",CTy"FPStore", 16787 TP[Mop(Cast(FTy 5), 16788 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16789 bVar"b'16",bVar"b'15"]), 16790 Mop(Cast(FTy 5), 16791 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16792 bVar"b'21",bVar"b'20"]), 16793 Call 16794 ("asSImm12",FTy 12, 16795 TP[Mop(Cast(FTy 7), 16796 LL[bVar"b'31",bVar"b'30",bVar"b'29", 16797 bVar"b'28",bVar"b'27",bVar"b'26", 16798 bVar"b'25"]), 16799 Mop(Cast(FTy 5), 16800 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16801 bVar"b'8",bVar"b'7"])])]))), 16802 (Bop(And,Mop(Not,bVar"b'31"), 16803 Bop(And,Mop(Not,bVar"b'30"), 16804 Bop(And,Mop(Not,bVar"b'29"), 16805 Bop(And,bVar"b'28", 16806 Bop(And,Mop(Not,bVar"b'27"), 16807 Bop(And,Mop(Not,bVar"b'24"), 16808 Bop(And,Mop(Not,bVar"b'23"), 16809 Bop(And, 16810 Mop(Not,bVar"b'22"), 16811 Bop(And, 16812 Mop(Not,bVar"b'21"), 16813 Bop(And, 16814 Mop(Not, 16815 bVar"b'20"), 16816 Bop(And, 16817 Mop(Not, 16818 bVar"b'14"), 16819 Bop(And, 16820 bVar"b'13", 16821 Bop(And, 16822 Mop(Not, 16823 bVar"b'12"), 16824 Bop(And, 16825 bVar"b'5", 16826 Bop(And, 16827 Mop(Not, 16828 bVar"b'4"), 16829 Bop(And, 16830 bVar"b'3", 16831 bVar"b'2")))))))))))))))), 16832 Call 16833 ("AMO",CTy"instruction", 16834 Call 16835 ("LR_W",CTy"AMO", 16836 TP[Mop(Cast F1,LL[bVar"b'26"]), 16837 Mop(Cast F1,LL[bVar"b'25"]), 16838 Mop(Cast(FTy 5), 16839 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16840 bVar"b'8",bVar"b'7"]), 16841 Mop(Cast(FTy 5), 16842 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16843 bVar"b'16",bVar"b'15"])]))), 16844 (Bop(And,Mop(Not,bVar"b'31"), 16845 Bop(And,Mop(Not,bVar"b'30"), 16846 Bop(And,Mop(Not,bVar"b'29"), 16847 Bop(And,bVar"b'28", 16848 Bop(And,Mop(Not,bVar"b'27"), 16849 Bop(And,Mop(Not,bVar"b'24"), 16850 Bop(And,Mop(Not,bVar"b'23"), 16851 Bop(And, 16852 Mop(Not,bVar"b'22"), 16853 Bop(And, 16854 Mop(Not,bVar"b'21"), 16855 Bop(And, 16856 Mop(Not, 16857 bVar"b'20"), 16858 Bop(And, 16859 Mop(Not, 16860 bVar"b'14"), 16861 Bop(And, 16862 bVar"b'13", 16863 Bop(And, 16864 bVar"b'12", 16865 Bop(And, 16866 bVar"b'5", 16867 Bop(And, 16868 Mop(Not, 16869 bVar"b'4"), 16870 Bop(And, 16871 bVar"b'3", 16872 bVar"b'2")))))))))))))))), 16873 Call 16874 ("AMO",CTy"instruction", 16875 Call 16876 ("LR_D",CTy"AMO", 16877 TP[Mop(Cast F1,LL[bVar"b'26"]), 16878 Mop(Cast F1,LL[bVar"b'25"]), 16879 Mop(Cast(FTy 5), 16880 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16881 bVar"b'8",bVar"b'7"]), 16882 Mop(Cast(FTy 5), 16883 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16884 bVar"b'16",bVar"b'15"])]))), 16885 (Bop(And,Mop(Not,bVar"b'31"), 16886 Bop(And,Mop(Not,bVar"b'30"), 16887 Bop(And,Mop(Not,bVar"b'29"), 16888 Bop(And,bVar"b'28", 16889 Bop(And,bVar"b'27", 16890 Bop(And,Mop(Not,bVar"b'14"), 16891 Bop(And,bVar"b'13", 16892 Bop(And, 16893 Mop(Not,bVar"b'12"), 16894 Bop(And,bVar"b'5", 16895 Bop(And, 16896 Mop(Not, 16897 bVar"b'4"), 16898 Bop(And, 16899 bVar"b'3", 16900 bVar"b'2"))))))))))), 16901 Call 16902 ("AMO",CTy"instruction", 16903 Call 16904 ("SC_W",CTy"AMO", 16905 TP[Mop(Cast F1,LL[bVar"b'26"]), 16906 Mop(Cast F1,LL[bVar"b'25"]), 16907 Mop(Cast(FTy 5), 16908 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16909 bVar"b'8",bVar"b'7"]), 16910 Mop(Cast(FTy 5), 16911 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16912 bVar"b'16",bVar"b'15"]), 16913 Mop(Cast(FTy 5), 16914 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16915 bVar"b'21",bVar"b'20"])]))), 16916 (Bop(And,Mop(Not,bVar"b'31"), 16917 Bop(And,Mop(Not,bVar"b'30"), 16918 Bop(And,Mop(Not,bVar"b'29"), 16919 Bop(And,bVar"b'28", 16920 Bop(And,bVar"b'27", 16921 Bop(And,Mop(Not,bVar"b'14"), 16922 Bop(And,bVar"b'13", 16923 Bop(And,bVar"b'12", 16924 Bop(And,bVar"b'5", 16925 Bop(And, 16926 Mop(Not, 16927 bVar"b'4"), 16928 Bop(And, 16929 bVar"b'3", 16930 bVar"b'2"))))))))))), 16931 Call 16932 ("AMO",CTy"instruction", 16933 Call 16934 ("SC_D",CTy"AMO", 16935 TP[Mop(Cast F1,LL[bVar"b'26"]), 16936 Mop(Cast F1,LL[bVar"b'25"]), 16937 Mop(Cast(FTy 5), 16938 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16939 bVar"b'8",bVar"b'7"]), 16940 Mop(Cast(FTy 5), 16941 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16942 bVar"b'16",bVar"b'15"]), 16943 Mop(Cast(FTy 5), 16944 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16945 bVar"b'21",bVar"b'20"])]))), 16946 (Bop(And,Mop(Not,bVar"b'31"), 16947 Bop(And,Mop(Not,bVar"b'30"), 16948 Bop(And,Mop(Not,bVar"b'29"), 16949 Bop(And,Mop(Not,bVar"b'28"), 16950 Bop(And,bVar"b'27", 16951 Bop(And,Mop(Not,bVar"b'14"), 16952 Bop(And,bVar"b'13", 16953 Bop(And, 16954 Mop(Not,bVar"b'12"), 16955 Bop(And,bVar"b'5", 16956 Bop(And, 16957 Mop(Not, 16958 bVar"b'4"), 16959 Bop(And, 16960 bVar"b'3", 16961 bVar"b'2"))))))))))), 16962 Call 16963 ("AMO",CTy"instruction", 16964 Call 16965 ("AMOSWAP_W",CTy"AMO", 16966 TP[Mop(Cast F1,LL[bVar"b'26"]), 16967 Mop(Cast F1,LL[bVar"b'25"]), 16968 Mop(Cast(FTy 5), 16969 LL[bVar"b'11",bVar"b'10",bVar"b'9", 16970 bVar"b'8",bVar"b'7"]), 16971 Mop(Cast(FTy 5), 16972 LL[bVar"b'19",bVar"b'18",bVar"b'17", 16973 bVar"b'16",bVar"b'15"]), 16974 Mop(Cast(FTy 5), 16975 LL[bVar"b'24",bVar"b'23",bVar"b'22", 16976 bVar"b'21",bVar"b'20"])]))), 16977 (Bop(And,Mop(Not,bVar"b'31"), 16978 Bop(And,Mop(Not,bVar"b'30"), 16979 Bop(And,Mop(Not,bVar"b'29"), 16980 Bop(And,Mop(Not,bVar"b'28"), 16981 Bop(And,Mop(Not,bVar"b'27"), 16982 Bop(And,Mop(Not,bVar"b'14"), 16983 Bop(And,bVar"b'13", 16984 Bop(And, 16985 Mop(Not,bVar"b'12"), 16986 Bop(And,bVar"b'5", 16987 Bop(And, 16988 Mop(Not, 16989 bVar"b'4"), 16990 Bop(And, 16991 bVar"b'3", 16992 bVar"b'2"))))))))))), 16993 Call 16994 ("AMO",CTy"instruction", 16995 Call 16996 ("AMOADD_W",CTy"AMO", 16997 TP[Mop(Cast F1,LL[bVar"b'26"]), 16998 Mop(Cast F1,LL[bVar"b'25"]), 16999 Mop(Cast(FTy 5), 17000 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17001 bVar"b'8",bVar"b'7"]), 17002 Mop(Cast(FTy 5), 17003 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17004 bVar"b'16",bVar"b'15"]), 17005 Mop(Cast(FTy 5), 17006 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17007 bVar"b'21",bVar"b'20"])]))), 17008 (Bop(And,Mop(Not,bVar"b'31"), 17009 Bop(And,Mop(Not,bVar"b'30"), 17010 Bop(And,bVar"b'29", 17011 Bop(And,Mop(Not,bVar"b'28"), 17012 Bop(And,Mop(Not,bVar"b'27"), 17013 Bop(And,Mop(Not,bVar"b'14"), 17014 Bop(And,bVar"b'13", 17015 Bop(And, 17016 Mop(Not,bVar"b'12"), 17017 Bop(And,bVar"b'5", 17018 Bop(And, 17019 Mop(Not, 17020 bVar"b'4"), 17021 Bop(And, 17022 bVar"b'3", 17023 bVar"b'2"))))))))))), 17024 Call 17025 ("AMO",CTy"instruction", 17026 Call 17027 ("AMOXOR_W",CTy"AMO", 17028 TP[Mop(Cast F1,LL[bVar"b'26"]), 17029 Mop(Cast F1,LL[bVar"b'25"]), 17030 Mop(Cast(FTy 5), 17031 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17032 bVar"b'8",bVar"b'7"]), 17033 Mop(Cast(FTy 5), 17034 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17035 bVar"b'16",bVar"b'15"]), 17036 Mop(Cast(FTy 5), 17037 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17038 bVar"b'21",bVar"b'20"])]))), 17039 (Bop(And,Mop(Not,bVar"b'31"), 17040 Bop(And,bVar"b'30", 17041 Bop(And,bVar"b'29", 17042 Bop(And,Mop(Not,bVar"b'28"), 17043 Bop(And,Mop(Not,bVar"b'27"), 17044 Bop(And,Mop(Not,bVar"b'14"), 17045 Bop(And,bVar"b'13", 17046 Bop(And, 17047 Mop(Not,bVar"b'12"), 17048 Bop(And,bVar"b'5", 17049 Bop(And, 17050 Mop(Not, 17051 bVar"b'4"), 17052 Bop(And, 17053 bVar"b'3", 17054 bVar"b'2"))))))))))), 17055 Call 17056 ("AMO",CTy"instruction", 17057 Call 17058 ("AMOAND_W",CTy"AMO", 17059 TP[Mop(Cast F1,LL[bVar"b'26"]), 17060 Mop(Cast F1,LL[bVar"b'25"]), 17061 Mop(Cast(FTy 5), 17062 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17063 bVar"b'8",bVar"b'7"]), 17064 Mop(Cast(FTy 5), 17065 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17066 bVar"b'16",bVar"b'15"]), 17067 Mop(Cast(FTy 5), 17068 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17069 bVar"b'21",bVar"b'20"])]))), 17070 (Bop(And,Mop(Not,bVar"b'31"), 17071 Bop(And,bVar"b'30", 17072 Bop(And,Mop(Not,bVar"b'29"), 17073 Bop(And,Mop(Not,bVar"b'28"), 17074 Bop(And,Mop(Not,bVar"b'27"), 17075 Bop(And,Mop(Not,bVar"b'14"), 17076 Bop(And,bVar"b'13", 17077 Bop(And, 17078 Mop(Not,bVar"b'12"), 17079 Bop(And,bVar"b'5", 17080 Bop(And, 17081 Mop(Not, 17082 bVar"b'4"), 17083 Bop(And, 17084 bVar"b'3", 17085 bVar"b'2"))))))))))), 17086 Call 17087 ("AMO",CTy"instruction", 17088 Call 17089 ("AMOOR_W",CTy"AMO", 17090 TP[Mop(Cast F1,LL[bVar"b'26"]), 17091 Mop(Cast F1,LL[bVar"b'25"]), 17092 Mop(Cast(FTy 5), 17093 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17094 bVar"b'8",bVar"b'7"]), 17095 Mop(Cast(FTy 5), 17096 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17097 bVar"b'16",bVar"b'15"]), 17098 Mop(Cast(FTy 5), 17099 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17100 bVar"b'21",bVar"b'20"])]))), 17101 (Bop(And,bVar"b'31", 17102 Bop(And,Mop(Not,bVar"b'30"), 17103 Bop(And,Mop(Not,bVar"b'29"), 17104 Bop(And,Mop(Not,bVar"b'28"), 17105 Bop(And,Mop(Not,bVar"b'27"), 17106 Bop(And,Mop(Not,bVar"b'14"), 17107 Bop(And,bVar"b'13", 17108 Bop(And, 17109 Mop(Not,bVar"b'12"), 17110 Bop(And,bVar"b'5", 17111 Bop(And, 17112 Mop(Not, 17113 bVar"b'4"), 17114 Bop(And, 17115 bVar"b'3", 17116 bVar"b'2"))))))))))), 17117 Call 17118 ("AMO",CTy"instruction", 17119 Call 17120 ("AMOMIN_W",CTy"AMO", 17121 TP[Mop(Cast F1,LL[bVar"b'26"]), 17122 Mop(Cast F1,LL[bVar"b'25"]), 17123 Mop(Cast(FTy 5), 17124 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17125 bVar"b'8",bVar"b'7"]), 17126 Mop(Cast(FTy 5), 17127 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17128 bVar"b'16",bVar"b'15"]), 17129 Mop(Cast(FTy 5), 17130 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17131 bVar"b'21",bVar"b'20"])]))), 17132 (Bop(And,bVar"b'31", 17133 Bop(And,Mop(Not,bVar"b'30"), 17134 Bop(And,bVar"b'29", 17135 Bop(And,Mop(Not,bVar"b'28"), 17136 Bop(And,Mop(Not,bVar"b'27"), 17137 Bop(And,Mop(Not,bVar"b'14"), 17138 Bop(And,bVar"b'13", 17139 Bop(And, 17140 Mop(Not,bVar"b'12"), 17141 Bop(And,bVar"b'5", 17142 Bop(And, 17143 Mop(Not, 17144 bVar"b'4"), 17145 Bop(And, 17146 bVar"b'3", 17147 bVar"b'2"))))))))))), 17148 Call 17149 ("AMO",CTy"instruction", 17150 Call 17151 ("AMOMAX_W",CTy"AMO", 17152 TP[Mop(Cast F1,LL[bVar"b'26"]), 17153 Mop(Cast F1,LL[bVar"b'25"]), 17154 Mop(Cast(FTy 5), 17155 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17156 bVar"b'8",bVar"b'7"]), 17157 Mop(Cast(FTy 5), 17158 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17159 bVar"b'16",bVar"b'15"]), 17160 Mop(Cast(FTy 5), 17161 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17162 bVar"b'21",bVar"b'20"])]))), 17163 (Bop(And,bVar"b'31", 17164 Bop(And,bVar"b'30", 17165 Bop(And,Mop(Not,bVar"b'29"), 17166 Bop(And,Mop(Not,bVar"b'28"), 17167 Bop(And,Mop(Not,bVar"b'27"), 17168 Bop(And,Mop(Not,bVar"b'14"), 17169 Bop(And,bVar"b'13", 17170 Bop(And, 17171 Mop(Not,bVar"b'12"), 17172 Bop(And,bVar"b'5", 17173 Bop(And, 17174 Mop(Not, 17175 bVar"b'4"), 17176 Bop(And, 17177 bVar"b'3", 17178 bVar"b'2"))))))))))), 17179 Call 17180 ("AMO",CTy"instruction", 17181 Call 17182 ("AMOMINU_W",CTy"AMO", 17183 TP[Mop(Cast F1,LL[bVar"b'26"]), 17184 Mop(Cast F1,LL[bVar"b'25"]), 17185 Mop(Cast(FTy 5), 17186 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17187 bVar"b'8",bVar"b'7"]), 17188 Mop(Cast(FTy 5), 17189 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17190 bVar"b'16",bVar"b'15"]), 17191 Mop(Cast(FTy 5), 17192 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17193 bVar"b'21",bVar"b'20"])]))), 17194 (Bop(And,bVar"b'31", 17195 Bop(And,bVar"b'30", 17196 Bop(And,bVar"b'29", 17197 Bop(And,Mop(Not,bVar"b'28"), 17198 Bop(And,Mop(Not,bVar"b'27"), 17199 Bop(And,Mop(Not,bVar"b'14"), 17200 Bop(And,bVar"b'13", 17201 Bop(And, 17202 Mop(Not,bVar"b'12"), 17203 Bop(And,bVar"b'5", 17204 Bop(And, 17205 Mop(Not, 17206 bVar"b'4"), 17207 Bop(And, 17208 bVar"b'3", 17209 bVar"b'2"))))))))))), 17210 Call 17211 ("AMO",CTy"instruction", 17212 Call 17213 ("AMOMAXU_W",CTy"AMO", 17214 TP[Mop(Cast F1,LL[bVar"b'26"]), 17215 Mop(Cast F1,LL[bVar"b'25"]), 17216 Mop(Cast(FTy 5), 17217 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17218 bVar"b'8",bVar"b'7"]), 17219 Mop(Cast(FTy 5), 17220 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17221 bVar"b'16",bVar"b'15"]), 17222 Mop(Cast(FTy 5), 17223 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17224 bVar"b'21",bVar"b'20"])]))), 17225 (Bop(And,Mop(Not,bVar"b'31"), 17226 Bop(And,Mop(Not,bVar"b'30"), 17227 Bop(And,Mop(Not,bVar"b'29"), 17228 Bop(And,Mop(Not,bVar"b'28"), 17229 Bop(And,bVar"b'27", 17230 Bop(And,Mop(Not,bVar"b'14"), 17231 Bop(And,bVar"b'13", 17232 Bop(And,bVar"b'12", 17233 Bop(And,bVar"b'5", 17234 Bop(And, 17235 Mop(Not, 17236 bVar"b'4"), 17237 Bop(And, 17238 bVar"b'3", 17239 bVar"b'2"))))))))))), 17240 Call 17241 ("AMO",CTy"instruction", 17242 Call 17243 ("AMOSWAP_D",CTy"AMO", 17244 TP[Mop(Cast F1,LL[bVar"b'26"]), 17245 Mop(Cast F1,LL[bVar"b'25"]), 17246 Mop(Cast(FTy 5), 17247 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17248 bVar"b'8",bVar"b'7"]), 17249 Mop(Cast(FTy 5), 17250 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17251 bVar"b'16",bVar"b'15"]), 17252 Mop(Cast(FTy 5), 17253 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17254 bVar"b'21",bVar"b'20"])]))), 17255 (Bop(And,Mop(Not,bVar"b'31"), 17256 Bop(And,Mop(Not,bVar"b'30"), 17257 Bop(And,Mop(Not,bVar"b'29"), 17258 Bop(And,Mop(Not,bVar"b'28"), 17259 Bop(And,Mop(Not,bVar"b'27"), 17260 Bop(And,Mop(Not,bVar"b'14"), 17261 Bop(And,bVar"b'13", 17262 Bop(And,bVar"b'12", 17263 Bop(And,bVar"b'5", 17264 Bop(And, 17265 Mop(Not, 17266 bVar"b'4"), 17267 Bop(And, 17268 bVar"b'3", 17269 bVar"b'2"))))))))))), 17270 Call 17271 ("AMO",CTy"instruction", 17272 Call 17273 ("AMOADD_D",CTy"AMO", 17274 TP[Mop(Cast F1,LL[bVar"b'26"]), 17275 Mop(Cast F1,LL[bVar"b'25"]), 17276 Mop(Cast(FTy 5), 17277 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17278 bVar"b'8",bVar"b'7"]), 17279 Mop(Cast(FTy 5), 17280 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17281 bVar"b'16",bVar"b'15"]), 17282 Mop(Cast(FTy 5), 17283 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17284 bVar"b'21",bVar"b'20"])]))), 17285 (Bop(And,Mop(Not,bVar"b'31"), 17286 Bop(And,Mop(Not,bVar"b'30"), 17287 Bop(And,bVar"b'29", 17288 Bop(And,Mop(Not,bVar"b'28"), 17289 Bop(And,Mop(Not,bVar"b'27"), 17290 Bop(And,Mop(Not,bVar"b'14"), 17291 Bop(And,bVar"b'13", 17292 Bop(And,bVar"b'12", 17293 Bop(And,bVar"b'5", 17294 Bop(And, 17295 Mop(Not, 17296 bVar"b'4"), 17297 Bop(And, 17298 bVar"b'3", 17299 bVar"b'2"))))))))))), 17300 Call 17301 ("AMO",CTy"instruction", 17302 Call 17303 ("AMOXOR_D",CTy"AMO", 17304 TP[Mop(Cast F1,LL[bVar"b'26"]), 17305 Mop(Cast F1,LL[bVar"b'25"]), 17306 Mop(Cast(FTy 5), 17307 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17308 bVar"b'8",bVar"b'7"]), 17309 Mop(Cast(FTy 5), 17310 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17311 bVar"b'16",bVar"b'15"]), 17312 Mop(Cast(FTy 5), 17313 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17314 bVar"b'21",bVar"b'20"])]))), 17315 (Bop(And,Mop(Not,bVar"b'31"), 17316 Bop(And,bVar"b'30", 17317 Bop(And,bVar"b'29", 17318 Bop(And,Mop(Not,bVar"b'28"), 17319 Bop(And,Mop(Not,bVar"b'27"), 17320 Bop(And,Mop(Not,bVar"b'14"), 17321 Bop(And,bVar"b'13", 17322 Bop(And,bVar"b'12", 17323 Bop(And,bVar"b'5", 17324 Bop(And, 17325 Mop(Not, 17326 bVar"b'4"), 17327 Bop(And, 17328 bVar"b'3", 17329 bVar"b'2"))))))))))), 17330 Call 17331 ("AMO",CTy"instruction", 17332 Call 17333 ("AMOAND_D",CTy"AMO", 17334 TP[Mop(Cast F1,LL[bVar"b'26"]), 17335 Mop(Cast F1,LL[bVar"b'25"]), 17336 Mop(Cast(FTy 5), 17337 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17338 bVar"b'8",bVar"b'7"]), 17339 Mop(Cast(FTy 5), 17340 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17341 bVar"b'16",bVar"b'15"]), 17342 Mop(Cast(FTy 5), 17343 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17344 bVar"b'21",bVar"b'20"])]))), 17345 (Bop(And,Mop(Not,bVar"b'31"), 17346 Bop(And,bVar"b'30", 17347 Bop(And,Mop(Not,bVar"b'29"), 17348 Bop(And,Mop(Not,bVar"b'28"), 17349 Bop(And,Mop(Not,bVar"b'27"), 17350 Bop(And,Mop(Not,bVar"b'14"), 17351 Bop(And,bVar"b'13", 17352 Bop(And,bVar"b'12", 17353 Bop(And,bVar"b'5", 17354 Bop(And, 17355 Mop(Not, 17356 bVar"b'4"), 17357 Bop(And, 17358 bVar"b'3", 17359 bVar"b'2"))))))))))), 17360 Call 17361 ("AMO",CTy"instruction", 17362 Call 17363 ("AMOOR_D",CTy"AMO", 17364 TP[Mop(Cast F1,LL[bVar"b'26"]), 17365 Mop(Cast F1,LL[bVar"b'25"]), 17366 Mop(Cast(FTy 5), 17367 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17368 bVar"b'8",bVar"b'7"]), 17369 Mop(Cast(FTy 5), 17370 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17371 bVar"b'16",bVar"b'15"]), 17372 Mop(Cast(FTy 5), 17373 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17374 bVar"b'21",bVar"b'20"])]))), 17375 (Bop(And,bVar"b'31", 17376 Bop(And,Mop(Not,bVar"b'30"), 17377 Bop(And,Mop(Not,bVar"b'29"), 17378 Bop(And,Mop(Not,bVar"b'28"), 17379 Bop(And,Mop(Not,bVar"b'27"), 17380 Bop(And,Mop(Not,bVar"b'14"), 17381 Bop(And,bVar"b'13", 17382 Bop(And,bVar"b'12", 17383 Bop(And,bVar"b'5", 17384 Bop(And, 17385 Mop(Not, 17386 bVar"b'4"), 17387 Bop(And, 17388 bVar"b'3", 17389 bVar"b'2"))))))))))), 17390 Call 17391 ("AMO",CTy"instruction", 17392 Call 17393 ("AMOMIN_D",CTy"AMO", 17394 TP[Mop(Cast F1,LL[bVar"b'26"]), 17395 Mop(Cast F1,LL[bVar"b'25"]), 17396 Mop(Cast(FTy 5), 17397 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17398 bVar"b'8",bVar"b'7"]), 17399 Mop(Cast(FTy 5), 17400 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17401 bVar"b'16",bVar"b'15"]), 17402 Mop(Cast(FTy 5), 17403 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17404 bVar"b'21",bVar"b'20"])]))), 17405 (Bop(And,bVar"b'31", 17406 Bop(And,Mop(Not,bVar"b'30"), 17407 Bop(And,bVar"b'29", 17408 Bop(And,Mop(Not,bVar"b'28"), 17409 Bop(And,Mop(Not,bVar"b'27"), 17410 Bop(And,Mop(Not,bVar"b'14"), 17411 Bop(And,bVar"b'13", 17412 Bop(And,bVar"b'12", 17413 Bop(And,bVar"b'5", 17414 Bop(And, 17415 Mop(Not, 17416 bVar"b'4"), 17417 Bop(And, 17418 bVar"b'3", 17419 bVar"b'2"))))))))))), 17420 Call 17421 ("AMO",CTy"instruction", 17422 Call 17423 ("AMOMAX_D",CTy"AMO", 17424 TP[Mop(Cast F1,LL[bVar"b'26"]), 17425 Mop(Cast F1,LL[bVar"b'25"]), 17426 Mop(Cast(FTy 5), 17427 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17428 bVar"b'8",bVar"b'7"]), 17429 Mop(Cast(FTy 5), 17430 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17431 bVar"b'16",bVar"b'15"]), 17432 Mop(Cast(FTy 5), 17433 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17434 bVar"b'21",bVar"b'20"])]))), 17435 (Bop(And,bVar"b'31", 17436 Bop(And,bVar"b'30", 17437 Bop(And,Mop(Not,bVar"b'29"), 17438 Bop(And,Mop(Not,bVar"b'28"), 17439 Bop(And,Mop(Not,bVar"b'27"), 17440 Bop(And,Mop(Not,bVar"b'14"), 17441 Bop(And,bVar"b'13", 17442 Bop(And,bVar"b'12", 17443 Bop(And,bVar"b'5", 17444 Bop(And, 17445 Mop(Not, 17446 bVar"b'4"), 17447 Bop(And, 17448 bVar"b'3", 17449 bVar"b'2"))))))))))), 17450 Call 17451 ("AMO",CTy"instruction", 17452 Call 17453 ("AMOMINU_D",CTy"AMO", 17454 TP[Mop(Cast F1,LL[bVar"b'26"]), 17455 Mop(Cast F1,LL[bVar"b'25"]), 17456 Mop(Cast(FTy 5), 17457 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17458 bVar"b'8",bVar"b'7"]), 17459 Mop(Cast(FTy 5), 17460 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17461 bVar"b'16",bVar"b'15"]), 17462 Mop(Cast(FTy 5), 17463 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17464 bVar"b'21",bVar"b'20"])]))), 17465 (Bop(And,bVar"b'31", 17466 Bop(And,bVar"b'30", 17467 Bop(And,bVar"b'29", 17468 Bop(And,Mop(Not,bVar"b'28"), 17469 Bop(And,Mop(Not,bVar"b'27"), 17470 Bop(And,Mop(Not,bVar"b'14"), 17471 Bop(And,bVar"b'13", 17472 Bop(And,bVar"b'12", 17473 Bop(And,bVar"b'5", 17474 Bop(And, 17475 Mop(Not, 17476 bVar"b'4"), 17477 Bop(And, 17478 bVar"b'3", 17479 bVar"b'2"))))))))))), 17480 Call 17481 ("AMO",CTy"instruction", 17482 Call 17483 ("AMOMAXU_D",CTy"AMO", 17484 TP[Mop(Cast F1,LL[bVar"b'26"]), 17485 Mop(Cast F1,LL[bVar"b'25"]), 17486 Mop(Cast(FTy 5), 17487 LL[bVar"b'11",bVar"b'10",bVar"b'9", 17488 bVar"b'8",bVar"b'7"]), 17489 Mop(Cast(FTy 5), 17490 LL[bVar"b'19",bVar"b'18",bVar"b'17", 17491 bVar"b'16",bVar"b'15"]), 17492 Mop(Cast(FTy 5), 17493 LL[bVar"b'24",bVar"b'23",bVar"b'22", 17494 bVar"b'21",bVar"b'20"])])))], 17495 Const("UnknownInstruction",CTy"instruction")))], 17496 Const("UnknownInstruction",CTy"instruction")))) 17497; 17498val imm_def = Def 17499 ("imm",Var("i",BTy"N"),CC[LS"0x",Mop(Cast sTy,Var("i",BTy"N"))]) 17500; 17501val instr_def = Def 17502 ("instr",sVar"o",Mop(PadRight,TP[LSC #" ",LN 12,sVar"o"])) 17503; 17504val amotype_def = Def 17505 ("amotype",TP[Var("aq",F1),Var("rl",F1)], 17506 CS(TP[Var("aq",F1),Var("rl",F1)], 17507 [(TP[LW(0,1),LW(0,1)],LS""),(TP[LW(1,1),LW(0,1)],LS".aq"), 17508 (TP[LW(0,1),LW(1,1)],LS".rl"),(TP[LW(1,1),LW(1,1)],LS".sc")])) 17509; 17510val pRtype_def = Def 17511 ("pRtype",TP[sVar"o",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 17512 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rd",FTy 5)), 17513 LS", ",Call("reg",sTy,Var("rs1",FTy 5)),LS", ", 17514 Call("reg",sTy,Var("rs2",FTy 5))]) 17515; 17516val pARtype_def = Def 17517 ("pARtype", 17518 TP[sVar"o",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5), 17519 Var("rs2",FTy 5)], 17520 Call 17521 ("pRtype",sTy, 17522 TP[CC[sVar"o",Call("amotype",sTy,TP[Var("aq",F1),Var("rl",F1)])], 17523 Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])) 17524; 17525val pLRtype_def = Def 17526 ("pLRtype", 17527 TP[sVar"o",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5),Var("rs1",FTy 5)], 17528 CC[Call 17529 ("instr",sTy, 17530 CC[sVar"o",Call("amotype",sTy,TP[Var("aq",F1),Var("rl",F1)])]), 17531 LS" ",Call("reg",sTy,Var("rd",FTy 5)),LS", ", 17532 Call("reg",sTy,Var("rs1",FTy 5))]) 17533; 17534val pItype_def = Def 17535 ("pItype",TP[sVar"o",Var("rd",FTy 5),Var("rs1",FTy 5),Var("i",BTy"N")], 17536 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rd",FTy 5)), 17537 LS", ",Call("reg",sTy,Var("rs1",FTy 5)),LS", ", 17538 Call("imm",sTy,Var("i",BTy"N"))]) 17539; 17540val pCSRtype_def = Def 17541 ("pCSRtype", 17542 TP[sVar"o",Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)], 17543 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rd",FTy 5)), 17544 LS", ",Call("reg",sTy,Var("rs1",FTy 5)),LS", ", 17545 Call("csrName",sTy,Var("csr",FTy 12))]) 17546; 17547val pCSRItype_def = Def 17548 ("pCSRItype", 17549 TP[sVar"o",Var("rd",FTy 5),Var("i",BTy"N"),Var("csr",FTy 12)], 17550 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rd",FTy 5)), 17551 LS", ",Call("imm",sTy,Var("i",BTy"N")),LS", ", 17552 Call("csrName",sTy,Var("csr",FTy 12))]) 17553; 17554val pStype_def = Def 17555 ("pStype",TP[sVar"o",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("i",BTy"N")], 17556 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rs2",FTy 5)), 17557 LS", ",Call("reg",sTy,Var("rs1",FTy 5)),LS", ", 17558 Call("imm",sTy,Var("i",BTy"N"))]) 17559; 17560val pSBtype_def = Def 17561 ("pSBtype", 17562 TP[sVar"o",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("i",BTy"N")], 17563 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rs1",FTy 5)), 17564 LS", ",Call("reg",sTy,Var("rs2",FTy 5)),LS", ", 17565 Call("imm",sTy,Bop(Lsl,Var("i",BTy"N"),LN 1))]) 17566; 17567val pUtype_def = Def 17568 ("pUtype",TP[sVar"o",Var("rd",FTy 5),Var("i",BTy"N")], 17569 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rd",FTy 5)), 17570 LS", ",Call("imm",sTy,Var("i",BTy"N"))]) 17571; 17572val pUJtype_def = Def 17573 ("pUJtype",TP[sVar"o",Var("rd",FTy 5),Var("i",BTy"N")], 17574 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rd",FTy 5)), 17575 LS", ",Call("imm",sTy,Bop(Lsl,Var("i",BTy"N"),LN 1))]) 17576; 17577val pN0type_def = Def ("pN0type",sVar"o",Call("instr",sTy,sVar"o")) 17578; 17579val pN1type_def = Def 17580 ("pN1type",TP[sVar"o",Var("r",FTy 5)], 17581 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("r",FTy 5))]) 17582; 17583val pFRtype_def = Def 17584 ("pFRtype", 17585 TP[sVar"o",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)], 17586 CC[Call("instr",sTy,sVar"o"),LS" ",Call("fpreg",sTy,Var("rd",FTy 5)), 17587 LS", ",Call("fpreg",sTy,Var("rs1",FTy 5)),LS", ", 17588 Call("fpreg",sTy,Var("rs2",FTy 5))]) 17589; 17590val pFR1type_def = Def 17591 ("pFR1type",TP[sVar"o",Var("rd",FTy 5),Var("rs",FTy 5)], 17592 CC[Call("instr",sTy,sVar"o"),LS" ",Call("fpreg",sTy,Var("rd",FTy 5)), 17593 LS", ",Call("fpreg",sTy,Var("rs",FTy 5))]) 17594; 17595val pFR3type_def = Def 17596 ("pFR3type", 17597 TP[sVar"o",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 17598 Var("rs3",FTy 5)], 17599 CC[Call("instr",sTy,sVar"o"),LS" ",Call("fpreg",sTy,Var("rd",FTy 5)), 17600 LS", ",Call("fpreg",sTy,Var("rs1",FTy 5)),LS", ", 17601 Call("fpreg",sTy,Var("rs2",FTy 5)),LS", ", 17602 Call("fpreg",sTy,Var("rs3",FTy 5))]) 17603; 17604val pFItype_def = Def 17605 ("pFItype",TP[sVar"o",Var("rd",FTy 5),Var("rs1",FTy 5),Var("i",BTy"N")], 17606 CC[Call("instr",sTy,sVar"o"),LS" ",Call("fpreg",sTy,Var("rd",FTy 5)), 17607 LS", ",Call("reg",sTy,Var("rs1",FTy 5)),LS", ", 17608 Call("imm",sTy,Var("i",BTy"N"))]) 17609; 17610val pFStype_def = Def 17611 ("pFStype", 17612 TP[sVar"o",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("i",BTy"N")], 17613 CC[Call("instr",sTy,sVar"o"),LS" ",Call("fpreg",sTy,Var("rs2",FTy 5)), 17614 LS", ",Call("reg",sTy,Var("rs1",FTy 5)),LS", ", 17615 Call("imm",sTy,Var("i",BTy"N"))]) 17616; 17617val pCFItype_def = Def 17618 ("pCFItype",TP[sVar"o",Var("rd",FTy 5),Var("rs",FTy 5)], 17619 CC[Call("instr",sTy,sVar"o"),LS" ",Call("fpreg",sTy,Var("rd",FTy 5)), 17620 LS", ",Call("reg",sTy,Var("rs",FTy 5))]) 17621; 17622val pCIFtype_def = Def 17623 ("pCIFtype",TP[sVar"o",Var("rd",FTy 5),Var("rs",FTy 5)], 17624 CC[Call("instr",sTy,sVar"o"),LS" ",Call("reg",sTy,Var("rd",FTy 5)), 17625 LS", ",Call("fpreg",sTy,Var("rs",FTy 5))]) 17626; 17627val instructionToString_def = Def 17628 ("instructionToString",Var("i",CTy"instruction"), 17629 CS(Var("i",CTy"instruction"), 17630 [(Call 17631 ("Branch",CTy"instruction", 17632 Call 17633 ("BEQ",CTy"Branch", 17634 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17635 Call 17636 ("pSBtype",sTy, 17637 TP[LS"BEQ",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17638 (Call 17639 ("Branch",CTy"instruction", 17640 Call 17641 ("BNE",CTy"Branch", 17642 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17643 Call 17644 ("pSBtype",sTy, 17645 TP[LS"BNE",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17646 (Call 17647 ("Branch",CTy"instruction", 17648 Call 17649 ("BLT",CTy"Branch", 17650 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17651 Call 17652 ("pSBtype",sTy, 17653 TP[LS"BLT",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17654 (Call 17655 ("Branch",CTy"instruction", 17656 Call 17657 ("BGE",CTy"Branch", 17658 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17659 Call 17660 ("pSBtype",sTy, 17661 TP[LS"BGE",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17662 (Call 17663 ("Branch",CTy"instruction", 17664 Call 17665 ("BLTU",CTy"Branch", 17666 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17667 Call 17668 ("pSBtype",sTy, 17669 TP[LS"BLTU",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17670 (Call 17671 ("Branch",CTy"instruction", 17672 Call 17673 ("BGEU",CTy"Branch", 17674 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17675 Call 17676 ("pSBtype",sTy, 17677 TP[LS"BGEU",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 17678 (Call 17679 ("Branch",CTy"instruction", 17680 Call 17681 ("JALR",CTy"Branch", 17682 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17683 Call 17684 ("pItype",sTy, 17685 TP[LS"JALR",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17686 (Call 17687 ("Branch",CTy"instruction", 17688 Call("JAL",CTy"Branch",TP[Var("rd",FTy 5),Var("imm",FTy 20)])), 17689 Call("pUJtype",sTy,TP[LS"JAL",Var("rd",FTy 5),Var("imm",FTy 20)])), 17690 (Call 17691 ("ArithI",CTy"instruction", 17692 Call("LUI",CTy"ArithI",TP[Var("rd",FTy 5),Var("imm",FTy 20)])), 17693 Call("pUtype",sTy,TP[LS"LUI",Var("rd",FTy 5),Var("imm",FTy 20)])), 17694 (Call 17695 ("ArithI",CTy"instruction", 17696 Call("AUIPC",CTy"ArithI",TP[Var("rd",FTy 5),Var("imm",FTy 20)])), 17697 Call("pUtype",sTy,TP[LS"AUIPC",Var("rd",FTy 5),Var("imm",FTy 20)])), 17698 (Call 17699 ("ArithI",CTy"instruction", 17700 Call 17701 ("ADDI",CTy"ArithI", 17702 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17703 Call 17704 ("pItype",sTy, 17705 TP[LS"ADDI",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17706 (Call 17707 ("Shift",CTy"instruction", 17708 Call 17709 ("SLLI",CTy"Shift", 17710 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 17711 Call 17712 ("pItype",sTy, 17713 TP[LS"SLLI",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 17714 (Call 17715 ("ArithI",CTy"instruction", 17716 Call 17717 ("SLTI",CTy"ArithI", 17718 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17719 Call 17720 ("pItype",sTy, 17721 TP[LS"SLTI",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17722 (Call 17723 ("ArithI",CTy"instruction", 17724 Call 17725 ("SLTIU",CTy"ArithI", 17726 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17727 Call 17728 ("pItype",sTy, 17729 TP[LS"SLTIU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17730 (Call 17731 ("ArithI",CTy"instruction", 17732 Call 17733 ("XORI",CTy"ArithI", 17734 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17735 Call 17736 ("pItype",sTy, 17737 TP[LS"XORI",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17738 (Call 17739 ("Shift",CTy"instruction", 17740 Call 17741 ("SRLI",CTy"Shift", 17742 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 17743 Call 17744 ("pItype",sTy, 17745 TP[LS"SRLI",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 17746 (Call 17747 ("Shift",CTy"instruction", 17748 Call 17749 ("SRAI",CTy"Shift", 17750 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 17751 Call 17752 ("pItype",sTy, 17753 TP[LS"SRAI",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 17754 (Call 17755 ("ArithI",CTy"instruction", 17756 Call 17757 ("ORI",CTy"ArithI", 17758 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17759 Call 17760 ("pItype",sTy, 17761 TP[LS"ORI",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17762 (Call 17763 ("ArithI",CTy"instruction", 17764 Call 17765 ("ANDI",CTy"ArithI", 17766 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17767 Call 17768 ("pItype",sTy, 17769 TP[LS"ANDI",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17770 (Call 17771 ("ArithR",CTy"instruction", 17772 Call 17773 ("ADD",CTy"ArithR", 17774 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17775 Call 17776 ("pRtype",sTy, 17777 TP[LS"ADD",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17778 (Call 17779 ("ArithR",CTy"instruction", 17780 Call 17781 ("SUB",CTy"ArithR", 17782 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17783 Call 17784 ("pRtype",sTy, 17785 TP[LS"SUB",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17786 (Call 17787 ("Shift",CTy"instruction", 17788 Call 17789 ("SLL",CTy"Shift", 17790 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17791 Call 17792 ("pRtype",sTy, 17793 TP[LS"SLL",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17794 (Call 17795 ("ArithR",CTy"instruction", 17796 Call 17797 ("SLT",CTy"ArithR", 17798 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17799 Call 17800 ("pRtype",sTy, 17801 TP[LS"SLT",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17802 (Call 17803 ("ArithR",CTy"instruction", 17804 Call 17805 ("SLTU",CTy"ArithR", 17806 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17807 Call 17808 ("pRtype",sTy, 17809 TP[LS"SLTU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17810 (Call 17811 ("ArithR",CTy"instruction", 17812 Call 17813 ("XOR",CTy"ArithR", 17814 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17815 Call 17816 ("pRtype",sTy, 17817 TP[LS"XOR",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17818 (Call 17819 ("Shift",CTy"instruction", 17820 Call 17821 ("SRL",CTy"Shift", 17822 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17823 Call 17824 ("pRtype",sTy, 17825 TP[LS"SRL",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17826 (Call 17827 ("Shift",CTy"instruction", 17828 Call 17829 ("SRA",CTy"Shift", 17830 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17831 Call 17832 ("pRtype",sTy, 17833 TP[LS"SRA",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17834 (Call 17835 ("ArithR",CTy"instruction", 17836 Call 17837 ("OR",CTy"ArithR", 17838 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17839 Call 17840 ("pRtype",sTy, 17841 TP[LS"OR",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17842 (Call 17843 ("ArithR",CTy"instruction", 17844 Call 17845 ("AND",CTy"ArithR", 17846 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17847 Call 17848 ("pRtype",sTy, 17849 TP[LS"AND",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17850 (Call 17851 ("ArithI",CTy"instruction", 17852 Call 17853 ("ADDIW",CTy"ArithI", 17854 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17855 Call 17856 ("pItype",sTy, 17857 TP[LS"ADDIW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 17858 (Call 17859 ("Shift",CTy"instruction", 17860 Call 17861 ("SLLIW",CTy"Shift", 17862 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 17863 Call 17864 ("pItype",sTy, 17865 TP[LS"SLLIW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 17866 (Call 17867 ("Shift",CTy"instruction", 17868 Call 17869 ("SRLIW",CTy"Shift", 17870 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 17871 Call 17872 ("pItype",sTy, 17873 TP[LS"SRLIW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 17874 (Call 17875 ("Shift",CTy"instruction", 17876 Call 17877 ("SRAIW",CTy"Shift", 17878 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 17879 Call 17880 ("pItype",sTy, 17881 TP[LS"SRAIW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 17882 (Call 17883 ("ArithR",CTy"instruction", 17884 Call 17885 ("ADDW",CTy"ArithR", 17886 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17887 Call 17888 ("pRtype",sTy, 17889 TP[LS"ADDW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17890 (Call 17891 ("ArithR",CTy"instruction", 17892 Call 17893 ("SUBW",CTy"ArithR", 17894 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17895 Call 17896 ("pRtype",sTy, 17897 TP[LS"SUBW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17898 (Call 17899 ("Shift",CTy"instruction", 17900 Call 17901 ("SLLW",CTy"Shift", 17902 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17903 Call 17904 ("pRtype",sTy, 17905 TP[LS"SLLW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17906 (Call 17907 ("Shift",CTy"instruction", 17908 Call 17909 ("SRLW",CTy"Shift", 17910 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17911 Call 17912 ("pRtype",sTy, 17913 TP[LS"SRLW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17914 (Call 17915 ("Shift",CTy"instruction", 17916 Call 17917 ("SRAW",CTy"Shift", 17918 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17919 Call 17920 ("pRtype",sTy, 17921 TP[LS"SRAW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17922 (Call 17923 ("MulDiv",CTy"instruction", 17924 Call 17925 ("MUL",CTy"MulDiv", 17926 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17927 Call 17928 ("pRtype",sTy, 17929 TP[LS"MUL",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17930 (Call 17931 ("MulDiv",CTy"instruction", 17932 Call 17933 ("MULH",CTy"MulDiv", 17934 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17935 Call 17936 ("pRtype",sTy, 17937 TP[LS"MULH",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17938 (Call 17939 ("MulDiv",CTy"instruction", 17940 Call 17941 ("MULHSU",CTy"MulDiv", 17942 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17943 Call 17944 ("pRtype",sTy, 17945 TP[LS"MULHSU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17946 (Call 17947 ("MulDiv",CTy"instruction", 17948 Call 17949 ("MULHU",CTy"MulDiv", 17950 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17951 Call 17952 ("pRtype",sTy, 17953 TP[LS"MULHU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17954 (Call 17955 ("MulDiv",CTy"instruction", 17956 Call 17957 ("DIV",CTy"MulDiv", 17958 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17959 Call 17960 ("pRtype",sTy, 17961 TP[LS"DIV",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17962 (Call 17963 ("MulDiv",CTy"instruction", 17964 Call 17965 ("DIVU",CTy"MulDiv", 17966 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17967 Call 17968 ("pRtype",sTy, 17969 TP[LS"DIVU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17970 (Call 17971 ("MulDiv",CTy"instruction", 17972 Call 17973 ("REM",CTy"MulDiv", 17974 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17975 Call 17976 ("pRtype",sTy, 17977 TP[LS"REM",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17978 (Call 17979 ("MulDiv",CTy"instruction", 17980 Call 17981 ("REMU",CTy"MulDiv", 17982 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17983 Call 17984 ("pRtype",sTy, 17985 TP[LS"REMU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17986 (Call 17987 ("MulDiv",CTy"instruction", 17988 Call 17989 ("MULW",CTy"MulDiv", 17990 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17991 Call 17992 ("pRtype",sTy, 17993 TP[LS"MULW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17994 (Call 17995 ("MulDiv",CTy"instruction", 17996 Call 17997 ("DIVW",CTy"MulDiv", 17998 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 17999 Call 18000 ("pRtype",sTy, 18001 TP[LS"DIVW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18002 (Call 18003 ("MulDiv",CTy"instruction", 18004 Call 18005 ("DIVUW",CTy"MulDiv", 18006 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18007 Call 18008 ("pRtype",sTy, 18009 TP[LS"DIVUW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18010 (Call 18011 ("MulDiv",CTy"instruction", 18012 Call 18013 ("REMW",CTy"MulDiv", 18014 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18015 Call 18016 ("pRtype",sTy, 18017 TP[LS"REMW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18018 (Call 18019 ("MulDiv",CTy"instruction", 18020 Call 18021 ("REMUW",CTy"MulDiv", 18022 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18023 Call 18024 ("pRtype",sTy, 18025 TP[LS"REMUW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18026 (Call 18027 ("Load",CTy"instruction", 18028 Call 18029 ("LB",CTy"Load", 18030 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18031 Call 18032 ("pItype",sTy, 18033 TP[LS"LB",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18034 (Call 18035 ("Load",CTy"instruction", 18036 Call 18037 ("LH",CTy"Load", 18038 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18039 Call 18040 ("pItype",sTy, 18041 TP[LS"LH",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18042 (Call 18043 ("Load",CTy"instruction", 18044 Call 18045 ("LW",CTy"Load", 18046 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18047 Call 18048 ("pItype",sTy, 18049 TP[LS"LW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18050 (Call 18051 ("Load",CTy"instruction", 18052 Call 18053 ("LD",CTy"Load", 18054 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18055 Call 18056 ("pItype",sTy, 18057 TP[LS"LD",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18058 (Call 18059 ("Load",CTy"instruction", 18060 Call 18061 ("LBU",CTy"Load", 18062 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18063 Call 18064 ("pItype",sTy, 18065 TP[LS"LBU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18066 (Call 18067 ("Load",CTy"instruction", 18068 Call 18069 ("LHU",CTy"Load", 18070 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18071 Call 18072 ("pItype",sTy, 18073 TP[LS"LHU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18074 (Call 18075 ("Load",CTy"instruction", 18076 Call 18077 ("LWU",CTy"Load", 18078 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18079 Call 18080 ("pItype",sTy, 18081 TP[LS"LWU",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18082 (Call 18083 ("Store",CTy"instruction", 18084 Call 18085 ("SB",CTy"Store", 18086 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18087 Call 18088 ("pStype",sTy, 18089 TP[LS"SB",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18090 (Call 18091 ("Store",CTy"instruction", 18092 Call 18093 ("SH",CTy"Store", 18094 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18095 Call 18096 ("pStype",sTy, 18097 TP[LS"SH",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18098 (Call 18099 ("Store",CTy"instruction", 18100 Call 18101 ("SW",CTy"Store", 18102 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18103 Call 18104 ("pStype",sTy, 18105 TP[LS"SW",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18106 (Call 18107 ("Store",CTy"instruction", 18108 Call 18109 ("SD",CTy"Store", 18110 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18111 Call 18112 ("pStype",sTy, 18113 TP[LS"SD",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18114 (Call 18115 ("FENCE",CTy"instruction", 18116 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("pred",F4), 18117 Var("succ",F4)]),Call("pN0type",sTy,LS"FENCE")), 18118 (Call 18119 ("FENCE_I",CTy"instruction", 18120 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)]), 18121 Call("pN0type",sTy,LS"FENCE.I")), 18122 (Call 18123 ("FArith",CTy"instruction", 18124 Call 18125 ("FADD_S",CTy"FArith", 18126 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18127 Var("frm",FTy 3)])), 18128 Call 18129 ("pFRtype",sTy, 18130 TP[LS"FADD.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18131 (Call 18132 ("FArith",CTy"instruction", 18133 Call 18134 ("FSUB_S",CTy"FArith", 18135 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18136 Var("frm",FTy 3)])), 18137 Call 18138 ("pFRtype",sTy, 18139 TP[LS"FSUB.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18140 (Call 18141 ("FArith",CTy"instruction", 18142 Call 18143 ("FMUL_S",CTy"FArith", 18144 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18145 Var("frm",FTy 3)])), 18146 Call 18147 ("pFRtype",sTy, 18148 TP[LS"FMUL.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18149 (Call 18150 ("FArith",CTy"instruction", 18151 Call 18152 ("FDIV_S",CTy"FArith", 18153 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18154 Var("frm",FTy 3)])), 18155 Call 18156 ("pFRtype",sTy, 18157 TP[LS"FDIV.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18158 (Call 18159 ("FArith",CTy"instruction", 18160 Call 18161 ("FSQRT_S",CTy"FArith", 18162 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18163 Call 18164 ("pFR1type",sTy,TP[LS"FSQRT.S",Var("rd",FTy 5),Var("rs",FTy 5)])), 18165 (Call 18166 ("FArith",CTy"instruction", 18167 Call 18168 ("FMIN_S",CTy"FArith", 18169 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18170 Call 18171 ("pFRtype",sTy, 18172 TP[LS"FMIN.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18173 (Call 18174 ("FArith",CTy"instruction", 18175 Call 18176 ("FMAX_S",CTy"FArith", 18177 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18178 Call 18179 ("pFRtype",sTy, 18180 TP[LS"FMAX.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18181 (Call 18182 ("FArith",CTy"instruction", 18183 Call 18184 ("FEQ_S",CTy"FArith", 18185 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18186 Call 18187 ("pFRtype",sTy, 18188 TP[LS"FEQ.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18189 (Call 18190 ("FArith",CTy"instruction", 18191 Call 18192 ("FLT_S",CTy"FArith", 18193 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18194 Call 18195 ("pFRtype",sTy, 18196 TP[LS"FLT.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18197 (Call 18198 ("FArith",CTy"instruction", 18199 Call 18200 ("FLE_S",CTy"FArith", 18201 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18202 Call 18203 ("pFRtype",sTy, 18204 TP[LS"FLE.S",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18205 (Call 18206 ("FArith",CTy"instruction", 18207 Call 18208 ("FMADD_S",CTy"FArith", 18209 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18210 Var("rs3",FTy 5),Var("frm",FTy 3)])), 18211 Call 18212 ("pFR3type",sTy, 18213 TP[LS"FMADD.S",Var("rd",FTy 5),Var("rs1",FTy 5), 18214 Var("rs2",FTy 5),Var("rs3",FTy 5)])), 18215 (Call 18216 ("FArith",CTy"instruction", 18217 Call 18218 ("FMSUB_S",CTy"FArith", 18219 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18220 Var("rs3",FTy 5),Var("frm",FTy 3)])), 18221 Call 18222 ("pFR3type",sTy, 18223 TP[LS"FMSUB.S",Var("rd",FTy 5),Var("rs1",FTy 5), 18224 Var("rs2",FTy 5),Var("rs3",FTy 5)])), 18225 (Call 18226 ("FArith",CTy"instruction", 18227 Call 18228 ("FNMADD_S",CTy"FArith", 18229 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18230 Var("rs3",FTy 5),Var("frm",FTy 3)])), 18231 Call 18232 ("pFR3type",sTy, 18233 TP[LS"FNMADD.S",Var("rd",FTy 5),Var("rs1",FTy 5), 18234 Var("rs2",FTy 5),Var("rs3",FTy 5)])), 18235 (Call 18236 ("FArith",CTy"instruction", 18237 Call 18238 ("FNMSUB_S",CTy"FArith", 18239 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18240 Var("rs3",FTy 5),Var("frm",FTy 3)])), 18241 Call 18242 ("pFR3type",sTy, 18243 TP[LS"FNMSUB.S",Var("rd",FTy 5),Var("rs1",FTy 5), 18244 Var("rs2",FTy 5),Var("rs3",FTy 5)])), 18245 (Call 18246 ("FArith",CTy"instruction", 18247 Call 18248 ("FADD_D",CTy"FArith", 18249 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18250 Var("frm",FTy 3)])), 18251 Call 18252 ("pFRtype",sTy, 18253 TP[LS"FADD.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18254 (Call 18255 ("FArith",CTy"instruction", 18256 Call 18257 ("FSUB_D",CTy"FArith", 18258 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18259 Var("frm",FTy 3)])), 18260 Call 18261 ("pFRtype",sTy, 18262 TP[LS"FSUB.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18263 (Call 18264 ("FArith",CTy"instruction", 18265 Call 18266 ("FMUL_D",CTy"FArith", 18267 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18268 Var("frm",FTy 3)])), 18269 Call 18270 ("pFRtype",sTy, 18271 TP[LS"FMUL.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18272 (Call 18273 ("FArith",CTy"instruction", 18274 Call 18275 ("FDIV_D",CTy"FArith", 18276 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18277 Var("frm",FTy 3)])), 18278 Call 18279 ("pFRtype",sTy, 18280 TP[LS"FDIV.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18281 (Call 18282 ("FArith",CTy"instruction", 18283 Call 18284 ("FSQRT_D",CTy"FArith", 18285 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18286 Call 18287 ("pFR1type",sTy,TP[LS"FSQRT.D",Var("rd",FTy 5),Var("rs",FTy 5)])), 18288 (Call 18289 ("FArith",CTy"instruction", 18290 Call 18291 ("FMIN_D",CTy"FArith", 18292 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18293 Call 18294 ("pFRtype",sTy, 18295 TP[LS"FMIN.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18296 (Call 18297 ("FArith",CTy"instruction", 18298 Call 18299 ("FMAX_D",CTy"FArith", 18300 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18301 Call 18302 ("pFRtype",sTy, 18303 TP[LS"FMAX.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18304 (Call 18305 ("FArith",CTy"instruction", 18306 Call 18307 ("FEQ_D",CTy"FArith", 18308 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18309 Call 18310 ("pFRtype",sTy, 18311 TP[LS"FEQ.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18312 (Call 18313 ("FArith",CTy"instruction", 18314 Call 18315 ("FLT_D",CTy"FArith", 18316 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18317 Call 18318 ("pFRtype",sTy, 18319 TP[LS"FLT.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18320 (Call 18321 ("FArith",CTy"instruction", 18322 Call 18323 ("FLE_D",CTy"FArith", 18324 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18325 Call 18326 ("pFRtype",sTy, 18327 TP[LS"FLE.D",Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18328 (Call 18329 ("FArith",CTy"instruction", 18330 Call 18331 ("FMADD_D",CTy"FArith", 18332 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18333 Var("rs3",FTy 5),Var("frm",FTy 3)])), 18334 Call 18335 ("pFR3type",sTy, 18336 TP[LS"FMADD.D",Var("rd",FTy 5),Var("rs1",FTy 5), 18337 Var("rs2",FTy 5),Var("rs3",FTy 5)])), 18338 (Call 18339 ("FArith",CTy"instruction", 18340 Call 18341 ("FMSUB_D",CTy"FArith", 18342 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18343 Var("rs3",FTy 5),Var("frm",FTy 3)])), 18344 Call 18345 ("pFR3type",sTy, 18346 TP[LS"FMSUB.D",Var("rd",FTy 5),Var("rs1",FTy 5), 18347 Var("rs2",FTy 5),Var("rs3",FTy 5)])), 18348 (Call 18349 ("FArith",CTy"instruction", 18350 Call 18351 ("FNMADD_D",CTy"FArith", 18352 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18353 Var("rs3",FTy 5),Var("frm",FTy 3)])), 18354 Call 18355 ("pFR3type",sTy, 18356 TP[LS"FNMADD.D",Var("rd",FTy 5),Var("rs1",FTy 5), 18357 Var("rs2",FTy 5),Var("rs3",FTy 5)])), 18358 (Call 18359 ("FArith",CTy"instruction", 18360 Call 18361 ("FNMSUB_D",CTy"FArith", 18362 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 18363 Var("rs3",FTy 5),Var("frm",FTy 3)])), 18364 Call 18365 ("pFR3type",sTy, 18366 TP[LS"FNMSUB.D",Var("rd",FTy 5),Var("rs1",FTy 5), 18367 Var("rs2",FTy 5),Var("rs3",FTy 5)])), 18368 (Call 18369 ("FConv",CTy"instruction", 18370 Call 18371 ("FSGNJ_S",CTy"FConv", 18372 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18373 Call 18374 ("pFRtype",sTy, 18375 TP[LS"FSGNJ.S",Var("rd",FTy 5),Var("rs1",FTy 5), 18376 Var("rs2",FTy 5)])), 18377 (Call 18378 ("FConv",CTy"instruction", 18379 Call 18380 ("FSGNJN_S",CTy"FConv", 18381 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18382 Call 18383 ("pFRtype",sTy, 18384 TP[LS"FSGNJN.S",Var("rd",FTy 5),Var("rs1",FTy 5), 18385 Var("rs2",FTy 5)])), 18386 (Call 18387 ("FConv",CTy"instruction", 18388 Call 18389 ("FSGNJX_S",CTy"FConv", 18390 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18391 Call 18392 ("pFRtype",sTy, 18393 TP[LS"FSGNJX.S",Var("rd",FTy 5),Var("rs1",FTy 5), 18394 Var("rs2",FTy 5)])), 18395 (Call 18396 ("FConv",CTy"instruction", 18397 Call 18398 ("FCVT_W_S",CTy"FConv", 18399 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18400 Call 18401 ("pCIFtype",sTy,TP[LS"FCVT.W.S",Var("rd",FTy 5),Var("rs",FTy 5)])), 18402 (Call 18403 ("FConv",CTy"instruction", 18404 Call 18405 ("FCVT_WU_S",CTy"FConv", 18406 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18407 Call 18408 ("pCIFtype",sTy, 18409 TP[LS"FCVT.WU.S",Var("rd",FTy 5),Var("rs",FTy 5)])), 18410 (Call 18411 ("FConv",CTy"instruction", 18412 Call("FMV_X_S",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 18413 Call 18414 ("pCIFtype",sTy,TP[LS"FMV.X.S",Var("rd",FTy 5),Var("rs",FTy 5)])), 18415 (Call 18416 ("FConv",CTy"instruction", 18417 Call("FCLASS_S",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 18418 Call 18419 ("pCIFtype",sTy,TP[LS"FCLASS.S",Var("rd",FTy 5),Var("rs",FTy 5)])), 18420 (Call 18421 ("FConv",CTy"instruction", 18422 Call 18423 ("FCVT_S_W",CTy"FConv", 18424 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18425 Call 18426 ("pCFItype",sTy,TP[LS"FCVT.S.W",Var("rd",FTy 5),Var("rs",FTy 5)])), 18427 (Call 18428 ("FConv",CTy"instruction", 18429 Call 18430 ("FCVT_S_WU",CTy"FConv", 18431 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18432 Call 18433 ("pCFItype",sTy, 18434 TP[LS"FCVT.S.WU",Var("rd",FTy 5),Var("rs",FTy 5)])), 18435 (Call 18436 ("FConv",CTy"instruction", 18437 Call("FMV_S_X",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 18438 Call 18439 ("pCFItype",sTy,TP[LS"FMV.S.X",Var("rd",FTy 5),Var("rs",FTy 5)])), 18440 (Call 18441 ("FConv",CTy"instruction", 18442 Call 18443 ("FSGNJ_D",CTy"FConv", 18444 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18445 Call 18446 ("pFRtype",sTy, 18447 TP[LS"FSGNJ.D",Var("rd",FTy 5),Var("rs1",FTy 5), 18448 Var("rs2",FTy 5)])), 18449 (Call 18450 ("FConv",CTy"instruction", 18451 Call 18452 ("FSGNJN_D",CTy"FConv", 18453 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18454 Call 18455 ("pFRtype",sTy, 18456 TP[LS"FSGNJN.D",Var("rd",FTy 5),Var("rs1",FTy 5), 18457 Var("rs2",FTy 5)])), 18458 (Call 18459 ("FConv",CTy"instruction", 18460 Call 18461 ("FSGNJX_D",CTy"FConv", 18462 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18463 Call 18464 ("pFRtype",sTy, 18465 TP[LS"FSGNJX.D",Var("rd",FTy 5),Var("rs1",FTy 5), 18466 Var("rs2",FTy 5)])), 18467 (Call 18468 ("FConv",CTy"instruction", 18469 Call 18470 ("FCVT_W_D",CTy"FConv", 18471 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18472 Call 18473 ("pCIFtype",sTy,TP[LS"FCVT.W.D",Var("rd",FTy 5),Var("rs",FTy 5)])), 18474 (Call 18475 ("FConv",CTy"instruction", 18476 Call 18477 ("FCVT_WU_D",CTy"FConv", 18478 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18479 Call 18480 ("pCIFtype",sTy, 18481 TP[LS"FCVT.WU.D",Var("rd",FTy 5),Var("rs",FTy 5)])), 18482 (Call 18483 ("FConv",CTy"instruction", 18484 Call("FCLASS_D",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 18485 Call 18486 ("pCIFtype",sTy,TP[LS"FCLASS.D",Var("rd",FTy 5),Var("rs",FTy 5)])), 18487 (Call 18488 ("FConv",CTy"instruction", 18489 Call 18490 ("FCVT_D_W",CTy"FConv", 18491 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18492 Call 18493 ("pCFItype",sTy,TP[LS"FCVT.D.W",Var("rd",FTy 5),Var("rs",FTy 5)])), 18494 (Call 18495 ("FConv",CTy"instruction", 18496 Call 18497 ("FCVT_D_WU",CTy"FConv", 18498 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18499 Call 18500 ("pCFItype",sTy, 18501 TP[LS"FCVT.D.WU",Var("rd",FTy 5),Var("rs",FTy 5)])), 18502 (Call 18503 ("FConv",CTy"instruction", 18504 Call 18505 ("FCVT_L_S",CTy"FConv", 18506 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18507 Call 18508 ("pCIFtype",sTy,TP[LS"FCVT.L.S",Var("rd",FTy 5),Var("rs",FTy 5)])), 18509 (Call 18510 ("FConv",CTy"instruction", 18511 Call 18512 ("FCVT_LU_S",CTy"FConv", 18513 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18514 Call 18515 ("pCIFtype",sTy, 18516 TP[LS"FCVT.LU.S",Var("rd",FTy 5),Var("rs",FTy 5)])), 18517 (Call 18518 ("FConv",CTy"instruction", 18519 Call 18520 ("FCVT_S_L",CTy"FConv", 18521 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18522 Call 18523 ("pCFItype",sTy,TP[LS"FCVT.S.L",Var("rd",FTy 5),Var("rs",FTy 5)])), 18524 (Call 18525 ("FConv",CTy"instruction", 18526 Call 18527 ("FCVT_S_LU",CTy"FConv", 18528 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18529 Call 18530 ("pCFItype",sTy, 18531 TP[LS"FCVT.S.LU",Var("rd",FTy 5),Var("rs",FTy 5)])), 18532 (Call 18533 ("FConv",CTy"instruction", 18534 Call 18535 ("FCVT_L_D",CTy"FConv", 18536 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18537 Call 18538 ("pCIFtype",sTy,TP[LS"FCVT.L.D",Var("rd",FTy 5),Var("rs",FTy 5)])), 18539 (Call 18540 ("FConv",CTy"instruction", 18541 Call 18542 ("FCVT_LU_D",CTy"FConv", 18543 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18544 Call 18545 ("pCIFtype",sTy, 18546 TP[LS"FCVT.LU.D",Var("rd",FTy 5),Var("rs",FTy 5)])), 18547 (Call 18548 ("FConv",CTy"instruction", 18549 Call("FMV_X_D",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 18550 Call 18551 ("pCIFtype",sTy,TP[LS"FMV.X.D",Var("rd",FTy 5),Var("rs",FTy 5)])), 18552 (Call 18553 ("FConv",CTy"instruction", 18554 Call 18555 ("FCVT_D_L",CTy"FConv", 18556 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18557 Call 18558 ("pCFItype",sTy,TP[LS"FCVT.D.L",Var("rd",FTy 5),Var("rs",FTy 5)])), 18559 (Call 18560 ("FConv",CTy"instruction", 18561 Call 18562 ("FCVT_D_LU",CTy"FConv", 18563 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18564 Call 18565 ("pCFItype",sTy, 18566 TP[LS"FCVT.D.LU",Var("rd",FTy 5),Var("rs",FTy 5)])), 18567 (Call 18568 ("FConv",CTy"instruction", 18569 Call("FMV_D_X",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 18570 Call 18571 ("pCFItype",sTy,TP[LS"FMV.D.X",Var("rd",FTy 5),Var("rs",FTy 5)])), 18572 (Call 18573 ("FConv",CTy"instruction", 18574 Call 18575 ("FCVT_D_S",CTy"FConv", 18576 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18577 Call 18578 ("pCFItype",sTy,TP[LS"FCVT.D.S",Var("rd",FTy 5),Var("rs",FTy 5)])), 18579 (Call 18580 ("FConv",CTy"instruction", 18581 Call 18582 ("FCVT_S_D",CTy"FConv", 18583 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 18584 Call 18585 ("pCFItype",sTy,TP[LS"FCVT.S.D",Var("rd",FTy 5),Var("rs",FTy 5)])), 18586 (Call 18587 ("FPLoad",CTy"instruction", 18588 Call 18589 ("FLW",CTy"FPLoad", 18590 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18591 Call 18592 ("pFItype",sTy, 18593 TP[LS"FLW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18594 (Call 18595 ("FPLoad",CTy"instruction", 18596 Call 18597 ("FLD",CTy"FPLoad", 18598 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18599 Call 18600 ("pFItype",sTy, 18601 TP[LS"FLD",Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 18602 (Call 18603 ("FPStore",CTy"instruction", 18604 Call 18605 ("FSW",CTy"FPStore", 18606 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18607 Call 18608 ("pFStype",sTy, 18609 TP[LS"FSW",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18610 (Call 18611 ("FPStore",CTy"instruction", 18612 Call 18613 ("FSD",CTy"FPStore", 18614 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18615 Call 18616 ("pFStype",sTy, 18617 TP[LS"FSD",Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18618 (Call 18619 ("AMO",CTy"instruction", 18620 Call 18621 ("LR_W",CTy"AMO", 18622 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18623 Var("rs1",FTy 5)])), 18624 Call 18625 ("pLRtype",sTy, 18626 TP[LS"LR.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18627 Var("rs1",FTy 5)])), 18628 (Call 18629 ("AMO",CTy"instruction", 18630 Call 18631 ("LR_D",CTy"AMO", 18632 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18633 Var("rs1",FTy 5)])), 18634 Call 18635 ("pLRtype",sTy, 18636 TP[LS"LR.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18637 Var("rs1",FTy 5)])), 18638 (Call 18639 ("AMO",CTy"instruction", 18640 Call 18641 ("SC_W",CTy"AMO", 18642 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18643 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18644 Call 18645 ("pARtype",sTy, 18646 TP[LS"SC.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18647 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18648 (Call 18649 ("AMO",CTy"instruction", 18650 Call 18651 ("SC_D",CTy"AMO", 18652 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18653 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18654 Call 18655 ("pARtype",sTy, 18656 TP[LS"SC.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18657 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18658 (Call 18659 ("AMO",CTy"instruction", 18660 Call 18661 ("AMOSWAP_W",CTy"AMO", 18662 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18663 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18664 Call 18665 ("pARtype",sTy, 18666 TP[LS"AMOSWAP.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18667 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18668 (Call 18669 ("AMO",CTy"instruction", 18670 Call 18671 ("AMOADD_W",CTy"AMO", 18672 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18673 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18674 Call 18675 ("pARtype",sTy, 18676 TP[LS"AMOADD.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18677 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18678 (Call 18679 ("AMO",CTy"instruction", 18680 Call 18681 ("AMOXOR_W",CTy"AMO", 18682 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18683 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18684 Call 18685 ("pARtype",sTy, 18686 TP[LS"AMOXOR.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18687 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18688 (Call 18689 ("AMO",CTy"instruction", 18690 Call 18691 ("AMOAND_W",CTy"AMO", 18692 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18693 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18694 Call 18695 ("pARtype",sTy, 18696 TP[LS"AMOAND.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18697 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18698 (Call 18699 ("AMO",CTy"instruction", 18700 Call 18701 ("AMOOR_W",CTy"AMO", 18702 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18703 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18704 Call 18705 ("pARtype",sTy, 18706 TP[LS"AMOOR.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18707 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18708 (Call 18709 ("AMO",CTy"instruction", 18710 Call 18711 ("AMOMIN_W",CTy"AMO", 18712 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18713 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18714 Call 18715 ("pARtype",sTy, 18716 TP[LS"AMOMIN.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18717 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18718 (Call 18719 ("AMO",CTy"instruction", 18720 Call 18721 ("AMOMAX_W",CTy"AMO", 18722 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18723 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18724 Call 18725 ("pARtype",sTy, 18726 TP[LS"AMOMAX.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18727 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18728 (Call 18729 ("AMO",CTy"instruction", 18730 Call 18731 ("AMOMINU_W",CTy"AMO", 18732 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18733 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18734 Call 18735 ("pARtype",sTy, 18736 TP[LS"AMOMINU.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18737 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18738 (Call 18739 ("AMO",CTy"instruction", 18740 Call 18741 ("AMOMAXU_W",CTy"AMO", 18742 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18743 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18744 Call 18745 ("pARtype",sTy, 18746 TP[LS"AMOMAXU.W",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18747 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18748 (Call 18749 ("AMO",CTy"instruction", 18750 Call 18751 ("AMOSWAP_D",CTy"AMO", 18752 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18753 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18754 Call 18755 ("pARtype",sTy, 18756 TP[LS"AMOSWAP.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18757 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18758 (Call 18759 ("AMO",CTy"instruction", 18760 Call 18761 ("AMOADD_D",CTy"AMO", 18762 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18763 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18764 Call 18765 ("pARtype",sTy, 18766 TP[LS"AMOADD.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18767 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18768 (Call 18769 ("AMO",CTy"instruction", 18770 Call 18771 ("AMOXOR_D",CTy"AMO", 18772 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18773 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18774 Call 18775 ("pARtype",sTy, 18776 TP[LS"AMOXOR.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18777 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18778 (Call 18779 ("AMO",CTy"instruction", 18780 Call 18781 ("AMOAND_D",CTy"AMO", 18782 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18783 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18784 Call 18785 ("pARtype",sTy, 18786 TP[LS"AMOAND.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18787 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18788 (Call 18789 ("AMO",CTy"instruction", 18790 Call 18791 ("AMOOR_D",CTy"AMO", 18792 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18793 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18794 Call 18795 ("pARtype",sTy, 18796 TP[LS"AMOOR.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18797 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18798 (Call 18799 ("AMO",CTy"instruction", 18800 Call 18801 ("AMOMIN_D",CTy"AMO", 18802 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18803 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18804 Call 18805 ("pARtype",sTy, 18806 TP[LS"AMOMIN.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18807 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18808 (Call 18809 ("AMO",CTy"instruction", 18810 Call 18811 ("AMOMAX_D",CTy"AMO", 18812 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18813 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18814 Call 18815 ("pARtype",sTy, 18816 TP[LS"AMOMAX.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18817 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18818 (Call 18819 ("AMO",CTy"instruction", 18820 Call 18821 ("AMOMINU_D",CTy"AMO", 18822 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18823 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18824 Call 18825 ("pARtype",sTy, 18826 TP[LS"AMOMINU.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18827 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18828 (Call 18829 ("AMO",CTy"instruction", 18830 Call 18831 ("AMOMAXU_D",CTy"AMO", 18832 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18833 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18834 Call 18835 ("pARtype",sTy, 18836 TP[LS"AMOMAXU.D",Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 18837 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 18838 (Call("System",CTy"instruction",Const("ECALL",CTy"System")), 18839 Call("pN0type",sTy,LS"ECALL")), 18840 (Call("System",CTy"instruction",Const("EBREAK",CTy"System")), 18841 Call("pN0type",sTy,LS"EBREAK")), 18842 (Call("System",CTy"instruction",Const("ERET",CTy"System")), 18843 Call("pN0type",sTy,LS"ERET")), 18844 (Call("System",CTy"instruction",Const("MRTS",CTy"System")), 18845 Call("pN0type",sTy,LS"MRTS")), 18846 (Call("System",CTy"instruction",Const("WFI",CTy"System")), 18847 Call("pN0type",sTy,LS"WFI")), 18848 (Call 18849 ("System",CTy"instruction", 18850 Call 18851 ("CSRRW",CTy"System", 18852 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 18853 Call 18854 ("pCSRtype",sTy, 18855 TP[LS"CSRRW",Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 18856 (Call 18857 ("System",CTy"instruction", 18858 Call 18859 ("CSRRS",CTy"System", 18860 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 18861 Call 18862 ("pCSRtype",sTy, 18863 TP[LS"CSRRS",Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 18864 (Call 18865 ("System",CTy"instruction", 18866 Call 18867 ("CSRRC",CTy"System", 18868 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 18869 Call 18870 ("pCSRtype",sTy, 18871 TP[LS"CSRRC",Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 18872 (Call 18873 ("System",CTy"instruction", 18874 Call 18875 ("CSRRWI",CTy"System", 18876 TP[Var("rd",FTy 5),Var("imm",FTy 5),Var("csr",FTy 12)])), 18877 Call 18878 ("pCSRItype",sTy, 18879 TP[LS"CSRRWI",Var("rd",FTy 5),Var("imm",FTy 5), 18880 Var("csr",FTy 12)])), 18881 (Call 18882 ("System",CTy"instruction", 18883 Call 18884 ("CSRRSI",CTy"System", 18885 TP[Var("rd",FTy 5),Var("imm",FTy 5),Var("csr",FTy 12)])), 18886 Call 18887 ("pCSRItype",sTy, 18888 TP[LS"CSRRSI",Var("rd",FTy 5),Var("imm",FTy 5), 18889 Var("csr",FTy 12)])), 18890 (Call 18891 ("System",CTy"instruction", 18892 Call 18893 ("CSRRCI",CTy"System", 18894 TP[Var("rd",FTy 5),Var("imm",FTy 5),Var("csr",FTy 12)])), 18895 Call 18896 ("pCSRItype",sTy, 18897 TP[LS"CSRRCI",Var("rd",FTy 5),Var("imm",FTy 5), 18898 Var("csr",FTy 12)])), 18899 (Call 18900 ("System",CTy"instruction", 18901 Call("SFENCE_VM",CTy"System",Var("rs1",FTy 5))), 18902 Call("pN1type",sTy,TP[LS"SFENCE.VM",Var("rs1",FTy 5)])), 18903 (Const("UnknownInstruction",CTy"instruction"), 18904 Call("pN0type",sTy,LS"UNKNOWN")), 18905 (Call 18906 ("Internal",CTy"instruction", 18907 Call("FETCH_MISALIGNED",CTy"Internal",AVar F64)), 18908 Call("pN0type",sTy,LS"FETCH_MISALIGNED")), 18909 (Call 18910 ("Internal",CTy"instruction", 18911 Call("FETCH_FAULT",CTy"Internal",AVar F64)), 18912 Call("pN0type",sTy,LS"FETCH_FAULT"))])) 18913; 18914val Rtype_def = Def 18915 ("Rtype", 18916 TP[Var("o",FTy 7),Var("f3",FTy 3),Var("rd",FTy 5),Var("rs1",FTy 5), 18917 Var("rs2",FTy 5),Var("f7",FTy 7)], 18918 CC[Var("f7",FTy 7),Var("rs2",FTy 5),Var("rs1",FTy 5),Var("f3",FTy 3), 18919 Var("rd",FTy 5),Var("o",FTy 7)]) 18920; 18921val R4type_def = Def 18922 ("R4type", 18923 TP[Var("o",FTy 7),Var("f3",FTy 3),Var("rd",FTy 5),Var("rs1",FTy 5), 18924 Var("rs2",FTy 5),Var("rs3",FTy 5),Var("f2",FTy 2)], 18925 CC[Var("rs3",FTy 5),Var("f2",FTy 2),Var("rs2",FTy 5),Var("rs1",FTy 5), 18926 Var("f3",FTy 3),Var("rd",FTy 5),Var("o",FTy 7)]) 18927; 18928val Itype_def = Def 18929 ("Itype", 18930 TP[Var("o",FTy 7),Var("f3",FTy 3),Var("rd",FTy 5),Var("rs1",FTy 5), 18931 Var("imm",FTy 12)], 18932 CC[Var("imm",FTy 12),Var("rs1",FTy 5),Var("f3",FTy 3),Var("rd",FTy 5), 18933 Var("o",FTy 7)]) 18934; 18935val Stype_def = Def 18936 ("Stype", 18937 TP[Var("o",FTy 7),Var("f3",FTy 3),Var("rs1",FTy 5),Var("rs2",FTy 5), 18938 Var("imm",FTy 12)], 18939 CC[EX(Var("imm",FTy 12),LN 11,LN 5,FTy 7),Var("rs2",FTy 5), 18940 Var("rs1",FTy 5),Var("f3",FTy 3), 18941 EX(Var("imm",FTy 12),LN 4,LN 0,FTy 5),Var("o",FTy 7)]) 18942; 18943val SBtype_def = Def 18944 ("SBtype", 18945 TP[Var("o",FTy 7),Var("f3",FTy 3),Var("rs1",FTy 5),Var("rs2",FTy 5), 18946 Var("imm",FTy 12)], 18947 CC[Mop(Cast F1,Bop(Bit,Var("imm",FTy 12),LN 11)), 18948 EX(Var("imm",FTy 12),LN 9,LN 4,FTy 6),Var("rs2",FTy 5), 18949 Var("rs1",FTy 5),Var("f3",FTy 3),EX(Var("imm",FTy 12),LN 3,LN 0,F4), 18950 Mop(Cast F1,Bop(Bit,Var("imm",FTy 12),LN 10)),Var("o",FTy 7)]) 18951; 18952val Utype_def = Def 18953 ("Utype",TP[Var("o",FTy 7),Var("rd",FTy 5),Var("imm",FTy 20)], 18954 CC[Var("imm",FTy 20),Var("rd",FTy 5),Var("o",FTy 7)]) 18955; 18956val UJtype_def = Def 18957 ("UJtype",TP[Var("o",FTy 7),Var("rd",FTy 5),Var("imm",FTy 20)], 18958 CC[Mop(Cast F1,Bop(Bit,Var("imm",FTy 20),LN 19)), 18959 EX(Var("imm",FTy 20),LN 9,LN 0,FTy 10), 18960 Mop(Cast F1,Bop(Bit,Var("imm",FTy 20),LN 10)), 18961 EX(Var("imm",FTy 20),LN 18,LN 11,F8),Var("rd",FTy 5),Var("o",FTy 7)]) 18962; 18963val opc_def = Def 18964 ("opc",Var("code",F8),CC[EX(Var("code",F8),LN 4,LN 0,FTy 5),LW(3,2)]) 18965; 18966val amofunc_def = Def 18967 ("amofunc",TP[Var("code",FTy 5),Var("aq",F1),Var("rl",F1)], 18968 CC[Var("code",FTy 5),Var("aq",F1),Var("rl",F1)]) 18969; 18970val Encode_def = Def 18971 ("Encode",Var("i",CTy"instruction"), 18972 CS(Var("i",CTy"instruction"), 18973 [(Call 18974 ("Branch",CTy"instruction", 18975 Call 18976 ("BEQ",CTy"Branch", 18977 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18978 Call 18979 ("SBtype",F32, 18980 TP[Call("opc",FTy 7,LW(24,8)),LW(0,3),Var("rs1",FTy 5), 18981 Var("rs2",FTy 5),Var("imm",FTy 12)])), 18982 (Call 18983 ("Branch",CTy"instruction", 18984 Call 18985 ("BNE",CTy"Branch", 18986 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18987 Call 18988 ("SBtype",F32, 18989 TP[Call("opc",FTy 7,LW(24,8)),LW(1,3),Var("rs1",FTy 5), 18990 Var("rs2",FTy 5),Var("imm",FTy 12)])), 18991 (Call 18992 ("Branch",CTy"instruction", 18993 Call 18994 ("BLT",CTy"Branch", 18995 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 18996 Call 18997 ("SBtype",F32, 18998 TP[Call("opc",FTy 7,LW(24,8)),LW(4,3),Var("rs1",FTy 5), 18999 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19000 (Call 19001 ("Branch",CTy"instruction", 19002 Call 19003 ("BGE",CTy"Branch", 19004 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19005 Call 19006 ("SBtype",F32, 19007 TP[Call("opc",FTy 7,LW(24,8)),LW(5,3),Var("rs1",FTy 5), 19008 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19009 (Call 19010 ("Branch",CTy"instruction", 19011 Call 19012 ("BLTU",CTy"Branch", 19013 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19014 Call 19015 ("SBtype",F32, 19016 TP[Call("opc",FTy 7,LW(24,8)),LW(6,3),Var("rs1",FTy 5), 19017 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19018 (Call 19019 ("Branch",CTy"instruction", 19020 Call 19021 ("BGEU",CTy"Branch", 19022 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19023 Call 19024 ("SBtype",F32, 19025 TP[Call("opc",FTy 7,LW(24,8)),LW(7,3),Var("rs1",FTy 5), 19026 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19027 (Call 19028 ("Branch",CTy"instruction", 19029 Call 19030 ("JALR",CTy"Branch", 19031 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19032 Call 19033 ("Itype",F32, 19034 TP[Call("opc",FTy 7,LW(25,8)),LW(0,3),Var("rd",FTy 5), 19035 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19036 (Call 19037 ("Branch",CTy"instruction", 19038 Call("JAL",CTy"Branch",TP[Var("rd",FTy 5),Var("imm",FTy 20)])), 19039 Call 19040 ("UJtype",F32, 19041 TP[Call("opc",FTy 7,LW(27,8)),Var("rd",FTy 5),Var("imm",FTy 20)])), 19042 (Call 19043 ("ArithI",CTy"instruction", 19044 Call("LUI",CTy"ArithI",TP[Var("rd",FTy 5),Var("imm",FTy 20)])), 19045 Call 19046 ("Utype",F32, 19047 TP[Call("opc",FTy 7,LW(13,8)),Var("rd",FTy 5),Var("imm",FTy 20)])), 19048 (Call 19049 ("ArithI",CTy"instruction", 19050 Call("AUIPC",CTy"ArithI",TP[Var("rd",FTy 5),Var("imm",FTy 20)])), 19051 Call 19052 ("Utype",F32, 19053 TP[Call("opc",FTy 7,LW(5,8)),Var("rd",FTy 5),Var("imm",FTy 20)])), 19054 (Call 19055 ("ArithI",CTy"instruction", 19056 Call 19057 ("ADDI",CTy"ArithI", 19058 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19059 Call 19060 ("Itype",F32, 19061 TP[Call("opc",FTy 7,LW(4,8)),LW(0,3),Var("rd",FTy 5), 19062 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19063 (Call 19064 ("Shift",CTy"instruction", 19065 Call 19066 ("SLLI",CTy"Shift", 19067 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 19068 Call 19069 ("Itype",F32, 19070 TP[Call("opc",FTy 7,LW(4,8)),LW(1,3),Var("rd",FTy 5), 19071 Var("rs1",FTy 5),CC[LW(0,6),Var("imm",FTy 6)]])), 19072 (Call 19073 ("ArithI",CTy"instruction", 19074 Call 19075 ("SLTI",CTy"ArithI", 19076 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19077 Call 19078 ("Itype",F32, 19079 TP[Call("opc",FTy 7,LW(4,8)),LW(2,3),Var("rd",FTy 5), 19080 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19081 (Call 19082 ("ArithI",CTy"instruction", 19083 Call 19084 ("SLTIU",CTy"ArithI", 19085 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19086 Call 19087 ("Itype",F32, 19088 TP[Call("opc",FTy 7,LW(4,8)),LW(3,3),Var("rd",FTy 5), 19089 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19090 (Call 19091 ("ArithI",CTy"instruction", 19092 Call 19093 ("XORI",CTy"ArithI", 19094 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19095 Call 19096 ("Itype",F32, 19097 TP[Call("opc",FTy 7,LW(4,8)),LW(4,3),Var("rd",FTy 5), 19098 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19099 (Call 19100 ("Shift",CTy"instruction", 19101 Call 19102 ("SRLI",CTy"Shift", 19103 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 19104 Call 19105 ("Itype",F32, 19106 TP[Call("opc",FTy 7,LW(4,8)),LW(5,3),Var("rd",FTy 5), 19107 Var("rs1",FTy 5),CC[LW(0,6),Var("imm",FTy 6)]])), 19108 (Call 19109 ("Shift",CTy"instruction", 19110 Call 19111 ("SRAI",CTy"Shift", 19112 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 6)])), 19113 Call 19114 ("Itype",F32, 19115 TP[Call("opc",FTy 7,LW(4,8)),LW(5,3),Var("rd",FTy 5), 19116 Var("rs1",FTy 5),CC[LW(16,6),Var("imm",FTy 6)]])), 19117 (Call 19118 ("ArithI",CTy"instruction", 19119 Call 19120 ("ORI",CTy"ArithI", 19121 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19122 Call 19123 ("Itype",F32, 19124 TP[Call("opc",FTy 7,LW(4,8)),LW(6,3),Var("rd",FTy 5), 19125 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19126 (Call 19127 ("ArithI",CTy"instruction", 19128 Call 19129 ("ANDI",CTy"ArithI", 19130 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19131 Call 19132 ("Itype",F32, 19133 TP[Call("opc",FTy 7,LW(4,8)),LW(7,3),Var("rd",FTy 5), 19134 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19135 (Call 19136 ("ArithR",CTy"instruction", 19137 Call 19138 ("ADD",CTy"ArithR", 19139 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19140 Call 19141 ("Rtype",F32, 19142 TP[Call("opc",FTy 7,LW(12,8)),LW(0,3),Var("rd",FTy 5), 19143 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19144 (Call 19145 ("ArithR",CTy"instruction", 19146 Call 19147 ("SUB",CTy"ArithR", 19148 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19149 Call 19150 ("Rtype",F32, 19151 TP[Call("opc",FTy 7,LW(12,8)),LW(0,3),Var("rd",FTy 5), 19152 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(32,7)])), 19153 (Call 19154 ("Shift",CTy"instruction", 19155 Call 19156 ("SLL",CTy"Shift", 19157 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19158 Call 19159 ("Rtype",F32, 19160 TP[Call("opc",FTy 7,LW(12,8)),LW(1,3),Var("rd",FTy 5), 19161 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19162 (Call 19163 ("ArithR",CTy"instruction", 19164 Call 19165 ("SLT",CTy"ArithR", 19166 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19167 Call 19168 ("Rtype",F32, 19169 TP[Call("opc",FTy 7,LW(12,8)),LW(2,3),Var("rd",FTy 5), 19170 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19171 (Call 19172 ("ArithR",CTy"instruction", 19173 Call 19174 ("SLTU",CTy"ArithR", 19175 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19176 Call 19177 ("Rtype",F32, 19178 TP[Call("opc",FTy 7,LW(12,8)),LW(3,3),Var("rd",FTy 5), 19179 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19180 (Call 19181 ("ArithR",CTy"instruction", 19182 Call 19183 ("XOR",CTy"ArithR", 19184 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19185 Call 19186 ("Rtype",F32, 19187 TP[Call("opc",FTy 7,LW(12,8)),LW(4,3),Var("rd",FTy 5), 19188 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19189 (Call 19190 ("Shift",CTy"instruction", 19191 Call 19192 ("SRL",CTy"Shift", 19193 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19194 Call 19195 ("Rtype",F32, 19196 TP[Call("opc",FTy 7,LW(12,8)),LW(5,3),Var("rd",FTy 5), 19197 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19198 (Call 19199 ("Shift",CTy"instruction", 19200 Call 19201 ("SRA",CTy"Shift", 19202 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19203 Call 19204 ("Rtype",F32, 19205 TP[Call("opc",FTy 7,LW(12,8)),LW(5,3),Var("rd",FTy 5), 19206 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(32,7)])), 19207 (Call 19208 ("ArithR",CTy"instruction", 19209 Call 19210 ("OR",CTy"ArithR", 19211 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19212 Call 19213 ("Rtype",F32, 19214 TP[Call("opc",FTy 7,LW(12,8)),LW(6,3),Var("rd",FTy 5), 19215 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19216 (Call 19217 ("ArithR",CTy"instruction", 19218 Call 19219 ("AND",CTy"ArithR", 19220 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19221 Call 19222 ("Rtype",F32, 19223 TP[Call("opc",FTy 7,LW(12,8)),LW(7,3),Var("rd",FTy 5), 19224 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19225 (Call 19226 ("ArithI",CTy"instruction", 19227 Call 19228 ("ADDIW",CTy"ArithI", 19229 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19230 Call 19231 ("Itype",F32, 19232 TP[Call("opc",FTy 7,LW(6,8)),LW(0,3),Var("rd",FTy 5), 19233 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19234 (Call 19235 ("Shift",CTy"instruction", 19236 Call 19237 ("SLLIW",CTy"Shift", 19238 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 19239 Call 19240 ("Itype",F32, 19241 TP[Call("opc",FTy 7,LW(6,8)),LW(1,3),Var("rd",FTy 5), 19242 Var("rs1",FTy 5),CC[LW(0,7),Var("imm",FTy 5)]])), 19243 (Call 19244 ("Shift",CTy"instruction", 19245 Call 19246 ("SRLIW",CTy"Shift", 19247 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 19248 Call 19249 ("Itype",F32, 19250 TP[Call("opc",FTy 7,LW(6,8)),LW(5,3),Var("rd",FTy 5), 19251 Var("rs1",FTy 5),CC[LW(0,7),Var("imm",FTy 5)]])), 19252 (Call 19253 ("Shift",CTy"instruction", 19254 Call 19255 ("SRAIW",CTy"Shift", 19256 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 5)])), 19257 Call 19258 ("Itype",F32, 19259 TP[Call("opc",FTy 7,LW(6,8)),LW(5,3),Var("rd",FTy 5), 19260 Var("rs1",FTy 5),CC[LW(32,7),Var("imm",FTy 5)]])), 19261 (Call 19262 ("ArithR",CTy"instruction", 19263 Call 19264 ("ADDW",CTy"ArithR", 19265 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19266 Call 19267 ("Rtype",F32, 19268 TP[Call("opc",FTy 7,LW(14,8)),LW(0,3),Var("rd",FTy 5), 19269 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19270 (Call 19271 ("ArithR",CTy"instruction", 19272 Call 19273 ("SUBW",CTy"ArithR", 19274 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19275 Call 19276 ("Rtype",F32, 19277 TP[Call("opc",FTy 7,LW(14,8)),LW(0,3),Var("rd",FTy 5), 19278 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(32,7)])), 19279 (Call 19280 ("Shift",CTy"instruction", 19281 Call 19282 ("SLLW",CTy"Shift", 19283 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19284 Call 19285 ("Rtype",F32, 19286 TP[Call("opc",FTy 7,LW(14,8)),LW(1,3),Var("rd",FTy 5), 19287 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19288 (Call 19289 ("Shift",CTy"instruction", 19290 Call 19291 ("SRLW",CTy"Shift", 19292 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19293 Call 19294 ("Rtype",F32, 19295 TP[Call("opc",FTy 7,LW(14,8)),LW(5,3),Var("rd",FTy 5), 19296 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19297 (Call 19298 ("Shift",CTy"instruction", 19299 Call 19300 ("SRAW",CTy"Shift", 19301 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19302 Call 19303 ("Rtype",F32, 19304 TP[Call("opc",FTy 7,LW(14,8)),LW(5,3),Var("rd",FTy 5), 19305 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(32,7)])), 19306 (Call 19307 ("MulDiv",CTy"instruction", 19308 Call 19309 ("MUL",CTy"MulDiv", 19310 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19311 Call 19312 ("Rtype",F32, 19313 TP[Call("opc",FTy 7,LW(12,8)),LW(0,3),Var("rd",FTy 5), 19314 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19315 (Call 19316 ("MulDiv",CTy"instruction", 19317 Call 19318 ("MULH",CTy"MulDiv", 19319 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19320 Call 19321 ("Rtype",F32, 19322 TP[Call("opc",FTy 7,LW(12,8)),LW(1,3),Var("rd",FTy 5), 19323 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19324 (Call 19325 ("MulDiv",CTy"instruction", 19326 Call 19327 ("MULHSU",CTy"MulDiv", 19328 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19329 Call 19330 ("Rtype",F32, 19331 TP[Call("opc",FTy 7,LW(12,8)),LW(2,3),Var("rd",FTy 5), 19332 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19333 (Call 19334 ("MulDiv",CTy"instruction", 19335 Call 19336 ("MULHU",CTy"MulDiv", 19337 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19338 Call 19339 ("Rtype",F32, 19340 TP[Call("opc",FTy 7,LW(12,8)),LW(3,3),Var("rd",FTy 5), 19341 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19342 (Call 19343 ("MulDiv",CTy"instruction", 19344 Call 19345 ("DIV",CTy"MulDiv", 19346 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19347 Call 19348 ("Rtype",F32, 19349 TP[Call("opc",FTy 7,LW(12,8)),LW(4,3),Var("rd",FTy 5), 19350 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19351 (Call 19352 ("MulDiv",CTy"instruction", 19353 Call 19354 ("DIVU",CTy"MulDiv", 19355 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19356 Call 19357 ("Rtype",F32, 19358 TP[Call("opc",FTy 7,LW(12,8)),LW(5,3),Var("rd",FTy 5), 19359 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19360 (Call 19361 ("MulDiv",CTy"instruction", 19362 Call 19363 ("REM",CTy"MulDiv", 19364 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19365 Call 19366 ("Rtype",F32, 19367 TP[Call("opc",FTy 7,LW(12,8)),LW(6,3),Var("rd",FTy 5), 19368 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19369 (Call 19370 ("MulDiv",CTy"instruction", 19371 Call 19372 ("REMU",CTy"MulDiv", 19373 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19374 Call 19375 ("Rtype",F32, 19376 TP[Call("opc",FTy 7,LW(12,8)),LW(7,3),Var("rd",FTy 5), 19377 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19378 (Call 19379 ("MulDiv",CTy"instruction", 19380 Call 19381 ("MULW",CTy"MulDiv", 19382 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19383 Call 19384 ("Rtype",F32, 19385 TP[Call("opc",FTy 7,LW(14,8)),LW(0,3),Var("rd",FTy 5), 19386 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19387 (Call 19388 ("MulDiv",CTy"instruction", 19389 Call 19390 ("DIVW",CTy"MulDiv", 19391 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19392 Call 19393 ("Rtype",F32, 19394 TP[Call("opc",FTy 7,LW(14,8)),LW(4,3),Var("rd",FTy 5), 19395 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19396 (Call 19397 ("MulDiv",CTy"instruction", 19398 Call 19399 ("DIVUW",CTy"MulDiv", 19400 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19401 Call 19402 ("Rtype",F32, 19403 TP[Call("opc",FTy 7,LW(14,8)),LW(5,3),Var("rd",FTy 5), 19404 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19405 (Call 19406 ("MulDiv",CTy"instruction", 19407 Call 19408 ("REMW",CTy"MulDiv", 19409 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19410 Call 19411 ("Rtype",F32, 19412 TP[Call("opc",FTy 7,LW(14,8)),LW(6,3),Var("rd",FTy 5), 19413 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19414 (Call 19415 ("MulDiv",CTy"instruction", 19416 Call 19417 ("REMUW",CTy"MulDiv", 19418 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19419 Call 19420 ("Rtype",F32, 19421 TP[Call("opc",FTy 7,LW(14,8)),LW(7,3),Var("rd",FTy 5), 19422 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19423 (Call 19424 ("Load",CTy"instruction", 19425 Call 19426 ("LB",CTy"Load", 19427 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19428 Call 19429 ("Itype",F32, 19430 TP[Call("opc",FTy 7,LW(0,8)),LW(0,3),Var("rd",FTy 5), 19431 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19432 (Call 19433 ("Load",CTy"instruction", 19434 Call 19435 ("LH",CTy"Load", 19436 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19437 Call 19438 ("Itype",F32, 19439 TP[Call("opc",FTy 7,LW(0,8)),LW(1,3),Var("rd",FTy 5), 19440 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19441 (Call 19442 ("Load",CTy"instruction", 19443 Call 19444 ("LW",CTy"Load", 19445 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19446 Call 19447 ("Itype",F32, 19448 TP[Call("opc",FTy 7,LW(0,8)),LW(2,3),Var("rd",FTy 5), 19449 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19450 (Call 19451 ("Load",CTy"instruction", 19452 Call 19453 ("LD",CTy"Load", 19454 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19455 Call 19456 ("Itype",F32, 19457 TP[Call("opc",FTy 7,LW(0,8)),LW(3,3),Var("rd",FTy 5), 19458 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19459 (Call 19460 ("Load",CTy"instruction", 19461 Call 19462 ("LBU",CTy"Load", 19463 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19464 Call 19465 ("Itype",F32, 19466 TP[Call("opc",FTy 7,LW(0,8)),LW(4,3),Var("rd",FTy 5), 19467 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19468 (Call 19469 ("Load",CTy"instruction", 19470 Call 19471 ("LHU",CTy"Load", 19472 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19473 Call 19474 ("Itype",F32, 19475 TP[Call("opc",FTy 7,LW(0,8)),LW(5,3),Var("rd",FTy 5), 19476 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19477 (Call 19478 ("Load",CTy"instruction", 19479 Call 19480 ("LWU",CTy"Load", 19481 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19482 Call 19483 ("Itype",F32, 19484 TP[Call("opc",FTy 7,LW(0,8)),LW(6,3),Var("rd",FTy 5), 19485 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19486 (Call 19487 ("Store",CTy"instruction", 19488 Call 19489 ("SB",CTy"Store", 19490 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19491 Call 19492 ("Stype",F32, 19493 TP[Call("opc",FTy 7,LW(8,8)),LW(0,3),Var("rs1",FTy 5), 19494 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19495 (Call 19496 ("Store",CTy"instruction", 19497 Call 19498 ("SH",CTy"Store", 19499 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19500 Call 19501 ("Stype",F32, 19502 TP[Call("opc",FTy 7,LW(8,8)),LW(1,3),Var("rs1",FTy 5), 19503 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19504 (Call 19505 ("Store",CTy"instruction", 19506 Call 19507 ("SW",CTy"Store", 19508 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19509 Call 19510 ("Stype",F32, 19511 TP[Call("opc",FTy 7,LW(8,8)),LW(2,3),Var("rs1",FTy 5), 19512 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19513 (Call 19514 ("Store",CTy"instruction", 19515 Call 19516 ("SD",CTy"Store", 19517 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19518 Call 19519 ("Stype",F32, 19520 TP[Call("opc",FTy 7,LW(8,8)),LW(3,3),Var("rs1",FTy 5), 19521 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19522 (Call 19523 ("FENCE",CTy"instruction", 19524 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("pred",F4), 19525 Var("succ",F4)]), 19526 Call 19527 ("Itype",F32, 19528 TP[Call("opc",FTy 7,LW(3,8)),LW(0,3),Var("rd",FTy 5), 19529 Var("rs1",FTy 5),CC[LW(0,4),Var("pred",F4),Var("succ",F4)]])), 19530 (Call 19531 ("FENCE_I",CTy"instruction", 19532 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)]), 19533 Call 19534 ("Itype",F32, 19535 TP[Call("opc",FTy 7,LW(3,8)),LW(1,3),Var("rd",FTy 5), 19536 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19537 (Call 19538 ("FArith",CTy"instruction", 19539 Call 19540 ("FADD_S",CTy"FArith", 19541 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19542 Var("frm",FTy 3)])), 19543 Call 19544 ("Rtype",F32, 19545 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19546 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(0,7)])), 19547 (Call 19548 ("FArith",CTy"instruction", 19549 Call 19550 ("FSUB_S",CTy"FArith", 19551 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19552 Var("frm",FTy 3)])), 19553 Call 19554 ("Rtype",F32, 19555 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19556 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(4,7)])), 19557 (Call 19558 ("FArith",CTy"instruction", 19559 Call 19560 ("FMUL_S",CTy"FArith", 19561 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19562 Var("frm",FTy 3)])), 19563 Call 19564 ("Rtype",F32, 19565 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19566 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(8,7)])), 19567 (Call 19568 ("FArith",CTy"instruction", 19569 Call 19570 ("FDIV_S",CTy"FArith", 19571 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19572 Var("frm",FTy 3)])), 19573 Call 19574 ("Rtype",F32, 19575 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19576 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(12,7)])), 19577 (Call 19578 ("FArith",CTy"instruction", 19579 Call 19580 ("FSQRT_S",CTy"FArith", 19581 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19582 Call 19583 ("Rtype",F32, 19584 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19585 Var("rs",FTy 5),LW(0,5),LW(44,7)])), 19586 (Call 19587 ("FArith",CTy"instruction", 19588 Call 19589 ("FMIN_S",CTy"FArith", 19590 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19591 Call 19592 ("Rtype",F32, 19593 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 19594 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(20,7)])), 19595 (Call 19596 ("FArith",CTy"instruction", 19597 Call 19598 ("FMAX_S",CTy"FArith", 19599 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19600 Call 19601 ("Rtype",F32, 19602 TP[Call("opc",FTy 7,LW(20,8)),LW(1,3),Var("rd",FTy 5), 19603 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(20,7)])), 19604 (Call 19605 ("FArith",CTy"instruction", 19606 Call 19607 ("FEQ_S",CTy"FArith", 19608 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19609 Call 19610 ("Rtype",F32, 19611 TP[Call("opc",FTy 7,LW(20,8)),LW(2,3),Var("rd",FTy 5), 19612 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(80,7)])), 19613 (Call 19614 ("FArith",CTy"instruction", 19615 Call 19616 ("FLT_S",CTy"FArith", 19617 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19618 Call 19619 ("Rtype",F32, 19620 TP[Call("opc",FTy 7,LW(20,8)),LW(1,3),Var("rd",FTy 5), 19621 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(80,7)])), 19622 (Call 19623 ("FArith",CTy"instruction", 19624 Call 19625 ("FLE_S",CTy"FArith", 19626 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19627 Call 19628 ("Rtype",F32, 19629 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 19630 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(80,7)])), 19631 (Call 19632 ("FArith",CTy"instruction", 19633 Call 19634 ("FADD_D",CTy"FArith", 19635 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19636 Var("frm",FTy 3)])), 19637 Call 19638 ("Rtype",F32, 19639 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19640 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(1,7)])), 19641 (Call 19642 ("FArith",CTy"instruction", 19643 Call 19644 ("FSUB_D",CTy"FArith", 19645 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19646 Var("frm",FTy 3)])), 19647 Call 19648 ("Rtype",F32, 19649 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19650 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(5,7)])), 19651 (Call 19652 ("FArith",CTy"instruction", 19653 Call 19654 ("FMUL_D",CTy"FArith", 19655 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19656 Var("frm",FTy 3)])), 19657 Call 19658 ("Rtype",F32, 19659 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19660 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(9,7)])), 19661 (Call 19662 ("FArith",CTy"instruction", 19663 Call 19664 ("FDIV_D",CTy"FArith", 19665 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19666 Var("frm",FTy 3)])), 19667 Call 19668 ("Rtype",F32, 19669 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19670 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(13,7)])), 19671 (Call 19672 ("FArith",CTy"instruction", 19673 Call 19674 ("FSQRT_D",CTy"FArith", 19675 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19676 Call 19677 ("Rtype",F32, 19678 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19679 Var("rs",FTy 5),LW(0,5),LW(45,7)])), 19680 (Call 19681 ("FArith",CTy"instruction", 19682 Call 19683 ("FMIN_D",CTy"FArith", 19684 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19685 Call 19686 ("Rtype",F32, 19687 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 19688 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(21,7)])), 19689 (Call 19690 ("FArith",CTy"instruction", 19691 Call 19692 ("FMAX_D",CTy"FArith", 19693 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19694 Call 19695 ("Rtype",F32, 19696 TP[Call("opc",FTy 7,LW(20,8)),LW(1,3),Var("rd",FTy 5), 19697 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(21,7)])), 19698 (Call 19699 ("FArith",CTy"instruction", 19700 Call 19701 ("FEQ_D",CTy"FArith", 19702 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19703 Call 19704 ("Rtype",F32, 19705 TP[Call("opc",FTy 7,LW(20,8)),LW(2,3),Var("rd",FTy 5), 19706 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(81,7)])), 19707 (Call 19708 ("FArith",CTy"instruction", 19709 Call 19710 ("FLT_D",CTy"FArith", 19711 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19712 Call 19713 ("Rtype",F32, 19714 TP[Call("opc",FTy 7,LW(20,8)),LW(1,3),Var("rd",FTy 5), 19715 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(81,7)])), 19716 (Call 19717 ("FArith",CTy"instruction", 19718 Call 19719 ("FLE_D",CTy"FArith", 19720 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19721 Call 19722 ("Rtype",F32, 19723 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 19724 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(81,7)])), 19725 (Call 19726 ("FPLoad",CTy"instruction", 19727 Call 19728 ("FLW",CTy"FPLoad", 19729 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19730 Call 19731 ("Itype",F32, 19732 TP[Call("opc",FTy 7,LW(1,8)),LW(2,3),Var("rd",FTy 5), 19733 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19734 (Call 19735 ("FPLoad",CTy"instruction", 19736 Call 19737 ("FLD",CTy"FPLoad", 19738 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("imm",FTy 12)])), 19739 Call 19740 ("Itype",F32, 19741 TP[Call("opc",FTy 7,LW(1,8)),LW(3,3),Var("rd",FTy 5), 19742 Var("rs1",FTy 5),Var("imm",FTy 12)])), 19743 (Call 19744 ("FPStore",CTy"instruction", 19745 Call 19746 ("FSW",CTy"FPStore", 19747 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19748 Call 19749 ("Stype",F32, 19750 TP[Call("opc",FTy 7,LW(9,8)),LW(2,3),Var("rs1",FTy 5), 19751 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19752 (Call 19753 ("FPStore",CTy"instruction", 19754 Call 19755 ("FSD",CTy"FPStore", 19756 TP[Var("rs1",FTy 5),Var("rs2",FTy 5),Var("imm",FTy 12)])), 19757 Call 19758 ("Stype",F32, 19759 TP[Call("opc",FTy 7,LW(9,8)),LW(3,3),Var("rs1",FTy 5), 19760 Var("rs2",FTy 5),Var("imm",FTy 12)])), 19761 (Call 19762 ("FArith",CTy"instruction", 19763 Call 19764 ("FMADD_S",CTy"FArith", 19765 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19766 Var("rs3",FTy 5),Var("frm",FTy 3)])), 19767 Call 19768 ("R4type",F32, 19769 TP[Call("opc",FTy 7,LW(16,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19770 Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5),LW(0,2)])), 19771 (Call 19772 ("FArith",CTy"instruction", 19773 Call 19774 ("FMSUB_S",CTy"FArith", 19775 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19776 Var("rs3",FTy 5),Var("frm",FTy 3)])), 19777 Call 19778 ("R4type",F32, 19779 TP[Call("opc",FTy 7,LW(17,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19780 Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5),LW(0,2)])), 19781 (Call 19782 ("FArith",CTy"instruction", 19783 Call 19784 ("FNMSUB_S",CTy"FArith", 19785 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19786 Var("rs3",FTy 5),Var("frm",FTy 3)])), 19787 Call 19788 ("R4type",F32, 19789 TP[Call("opc",FTy 7,LW(18,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19790 Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5),LW(0,2)])), 19791 (Call 19792 ("FArith",CTy"instruction", 19793 Call 19794 ("FNMADD_S",CTy"FArith", 19795 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19796 Var("rs3",FTy 5),Var("frm",FTy 3)])), 19797 Call 19798 ("R4type",F32, 19799 TP[Call("opc",FTy 7,LW(19,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19800 Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5),LW(0,2)])), 19801 (Call 19802 ("FArith",CTy"instruction", 19803 Call 19804 ("FMADD_D",CTy"FArith", 19805 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19806 Var("rs3",FTy 5),Var("frm",FTy 3)])), 19807 Call 19808 ("R4type",F32, 19809 TP[Call("opc",FTy 7,LW(16,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19810 Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5),LW(1,2)])), 19811 (Call 19812 ("FArith",CTy"instruction", 19813 Call 19814 ("FMSUB_D",CTy"FArith", 19815 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19816 Var("rs3",FTy 5),Var("frm",FTy 3)])), 19817 Call 19818 ("R4type",F32, 19819 TP[Call("opc",FTy 7,LW(17,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19820 Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5),LW(1,2)])), 19821 (Call 19822 ("FArith",CTy"instruction", 19823 Call 19824 ("FNMSUB_D",CTy"FArith", 19825 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19826 Var("rs3",FTy 5),Var("frm",FTy 3)])), 19827 Call 19828 ("R4type",F32, 19829 TP[Call("opc",FTy 7,LW(18,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19830 Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5),LW(1,2)])), 19831 (Call 19832 ("FArith",CTy"instruction", 19833 Call 19834 ("FNMADD_D",CTy"FArith", 19835 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5), 19836 Var("rs3",FTy 5),Var("frm",FTy 3)])), 19837 Call 19838 ("R4type",F32, 19839 TP[Call("opc",FTy 7,LW(19,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19840 Var("rs1",FTy 5),Var("rs2",FTy 5),Var("rs3",FTy 5),LW(1,2)])), 19841 (Call 19842 ("FConv",CTy"instruction", 19843 Call 19844 ("FSGNJ_S",CTy"FConv", 19845 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19846 Call 19847 ("Rtype",F32, 19848 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 19849 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(16,7)])), 19850 (Call 19851 ("FConv",CTy"instruction", 19852 Call 19853 ("FSGNJN_S",CTy"FConv", 19854 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19855 Call 19856 ("Rtype",F32, 19857 TP[Call("opc",FTy 7,LW(20,8)),LW(1,3),Var("rd",FTy 5), 19858 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(16,7)])), 19859 (Call 19860 ("FConv",CTy"instruction", 19861 Call 19862 ("FSGNJX_S",CTy"FConv", 19863 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19864 Call 19865 ("Rtype",F32, 19866 TP[Call("opc",FTy 7,LW(20,8)),LW(2,3),Var("rd",FTy 5), 19867 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(16,7)])), 19868 (Call 19869 ("FConv",CTy"instruction", 19870 Call 19871 ("FCVT_W_S",CTy"FConv", 19872 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19873 Call 19874 ("Rtype",F32, 19875 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19876 Var("rs",FTy 5),LW(0,5),LW(96,7)])), 19877 (Call 19878 ("FConv",CTy"instruction", 19879 Call 19880 ("FCVT_WU_S",CTy"FConv", 19881 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19882 Call 19883 ("Rtype",F32, 19884 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19885 Var("rs",FTy 5),LW(1,5),LW(96,7)])), 19886 (Call 19887 ("FConv",CTy"instruction", 19888 Call("FMV_X_S",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 19889 Call 19890 ("Rtype",F32, 19891 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 19892 Var("rs",FTy 5),LW(0,5),LW(112,7)])), 19893 (Call 19894 ("FConv",CTy"instruction", 19895 Call("FCLASS_S",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 19896 Call 19897 ("Rtype",F32, 19898 TP[Call("opc",FTy 7,LW(20,8)),LW(1,3),Var("rd",FTy 5), 19899 Var("rs",FTy 5),LW(0,5),LW(112,7)])), 19900 (Call 19901 ("FConv",CTy"instruction", 19902 Call 19903 ("FCVT_S_W",CTy"FConv", 19904 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19905 Call 19906 ("Rtype",F32, 19907 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19908 Var("rs",FTy 5),LW(0,5),LW(104,7)])), 19909 (Call 19910 ("FConv",CTy"instruction", 19911 Call 19912 ("FCVT_S_WU",CTy"FConv", 19913 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19914 Call 19915 ("Rtype",F32, 19916 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19917 Var("rs",FTy 5),LW(1,5),LW(104,7)])), 19918 (Call 19919 ("FConv",CTy"instruction", 19920 Call("FMV_S_X",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 19921 Call 19922 ("Rtype",F32, 19923 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 19924 Var("rs",FTy 5),LW(0,5),LW(120,7)])), 19925 (Call 19926 ("FConv",CTy"instruction", 19927 Call 19928 ("FSGNJ_D",CTy"FConv", 19929 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19930 Call 19931 ("Rtype",F32, 19932 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 19933 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(17,7)])), 19934 (Call 19935 ("FConv",CTy"instruction", 19936 Call 19937 ("FSGNJN_D",CTy"FConv", 19938 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19939 Call 19940 ("Rtype",F32, 19941 TP[Call("opc",FTy 7,LW(20,8)),LW(1,3),Var("rd",FTy 5), 19942 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(17,7)])), 19943 (Call 19944 ("FConv",CTy"instruction", 19945 Call 19946 ("FSGNJX_D",CTy"FConv", 19947 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("rs2",FTy 5)])), 19948 Call 19949 ("Rtype",F32, 19950 TP[Call("opc",FTy 7,LW(20,8)),LW(2,3),Var("rd",FTy 5), 19951 Var("rs1",FTy 5),Var("rs2",FTy 5),LW(17,7)])), 19952 (Call 19953 ("FConv",CTy"instruction", 19954 Call 19955 ("FCVT_W_D",CTy"FConv", 19956 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19957 Call 19958 ("Rtype",F32, 19959 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19960 Var("rs",FTy 5),LW(0,5),LW(97,7)])), 19961 (Call 19962 ("FConv",CTy"instruction", 19963 Call 19964 ("FCVT_WU_D",CTy"FConv", 19965 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19966 Call 19967 ("Rtype",F32, 19968 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19969 Var("rs",FTy 5),LW(1,5),LW(97,7)])), 19970 (Call 19971 ("FConv",CTy"instruction", 19972 Call("FCLASS_D",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 19973 Call 19974 ("Rtype",F32, 19975 TP[Call("opc",FTy 7,LW(20,8)),LW(1,3),Var("rd",FTy 5), 19976 Var("rs",FTy 5),LW(0,5),LW(113,7)])), 19977 (Call 19978 ("FConv",CTy"instruction", 19979 Call 19980 ("FCVT_D_W",CTy"FConv", 19981 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19982 Call 19983 ("Rtype",F32, 19984 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19985 Var("rs",FTy 5),LW(0,5),LW(105,7)])), 19986 (Call 19987 ("FConv",CTy"instruction", 19988 Call 19989 ("FCVT_D_WU",CTy"FConv", 19990 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 19991 Call 19992 ("Rtype",F32, 19993 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 19994 Var("rs",FTy 5),LW(1,5),LW(105,7)])), 19995 (Call 19996 ("FConv",CTy"instruction", 19997 Call 19998 ("FCVT_S_D",CTy"FConv", 19999 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20000 Call 20001 ("Rtype",F32, 20002 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20003 Var("rs",FTy 5),LW(1,5),LW(32,7)])), 20004 (Call 20005 ("FConv",CTy"instruction", 20006 Call 20007 ("FCVT_D_S",CTy"FConv", 20008 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20009 Call 20010 ("Rtype",F32, 20011 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20012 Var("rs",FTy 5),LW(0,5),LW(33,7)])), 20013 (Call 20014 ("FConv",CTy"instruction", 20015 Call 20016 ("FCVT_L_S",CTy"FConv", 20017 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20018 Call 20019 ("Rtype",F32, 20020 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20021 Var("rs",FTy 5),LW(2,5),LW(96,7)])), 20022 (Call 20023 ("FConv",CTy"instruction", 20024 Call 20025 ("FCVT_LU_S",CTy"FConv", 20026 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20027 Call 20028 ("Rtype",F32, 20029 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20030 Var("rs",FTy 5),LW(3,5),LW(96,7)])), 20031 (Call 20032 ("FConv",CTy"instruction", 20033 Call 20034 ("FCVT_S_L",CTy"FConv", 20035 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20036 Call 20037 ("Rtype",F32, 20038 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20039 Var("rs",FTy 5),LW(2,5),LW(104,7)])), 20040 (Call 20041 ("FConv",CTy"instruction", 20042 Call 20043 ("FCVT_S_LU",CTy"FConv", 20044 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20045 Call 20046 ("Rtype",F32, 20047 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20048 Var("rs",FTy 5),LW(3,5),LW(104,7)])), 20049 (Call 20050 ("FConv",CTy"instruction", 20051 Call 20052 ("FCVT_L_D",CTy"FConv", 20053 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20054 Call 20055 ("Rtype",F32, 20056 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20057 Var("rs",FTy 5),LW(2,5),LW(97,7)])), 20058 (Call 20059 ("FConv",CTy"instruction", 20060 Call 20061 ("FCVT_LU_D",CTy"FConv", 20062 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20063 Call 20064 ("Rtype",F32, 20065 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20066 Var("rs",FTy 5),LW(3,5),LW(97,7)])), 20067 (Call 20068 ("FConv",CTy"instruction", 20069 Call("FMV_X_D",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 20070 Call 20071 ("Rtype",F32, 20072 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 20073 Var("rs",FTy 5),LW(0,5),LW(113,7)])), 20074 (Call 20075 ("FConv",CTy"instruction", 20076 Call 20077 ("FCVT_D_L",CTy"FConv", 20078 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20079 Call 20080 ("Rtype",F32, 20081 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20082 Var("rs",FTy 5),LW(2,5),LW(105,7)])), 20083 (Call 20084 ("FConv",CTy"instruction", 20085 Call 20086 ("FCVT_D_LU",CTy"FConv", 20087 TP[Var("rd",FTy 5),Var("rs",FTy 5),Var("frm",FTy 3)])), 20088 Call 20089 ("Rtype",F32, 20090 TP[Call("opc",FTy 7,LW(20,8)),Var("frm",FTy 3),Var("rd",FTy 5), 20091 Var("rs",FTy 5),LW(3,5),LW(105,7)])), 20092 (Call 20093 ("FConv",CTy"instruction", 20094 Call("FMV_D_X",CTy"FConv",TP[Var("rd",FTy 5),Var("rs",FTy 5)])), 20095 Call 20096 ("Rtype",F32, 20097 TP[Call("opc",FTy 7,LW(20,8)),LW(0,3),Var("rd",FTy 5), 20098 Var("rs",FTy 5),LW(0,5),LW(121,7)])), 20099 (Call 20100 ("AMO",CTy"instruction", 20101 Call 20102 ("LR_W",CTy"AMO", 20103 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20104 Var("rs1",FTy 5)])), 20105 Call 20106 ("Rtype",F32, 20107 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20108 Var("rs1",FTy 5),LW(0,5), 20109 Call("amofunc",FTy 7,TP[LW(2,5),Var("aq",F1),Var("rl",F1)])])), 20110 (Call 20111 ("AMO",CTy"instruction", 20112 Call 20113 ("LR_D",CTy"AMO", 20114 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20115 Var("rs1",FTy 5)])), 20116 Call 20117 ("Rtype",F32, 20118 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20119 Var("rs1",FTy 5),LW(0,5), 20120 Call("amofunc",FTy 7,TP[LW(2,5),Var("aq",F1),Var("rl",F1)])])), 20121 (Call 20122 ("AMO",CTy"instruction", 20123 Call 20124 ("SC_W",CTy"AMO", 20125 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20126 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20127 Call 20128 ("Rtype",F32, 20129 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20130 Var("rs1",FTy 5),Var("rs2",FTy 5), 20131 Call("amofunc",FTy 7,TP[LW(3,5),Var("aq",F1),Var("rl",F1)])])), 20132 (Call 20133 ("AMO",CTy"instruction", 20134 Call 20135 ("SC_D",CTy"AMO", 20136 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20137 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20138 Call 20139 ("Rtype",F32, 20140 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20141 Var("rs1",FTy 5),Var("rs2",FTy 5), 20142 Call("amofunc",FTy 7,TP[LW(2,5),Var("aq",F1),Var("rl",F1)])])), 20143 (Call 20144 ("AMO",CTy"instruction", 20145 Call 20146 ("AMOSWAP_W",CTy"AMO", 20147 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20148 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20149 Call 20150 ("Rtype",F32, 20151 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20152 Var("rs1",FTy 5),Var("rs2",FTy 5), 20153 Call("amofunc",FTy 7,TP[LW(1,5),Var("aq",F1),Var("rl",F1)])])), 20154 (Call 20155 ("AMO",CTy"instruction", 20156 Call 20157 ("AMOADD_W",CTy"AMO", 20158 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20159 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20160 Call 20161 ("Rtype",F32, 20162 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20163 Var("rs1",FTy 5),Var("rs2",FTy 5), 20164 Call("amofunc",FTy 7,TP[LW(0,5),Var("aq",F1),Var("rl",F1)])])), 20165 (Call 20166 ("AMO",CTy"instruction", 20167 Call 20168 ("AMOXOR_W",CTy"AMO", 20169 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20170 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20171 Call 20172 ("Rtype",F32, 20173 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20174 Var("rs1",FTy 5),Var("rs2",FTy 5), 20175 Call("amofunc",FTy 7,TP[LW(4,5),Var("aq",F1),Var("rl",F1)])])), 20176 (Call 20177 ("AMO",CTy"instruction", 20178 Call 20179 ("AMOAND_W",CTy"AMO", 20180 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20181 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20182 Call 20183 ("Rtype",F32, 20184 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20185 Var("rs1",FTy 5),Var("rs2",FTy 5), 20186 Call("amofunc",FTy 7,TP[LW(12,5),Var("aq",F1),Var("rl",F1)])])), 20187 (Call 20188 ("AMO",CTy"instruction", 20189 Call 20190 ("AMOOR_W",CTy"AMO", 20191 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20192 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20193 Call 20194 ("Rtype",F32, 20195 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20196 Var("rs1",FTy 5),Var("rs2",FTy 5), 20197 Call("amofunc",FTy 7,TP[LW(8,5),Var("aq",F1),Var("rl",F1)])])), 20198 (Call 20199 ("AMO",CTy"instruction", 20200 Call 20201 ("AMOMIN_W",CTy"AMO", 20202 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20203 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20204 Call 20205 ("Rtype",F32, 20206 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20207 Var("rs1",FTy 5),Var("rs2",FTy 5), 20208 Call("amofunc",FTy 7,TP[LW(16,5),Var("aq",F1),Var("rl",F1)])])), 20209 (Call 20210 ("AMO",CTy"instruction", 20211 Call 20212 ("AMOMAX_W",CTy"AMO", 20213 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20214 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20215 Call 20216 ("Rtype",F32, 20217 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20218 Var("rs1",FTy 5),Var("rs2",FTy 5), 20219 Call("amofunc",FTy 7,TP[LW(20,5),Var("aq",F1),Var("rl",F1)])])), 20220 (Call 20221 ("AMO",CTy"instruction", 20222 Call 20223 ("AMOMINU_W",CTy"AMO", 20224 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20225 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20226 Call 20227 ("Rtype",F32, 20228 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20229 Var("rs1",FTy 5),Var("rs2",FTy 5), 20230 Call("amofunc",FTy 7,TP[LW(24,5),Var("aq",F1),Var("rl",F1)])])), 20231 (Call 20232 ("AMO",CTy"instruction", 20233 Call 20234 ("AMOMAXU_W",CTy"AMO", 20235 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20236 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20237 Call 20238 ("Rtype",F32, 20239 TP[Call("opc",FTy 7,LW(11,8)),LW(2,3),Var("rd",FTy 5), 20240 Var("rs1",FTy 5),Var("rs2",FTy 5), 20241 Call("amofunc",FTy 7,TP[LW(28,5),Var("aq",F1),Var("rl",F1)])])), 20242 (Call 20243 ("AMO",CTy"instruction", 20244 Call 20245 ("AMOSWAP_D",CTy"AMO", 20246 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20247 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20248 Call 20249 ("Rtype",F32, 20250 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20251 Var("rs1",FTy 5),Var("rs2",FTy 5), 20252 Call("amofunc",FTy 7,TP[LW(1,5),Var("aq",F1),Var("rl",F1)])])), 20253 (Call 20254 ("AMO",CTy"instruction", 20255 Call 20256 ("AMOADD_D",CTy"AMO", 20257 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20258 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20259 Call 20260 ("Rtype",F32, 20261 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20262 Var("rs1",FTy 5),Var("rs2",FTy 5), 20263 Call("amofunc",FTy 7,TP[LW(0,5),Var("aq",F1),Var("rl",F1)])])), 20264 (Call 20265 ("AMO",CTy"instruction", 20266 Call 20267 ("AMOXOR_D",CTy"AMO", 20268 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20269 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20270 Call 20271 ("Rtype",F32, 20272 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20273 Var("rs1",FTy 5),Var("rs2",FTy 5), 20274 Call("amofunc",FTy 7,TP[LW(4,5),Var("aq",F1),Var("rl",F1)])])), 20275 (Call 20276 ("AMO",CTy"instruction", 20277 Call 20278 ("AMOAND_D",CTy"AMO", 20279 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20280 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20281 Call 20282 ("Rtype",F32, 20283 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20284 Var("rs1",FTy 5),Var("rs2",FTy 5), 20285 Call("amofunc",FTy 7,TP[LW(12,5),Var("aq",F1),Var("rl",F1)])])), 20286 (Call 20287 ("AMO",CTy"instruction", 20288 Call 20289 ("AMOOR_D",CTy"AMO", 20290 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20291 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20292 Call 20293 ("Rtype",F32, 20294 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20295 Var("rs1",FTy 5),Var("rs2",FTy 5), 20296 Call("amofunc",FTy 7,TP[LW(8,5),Var("aq",F1),Var("rl",F1)])])), 20297 (Call 20298 ("AMO",CTy"instruction", 20299 Call 20300 ("AMOMIN_D",CTy"AMO", 20301 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20302 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20303 Call 20304 ("Rtype",F32, 20305 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20306 Var("rs1",FTy 5),Var("rs2",FTy 5), 20307 Call("amofunc",FTy 7,TP[LW(16,5),Var("aq",F1),Var("rl",F1)])])), 20308 (Call 20309 ("AMO",CTy"instruction", 20310 Call 20311 ("AMOMAX_D",CTy"AMO", 20312 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20313 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20314 Call 20315 ("Rtype",F32, 20316 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20317 Var("rs1",FTy 5),Var("rs2",FTy 5), 20318 Call("amofunc",FTy 7,TP[LW(20,5),Var("aq",F1),Var("rl",F1)])])), 20319 (Call 20320 ("AMO",CTy"instruction", 20321 Call 20322 ("AMOMINU_D",CTy"AMO", 20323 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20324 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20325 Call 20326 ("Rtype",F32, 20327 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20328 Var("rs1",FTy 5),Var("rs2",FTy 5), 20329 Call("amofunc",FTy 7,TP[LW(24,5),Var("aq",F1),Var("rl",F1)])])), 20330 (Call 20331 ("AMO",CTy"instruction", 20332 Call 20333 ("AMOMAXU_D",CTy"AMO", 20334 TP[Var("aq",F1),Var("rl",F1),Var("rd",FTy 5), 20335 Var("rs1",FTy 5),Var("rs2",FTy 5)])), 20336 Call 20337 ("Rtype",F32, 20338 TP[Call("opc",FTy 7,LW(11,8)),LW(3,3),Var("rd",FTy 5), 20339 Var("rs1",FTy 5),Var("rs2",FTy 5), 20340 Call("amofunc",FTy 7,TP[LW(28,5),Var("aq",F1),Var("rl",F1)])])), 20341 (Call("System",CTy"instruction",Const("ECALL",CTy"System")), 20342 Call 20343 ("Itype",F32, 20344 TP[Call("opc",FTy 7,LW(28,8)),LW(0,3),LW(0,5),LW(0,5),LW(0,12)])), 20345 (Call("System",CTy"instruction",Const("EBREAK",CTy"System")), 20346 Call 20347 ("Itype",F32, 20348 TP[Call("opc",FTy 7,LW(28,8)),LW(0,3),LW(0,5),LW(0,5),LW(1,12)])), 20349 (Call("System",CTy"instruction",Const("ERET",CTy"System")), 20350 Call 20351 ("Itype",F32, 20352 TP[Call("opc",FTy 7,LW(28,8)),LW(0,3),LW(0,5),LW(0,5), 20353 LW(256,12)])), 20354 (Call("System",CTy"instruction",Const("MRTS",CTy"System")), 20355 Call 20356 ("Itype",F32, 20357 TP[Call("opc",FTy 7,LW(28,8)),LW(0,3),LW(0,5),LW(0,5), 20358 LW(773,12)])), 20359 (Call("System",CTy"instruction",Const("WFI",CTy"System")), 20360 Call 20361 ("Itype",F32, 20362 TP[Call("opc",FTy 7,LW(28,8)),LW(0,3),LW(0,5),LW(0,5), 20363 LW(258,12)])), 20364 (Call 20365 ("System",CTy"instruction", 20366 Call("SFENCE_VM",CTy"System",Var("rs1",FTy 5))), 20367 Call 20368 ("Itype",F32, 20369 TP[Call("opc",FTy 7,LW(28,8)),LW(0,3),LW(0,5),Var("rs1",FTy 5), 20370 LW(257,12)])), 20371 (Call 20372 ("System",CTy"instruction", 20373 Call 20374 ("CSRRW",CTy"System", 20375 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 20376 Call 20377 ("Itype",F32, 20378 TP[Call("opc",FTy 7,LW(28,8)),LW(1,3),Var("rd",FTy 5), 20379 Var("rs1",FTy 5),Var("csr",FTy 12)])), 20380 (Call 20381 ("System",CTy"instruction", 20382 Call 20383 ("CSRRS",CTy"System", 20384 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 20385 Call 20386 ("Itype",F32, 20387 TP[Call("opc",FTy 7,LW(28,8)),LW(2,3),Var("rd",FTy 5), 20388 Var("rs1",FTy 5),Var("csr",FTy 12)])), 20389 (Call 20390 ("System",CTy"instruction", 20391 Call 20392 ("CSRRC",CTy"System", 20393 TP[Var("rd",FTy 5),Var("rs1",FTy 5),Var("csr",FTy 12)])), 20394 Call 20395 ("Itype",F32, 20396 TP[Call("opc",FTy 7,LW(28,8)),LW(3,3),Var("rd",FTy 5), 20397 Var("rs1",FTy 5),Var("csr",FTy 12)])), 20398 (Call 20399 ("System",CTy"instruction", 20400 Call 20401 ("CSRRWI",CTy"System", 20402 TP[Var("rd",FTy 5),Var("imm",FTy 5),Var("csr",FTy 12)])), 20403 Call 20404 ("Itype",F32, 20405 TP[Call("opc",FTy 7,LW(28,8)),LW(5,3),Var("rd",FTy 5), 20406 Var("imm",FTy 5),Var("csr",FTy 12)])), 20407 (Call 20408 ("System",CTy"instruction", 20409 Call 20410 ("CSRRSI",CTy"System", 20411 TP[Var("rd",FTy 5),Var("imm",FTy 5),Var("csr",FTy 12)])), 20412 Call 20413 ("Itype",F32, 20414 TP[Call("opc",FTy 7,LW(28,8)),LW(6,3),Var("rd",FTy 5), 20415 Var("imm",FTy 5),Var("csr",FTy 12)])), 20416 (Call 20417 ("System",CTy"instruction", 20418 Call 20419 ("CSRRCI",CTy"System", 20420 TP[Var("rd",FTy 5),Var("imm",FTy 5),Var("csr",FTy 12)])), 20421 Call 20422 ("Itype",F32, 20423 TP[Call("opc",FTy 7,LW(28,8)),LW(7,3),Var("rd",FTy 5), 20424 Var("imm",FTy 5),Var("csr",FTy 12)])), 20425 (Const("UnknownInstruction",CTy"instruction"),LW(0,32)), 20426 (Call 20427 ("Internal",CTy"instruction", 20428 Call("FETCH_MISALIGNED",CTy"Internal",AVar F64)),LW(0,32)), 20429 (Call 20430 ("Internal",CTy"instruction", 20431 Call("FETCH_FAULT",CTy"Internal",AVar F64)),LW(0,32))])) 20432; 20433val log_instruction_def = Def 20434 ("log_instruction",TP[Var("w",F32),Var("inst",CTy"instruction")], 20435 Close 20436 (qVar"state", 20437 CC[LS"instr ",Mop(Cast sTy,Dest("procID",F8,qVar"state")),LS" ", 20438 Mop(Cast sTy, 20439 Mop(Cast nTy, 20440 Apply 20441 (Dest("c_instret",ATy(F8,F64),qVar"state"), 20442 Dest("procID",F8,qVar"state")))),LS" 0x", 20443 Call("hex64",sTy,Apply(Const("PC",ATy(qTy,F64)),qVar"state")), 20444 LS" : ",Call("hex32",sTy,Var("w",F32)),LS" ", 20445 Call("instructionToString",sTy,Var("inst",CTy"instruction"))])) 20446; 20447val exitCode_def = Def 20448 ("exitCode",AVar uTy, 20449 Close 20450 (qVar"state", 20451 Mop(Cast nTy,Apply(Const("ExitCode",ATy(qTy,F64)),qVar"state")))) 20452; 20453val CYCLES_PER_TIMER_TICK_def = Def0 ("CYCLES_PER_TIMER_TICK",LN 200) 20454; 20455val tickClock_def = Def 20456 ("tickClock",AVar uTy, 20457 Close 20458 (qVar"state", 20459 Let(Var("v",F64), 20460 Bop(Add, 20461 Apply 20462 (Dest("c_cycles",ATy(F8,F64),qVar"state"), 20463 Dest("procID",F8,qVar"state")),LW(1,64)), 20464 Rupd 20465 ("clock", 20466 TP[Rupd 20467 ("c_cycles", 20468 TP[qVar"state", 20469 Fupd 20470 (Dest("c_cycles",ATy(F8,F64),qVar"state"), 20471 Dest("procID",F8,qVar"state"),Var("v",F64))]), 20472 Bop(Div,Var("v",F64), 20473 Mop(Cast F64,Const("CYCLES_PER_TIMER_TICK",nTy)))])))) 20474; 20475val incrInstret_def = Def 20476 ("incrInstret",AVar uTy, 20477 Close 20478 (qVar"state", 20479 Rupd 20480 ("c_instret", 20481 TP[qVar"state", 20482 Fupd 20483 (Dest("c_instret",ATy(F8,F64),qVar"state"), 20484 Dest("procID",F8,qVar"state"), 20485 Bop(Add, 20486 Apply 20487 (Dest("c_instret",ATy(F8,F64),qVar"state"), 20488 Dest("procID",F8,qVar"state")),LW(1,64)))]))) 20489; 20490val checkTimers_def = Def 20491 ("checkTimers",AVar uTy, 20492 Close 20493 (qVar"state", 20494 Let(qVar"s", 20495 ITE(Bop(Ugt,Dest("clock",F64,qVar"state"), 20496 Bop(Add, 20497 Dest 20498 ("mtimecmp",F64, 20499 Apply 20500 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20501 qVar"state")), 20502 Dest 20503 ("mtime_delta",F64, 20504 Apply 20505 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20506 qVar"state")))), 20507 Let(Var("v",CTy"MachineCSR"), 20508 Apply 20509 (Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state"), 20510 Apply 20511 (Call 20512 ("write'MCSR",ATy(qTy,qTy), 20513 Rupd 20514 ("mip", 20515 TP[Var("v",CTy"MachineCSR"), 20516 Rupd 20517 ("MTIP", 20518 TP[Dest 20519 ("mip",CTy"mip", 20520 Var("v",CTy"MachineCSR")),LT])])), 20521 qVar"state")),qVar"state"), 20522 ITE(Bop(Ugt,Dest("clock",F64,qVar"s"), 20523 Bop(Add, 20524 Dest 20525 ("stimecmp",F64, 20526 Apply 20527 (Const("SCSR",ATy(qTy,CTy"SupervisorCSR")), 20528 qVar"s")), 20529 Dest 20530 ("stime_delta",F64, 20531 Apply 20532 (Const("SCSR",ATy(qTy,CTy"SupervisorCSR")), 20533 qVar"s")))), 20534 Let(Var("v",CTy"MachineCSR"), 20535 Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s"), 20536 Apply 20537 (Call 20538 ("write'MCSR",ATy(qTy,qTy), 20539 Rupd 20540 ("mip", 20541 TP[Var("v",CTy"MachineCSR"), 20542 Rupd 20543 ("STIP", 20544 TP[Dest 20545 ("mip",CTy"mip", 20546 Var("v",CTy"MachineCSR")),LT])])), 20547 qVar"s")),qVar"s")))) 20548; 20549val Next_def = Def 20550 ("Next",qVar"state", 20551 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20552 Let(qVar"s",Apply(Call("clear_logs",ATy(qTy,qTy),LU),qVar"state"), 20553 TP[Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s"), 20554 qVar"s"]), 20555 Let(TP[Var("v",CTy"FetchResult"),qVar"s"], 20556 Apply 20557 (Call("Fetch",ATy(qTy,PTy(CTy"FetchResult",qTy)),LU), 20558 ITE(Mop(Not, 20559 EQ(Dest("mtohost",F64,Var("v",CTy"MachineCSR")), 20560 LW(0,64))), 20561 ITE(Bop(Bit, 20562 Dest 20563 ("mtohost",F64, 20564 Apply 20565 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20566 qVar"s")),LN 0), 20567 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20568 Let(qVar"s0",Rupd("done",TP[qVar"s",LT]), 20569 TP[Apply 20570 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20571 qVar"s0"),qVar"s0"]), 20572 Apply 20573 (Call 20574 ("write'ExitCode",ATy(qTy,qTy), 20575 Bop(Asr, 20576 Dest 20577 ("mtohost",F64, 20578 Var("v",CTy"MachineCSR")),LN 1)), 20579 qVar"s")), 20580 Apply 20581 (Call 20582 ("write'MCSR",ATy(qTy,qTy), 20583 Rupd 20584 ("mtohost", 20585 TP[Apply 20586 (Const 20587 ("MCSR",ATy(qTy,CTy"MachineCSR")), 20588 qVar"s"),LW(0,64)])),qVar"s")), 20589 qVar"s")), 20590 Let(TP[Var("v",OTy(CTy"TransferControl")),qVar"s"], 20591 Let(qVar"s0", 20592 Apply 20593 (Call("checkTimers",ATy(qTy,qTy),LU), 20594 CS(Var("v",CTy"FetchResult"), 20595 [(Call("F_Result",CTy"FetchResult",Var("w",F32)), 20596 Apply 20597 (Call 20598 ("Run",ATy(qTy,qTy), 20599 Call 20600 ("Decode",CTy"instruction",Var("w",F32))), 20601 qVar"s")), 20602 (Call 20603 ("F_Error",CTy"FetchResult", 20604 Var("inst",CTy"instruction")), 20605 Apply 20606 (Call 20607 ("Run",ATy(qTy,qTy), 20608 Var("inst",CTy"instruction")),qVar"s"))])), 20609 TP[Apply 20610 (Const 20611 ("NextFetch",ATy(qTy,OTy(CTy"TransferControl"))), 20612 qVar"s0"),qVar"s0"]), 20613 Apply 20614 (Call("tickClock",ATy(qTy,qTy),LU), 20615 Let(TP[Var("v", 20616 PTy(OTy(CTy"TransferControl"), 20617 OTy(PTy(CTy"Interrupt",CTy"Privilege")))), 20618 qVar"s"], 20619 Let(TP[Var("v0", 20620 OTy(PTy(CTy"Interrupt",CTy"Privilege"))), 20621 qVar"s"], 20622 Apply 20623 (Call 20624 ("checkInterrupts", 20625 ATy(qTy, 20626 PTy(OTy(PTy(CTy"Interrupt", 20627 CTy"Privilege")),qTy)),LU), 20628 qVar"s"), 20629 TP[TP[Var("v",OTy(CTy"TransferControl")), 20630 Var("v0", 20631 OTy(PTy(CTy"Interrupt",CTy"Privilege")))], 20632 qVar"s"]), 20633 CS(Var("v", 20634 PTy(OTy(CTy"TransferControl"), 20635 OTy(PTy(CTy"Interrupt",CTy"Privilege")))), 20636 [(TP[LO(CTy"TransferControl"), 20637 LO(PTy(CTy"Interrupt",CTy"Privilege"))], 20638 Let(TP[Var("v",F64),qVar"s"], 20639 Let(qVar"s0", 20640 Apply 20641 (Call("incrInstret",ATy(qTy,qTy),LU), 20642 qVar"s"), 20643 TP[Apply 20644 (Const("PC",ATy(qTy,F64)),qVar"s0"), 20645 qVar"s0"]), 20646 Apply 20647 (Call 20648 ("write'PC",ATy(qTy,qTy), 20649 Bop(Add,Var("v",F64),LW(4,64))), 20650 qVar"s"))), 20651 (TP[LO(CTy"TransferControl"), 20652 Mop(Some, 20653 TP[Var("i",CTy"Interrupt"), 20654 Var("p",CTy"Privilege")])], 20655 Let(TP[Var("v",F64),qVar"s"], 20656 Let(qVar"s0", 20657 Apply 20658 (Call("incrInstret",ATy(qTy,qTy),LU), 20659 qVar"s"), 20660 TP[Apply 20661 (Const("PC",ATy(qTy,F64)),qVar"s0"), 20662 qVar"s0"]), 20663 Apply 20664 (Call 20665 ("takeTrap",ATy(qTy,qTy), 20666 TP[LT, 20667 Call 20668 ("interruptIndex",F4, 20669 Var("i",CTy"Interrupt")), 20670 Bop(Add,Var("v",F64),LW(4,64)), 20671 LO F64,Var("p",CTy"Privilege")]), 20672 qVar"s"))), 20673 (TP[Mop(Some, 20674 Call 20675 ("BranchTo",CTy"TransferControl", 20676 Var("addr",F64))), 20677 AVar 20678 (OTy(PTy(CTy"Interrupt",CTy"Privilege")))], 20679 Apply 20680 (Call 20681 ("write'PC",ATy(qTy,qTy),Var("addr",F64)), 20682 Apply 20683 (Call 20684 ("write'NextFetch",ATy(qTy,qTy), 20685 LO(CTy"TransferControl")), 20686 Apply 20687 (Call("incrInstret",ATy(qTy,qTy),LU), 20688 qVar"s")))), 20689 (TP[Mop(Some, 20690 Const("Ereturn",CTy"TransferControl")), 20691 AVar 20692 (OTy(PTy(CTy"Interrupt",CTy"Privilege")))], 20693 Let(TP[Var("v",F64),qVar"s"], 20694 Apply 20695 (Call("curEPC",ATy(qTy,PTy(F64,qTy)),LU), 20696 Apply 20697 (Call 20698 ("write'NextFetch",ATy(qTy,qTy), 20699 LO(CTy"TransferControl")), 20700 Apply 20701 (Call 20702 ("incrInstret",ATy(qTy,qTy),LU), 20703 qVar"s"))), 20704 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20705 Let(qVar"s0", 20706 Apply 20707 (Call 20708 ("write'PC",ATy(qTy,qTy), 20709 Var("v",F64)),qVar"s"), 20710 TP[Apply 20711 (Const 20712 ("MCSR", 20713 ATy(qTy,CTy"MachineCSR")), 20714 qVar"s0"),qVar"s0"]), 20715 Apply 20716 (Call 20717 ("write'MCSR",ATy(qTy,qTy), 20718 Rupd 20719 ("mstatus", 20720 TP[Var("v",CTy"MachineCSR"), 20721 Call 20722 ("popPrivilegeStack", 20723 CTy"mstatus", 20724 Dest 20725 ("mstatus", 20726 CTy"mstatus", 20727 Apply 20728 (Const 20729 ("MCSR", 20730 ATy(qTy, 20731 CTy"MachineCSR")), 20732 qVar"s")))])), 20733 qVar"s")))), 20734 (TP[Mop(Some, 20735 Call 20736 ("Trap",CTy"TransferControl", 20737 Var("t",CTy"SynchronousTrap"))), 20738 AVar 20739 (OTy(PTy(CTy"Interrupt",CTy"Privilege")))], 20740 Let(TP[Var("v",F64),qVar"s"], 20741 Let(qVar"s0", 20742 Apply 20743 (Call 20744 ("write'NextFetch",ATy(qTy,qTy), 20745 LO(CTy"TransferControl")),qVar"s"), 20746 TP[Apply 20747 (Const("PC",ATy(qTy,F64)),qVar"s0"), 20748 qVar"s0"]), 20749 Apply 20750 (Call 20751 ("takeTrap",ATy(qTy,qTy), 20752 TP[LF, 20753 Call 20754 ("excCode",F4, 20755 Dest 20756 ("trap",CTy"ExceptionType", 20757 Var("t",CTy"SynchronousTrap"))), 20758 Var("v",F64), 20759 Dest 20760 ("badaddr",OTy F64, 20761 Var("t",CTy"SynchronousTrap")), 20762 LC("Machine",CTy"Privilege")]), 20763 qVar"s"))), 20764 (TP[Mop(Some,Const("Mrts",CTy"TransferControl")), 20765 AVar 20766 (OTy(PTy(CTy"Interrupt",CTy"Privilege")))], 20767 Let(TP[Var("v",CTy"SupervisorCSR"),qVar"s"], 20768 Let(qVar"s0", 20769 Apply 20770 (Call 20771 ("write'NextFetch",ATy(qTy,qTy), 20772 LO(CTy"TransferControl")), 20773 Apply 20774 (Call 20775 ("incrInstret",ATy(qTy,qTy),LU), 20776 qVar"s")), 20777 TP[Apply 20778 (Const 20779 ("SCSR", 20780 ATy(qTy,CTy"SupervisorCSR")), 20781 qVar"s0"),qVar"s0"]), 20782 Apply 20783 (Call 20784 ("write'PC",ATy(qTy,qTy), 20785 Dest 20786 ("stvec",F64, 20787 Var("v",CTy"SupervisorCSR"))), 20788 qVar"s")))]))))))) 20789; 20790val initIdent_def = Def 20791 ("initIdent",Var("arch",CTy"Architecture"), 20792 Close 20793 (qVar"state", 20794 Let(Var("v",CTy"MachineCSR"), 20795 Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state"), 20796 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20797 Let(qVar"s0", 20798 Apply 20799 (Call 20800 ("write'MCSR",ATy(qTy,qTy), 20801 Rupd 20802 ("mcpuid", 20803 TP[Var("v",CTy"MachineCSR"), 20804 Rupd 20805 ("ArchBase", 20806 TP[Dest 20807 ("mcpuid",CTy"mcpuid", 20808 Var("v",CTy"MachineCSR")), 20809 Call 20810 ("archBase",FTy 2, 20811 Var("arch",CTy"Architecture"))])])), 20812 qVar"state"), 20813 TP[Apply 20814 (Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s0"), 20815 qVar"s0"]), 20816 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20817 Let(qVar"s0", 20818 Apply 20819 (Call 20820 ("write'MCSR",ATy(qTy,qTy), 20821 Rupd 20822 ("mcpuid", 20823 TP[Var("v",CTy"MachineCSR"), 20824 Rupd 20825 ("U", 20826 TP[Dest 20827 ("mcpuid",CTy"mcpuid", 20828 Var("v",CTy"MachineCSR")),LT])])), 20829 qVar"s"), 20830 TP[Apply 20831 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20832 qVar"s0"),qVar"s0"]), 20833 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20834 Let(qVar"s0", 20835 Apply 20836 (Call 20837 ("write'MCSR",ATy(qTy,qTy), 20838 Rupd 20839 ("mcpuid", 20840 TP[Var("v",CTy"MachineCSR"), 20841 Rupd 20842 ("S", 20843 TP[Dest 20844 ("mcpuid",CTy"mcpuid", 20845 Var("v",CTy"MachineCSR")), 20846 LT])])),qVar"s"), 20847 TP[Apply 20848 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20849 qVar"s0"),qVar"s0"]), 20850 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20851 Let(qVar"s0", 20852 Apply 20853 (Call 20854 ("write'MCSR",ATy(qTy,qTy), 20855 Rupd 20856 ("mcpuid", 20857 TP[Var("v",CTy"MachineCSR"), 20858 Rupd 20859 ("M", 20860 TP[Dest 20861 ("mcpuid",CTy"mcpuid", 20862 Var("v",CTy"MachineCSR")), 20863 LT])])),qVar"s"), 20864 TP[Apply 20865 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20866 qVar"s0"),qVar"s0"]), 20867 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20868 Let(qVar"s0", 20869 Apply 20870 (Call 20871 ("write'MCSR",ATy(qTy,qTy), 20872 Rupd 20873 ("mcpuid", 20874 TP[Var("v",CTy"MachineCSR"), 20875 Rupd 20876 ("I", 20877 TP[Dest 20878 ("mcpuid", 20879 CTy"mcpuid", 20880 Var("v", 20881 CTy"MachineCSR")), 20882 LT])])),qVar"s"), 20883 TP[Apply 20884 (Const 20885 ("MCSR",ATy(qTy,CTy"MachineCSR")), 20886 qVar"s0"),qVar"s0"]), 20887 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20888 Let(qVar"s0", 20889 Apply 20890 (Call 20891 ("write'MCSR",ATy(qTy,qTy), 20892 Rupd 20893 ("mimpid", 20894 TP[Var("v",CTy"MachineCSR"), 20895 Rupd 20896 ("RVSource", 20897 TP[Dest 20898 ("mimpid", 20899 CTy"mimpid", 20900 Var("v", 20901 CTy"MachineCSR")), 20902 LW(32768,16)])])), 20903 qVar"s"), 20904 TP[Apply 20905 (Const 20906 ("MCSR", 20907 ATy(qTy,CTy"MachineCSR")), 20908 qVar"s0"),qVar"s0"]), 20909 Apply 20910 (Call 20911 ("write'MCSR",ATy(qTy,qTy), 20912 Rupd 20913 ("mimpid", 20914 TP[Var("v",CTy"MachineCSR"), 20915 Rupd 20916 ("RVImpl", 20917 TP[Dest 20918 ("mimpid", 20919 CTy"mimpid", 20920 Var("v", 20921 CTy"MachineCSR")), 20922 LW(0,48)])])),qVar"s")))))))))) 20923; 20924val initMachine_def = Def 20925 ("initMachine",Var("hartid",F8), 20926 Close 20927 (qVar"state", 20928 Let(Var("v",CTy"MachineCSR"), 20929 Apply(Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"state"), 20930 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20931 Let(qVar"s0", 20932 Apply 20933 (Call 20934 ("write'MCSR",ATy(qTy,qTy), 20935 Rupd 20936 ("mstatus", 20937 TP[Var("v",CTy"MachineCSR"), 20938 Rupd 20939 ("VM", 20940 TP[Dest 20941 ("mstatus",CTy"mstatus", 20942 Var("v",CTy"MachineCSR")), 20943 Call 20944 ("vmMode",FTy 5, 20945 LC("Mbare",CTy"VM_Mode"))])])), 20946 qVar"state"), 20947 TP[Apply 20948 (Const("MCSR",ATy(qTy,CTy"MachineCSR")),qVar"s0"), 20949 qVar"s0"]), 20950 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20951 Let(qVar"s0", 20952 Apply 20953 (Call 20954 ("write'MCSR",ATy(qTy,qTy), 20955 Rupd 20956 ("mstatus", 20957 TP[Var("v",CTy"MachineCSR"), 20958 Rupd 20959 ("MPRV", 20960 TP[Dest 20961 ("mstatus",CTy"mstatus", 20962 Var("v",CTy"MachineCSR")), 20963 Call 20964 ("privLevel",FTy 2, 20965 LC("Machine",CTy"Privilege"))])])), 20966 qVar"s"), 20967 TP[Apply 20968 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20969 qVar"s0"),qVar"s0"]), 20970 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20971 Let(qVar"s0", 20972 Apply 20973 (Call 20974 ("write'MCSR",ATy(qTy,qTy), 20975 Rupd 20976 ("mstatus", 20977 TP[Var("v",CTy"MachineCSR"), 20978 Rupd 20979 ("MIE", 20980 TP[Dest 20981 ("mstatus",CTy"mstatus", 20982 Var("v",CTy"MachineCSR")), 20983 LF])])),qVar"s"), 20984 TP[Apply 20985 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 20986 qVar"s0"),qVar"s0"]), 20987 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 20988 Let(qVar"s0", 20989 Apply 20990 (Call 20991 ("write'MCSR",ATy(qTy,qTy), 20992 Rupd 20993 ("mstatus", 20994 TP[Var("v",CTy"MachineCSR"), 20995 Rupd 20996 ("MFS", 20997 TP[Dest 20998 ("mstatus",CTy"mstatus", 20999 Var("v",CTy"MachineCSR")), 21000 Call 21001 ("ext_status",FTy 2, 21002 LC("Initial", 21003 CTy"ExtStatus"))])])), 21004 qVar"s"), 21005 TP[Apply 21006 (Const("MCSR",ATy(qTy,CTy"MachineCSR")), 21007 qVar"s0"),qVar"s0"]), 21008 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 21009 Let(qVar"s0", 21010 Apply 21011 (Call 21012 ("write'MCSR",ATy(qTy,qTy), 21013 Rupd 21014 ("mstatus", 21015 TP[Var("v",CTy"MachineCSR"), 21016 Rupd 21017 ("MXS", 21018 TP[Dest 21019 ("mstatus", 21020 CTy"mstatus", 21021 Var("v", 21022 CTy"MachineCSR")), 21023 Call 21024 ("ext_status",FTy 2, 21025 LC("Off", 21026 CTy"ExtStatus"))])])), 21027 qVar"s"), 21028 TP[Apply 21029 (Const 21030 ("MCSR",ATy(qTy,CTy"MachineCSR")), 21031 qVar"s0"),qVar"s0"]), 21032 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 21033 Let(qVar"s0", 21034 Apply 21035 (Call 21036 ("write'MCSR",ATy(qTy,qTy), 21037 Rupd 21038 ("mstatus", 21039 TP[Var("v",CTy"MachineCSR"), 21040 Rupd 21041 ("MSD", 21042 TP[Dest 21043 ("mstatus", 21044 CTy"mstatus", 21045 Var("v", 21046 CTy"MachineCSR")), 21047 LF])])),qVar"s"), 21048 TP[Apply 21049 (Const 21050 ("MCSR", 21051 ATy(qTy,CTy"MachineCSR")), 21052 qVar"s0"),qVar"s0"]), 21053 Let(TP[Var("v",CTy"MachineCSR"),qVar"s"], 21054 Let(qVar"s0", 21055 Apply 21056 (Call 21057 ("write'MCSR",ATy(qTy,qTy), 21058 Rupd 21059 ("mhartid", 21060 TP[Var("v", 21061 CTy"MachineCSR"), 21062 Mop(Cast F64, 21063 Var("hartid",F8))])), 21064 qVar"s"), 21065 TP[Apply 21066 (Const 21067 ("MCSR", 21068 ATy(qTy,CTy"MachineCSR")), 21069 qVar"s0"),qVar"s0"]), 21070 Apply 21071 (Call 21072 ("write'MCSR",ATy(qTy,qTy), 21073 Rupd 21074 ("mtvec", 21075 TP[Var("v",CTy"MachineCSR"), 21076 Mop(Cast F64,LW(256,16))])), 21077 qVar"s"))))))))))) 21078; 21079val initRegs_def = Def 21080 ("initRegs",nVar"pc", 21081 Close 21082 (qVar"state", 21083 Rupd 21084 ("done", 21085 TP[Apply 21086 (Call 21087 ("write'NextFetch",ATy(qTy,qTy),LO(CTy"TransferControl")), 21088 Apply 21089 (Call("write'PC",ATy(qTy,qTy),Mop(Cast F64,nVar"pc")), 21090 Mop(Snd, 21091 Apply 21092 (For(TP[LN 0,LN 31, 21093 Close 21094 (nVar"i", 21095 Close 21096 (qVar"state", 21097 TP[LU, 21098 Apply 21099 (Call 21100 ("write'fpr",ATy(qTy,qTy), 21101 TP[LW(0,64), 21102 Mop(Cast(FTy 5),nVar"i")]), 21103 qVar"state")]))]), 21104 Mop(Snd, 21105 Apply 21106 (For(TP[LN 0,LN 31, 21107 Close 21108 (nVar"i", 21109 Close 21110 (qVar"state", 21111 TP[LU, 21112 Apply 21113 (Call 21114 ("write'gpr", 21115 ATy(qTy,qTy), 21116 TP[LW(0,64), 21117 Mop(Cast(FTy 5), 21118 nVar"i")]), 21119 qVar"state")]))]), 21120 qVar"state")))))),LF]))) 21121 21122val () = Import.finish 0