{ "Defines": [ "constexpr static uint8_t COND_EQ = 0", "constexpr static uint8_t COND_NEQ = 1", "constexpr static uint8_t COND_CS = 2", "constexpr static uint8_t COND_CC = 3", "constexpr static uint8_t COND_MI = 4", "constexpr static uint8_t COND_PL = 5", "constexpr static uint8_t COND_VS = 6", "constexpr static uint8_t COND_VC = 7", "constexpr static uint8_t COND_HI = 8", "constexpr static uint8_t COND_LS = 9", "constexpr static uint8_t COND_GE = 10", "constexpr static uint8_t COND_LT = 11", "constexpr static uint8_t COND_GT = 12", "constexpr static uint8_t COND_LE = 13" ], "Ops": { "Dummy": { }, "IRHeader": { "SSAArgs": "1", "SSANames": [ "Blocks" ], "Args": [ "uint64_t", "Entry", "uint32_t", "BlockCount" ] }, "CodeBlock": { "SSAArgs": "3", "RAOverride": "0", "SSANames": [ "Begin", "Last", "Next" ] }, "Constant": { "HasDest": true, "FixedDestSize": "8", "Args": [ "uint64_t", "Constant" ] }, "BeginBlock": {}, "EndBlock": { "Args": [ "uint64_t", "RIPIncrement" ] }, "Break": { "Args": [ "uint8_t", "Reason", "uint8_t", "Literal" ] }, "EndFunction": {}, "ExitFunction": {}, "Jump": { "SSAArgs": "1", "RAOverride": "0" }, "CondJump": { "SSAArgs": "3", "RAOverride": "1", "SSANames": [ "Cond", "TrueBlock", "FalseBlock" ] }, "Mov": { "HasDest": true, "DestSize": "GetOpSize(ssa0)", "SSAArgs": "1" }, "CycleCounter": { "HasDest": true, "FixedDestSize": "8" }, "LoadContext": { "HasDest": true, "DestSize": "Size", "Args": [ "uint8_t", "Size", "uint32_t", "Offset" ] }, "StoreContext": { "SSAArgs": "1", "Args": [ "uint8_t", "Size", "uint32_t", "Offset" ] }, "SpillRegister": { "SSAArgs": "1", "Args": [ "uint32_t", "Slot", "RegisterClassType", "Class" ] }, "FillRegister": { "HasDest": true, "Args": [ "uint32_t", "Slot", "RegisterClassType", "Class" ] }, "LoadFlag": { "HasDest": true, "DestSize": "1", "Args": [ "uint32_t", "Flag" ] }, "StoreFlag": { "SSAArgs": "1", "Args": [ "uint32_t", "Flag" ] }, "Syscall": { "HasDest": true, "FixedDestSize": "8", "SSAArgs": "7" }, "LoadMem": { "HasDest": true, "DestSize": "Size", "SSAArgs": "1", "Args": [ "uint8_t", "Size" ] }, "StoreMem": { "SSAArgs": "2", "Args": [ "uint8_t", "Size" ] }, "Add": { "HasDest": true, "SSAArgs": "2" }, "Sub": { "HasDest": true, "SSAArgs": "2" }, "Mul": { "HasDest": true, "SSAArgs": "2" }, "UMul": { "HasDest": true, "SSAArgs": "2" }, "Div": { "HasDest": true, "SSAArgs": "2" }, "UDiv": { "HasDest": true, "SSAArgs": "2" }, "Rem": { "HasDest": true, "SSAArgs": "2" }, "URem": { "HasDest": true, "SSAArgs": "2" }, "MulH": { "HasDest": true, "SSAArgs": "2" }, "UMulH": { "HasDest": true, "SSAArgs": "2" }, "Or": { "HasDest": true, "SSAArgs": "2" }, "And": { "HasDest": true, "SSAArgs": "2" }, "Xor": { "HasDest": true, "SSAArgs": "2" }, "Lshl": { "HasDest": true, "SSAArgs": "2" }, "Lshr": { "HasDest": true, "SSAArgs": "2" }, "Ashr": { "HasDest": true, "SSAArgs": "2" }, "Rol": { "HasDest": true, "SSAArgs": "2" }, "Ror": { "HasDest": true, "SSAArgs": "2" }, "LDiv": { "HasDest": true, "SSAArgs": "3" }, "LUDiv": { "HasDest": true, "SSAArgs": "3" }, "LRem": { "HasDest": true, "SSAArgs": "3" }, "LURem": { "HasDest": true, "SSAArgs": "3" }, "Zext": { "HasDest": true, "DestSize": "SrcSize / 4", "SSAArgs": "1", "Args": [ "uint8_t", "SrcSize" ] }, "Sext": { "HasDest": true, "DestSize": "SrcSize / 4", "SSAArgs": "1", "Args": [ "uint8_t", "SrcSize" ] }, "Neg": { "HasDest": true, "SSAArgs": "1" }, "Popcount": { "HasDest": true, "SSAArgs": "1" }, "FindLSB": { "HasDest": true, "SSAArgs": "1" }, "FindMSB": { "HasDest": true, "SSAArgs": "1" }, "Rev": { "HasDest": true, "SSAArgs": "1" }, "CPUID": { "HasDest": true, "FixedDestSize": "4", "NumElements": "4", "SSAArgs": "1" }, "Bfi": { "HasDest": true, "DestSize": "GetOpSize(ssa0)", "SSAArgs": "2", "Args": [ "uint8_t", "Width", "uint8_t", "lsb" ] }, "Bfe": { "HasDest": true, "DestSize": "GetOpSize(ssa0)", "SSAArgs": "1", "Args": [ "uint8_t", "Width", "uint8_t", "lsb" ] }, "Sbfe": { "HasDest": true, "SSAArgs": "1", "Args": [ "uint8_t", "Width", "uint8_t", "lsb" ] }, "Select": { "HasDest": true, "SSAArgs": "4", "Args": [ "CondClassType", "Cond" ] }, "CAS": { "HasDest": true, "DestSize": "GetOpSize(ssa0)", "SSAArgs": "3" }, "Print": { "SSAArgs": "1" }, "CreateVector2": { "HasDest": true, "DestSize": "GetOpSize(ssa0) * 2", "SSAArgs": "2" }, "CreateVector3": { "HasDest": true, "DestSize": "GetOpSize(ssa0) * 3", "SSAArgs": "3" }, "CreateVector4": { "HasDest": true, "DestSize": "GetOpSize(ssa0) * 4", "SSAArgs": "4" }, "SplatVector2": { "HasDest": true, "NumElements": "2", "DestSize": "GetOpSize(ssa0) * 2", "SSAArgs": "1" }, "SplatVector3": { "HasDest": true, "NumElements": "3", "DestSize": "GetOpSize(ssa0) * 3", "SSAArgs": "1" }, "SplatVector4": { "HasDest": true, "NumElements": "4", "DestSize": "GetOpSize(ssa0) * 4", "SSAArgs": "1" }, "ExtractElement": { "HasDest": true, "DestSize": "GetOpSize(ssa0)", "SSAArgs": "1", "Args": [ "uint8_t", "Idx" ] }, "VOr": { "HasDest": true, "SSAArgs": "2" }, "VXor": { "HasDest": true, "SSAArgs": "2" }, "VAdd": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VSub": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VUMin": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VSMin": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VZip": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VZip2": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VCMPEQ": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VCMPGT": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VUShl": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VUShlS": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VUShr": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize" ] }, "VInsElement": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize", "uint8_t", "DestIdx", "uint8_t", "SrcIdx" ] }, "VExtr": { "HasDest": true, "SSAArgs": "2", "Args": [ "uint8_t", "RegisterSize", "uint8_t", "ElementSize", "uint8_t", "Index" ] }, "Last": { "Last": true, "Args": [] } } }