diff --git a/src/dynarmic/backend/A64/opcodes.inc b/src/dynarmic/backend/A64/opcodes.inc index 8857cf78..521226df 100644 --- a/src/dynarmic/backend/A64/opcodes.inc +++ b/src/dynarmic/backend/A64/opcodes.inc @@ -1,21 +1,26 @@ +// clang-format off + // opcode name, return type, arg1 type, arg2 type, arg3 type, arg4 type, ... OPCODE(Void, Void, ) OPCODE(Identity, Opaque, Opaque ) OPCODE(Breakpoint, Void, ) +//OPCODE(CallHostFunction, Void, U64, Opaque, Opaque, Opaque ) // A32 Context getters/setters A32OPC(SetCheckBit, Void, U1 ) A32OPC(GetRegister, U32, A32Reg ) A32OPC(GetExtendedRegister32, U32, A32ExtReg ) A32OPC(GetExtendedRegister64, U64, A32ExtReg ) +//A32OPC(GetVector, U128, A32ExtReg ) A32OPC(SetRegister, Void, A32Reg, U32 ) A32OPC(SetExtendedRegister32, Void, A32ExtReg, U32 ) A32OPC(SetExtendedRegister64, Void, A32ExtReg, U64 ) +//A32OPC(SetVector, Void, A32ExtReg, U128 ) A32OPC(GetCpsr, U32, ) A32OPC(SetCpsr, Void, U32 ) -A32OPC(SetCpsrNZCVRaw, Void, U32 ) A32OPC(SetCpsrNZCV, Void, NZCV ) +A32OPC(SetCpsrNZCVRaw, Void, U32 ) A32OPC(SetCpsrNZCVQ, Void, U32 ) A32OPC(GetNFlag, U1, ) A32OPC(SetNFlag, Void, U1 ) @@ -30,8 +35,12 @@ A32OPC(GetGEFlags, U32, A32OPC(SetGEFlags, Void, U32 ) A32OPC(SetGEFlagsCompressed, Void, U32 ) A32OPC(BXWritePC, Void, U32 ) +//A32OPC(UpdateUpperLocationDescriptor, Void, ) A32OPC(CallSupervisor, Void, U32 ) A32OPC(ExceptionRaised, Void, U32, U64 ) +//A32OPC(DataSynchronizationBarrier, Void, ) +//A32OPC(DataMemoryBarrier, Void, ) +//A32OPC(InstructionSynchronizationBarrier, Void, ) A32OPC(GetFpscr, U32, ) A32OPC(SetFpscr, Void, U32, ) A32OPC(GetFpscrNZCV, U32, ) @@ -64,6 +73,7 @@ A32OPC(SetFpscrNZCV, Void, NZCV //A64OPC(CallSupervisor, Void, U32 ) //A64OPC(ExceptionRaised, Void, U64, U64 ) //A64OPC(DataCacheOperationRaised, Void, U64, U64 ) +//A64OPC(InstructionCacheOperationRaised, Void, U64, U64 ) //A64OPC(DataSynchronizationBarrier, Void, ) //A64OPC(DataMemoryBarrier, Void, ) //A64OPC(InstructionSynchronizationBarrier, Void, ) @@ -92,9 +102,9 @@ OPCODE(NZCVFromPackedFlags, NZCV, U32 OPCODE(Pack2x32To1x64, U64, U32, U32 ) //OPCODE(Pack2x64To1x128, U128, U64, U64 ) OPCODE(LeastSignificantWord, U32, U64 ) -OPCODE(MostSignificantWord, U32, U64 ) OPCODE(LeastSignificantHalf, U16, U32 ) OPCODE(LeastSignificantByte, U8, U32 ) +OPCODE(MostSignificantWord, U32, U64 ) OPCODE(MostSignificantBit, U1, U32 ) OPCODE(IsZero32, U1, U32 ) OPCODE(IsZero64, U1, U64 ) @@ -111,6 +121,14 @@ OPCODE(ArithmeticShiftRight32, U32, U32, OPCODE(RotateRight32, U32, U32, U8, U1 ) OPCODE(RotateRight64, U64, U64, U8 ) OPCODE(RotateRightExtended, U32, U32, U1 ) +//OPCODE(LogicalShiftLeftMasked32, U32, U32, U32 ) +//OPCODE(LogicalShiftLeftMasked64, U64, U64, U64 ) +//OPCODE(LogicalShiftRightMasked32, U32, U32, U32 ) +//OPCODE(LogicalShiftRightMasked64, U64, U64, U64 ) +//OPCODE(ArithmeticShiftRightMasked32, U32, U32, U32 ) +//OPCODE(ArithmeticShiftRightMasked64, U64, U64, U64 ) +//OPCODE(RotateRightMasked32, U32, U32, U32 ) +//OPCODE(RotateRightMasked64, U64, U64, U64 ) OPCODE(Add32, U32, U32, U32, U1 ) OPCODE(Add64, U64, U64, U64, U1 ) OPCODE(Sub32, U32, U32, U32, U1 ) @@ -125,6 +143,8 @@ OPCODE(SignedDiv32, U32, U32, OPCODE(SignedDiv64, U64, U64, U64 ) OPCODE(And32, U32, U32, U32 ) OPCODE(And64, U64, U64, U64 ) +//OPCODE(AndNot32, U32, U32, U32 ) +//OPCODE(AndNot64, U64, U64, U64 ) OPCODE(Eor32, U32, U32, U32 ) OPCODE(Eor64, U64, U64, U64 ) OPCODE(Or32, U32, U32, U32 ) @@ -142,13 +162,15 @@ OPCODE(ZeroExtendByteToLong, U64, U8 OPCODE(ZeroExtendHalfToLong, U64, U16 ) OPCODE(ZeroExtendWordToLong, U64, U32 ) //OPCODE(ZeroExtendLongToQuad, U128, U64 ) -//OPCODE(ByteReverseDual, U64, U64 ) OPCODE(ByteReverseWord, U32, U32 ) OPCODE(ByteReverseHalf, U16, U16 ) +//OPCODE(ByteReverseDual, U64, U64 ) OPCODE(CountLeadingZeros32, U32, U32 ) OPCODE(CountLeadingZeros64, U64, U64 ) //OPCODE(ExtractRegister32, U32, U32, U32, U8 ) //OPCODE(ExtractRegister64, U64, U64, U64, U8 ) +//OPCODE(ReplicateBit32, U32, U32, U8 ) +//OPCODE(ReplicateBit64, U64, U64, U8 ) //OPCODE(MaxSigned32, U32, U32, U32 ) //OPCODE(MaxSigned64, U64, U64, U64 ) //OPCODE(MaxUnsigned32, U32, U32, U32 ) @@ -180,6 +202,24 @@ OPCODE(SignedSaturation, U32, U32, //OPCODE(UnsignedSaturatedSub64, U64, U64, U64 ) OPCODE(UnsignedSaturation, U32, U32, U8 ) +// Vector saturated instructions +//OPCODE(VectorSignedSaturatedAdd8, U128, U128, U128 ) +//OPCODE(VectorSignedSaturatedAdd16, U128, U128, U128 ) +//OPCODE(VectorSignedSaturatedAdd32, U128, U128, U128 ) +//OPCODE(VectorSignedSaturatedAdd64, U128, U128, U128 ) +//OPCODE(VectorSignedSaturatedSub8, U128, U128, U128 ) +//OPCODE(VectorSignedSaturatedSub16, U128, U128, U128 ) +//OPCODE(VectorSignedSaturatedSub32, U128, U128, U128 ) +//OPCODE(VectorSignedSaturatedSub64, U128, U128, U128 ) +//OPCODE(VectorUnsignedSaturatedAdd8, U128, U128, U128 ) +//OPCODE(VectorUnsignedSaturatedAdd16, U128, U128, U128 ) +//OPCODE(VectorUnsignedSaturatedAdd32, U128, U128, U128 ) +//OPCODE(VectorUnsignedSaturatedAdd64, U128, U128, U128 ) +//OPCODE(VectorUnsignedSaturatedSub8, U128, U128, U128 ) +//OPCODE(VectorUnsignedSaturatedSub16, U128, U128, U128 ) +//OPCODE(VectorUnsignedSaturatedSub32, U128, U128, U128 ) +//OPCODE(VectorUnsignedSaturatedSub64, U128, U128, U128 ) + // Packed instructions OPCODE(PackedAddU8, U32, U32, U32 ) OPCODE(PackedAddS8, U32, U32, U32 ) @@ -235,6 +275,11 @@ OPCODE(PackedSelect, U32, U32, // SM4 instructions //OPCODE(SM4AccessSubstitutionBox, U8, U8 ) +// SHA instructions +//OPCODE(SHA256Hash, U128, U128, U128, U128, U1 ) +//OPCODE(SHA256MessageSchedule0, U128, U128, U128 ) +//OPCODE(SHA256MessageSchedule1, U128, U128, U128, U128 ) + // Vector instructions //OPCODE(VectorGetElement8, U8, U128, U8 ) //OPCODE(VectorGetElement16, U16, U128, U8 ) @@ -253,6 +298,7 @@ OPCODE(PackedSelect, U32, U32, //OPCODE(VectorAdd32, U128, U128, U128 ) //OPCODE(VectorAdd64, U128, U128, U128 ) //OPCODE(VectorAnd, U128, U128, U128 ) +//OPCODE(VectorAndNot, U128, U128, U128 ) //OPCODE(VectorArithmeticShiftRight8, U128, U128, U8 ) //OPCODE(VectorArithmeticShiftRight16, U128, U128, U8 ) //OPCODE(VectorArithmeticShiftRight32, U128, U128, U8 ) @@ -268,6 +314,13 @@ OPCODE(PackedSelect, U32, U32, //OPCODE(VectorBroadcast16, U128, U16 ) //OPCODE(VectorBroadcast32, U128, U32 ) //OPCODE(VectorBroadcast64, U128, U64 ) +//OPCODE(VectorBroadcastElementLower8, U128, U128, U8 ) +//OPCODE(VectorBroadcastElementLower16, U128, U128, U8 ) +//OPCODE(VectorBroadcastElementLower32, U128, U128, U8 ) +//OPCODE(VectorBroadcastElement8, U128, U128, U8 ) +//OPCODE(VectorBroadcastElement16, U128, U128, U8 ) +//OPCODE(VectorBroadcastElement32, U128, U128, U8 ) +//OPCODE(VectorBroadcastElement64, U128, U128, U8 ) //OPCODE(VectorCountLeadingZeros8, U128, U128 ) //OPCODE(VectorCountLeadingZeros16, U128, U128 ) //OPCODE(VectorCountLeadingZeros32, U128, U128 ) @@ -275,10 +328,18 @@ OPCODE(PackedSelect, U32, U32, //OPCODE(VectorDeinterleaveEven16, U128, U128, U128 ) //OPCODE(VectorDeinterleaveEven32, U128, U128, U128 ) //OPCODE(VectorDeinterleaveEven64, U128, U128, U128 ) +//OPCODE(VectorDeinterleaveEvenLower8, U128, U128, U128 ) +//OPCODE(VectorDeinterleaveEvenLower16, U128, U128, U128 ) +//OPCODE(VectorDeinterleaveEvenLower32, U128, U128, U128 ) +//OPCODE(VectorDeinterleaveEvenLower64, U128, U128, U128 ) //OPCODE(VectorDeinterleaveOdd8, U128, U128, U128 ) //OPCODE(VectorDeinterleaveOdd16, U128, U128, U128 ) //OPCODE(VectorDeinterleaveOdd32, U128, U128, U128 ) //OPCODE(VectorDeinterleaveOdd64, U128, U128, U128 ) +//OPCODE(VectorDeinterleaveOddLower8, U128, U128, U128 ) +//OPCODE(VectorDeinterleaveOddLower16, U128, U128, U128 ) +//OPCODE(VectorDeinterleaveOddLower32, U128, U128, U128 ) +//OPCODE(VectorDeinterleaveOddLower64, U128, U128, U128 ) //OPCODE(VectorEor, U128, U128, U128 ) //OPCODE(VectorEqual8, U128, U128, U128 ) //OPCODE(VectorEqual16, U128, U128, U128 ) @@ -378,6 +439,10 @@ OPCODE(PackedSelect, U32, U32, //OPCODE(VectorPolynomialMultiplyLong64, U128, U128, U128 ) //OPCODE(VectorPopulationCount, U128, U128 ) //OPCODE(VectorReverseBits, U128, U128 ) +//OPCODE(VectorReduceAdd8, U128, U128 ) +//OPCODE(VectorReduceAdd16, U128, U128 ) +//OPCODE(VectorReduceAdd32, U128, U128 ) +//OPCODE(VectorReduceAdd64, U128, U128 ) //OPCODE(VectorRoundingHalvingAddS8, U128, U128, U128 ) //OPCODE(VectorRoundingHalvingAddS16, U128, U128, U128 ) //OPCODE(VectorRoundingHalvingAddS32, U128, U128, U128 ) @@ -438,8 +503,13 @@ OPCODE(PackedSelect, U32, U32, //OPCODE(VectorSub16, U128, U128, U128 ) //OPCODE(VectorSub32, U128, U128, U128 ) //OPCODE(VectorSub64, U128, U128, U128 ) -//OPCODE(VectorTable, Table, U128, Opaque, Opaque, Opaque ) -//OPCODE(VectorTableLookup, U128, U128, Table, U128 ) +//OPCODE(VectorTable, Table, Opaque, Opaque, Opaque, Opaque ) +//OPCODE(VectorTableLookup64, U64, U64, Table, U64 ) +//OPCODE(VectorTableLookup128, U128, U128, Table, U128 ) +//OPCODE(VectorTranspose8, U128, U128, U128, U1 ) +//OPCODE(VectorTranspose16, U128, U128, U128, U1 ) +//OPCODE(VectorTranspose32, U128, U128, U128, U1 ) +//OPCODE(VectorTranspose64, U128, U128, U128, U1 ) //OPCODE(VectorUnsignedAbsoluteDifference8, U128, U128, U128 ) //OPCODE(VectorUnsignedAbsoluteDifference16, U128, U128, U128 ) //OPCODE(VectorUnsignedAbsoluteDifference32, U128, U128, U128 ) @@ -523,24 +593,34 @@ OPCODE(FPSingleToDouble, U64, U32, OPCODE(FPSingleToHalf, U16, U32, U8 ) OPCODE(FPDoubleToHalf, U16, U64, U8 ) OPCODE(FPDoubleToSingle, U32, U64, U8 ) +//OPCODE(FPDoubleToFixedS16, U16, U64, U8, U8 ) OPCODE(FPDoubleToFixedS32, U32, U64, U8, U8 ) OPCODE(FPDoubleToFixedS64, U64, U64, U8, U8 ) +//OPCODE(FPDoubleToFixedU16, U16, U64, U8, U8 ) OPCODE(FPDoubleToFixedU32, U32, U64, U8, U8 ) OPCODE(FPDoubleToFixedU64, U64, U64, U8, U8 ) +//OPCODE(FPHalfToFixedS16, U16, U16, U8, U8 ) //OPCODE(FPHalfToFixedS32, U32, U16, U8, U8 ) //OPCODE(FPHalfToFixedS64, U64, U16, U8, U8 ) +//OPCODE(FPHalfToFixedU16, U16, U16, U8, U8 ) //OPCODE(FPHalfToFixedU32, U32, U16, U8, U8 ) //OPCODE(FPHalfToFixedU64, U64, U16, U8, U8 ) +//OPCODE(FPSingleToFixedS16, U16, U32, U8, U8 ) OPCODE(FPSingleToFixedS32, U32, U32, U8, U8 ) OPCODE(FPSingleToFixedS64, U64, U32, U8, U8 ) +//OPCODE(FPSingleToFixedU16, U16, U32, U8, U8 ) OPCODE(FPSingleToFixedU32, U32, U32, U8, U8 ) OPCODE(FPSingleToFixedU64, U64, U32, U8, U8 ) +//OPCODE(FPFixedU16ToSingle, U32, U16, U8, U8 ) +//OPCODE(FPFixedS16ToSingle, U32, U16, U8, U8 ) +//OPCODE(FPFixedU16ToDouble, U64, U16, U8, U8 ) +//OPCODE(FPFixedS16ToDouble, U64, U16, U8, U8 ) OPCODE(FPFixedU32ToSingle, U32, U32, U8, U8 ) OPCODE(FPFixedS32ToSingle, U32, U32, U8, U8 ) OPCODE(FPFixedU32ToDouble, U64, U32, U8, U8 ) +OPCODE(FPFixedS32ToDouble, U64, U32, U8, U8 ) OPCODE(FPFixedU64ToDouble, U64, U64, U8, U8 ) OPCODE(FPFixedU64ToSingle, U32, U64, U8, U8 ) -OPCODE(FPFixedS32ToDouble, U64, U32, U8, U8 ) OPCODE(FPFixedS64ToDouble, U64, U64, U8, U8 ) OPCODE(FPFixedS64ToSingle, U32, U64, U8, U8 ) @@ -548,98 +628,108 @@ OPCODE(FPFixedS64ToSingle, U32, U64, //OPCODE(FPVectorAbs16, U128, U128 ) //OPCODE(FPVectorAbs32, U128, U128 ) //OPCODE(FPVectorAbs64, U128, U128 ) -//OPCODE(FPVectorAdd32, U128, U128, U128 ) -//OPCODE(FPVectorAdd64, U128, U128, U128 ) -//OPCODE(FPVectorDiv32, U128, U128, U128 ) -//OPCODE(FPVectorDiv64, U128, U128, U128 ) -//OPCODE(FPVectorEqual32, U128, U128, U128 ) -//OPCODE(FPVectorEqual64, U128, U128, U128 ) -//OPCODE(FPVectorFromSignedFixed32, U128, U128, U8, U8 ) -//OPCODE(FPVectorFromSignedFixed64, U128, U128, U8, U8 ) -//OPCODE(FPVectorFromUnsignedFixed32, U128, U128, U8, U8 ) -//OPCODE(FPVectorFromUnsignedFixed64, U128, U128, U8, U8 ) -//OPCODE(FPVectorGreater32, U128, U128, U128 ) -//OPCODE(FPVectorGreater64, U128, U128, U128 ) -//OPCODE(FPVectorGreaterEqual32, U128, U128, U128 ) -//OPCODE(FPVectorGreaterEqual64, U128, U128, U128 ) -//OPCODE(FPVectorMax32, U128, U128, U128 ) -//OPCODE(FPVectorMax64, U128, U128, U128 ) -//OPCODE(FPVectorMin32, U128, U128, U128 ) -//OPCODE(FPVectorMin64, U128, U128, U128 ) -//OPCODE(FPVectorMul32, U128, U128, U128 ) -//OPCODE(FPVectorMul64, U128, U128, U128 ) -//OPCODE(FPVectorMulAdd16, U128, U128, U128, U128 ) -//OPCODE(FPVectorMulAdd32, U128, U128, U128, U128 ) -//OPCODE(FPVectorMulAdd64, U128, U128, U128, U128 ) -//OPCODE(FPVectorMulX32, U128, U128, U128 ) -//OPCODE(FPVectorMulX64, U128, U128, U128 ) +//OPCODE(FPVectorAdd32, U128, U128, U128, U1 ) +//OPCODE(FPVectorAdd64, U128, U128, U128, U1 ) +//OPCODE(FPVectorDiv32, U128, U128, U128, U1 ) +//OPCODE(FPVectorDiv64, U128, U128, U128, U1 ) +//OPCODE(FPVectorEqual16, U128, U128, U128, U1 ) +//OPCODE(FPVectorEqual32, U128, U128, U128, U1 ) +//OPCODE(FPVectorEqual64, U128, U128, U128, U1 ) +//OPCODE(FPVectorFromHalf32, U128, U128, U8, U1 ) +//OPCODE(FPVectorFromSignedFixed32, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorFromSignedFixed64, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorFromUnsignedFixed32, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorFromUnsignedFixed64, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorGreater32, U128, U128, U128, U1 ) +//OPCODE(FPVectorGreater64, U128, U128, U128, U1 ) +//OPCODE(FPVectorGreaterEqual32, U128, U128, U128, U1 ) +//OPCODE(FPVectorGreaterEqual64, U128, U128, U128, U1 ) +//OPCODE(FPVectorMax32, U128, U128, U128, U1 ) +//OPCODE(FPVectorMax64, U128, U128, U128, U1 ) +//OPCODE(FPVectorMin32, U128, U128, U128, U1 ) +//OPCODE(FPVectorMin64, U128, U128, U128, U1 ) +//OPCODE(FPVectorMul32, U128, U128, U128, U1 ) +//OPCODE(FPVectorMul64, U128, U128, U128, U1 ) +//OPCODE(FPVectorMulAdd16, U128, U128, U128, U128, U1 ) +//OPCODE(FPVectorMulAdd32, U128, U128, U128, U128, U1 ) +//OPCODE(FPVectorMulAdd64, U128, U128, U128, U128, U1 ) +//OPCODE(FPVectorMulX32, U128, U128, U128, U1 ) +//OPCODE(FPVectorMulX64, U128, U128, U128, U1 ) //OPCODE(FPVectorNeg16, U128, U128 ) //OPCODE(FPVectorNeg32, U128, U128 ) //OPCODE(FPVectorNeg64, U128, U128 ) -//OPCODE(FPVectorPairedAdd32, U128, U128, U128 ) -//OPCODE(FPVectorPairedAdd64, U128, U128, U128 ) -//OPCODE(FPVectorPairedAddLower32, U128, U128, U128 ) -//OPCODE(FPVectorPairedAddLower64, U128, U128, U128 ) -//OPCODE(FPVectorRecipEstimate16, U128, U128 ) -//OPCODE(FPVectorRecipEstimate32, U128, U128 ) -//OPCODE(FPVectorRecipEstimate64, U128, U128 ) -//OPCODE(FPVectorRecipStepFused16, U128, U128, U128 ) -//OPCODE(FPVectorRecipStepFused32, U128, U128, U128 ) -//OPCODE(FPVectorRecipStepFused64, U128, U128, U128 ) -//OPCODE(FPVectorRoundInt16, U128, U128, U8, U1 ) -//OPCODE(FPVectorRoundInt32, U128, U128, U8, U1 ) -//OPCODE(FPVectorRoundInt64, U128, U128, U8, U1 ) -//OPCODE(FPVectorRSqrtEstimate16, U128, U128 ) -//OPCODE(FPVectorRSqrtEstimate32, U128, U128 ) -//OPCODE(FPVectorRSqrtEstimate64, U128, U128 ) -//OPCODE(FPVectorRSqrtStepFused16, U128, U128, U128 ) -//OPCODE(FPVectorRSqrtStepFused32, U128, U128, U128 ) -//OPCODE(FPVectorRSqrtStepFused64, U128, U128, U128 ) -//OPCODE(FPVectorSqrt32, U128, U128 ) -//OPCODE(FPVectorSqrt64, U128, U128 ) -//OPCODE(FPVectorSub32, U128, U128, U128 ) -//OPCODE(FPVectorSub64, U128, U128, U128 ) -//OPCODE(FPVectorToSignedFixed16, U128, U128, U8, U8 ) -//OPCODE(FPVectorToSignedFixed32, U128, U128, U8, U8 ) -//OPCODE(FPVectorToSignedFixed64, U128, U128, U8, U8 ) -//OPCODE(FPVectorToUnsignedFixed16, U128, U128, U8, U8 ) -//OPCODE(FPVectorToUnsignedFixed32, U128, U128, U8, U8 ) -//OPCODE(FPVectorToUnsignedFixed64, U128, U128, U8, U8 ) +//OPCODE(FPVectorPairedAdd32, U128, U128, U128, U1 ) +//OPCODE(FPVectorPairedAdd64, U128, U128, U128, U1 ) +//OPCODE(FPVectorPairedAddLower32, U128, U128, U128, U1 ) +//OPCODE(FPVectorPairedAddLower64, U128, U128, U128, U1 ) +//OPCODE(FPVectorRecipEstimate16, U128, U128, U1 ) +//OPCODE(FPVectorRecipEstimate32, U128, U128, U1 ) +//OPCODE(FPVectorRecipEstimate64, U128, U128, U1 ) +//OPCODE(FPVectorRecipStepFused16, U128, U128, U128, U1 ) +//OPCODE(FPVectorRecipStepFused32, U128, U128, U128, U1 ) +//OPCODE(FPVectorRecipStepFused64, U128, U128, U128, U1 ) +//OPCODE(FPVectorRoundInt16, U128, U128, U8, U1, U1 ) +//OPCODE(FPVectorRoundInt32, U128, U128, U8, U1, U1 ) +//OPCODE(FPVectorRoundInt64, U128, U128, U8, U1, U1 ) +//OPCODE(FPVectorRSqrtEstimate16, U128, U128, U1 ) +//OPCODE(FPVectorRSqrtEstimate32, U128, U128, U1 ) +//OPCODE(FPVectorRSqrtEstimate64, U128, U128, U1 ) +//OPCODE(FPVectorRSqrtStepFused16, U128, U128, U128, U1 ) +//OPCODE(FPVectorRSqrtStepFused32, U128, U128, U128, U1 ) +//OPCODE(FPVectorRSqrtStepFused64, U128, U128, U128, U1 ) +//OPCODE(FPVectorSqrt32, U128, U128, U1 ) +//OPCODE(FPVectorSqrt64, U128, U128, U1 ) +//OPCODE(FPVectorSub32, U128, U128, U128, U1 ) +//OPCODE(FPVectorSub64, U128, U128, U128, U1 ) +//OPCODE(FPVectorToHalf32, U128, U128, U8, U1 ) +//OPCODE(FPVectorToSignedFixed16, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorToSignedFixed32, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorToSignedFixed64, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorToUnsignedFixed16, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorToUnsignedFixed32, U128, U128, U8, U8, U1 ) +//OPCODE(FPVectorToUnsignedFixed64, U128, U128, U8, U8, U1 ) // A32 Memory access A32OPC(ClearExclusive, Void, ) -A32OPC(SetExclusive, Void, U32, U8 ) -A32OPC(ReadMemory8, U8, U32 ) -A32OPC(ReadMemory16, U16, U32 ) -A32OPC(ReadMemory32, U32, U32 ) -A32OPC(ReadMemory64, U64, U32 ) -A32OPC(WriteMemory8, Void, U32, U8 ) -A32OPC(WriteMemory16, Void, U32, U16 ) -A32OPC(WriteMemory32, Void, U32, U32 ) -A32OPC(WriteMemory64, Void, U32, U64 ) -A32OPC(ExclusiveWriteMemory8, U32, U32, U8 ) -A32OPC(ExclusiveWriteMemory16, U32, U32, U16 ) -A32OPC(ExclusiveWriteMemory32, U32, U32, U32 ) -A32OPC(ExclusiveWriteMemory64, U32, U32, U64 ) +A32OPC(ReadMemory8, U8, U32, AccType ) +A32OPC(ReadMemory16, U16, U32, AccType ) +A32OPC(ReadMemory32, U32, U32, AccType ) +A32OPC(ReadMemory64, U64, U32, AccType ) +//A32OPC(ExclusiveReadMemory8, U8, U32, AccType ) +//A32OPC(ExclusiveReadMemory16, U16, U32, AccType ) +//A32OPC(ExclusiveReadMemory32, U32, U32, AccType ) +//A32OPC(ExclusiveReadMemory64, U64, U32, AccType ) +A32OPC(WriteMemory8, Void, U32, U8, AccType ) +A32OPC(WriteMemory16, Void, U32, U16, AccType ) +A32OPC(WriteMemory32, Void, U32, U32, AccType ) +A32OPC(WriteMemory64, Void, U32, U64, AccType ) +A32OPC(ExclusiveWriteMemory8, U32, U32, U8, AccType ) +A32OPC(ExclusiveWriteMemory16, U32, U32, U16, AccType ) +A32OPC(ExclusiveWriteMemory32, U32, U32, U32, AccType ) +A32OPC(ExclusiveWriteMemory64, U32, U32, U64, AccType ) // A64 Memory access //A64OPC(ClearExclusive, Void, ) -//A64OPC(SetExclusive, Void, U64, U8 ) -//A64OPC(ReadMemory8, U8, U64 ) -//A64OPC(ReadMemory16, U16, U64 ) -//A64OPC(ReadMemory32, U32, U64 ) -//A64OPC(ReadMemory64, U64, U64 ) -//A64OPC(ReadMemory128, U128, U64 ) -//A64OPC(WriteMemory8, Void, U64, U8 ) -//A64OPC(WriteMemory16, Void, U64, U16 ) -//A64OPC(WriteMemory32, Void, U64, U32 ) -//A64OPC(WriteMemory64, Void, U64, U64 ) -//A64OPC(WriteMemory128, Void, U64, U128 ) -//A64OPC(ExclusiveWriteMemory8, U32, U64, U8 ) -//A64OPC(ExclusiveWriteMemory16, U32, U64, U16 ) -//A64OPC(ExclusiveWriteMemory32, U32, U64, U32 ) -//A64OPC(ExclusiveWriteMemory64, U32, U64, U64 ) -//A64OPC(ExclusiveWriteMemory128, U32, U64, U128 ) +//A64OPC(ReadMemory8, U8, U64, AccType ) +//A64OPC(ReadMemory16, U16, U64, AccType ) +//A64OPC(ReadMemory32, U32, U64, AccType ) +//A64OPC(ReadMemory64, U64, U64, AccType ) +//A64OPC(ReadMemory128, U128, U64, AccType ) +//A64OPC(ExclusiveReadMemory8, U8, U64, AccType ) +//A64OPC(ExclusiveReadMemory16, U16, U64, AccType ) +//A64OPC(ExclusiveReadMemory32, U32, U64, AccType ) +//A64OPC(ExclusiveReadMemory64, U64, U64, AccType ) +//A64OPC(ExclusiveReadMemory128, U128, U64, AccType ) +//A64OPC(WriteMemory8, Void, U64, U8, AccType ) +//A64OPC(WriteMemory16, Void, U64, U16, AccType ) +//A64OPC(WriteMemory32, Void, U64, U32, AccType ) +//A64OPC(WriteMemory64, Void, U64, U64, AccType ) +//A64OPC(WriteMemory128, Void, U64, U128, AccType ) +//A64OPC(ExclusiveWriteMemory8, U32, U64, U8, AccType ) +//A64OPC(ExclusiveWriteMemory16, U32, U64, U16, AccType ) +//A64OPC(ExclusiveWriteMemory32, U32, U64, U32, AccType ) +//A64OPC(ExclusiveWriteMemory64, U32, U64, U64, AccType ) +//A64OPC(ExclusiveWriteMemory128, U32, U64, U128, AccType ) // Coprocessor A32OPC(CoprocInternalOperation, Void, CoprocInfo ) @@ -649,3 +739,5 @@ A32OPC(CoprocGetOneWord, U32, Copr A32OPC(CoprocGetTwoWords, U64, CoprocInfo ) A32OPC(CoprocLoadWords, Void, CoprocInfo, U32 ) A32OPC(CoprocStoreWords, Void, CoprocInfo, U32 ) + +// clang-format on