mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-27 16:02:37 +00:00
343 lines
11 KiB
C++
343 lines
11 KiB
C++
// Central IR opcode catalog. Keep semantic categories here so enum identity, logging,
|
|
// and generic analysis cannot drift apart.
|
|
IR_OPCODE(ControlNop, General)
|
|
IR_OPCODE(Waitcnt, General)
|
|
IR_OPCODE(Barrier, General)
|
|
IR_OPCODE(Sendmsg, General)
|
|
IR_OPCODE(TtraceData, General)
|
|
IR_OPCODE(InstPrefetch, General)
|
|
IR_OPCODE(MoveU32, General)
|
|
IR_OPCODE(MoveF32Bits, General)
|
|
IR_OPCODE(MoveRelDestU32, General)
|
|
IR_OPCODE(MoveRelSourceU32, General)
|
|
IR_OPCODE(MoveU64, General)
|
|
IR_OPCODE(WqmB64, General)
|
|
IR_OPCODE(SaveexecB32, General)
|
|
IR_OPCODE(SaveexecB64, General)
|
|
IR_OPCODE(ReadFirstLaneU32, General)
|
|
IR_OPCODE(ReadLaneU32, General)
|
|
IR_OPCODE(WriteLaneU32, General)
|
|
IR_OPCODE(Permlane16B32, General)
|
|
IR_OPCODE(Permlanex16B32, General)
|
|
IR_OPCODE(AbsI32, General)
|
|
IR_OPCODE(IAddU32, General)
|
|
IR_OPCODE(IAddCarryU32, General)
|
|
IR_OPCODE(ISubBorrowU32, General)
|
|
IR_OPCODE(ScalarAddCarryU32, General)
|
|
IR_OPCODE(ScalarSubBorrowU32, General)
|
|
IR_OPCODE(ScalarSubBorrowCarryU32, General)
|
|
IR_OPCODE(ScalarSignedAddOverflowI32, General)
|
|
IR_OPCODE(ScalarSignedSubOverflowI32, General)
|
|
IR_OPCODE(ScalarShiftLeftAddCarryU32, General)
|
|
IR_OPCODE(ISubU32, General)
|
|
IR_OPCODE(IMulU32, General)
|
|
IR_OPCODE(UMulHighU32, General)
|
|
IR_OPCODE(SMulHighI32, General)
|
|
IR_OPCODE(IMadI24U32, General)
|
|
IR_OPCODE(UMadU24U32, General)
|
|
IR_OPCODE(UMadU64U32, General)
|
|
IR_OPCODE(SadU32, General)
|
|
IR_OPCODE(IAdd3U32, General)
|
|
IR_OPCODE(IMulI24U32, General)
|
|
IR_OPCODE(UMulU24U32, General)
|
|
IR_OPCODE(IMinI32, General)
|
|
IR_OPCODE(IMaxI32, General)
|
|
IR_OPCODE(IMin3I32, General)
|
|
IR_OPCODE(IMax3I32, General)
|
|
IR_OPCODE(IMed3I32, General)
|
|
IR_OPCODE(UMinU32, General)
|
|
IR_OPCODE(UMaxU32, General)
|
|
IR_OPCODE(UMin3U32, General)
|
|
IR_OPCODE(UMax3U32, General)
|
|
IR_OPCODE(UMed3U32, General)
|
|
IR_OPCODE(BitwiseAndU32, General)
|
|
IR_OPCODE(BitwiseAndU64, General)
|
|
IR_OPCODE(BitwiseAndNotU32, General)
|
|
IR_OPCODE(BitwiseAndNotU64, General)
|
|
IR_OPCODE(BitwiseOrU32, General)
|
|
IR_OPCODE(BitwiseOrU64, General)
|
|
IR_OPCODE(BitwiseOrNotU32, General)
|
|
IR_OPCODE(BitwiseOrNotU64, General)
|
|
IR_OPCODE(BitwiseAndOrU32, General)
|
|
IR_OPCODE(BitwiseOr3U32, General)
|
|
IR_OPCODE(BitwiseXorU32, General)
|
|
IR_OPCODE(BitwiseXorU64, General)
|
|
IR_OPCODE(BitwiseXor3U32, General)
|
|
IR_OPCODE(BitwiseNandU32, General)
|
|
IR_OPCODE(BitwiseNandU64, General)
|
|
IR_OPCODE(BitwiseNorU32, General)
|
|
IR_OPCODE(BitwiseNorU64, General)
|
|
IR_OPCODE(BitwiseXnorU32, General)
|
|
IR_OPCODE(BitwiseXnorU64, General)
|
|
IR_OPCODE(BitwiseNotU32, General)
|
|
IR_OPCODE(BitwiseNotU64, General)
|
|
IR_OPCODE(BitClearU32, General)
|
|
IR_OPCODE(BitSetU32, General)
|
|
IR_OPCODE(BitReverseU32, General)
|
|
IR_OPCODE(BitCountU32, General)
|
|
IR_OPCODE(BitCountU64, General)
|
|
IR_OPCODE(BitReplicateB64B32, General)
|
|
IR_OPCODE(BitCountAddU32, General)
|
|
IR_OPCODE(MaskedBitCountLowU32, General)
|
|
IR_OPCODE(MaskedBitCountHighU32, General)
|
|
IR_OPCODE(FindLsbU32, General)
|
|
IR_OPCODE(FindMsbFromHighU32, General)
|
|
IR_OPCODE(FindMsbFromHighU64, General)
|
|
IR_OPCODE(BitFieldMaskU32, General)
|
|
IR_OPCODE(BitFieldMaskU64, General)
|
|
IR_OPCODE(BitFieldExtractU32, General)
|
|
IR_OPCODE(BitFieldExtractU64, General)
|
|
IR_OPCODE(BitFieldExtract3U32, General)
|
|
IR_OPCODE(BitFieldExtract3I32, General)
|
|
IR_OPCODE(BitFieldInsertSelectU32, General)
|
|
IR_OPCODE(BitCompare0B32, General)
|
|
IR_OPCODE(BitCompare1B32, General)
|
|
IR_OPCODE(AlignBitU32, General)
|
|
IR_OPCODE(ShiftLeftAddU32, General)
|
|
IR_OPCODE(AddShiftLeftU32, General)
|
|
IR_OPCODE(XorAddU32, General)
|
|
IR_OPCODE(ShiftLeftOrU32, General)
|
|
IR_OPCODE(ShiftLeftLogicalU32, General)
|
|
IR_OPCODE(ShiftLeftLogicalU64, General)
|
|
IR_OPCODE(ShiftLeftLogicalU16, General)
|
|
IR_OPCODE(ShiftRightLogicalU32, General)
|
|
IR_OPCODE(ShiftRightLogicalU64, General)
|
|
IR_OPCODE(ShiftRightLogicalU16, General)
|
|
IR_OPCODE(ShiftRightArithmeticI32, General)
|
|
IR_OPCODE(ShiftRightArithmeticI16, General)
|
|
IR_OPCODE(SelectU32, General)
|
|
IR_OPCODE(SelectMaskU32, General)
|
|
IR_OPCODE(SelectF32Bits, General)
|
|
IR_OPCODE(SelectMaskF32Bits, General)
|
|
IR_OPCODE(SelectU64, General)
|
|
IR_OPCODE(PackLowLowU16, General)
|
|
IR_OPCODE(PackLowHighU16, General)
|
|
IR_OPCODE(PackHighHighU16, General)
|
|
IR_OPCODE(CompareFalse, Compare)
|
|
IR_OPCODE(CompareTrue, Compare)
|
|
IR_OPCODE(CompareEqU32, Compare)
|
|
IR_OPCODE(CompareNeU32, Compare)
|
|
IR_OPCODE(CompareGtU32, Compare)
|
|
IR_OPCODE(CompareGeU32, Compare)
|
|
IR_OPCODE(CompareLtU32, Compare)
|
|
IR_OPCODE(CompareLeU32, Compare)
|
|
IR_OPCODE(CompareEqU64, Compare64)
|
|
IR_OPCODE(CompareNeU64, Compare64)
|
|
IR_OPCODE(CompareMaskEqU32, Compare)
|
|
IR_OPCODE(CompareMaskNeU32, Compare)
|
|
IR_OPCODE(CompareMaskGtU32, Compare)
|
|
IR_OPCODE(CompareMaskGeU32, Compare)
|
|
IR_OPCODE(CompareMaskLtU32, Compare)
|
|
IR_OPCODE(CompareMaskLeU32, Compare)
|
|
IR_OPCODE(CompareEqI32, Compare)
|
|
IR_OPCODE(CompareNeI32, Compare)
|
|
IR_OPCODE(CompareGtI32, Compare)
|
|
IR_OPCODE(CompareGeI32, Compare)
|
|
IR_OPCODE(CompareLtI32, Compare)
|
|
IR_OPCODE(CompareLeI32, Compare)
|
|
IR_OPCODE(CompareEqI16, Compare)
|
|
IR_OPCODE(CompareNeI16, Compare)
|
|
IR_OPCODE(CompareGtI16, Compare)
|
|
IR_OPCODE(CompareGeI16, Compare)
|
|
IR_OPCODE(CompareLtI16, Compare)
|
|
IR_OPCODE(CompareLeI16, Compare)
|
|
IR_OPCODE(CompareMaskEqI32, Compare)
|
|
IR_OPCODE(CompareMaskNeI32, Compare)
|
|
IR_OPCODE(CompareMaskGtI32, Compare)
|
|
IR_OPCODE(CompareMaskGeI32, Compare)
|
|
IR_OPCODE(CompareMaskLtI32, Compare)
|
|
IR_OPCODE(CompareMaskLeI32, Compare)
|
|
IR_OPCODE(CompareEqU16, Compare)
|
|
IR_OPCODE(CompareNeU16, Compare)
|
|
IR_OPCODE(CompareGtU16, Compare)
|
|
IR_OPCODE(CompareGeU16, Compare)
|
|
IR_OPCODE(CompareLtU16, Compare)
|
|
IR_OPCODE(CompareLeU16, Compare)
|
|
IR_OPCODE(CompareEqF32, Compare)
|
|
IR_OPCODE(CompareNeF32, Compare)
|
|
IR_OPCODE(CompareGtF32, Compare)
|
|
IR_OPCODE(CompareGeF32, Compare)
|
|
IR_OPCODE(CompareLtF32, Compare)
|
|
IR_OPCODE(CompareLeF32, Compare)
|
|
IR_OPCODE(CompareOrderedF32, Compare)
|
|
IR_OPCODE(CompareUnorderedF32, Compare)
|
|
IR_OPCODE(CompareUnordEqF32, Compare)
|
|
IR_OPCODE(CompareUnordNeF32, Compare)
|
|
IR_OPCODE(CompareUnordGtF32, Compare)
|
|
IR_OPCODE(CompareUnordGeF32, Compare)
|
|
IR_OPCODE(CompareUnordLtF32, Compare)
|
|
IR_OPCODE(CompareUnordLeF32, Compare)
|
|
IR_OPCODE(CompareClassF32, Compare)
|
|
IR_OPCODE(CompareEqF16, Compare)
|
|
IR_OPCODE(CompareNeF16, Compare)
|
|
IR_OPCODE(CompareGtF16, Compare)
|
|
IR_OPCODE(CompareGeF16, Compare)
|
|
IR_OPCODE(CompareLtF16, Compare)
|
|
IR_OPCODE(CompareLeF16, Compare)
|
|
IR_OPCODE(CompareUnordNeF16, Compare)
|
|
IR_OPCODE(CompareMaskEqF16, Compare)
|
|
IR_OPCODE(CompareMaskNeF16, Compare)
|
|
IR_OPCODE(CompareMaskGtF16, Compare)
|
|
IR_OPCODE(CompareMaskGeF16, Compare)
|
|
IR_OPCODE(CompareMaskLtF16, Compare)
|
|
IR_OPCODE(CompareMaskLeF16, Compare)
|
|
IR_OPCODE(CompareMaskUnordNeF16, Compare)
|
|
IR_OPCODE(CompareMaskUnordGeF16, Compare)
|
|
IR_OPCODE(CompareMaskEqF32, Compare)
|
|
IR_OPCODE(CompareMaskNeF32, Compare)
|
|
IR_OPCODE(CompareMaskGtF32, Compare)
|
|
IR_OPCODE(CompareMaskGeF32, Compare)
|
|
IR_OPCODE(CompareMaskLtF32, Compare)
|
|
IR_OPCODE(CompareMaskLeF32, Compare)
|
|
IR_OPCODE(CompareMaskUnordEqF32, Compare)
|
|
IR_OPCODE(CompareMaskUnordNeF32, Compare)
|
|
IR_OPCODE(CompareMaskUnordGtF32, Compare)
|
|
IR_OPCODE(CompareMaskUnordGeF32, Compare)
|
|
IR_OPCODE(CompareMaskUnordLtF32, Compare)
|
|
IR_OPCODE(CompareMaskUnordLeF32, Compare)
|
|
IR_OPCODE(ConvertByteU32ToF32, General)
|
|
IR_OPCODE(ConvertU32ToF32, General)
|
|
IR_OPCODE(ConvertI32ToF32, General)
|
|
IR_OPCODE(ConvertF32ToU32, General)
|
|
IR_OPCODE(ConvertF32ToI32, General)
|
|
IR_OPCODE(ConvertF32ToF16, General)
|
|
IR_OPCODE(ConvertF16ToF32, General)
|
|
IR_OPCODE(ConvertU16ToF16, General)
|
|
IR_OPCODE(ConvertF16ToU16, General)
|
|
IR_OPCODE(ConvertI16ToF16, General)
|
|
IR_OPCODE(ConvertF16ToI16, General)
|
|
IR_OPCODE(ConvertRoundPlusInfF32ToI32, General)
|
|
IR_OPCODE(ConvertFloorF32ToI32, General)
|
|
IR_OPCODE(ConvertI4ToOffsetF32, General)
|
|
IR_OPCODE(LdexpF32, General)
|
|
IR_OPCODE(PackF32ToF16Rtz, General)
|
|
IR_OPCODE(PackSnorm2x16F32, General)
|
|
IR_OPCODE(PackUnorm2x16F32, General)
|
|
IR_OPCODE(PackU16U32, General)
|
|
IR_OPCODE(PackU8F32, General)
|
|
IR_OPCODE(PackB32F16, General)
|
|
IR_OPCODE(PackedMadI16, General)
|
|
IR_OPCODE(PackedMulLoU16, General)
|
|
IR_OPCODE(PackedAddI16, General)
|
|
IR_OPCODE(PackedSubI16, General)
|
|
IR_OPCODE(PackedLshlrevB16, General)
|
|
IR_OPCODE(PackedLshrrevB16, General)
|
|
IR_OPCODE(PackedAshrrevI16, General)
|
|
IR_OPCODE(PackedMaxI16, General)
|
|
IR_OPCODE(PackedMinI16, General)
|
|
IR_OPCODE(PackedMadU16, General)
|
|
IR_OPCODE(PackedAddU16, General)
|
|
IR_OPCODE(PackedSubU16, General)
|
|
IR_OPCODE(PackedMaxU16, General)
|
|
IR_OPCODE(PackedMinU16, General)
|
|
IR_OPCODE(PackedAddF16, General)
|
|
IR_OPCODE(PackedMulF16, General)
|
|
IR_OPCODE(PackedMinF16, General)
|
|
IR_OPCODE(PackedMaxF16, General)
|
|
IR_OPCODE(PackedFmaF16, General)
|
|
IR_OPCODE(AddF16, General)
|
|
IR_OPCODE(SubF16, General)
|
|
IR_OPCODE(MulF16, General)
|
|
IR_OPCODE(MinF16, General)
|
|
IR_OPCODE(MaxF16, General)
|
|
IR_OPCODE(FmaF16, General)
|
|
IR_OPCODE(MadMixF16, General)
|
|
IR_OPCODE(IAddU16, General)
|
|
IR_OPCODE(ISubI16, General)
|
|
IR_OPCODE(IMinI16, General)
|
|
IR_OPCODE(IMaxI16, General)
|
|
IR_OPCODE(UMinU16, General)
|
|
IR_OPCODE(UMaxU16, General)
|
|
IR_OPCODE(RcpF32, General)
|
|
IR_OPCODE(FractF32, General)
|
|
IR_OPCODE(TruncF32, General)
|
|
IR_OPCODE(CeilF32, General)
|
|
IR_OPCODE(RoundEvenF32, General)
|
|
IR_OPCODE(FloorF32, General)
|
|
IR_OPCODE(Exp2F32, General)
|
|
IR_OPCODE(Log2F32, General)
|
|
IR_OPCODE(InverseSqrtF32, General)
|
|
IR_OPCODE(SqrtF32, General)
|
|
IR_OPCODE(RcpF16, General)
|
|
IR_OPCODE(SqrtF16, General)
|
|
IR_OPCODE(InverseSqrtF16, General)
|
|
IR_OPCODE(Log2F16, General)
|
|
IR_OPCODE(Exp2F16, General)
|
|
IR_OPCODE(FloorF16, General)
|
|
IR_OPCODE(CeilF16, General)
|
|
IR_OPCODE(TruncF16, General)
|
|
IR_OPCODE(RoundEvenF16, General)
|
|
IR_OPCODE(SinF32, General)
|
|
IR_OPCODE(CosF32, General)
|
|
IR_OPCODE(CubeIdF32, General)
|
|
IR_OPCODE(CubeScF32, General)
|
|
IR_OPCODE(CubeTcF32, General)
|
|
IR_OPCODE(CubeMaF32, General)
|
|
IR_OPCODE(FAddF32, General)
|
|
IR_OPCODE(FSubF32, General)
|
|
IR_OPCODE(FMulF32, General)
|
|
IR_OPCODE(FMinF32, General)
|
|
IR_OPCODE(FMaxF32, General)
|
|
IR_OPCODE(FMadF32, General)
|
|
IR_OPCODE(Dot2AccF32F16, General)
|
|
IR_OPCODE(FMin3F32, General)
|
|
IR_OPCODE(FMax3F32, General)
|
|
IR_OPCODE(FMed3F32, General)
|
|
IR_OPCODE(Min3F16, General)
|
|
IR_OPCODE(Max3F16, General)
|
|
IR_OPCODE(Med3F16, General)
|
|
IR_OPCODE(LoadSrtDword, General)
|
|
IR_OPCODE(SLoadDword, General)
|
|
IR_OPCODE(SBufferLoadDword, General)
|
|
IR_OPCODE(BufferLoadUbyte, General)
|
|
IR_OPCODE(BufferLoadSbyte, General)
|
|
IR_OPCODE(BufferLoadUshort, General)
|
|
IR_OPCODE(BufferLoadSshort, General)
|
|
IR_OPCODE(BufferLoadDword, General)
|
|
IR_OPCODE(BufferStoreByte, General)
|
|
IR_OPCODE(BufferStoreShort, General)
|
|
IR_OPCODE(BufferStoreDword, General)
|
|
IR_OPCODE(AtomicSwapU32, General)
|
|
IR_OPCODE(AtomicAddU32, General)
|
|
IR_OPCODE(AtomicSubU32, General)
|
|
IR_OPCODE(AtomicSMinI32, General)
|
|
IR_OPCODE(AtomicUMinU32, General)
|
|
IR_OPCODE(AtomicSMaxI32, General)
|
|
IR_OPCODE(AtomicUMaxU32, General)
|
|
IR_OPCODE(AtomicAndU32, General)
|
|
IR_OPCODE(AtomicOrU32, General)
|
|
IR_OPCODE(AtomicXorU32, General)
|
|
IR_OPCODE(AtomicFMinF32, General)
|
|
IR_OPCODE(AtomicFMaxF32, General)
|
|
IR_OPCODE(FlatLoadUbyte, General)
|
|
IR_OPCODE(FlatLoadSbyte, General)
|
|
IR_OPCODE(FlatLoadUshort, General)
|
|
IR_OPCODE(FlatLoadSshort, General)
|
|
IR_OPCODE(FlatLoadDword, General)
|
|
IR_OPCODE(FlatStoreByte, General)
|
|
IR_OPCODE(FlatStoreShort, General)
|
|
IR_OPCODE(FlatStoreDword, General)
|
|
IR_OPCODE(DsReadUbyte, General)
|
|
IR_OPCODE(DsReadSbyte, General)
|
|
IR_OPCODE(DsReadUshort, General)
|
|
IR_OPCODE(DsReadSshort, General)
|
|
IR_OPCODE(DsReadB32, General)
|
|
IR_OPCODE(DsWriteByte, General)
|
|
IR_OPCODE(DsWriteShort, General)
|
|
IR_OPCODE(DsWriteB32, General)
|
|
IR_OPCODE(DsMinF32, General)
|
|
IR_OPCODE(DsMaxF32, General)
|
|
IR_OPCODE(DsSwizzleB32, General)
|
|
IR_OPCODE(DsConsume, General)
|
|
IR_OPCODE(DsAppend, General)
|
|
IR_OPCODE(DsWriteAddtidB32, General)
|
|
IR_OPCODE(DsReadAddtidB32, General)
|
|
IR_OPCODE(ImageGetResinfo, General)
|
|
IR_OPCODE(ImageGetLod, General)
|
|
IR_OPCODE(ImageLoad, General)
|
|
IR_OPCODE(ImageStore, General)
|
|
IR_OPCODE(ImageSample, General)
|
|
IR_OPCODE(ImageGather4, General)
|
|
IR_OPCODE(LoadInputF32, General)
|
|
IR_OPCODE(Export, General)
|