Files
FEX-Emu--FEX/External/FEXCore/Source/Interface/IR/IR.json
T
Ryan Houdek a8d4d0d3c3 Adds new IR ops
vector pairwise add
vector unsigned shift right with narrowing
vector unsigned and signed extend with lengthening from upper bits
vector unsigned and signed multiply with lengthening from upper bits
2020-03-27 20:56:56 -07:00

1370 lines
25 KiB
JSON

{
"Defines": [
"constexpr static uint8_t COND_EQ = 0",
"constexpr static uint8_t COND_NEQ = 1",
"constexpr static uint8_t COND_UGE = 2",
"constexpr static uint8_t COND_ULT = 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_UGT = 8",
"constexpr static uint8_t COND_ULE = 9",
"constexpr static uint8_t COND_SGE = 10",
"constexpr static uint8_t COND_SLT = 11",
"constexpr static uint8_t COND_SGT = 12",
"constexpr static uint8_t COND_SLE = 13",
"static constexpr FEXCore::IR::RegisterClassType GPRClass {0}",
"static constexpr FEXCore::IR::RegisterClassType FPRClass {1}",
"constexpr static uint8_t FCMP_FLAG_EQ = 0",
"constexpr static uint8_t FCMP_FLAG_LT = 1",
"constexpr static uint8_t FCMP_FLAG_UNORDERED = 2"
],
"Ops": {
"Dummy": {
},
"IRHeader": {
"SSAArgs": "1",
"SSANames": [
"Blocks"
],
"Args": [
"uint64_t", "Entry",
"uint32_t", "BlockCount"
]
},
"CodeBlock": {
"SSAArgs": "3",
"RAOverride": "0",
"SSANames": [
"Begin",
"Last",
"Next"
]
},
"BeginBlock": {},
"EndBlock": {
"Args": [
"uint64_t", "RIPIncrement"
]
},
"GuestCallDirect": {
"Args": [
"uint64_t", "RIP",
"uint64_t", "NextRIP"
]
},
"GuestCallIndirect": {
"SSAArgs": "1",
"SSANames": [
"RIP"
],
"Args": [
"uint64_t", "NextRIP"
]
},
"GuestReturn": {
},
"Constant": {
"HasDest": true,
"FixedDestSize": "8",
"Args": [
"uint64_t", "Constant"
]
},
"Break": {
"Args": [
"uint8_t", "Reason",
"uint8_t", "Literal"
]
},
"ExitFunction": {},
"Jump": {
"SSAArgs": "1",
"RAOverride": "0"
},
"CondJump": {
"SSAArgs": "3",
"RAOverride": "1",
"SSANames": [
"Cond",
"TrueBlock",
"FalseBlock"
]
},
"Phi": {
"HasDest": true,
"DestSize": "~0",
"ArgPrinter": false,
"SSAArgs": "2",
"RAOverride": 0,
"SSANames": [
"PhiBegin",
"PhiEnd"
],
"Args": [
"uint8_t", "Class"
]
},
"PhiValue": {
"SSAArgs": "3",
"RAOverride": 0,
"DestSize": "GetOpSize(ssa0)",
"SSANames": [
"Value",
"Block",
"Next"
]
},
"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",
"RegisterClassType", "Class"
]
},
"StoreContext": {
"SSAArgs": "1",
"Args": [
"uint8_t", "Size",
"uint32_t", "Offset",
"RegisterClassType", "Class"
]
},
"LoadContextIndexed": {
"SSAArgs": "1",
"HasDest": true,
"DestSize": "Size",
"Args": [
"uint8_t", "Size",
"uint32_t", "BaseOffset",
"uint32_t", "Stride",
"RegisterClassType", "Class"
]
},
"StoreContextIndexed": {
"SSAArgs": "2",
"Args": [
"uint8_t", "Size",
"uint32_t", "BaseOffset",
"uint32_t", "Stride",
"RegisterClassType", "Class"
]
},
"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",
"uint8_t", "Align",
"RegisterClassType", "Class"
]
},
"StoreMem": {
"SSAArgs": "2",
"Args": [
"uint8_t", "Size",
"uint8_t", "Align",
"RegisterClassType", "Class"
]
},
"Add": {
"HasDest": true,
"SSAArgs": "2"
},
"Sub": {
"HasDest": true,
"SSAArgs": "2"
},
"Neg": {
"HasDest": true,
"SSAArgs": "1"
},
"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"
]
},
"Not": {
"HasDest": true,
"SSAArgs": "1"
},
"Popcount": {
"HasDest": true,
"SSAArgs": "1"
},
"FindLSB": {
"HasDest": true,
"SSAArgs": "1"
},
"FindMSB": {
"HasDest": true,
"SSAArgs": "1"
},
"FindTrailingZeros": {
"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"
},
"AtomicAdd": {
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicSub": {
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicAnd": {
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicOr": {
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicXor": {
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicSwap": {
"HasDest": true,
"DestSize": "Size",
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicFetchAdd": {
"HasDest": true,
"DestSize": "Size",
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicFetchSub": {
"HasDest": true,
"DestSize": "Size",
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicFetchAnd": {
"HasDest": true,
"DestSize": "Size",
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicFetchOr": {
"HasDest": true,
"DestSize": "Size",
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"AtomicFetchXor": {
"HasDest": true,
"DestSize": "Size",
"SSAArgs": "2",
"Args": [
"uint8_t", "Size"
]
},
"VExtractToGPR": {
"HasDest": true,
"SSAArgs": "1",
"DestSize": "ElementSize",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "Idx"
]
},
"Float_ToGPR_ZU": {
"HasDest": true,
"DestSize": "ElementSize",
"SSAArgs": "1",
"Args": [
"uint8_t", "ElementSize"
]
},
"Float_ToGPR_ZS": {
"HasDest": true,
"DestSize": "ElementSize",
"SSAArgs": "1",
"Args": [
"uint8_t", "ElementSize"
]
},
"ExtractElement": {
"HasDest": true,
"DestSize": "GetOpSize(ssa0)",
"SSAArgs": "1",
"Args": [
"uint8_t", "Idx"
]
},
"FCmp": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "ElementSize",
"uint32_t", "Flags"
]
},
"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"
},
"VAnd": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VOr": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VXor": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VAdd": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSub": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUQAdd": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUQSub": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSQAdd": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSQSub": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VAddP": {
"Desc": "Does a horizontal pairwise add of elements across the two source vectors",
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFAdd": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFSub": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFMul": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFDiv": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFMin": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFMax": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFRecp": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFSqrt": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFRSqrt": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VNeg": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VNot": {
"HasDest": true,
"SSAArgs": "1",
"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"
]
},
"VUMax": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSMax": {
"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"
]
},
"VFCMPEQ": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFCMPNEQ": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFCMPLT": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFCMPGT": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VFCMPLE": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUShl": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUShr": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSShr": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUShlS": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUShrS": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSShrS": {
"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"
]
},
"VInsScalarElement": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "DestIdx"
]
},
"VExtractElement": {
"HasDest": true,
"DestSize": "ElementSize",
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "Index"
]
},
"VExtr": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "Index"
]
},
"VInsGPR": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "Index"
]
},
"VSLI": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "ByteShift"
]
},
"VSRI": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "ByteShift"
]
},
"VUShrI": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "BitShift"
]
},
"VSShrI": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "BitShift"
]
},
"VShlI": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "BitShift"
]
},
"VUShrNI": {
"Desc": "Unsigned shifts right each element and then narrows to the next lower element size",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "BitShift"
]
},
"VUShrNI2": {
"Desc": ["Unsigned shifts right each element and then narrows to the next lower element size",
"Inserts results in to the high elements of the first argument"
],
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize",
"uint8_t", "BitShift"
]
},
"VBitcast": {
"HasDest": true,
"SSAArgs": "1"
},
"VSXTL": {
"Desc": "Sign extends elements from the source element size to the next size up",
"HasDest": true,
"DestSize": "RegisterSize",
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSXTL2": {
"Desc": ["Sign extends elements from the source element size to the next size up",
"Source elements come from the upper 64bits of the register"
],
"HasDest": true,
"DestSize": "RegisterSize",
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUXTL": {
"Desc": "Zero extends elements from the source element size to the next size up",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUXTL2": {
"Desc": ["Zero extends elements from the source element size to the next size up",
"Source elements come from the upper 64bits of the register"
],
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VCastFromGPR": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSQXTN": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSQXTN2": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSQXTUN": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSQXTUN2": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"Float_FromGPR_U": {
"Desc": "Scalar op: Converts unsigned GPR to Scalar float",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "ElementSize"
]
},
"Float_FromGPR_S": {
"Desc": "Scalar op: Converts signed GPR to Scalar float",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "ElementSize"
]
},
"Float_FToF": {
"Desc": "Scalar op: Converts float from one size to another",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "DstElementSize",
"uint8_t", "SrcElementSize"
]
},
"Vector_UToF": {
"Desc": "Vector op: Converts unsigned integer to same size float",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"Vector_SToF": {
"Desc": "Vector op: Converts signed integer to same size float",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"Vector_FToZU": {
"Desc": "Vector op: Converts float to unsigned integer, rounding towards zero",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"Vector_FToZS": {
"Desc": "Vector op: Converts float to signed integer, rounding towards zero",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"Vector_FToF": {
"Desc": "Vector op: Converts float from source element size to destination size (fp32<->fp64)",
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "DstElementSize",
"uint8_t", "SrcElementSize"
]
},
"VUMul": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSMul": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUMull": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSMull": {
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VUMull2": {
"Dest": "Multiplies the high elements with size extension",
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"VSMull2": {
"Dest": "Multiplies the high elements with size extension",
"HasDest": true,
"SSAArgs": "2",
"Args": [
"uint8_t", "RegisterSize",
"uint8_t", "ElementSize"
]
},
"GetHostFlag": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint8_t", "Flag"
]
},
"CreatesFlags": {
"HasDest": true,
"SSAArgs": "1",
"Args": [
"uint32_t", "Flags"
]
},
"Last": {
"Last": true,
"Args": []
}
}
}