backend/A64/opcodes.inc: Add new ir instructions
This commit is contained in:
parent
5198956e72
commit
41bdd03bbe
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user