Update Delegates.cs

This commit is contained in:
LDj3SNuD 2019-10-03 21:21:16 +02:00 committed by GitHub
parent 02e24a0f74
commit 8bf8e24216
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,5 +1,4 @@
using ARMeilleure.Instructions;
using ARMeilleure.State;
using System;
using System.Collections.Generic;
using System.Reflection;
@ -41,7 +40,7 @@ namespace ARMeilleure.Translation
}
else
{
funcPtr = default(IntPtr);
funcPtr = default;
return false;
}
@ -49,71 +48,99 @@ namespace ARMeilleure.Translation
public static DelegateInfo GetMathDelegateInfo(string key)
{
if (key != null && _mathDelegates.TryGetValue(key, out DelegateInfo dlgInfo))
if (key == null)
{
return dlgInfo;
throw new ArgumentNullException();
}
throw new Exception();
if (!_mathDelegates.TryGetValue(key, out DelegateInfo dlgInfo))
{
throw new Exception();
}
return dlgInfo;
}
public static DelegateInfo GetNativeInterfaceDelegateInfo(string key)
{
if (key != null && _nativeInterfaceDelegates.TryGetValue(key, out DelegateInfo dlgInfo))
if (key == null)
{
return dlgInfo;
throw new ArgumentNullException();
}
throw new Exception();
if (!_nativeInterfaceDelegates.TryGetValue(key, out DelegateInfo dlgInfo))
{
throw new Exception();
}
return dlgInfo;
}
public static DelegateInfo GetSoftFallbackDelegateInfo(string key)
{
if (key != null && _softFallbackDelegates.TryGetValue(key, out DelegateInfo dlgInfo))
if (key == null)
{
return dlgInfo;
throw new ArgumentNullException();
}
throw new Exception();
if (!_softFallbackDelegates.TryGetValue(key, out DelegateInfo dlgInfo))
{
throw new Exception();
}
return dlgInfo;
}
public static DelegateInfo GetSoftFloatDelegateInfo(string key)
{
if (key != null && _softFloatDelegates.TryGetValue(key, out DelegateInfo dlgInfo))
if (key == null)
{
return dlgInfo;
throw new ArgumentNullException();
}
throw new Exception();
if (!_softFloatDelegates.TryGetValue(key, out DelegateInfo dlgInfo))
{
throw new Exception();
}
return dlgInfo;
}
private static void SetMathDelegateInfo(Delegate dlg)
private static void SetMathDelegateInfo(Type type, string name, Type[] types)
{
if (dlg == null || !_mathDelegates.TryAdd(GetKey(dlg.Method), new DelegateInfo(dlg)))
Delegate dlg = DelegateHelpers.GetDelegate(type, name, types);
if (!_mathDelegates.TryAdd(GetKey(dlg.Method), new DelegateInfo(dlg)))
{
throw new Exception();
}
}
private static void SetNativeInterfaceDelegateInfo(Delegate dlg)
private static void SetNativeInterfaceDelegateInfo(string name)
{
if (dlg == null || !_nativeInterfaceDelegates.TryAdd(GetKey(dlg.Method), new DelegateInfo(dlg)))
Delegate dlg = DelegateHelpers.GetDelegate(typeof(NativeInterface), name);
if (!_nativeInterfaceDelegates.TryAdd(GetKey(dlg.Method), new DelegateInfo(dlg)))
{
throw new Exception();
}
}
private static void SetSoftFallbackDelegateInfo(Delegate dlg)
private static void SetSoftFallbackDelegateInfo(string name)
{
if (dlg == null || !_softFallbackDelegates.TryAdd(GetKey(dlg.Method), new DelegateInfo(dlg)))
Delegate dlg = DelegateHelpers.GetDelegate(typeof(SoftFallback), name);
if (!_softFallbackDelegates.TryAdd(GetKey(dlg.Method), new DelegateInfo(dlg)))
{
throw new Exception();
}
}
private static void SetSoftFloatDelegateInfo(Delegate dlg)
private static void SetSoftFloatDelegateInfo(Type type, string name)
{
if (dlg == null || !_softFloatDelegates.TryAdd(GetKey(dlg.Method), new DelegateInfo(dlg)))
Delegate dlg = DelegateHelpers.GetDelegate(type, name);
if (!_softFloatDelegates.TryAdd(GetKey(dlg.Method), new DelegateInfo(dlg)))
{
throw new Exception();
}
@ -136,250 +163,177 @@ namespace ARMeilleure.Translation
_softFallbackDelegates = new Dictionary<string, DelegateInfo>();
_softFloatDelegates = new Dictionary<string, DelegateInfo>();
SetMathDelegateInfo(new _F64_F64 (Math.Floor));
SetMathDelegateInfo(new _F64_F64 (Math.Ceiling));
SetMathDelegateInfo(new _F64_F64 (Math.Abs));
SetMathDelegateInfo(new _F64_F64 (Math.Truncate));
SetMathDelegateInfo(new _F64_F64_MidpointRounding(Math.Round));
SetMathDelegateInfo(typeof(Math), nameof(Math.Abs), new Type[] { typeof(double) });
SetMathDelegateInfo(typeof(Math), nameof(Math.Ceiling), new Type[] { typeof(double) });
SetMathDelegateInfo(typeof(Math), nameof(Math.Floor), new Type[] { typeof(double) });
SetMathDelegateInfo(typeof(Math), nameof(Math.Round), new Type[] { typeof(double), typeof(MidpointRounding) });
SetMathDelegateInfo(typeof(Math), nameof(Math.Truncate), new Type[] { typeof(double) });
SetMathDelegateInfo(new _F32_F32 (MathF.Floor));
SetMathDelegateInfo(new _F32_F32 (MathF.Ceiling));
SetMathDelegateInfo(new _F32_F32 (MathF.Abs));
SetMathDelegateInfo(new _F32_F32 (MathF.Truncate));
SetMathDelegateInfo(new _F32_F32_MidpointRounding(MathF.Round));
SetMathDelegateInfo(typeof(MathF), nameof(MathF.Abs), new Type[] { typeof(float) });
SetMathDelegateInfo(typeof(MathF), nameof(MathF.Ceiling), new Type[] { typeof(float) });
SetMathDelegateInfo(typeof(MathF), nameof(MathF.Floor), new Type[] { typeof(float) });
SetMathDelegateInfo(typeof(MathF), nameof(MathF.Round), new Type[] { typeof(float), typeof(MidpointRounding) });
SetMathDelegateInfo(typeof(MathF), nameof(MathF.Truncate), new Type[] { typeof(float) });
SetNativeInterfaceDelegateInfo(new _S32_U64_U8 (NativeInterface.WriteByteExclusive));
SetNativeInterfaceDelegateInfo(new _S32_U64_U16 (NativeInterface.WriteUInt16Exclusive));
SetNativeInterfaceDelegateInfo(new _S32_U64_U32 (NativeInterface.WriteUInt32Exclusive));
SetNativeInterfaceDelegateInfo(new _S32_U64_U64 (NativeInterface.WriteUInt64Exclusive));
SetNativeInterfaceDelegateInfo(new _S32_U64_V128 (NativeInterface.WriteVector128Exclusive));
SetNativeInterfaceDelegateInfo(new _U16_U64 (NativeInterface.ReadUInt16Exclusive));
SetNativeInterfaceDelegateInfo(new _U16_U64 (NativeInterface.ReadUInt16));
SetNativeInterfaceDelegateInfo(new _U32_U64 (NativeInterface.ReadUInt32Exclusive));
SetNativeInterfaceDelegateInfo(new _U32_U64 (NativeInterface.ReadUInt32));
SetNativeInterfaceDelegateInfo(new _U64 (NativeInterface.GetCtrEl0));
SetNativeInterfaceDelegateInfo(new _U64 (NativeInterface.GetDczidEl0));
SetNativeInterfaceDelegateInfo(new _U64 (NativeInterface.GetFpcr));
SetNativeInterfaceDelegateInfo(new _U64 (NativeInterface.GetFpsr));
SetNativeInterfaceDelegateInfo(new _U64 (NativeInterface.GetTpidrEl0));
SetNativeInterfaceDelegateInfo(new _U64 (NativeInterface.GetTpidr));
SetNativeInterfaceDelegateInfo(new _U64 (NativeInterface.GetCntfrqEl0));
SetNativeInterfaceDelegateInfo(new _U64 (NativeInterface.GetCntpctEl0));
SetNativeInterfaceDelegateInfo(new _U64_U64 (NativeInterface.ReadUInt64Exclusive));
SetNativeInterfaceDelegateInfo(new _U64_U64 (NativeInterface.ReadUInt64));
SetNativeInterfaceDelegateInfo(new _U8_U64 (NativeInterface.ReadByteExclusive));
SetNativeInterfaceDelegateInfo(new _U8_U64 (NativeInterface.ReadByte));
SetNativeInterfaceDelegateInfo(new _V128_U64 (NativeInterface.ReadVector128Exclusive));
SetNativeInterfaceDelegateInfo(new _V128_U64 (NativeInterface.ReadVector128));
SetNativeInterfaceDelegateInfo(new _Void (NativeInterface.ClearExclusive));
SetNativeInterfaceDelegateInfo(new _Void (NativeInterface.CheckSynchronization));
SetNativeInterfaceDelegateInfo(new _Void_U64 (NativeInterface.SetFpcr));
SetNativeInterfaceDelegateInfo(new _Void_U64 (NativeInterface.SetFpsr));
SetNativeInterfaceDelegateInfo(new _Void_U64 (NativeInterface.SetTpidrEl0));
SetNativeInterfaceDelegateInfo(new _Void_U64_S32 (NativeInterface.Break));
SetNativeInterfaceDelegateInfo(new _Void_U64_S32 (NativeInterface.SupervisorCall));
SetNativeInterfaceDelegateInfo(new _Void_U64_S32 (NativeInterface.Undefined));
SetNativeInterfaceDelegateInfo(new _Void_U64_U16 (NativeInterface.WriteUInt16));
SetNativeInterfaceDelegateInfo(new _Void_U64_U32 (NativeInterface.WriteUInt32));
SetNativeInterfaceDelegateInfo(new _Void_U64_U64 (NativeInterface.WriteUInt64));
SetNativeInterfaceDelegateInfo(new _Void_U64_U8 (NativeInterface.WriteByte));
SetNativeInterfaceDelegateInfo(new _Void_U64_V128(NativeInterface.WriteVector128));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.Break));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.CheckSynchronization));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ClearExclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.GetCntfrqEl0));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.GetCntpctEl0));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.GetCtrEl0));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.GetDczidEl0));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.GetFpcr));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.GetFpsr));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.GetTpidr));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.GetTpidrEl0));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadByte));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadByteExclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadUInt16));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadUInt16Exclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadUInt32));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadUInt32Exclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadUInt64));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadUInt64Exclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadVector128));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.ReadVector128Exclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.SetFpcr));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.SetFpsr));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.SetTpidrEl0));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.SupervisorCall));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.Undefined));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteByte));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteByteExclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteUInt16));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteUInt16Exclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteUInt32));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteUInt32Exclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteUInt64));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteUInt64Exclusive));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteVector128));
SetNativeInterfaceDelegateInfo(nameof(NativeInterface.WriteVector128Exclusive));
SetSoftFallbackDelegateInfo(new _F64_F64 (SoftFallback.Round));
SetSoftFallbackDelegateInfo(new _F32_F32 (SoftFallback.RoundF));
SetSoftFallbackDelegateInfo(new _S32_F32 (SoftFallback.SatF32ToS32));
SetSoftFallbackDelegateInfo(new _S32_F64 (SoftFallback.SatF64ToS32));
SetSoftFallbackDelegateInfo(new _S64_F32 (SoftFallback.SatF32ToS64));
SetSoftFallbackDelegateInfo(new _S64_F64 (SoftFallback.SatF64ToS64));
SetSoftFallbackDelegateInfo(new _S64_S64 (SoftFallback.UnarySignedSatQAbsOrNeg));
SetSoftFallbackDelegateInfo(new _S64_S64_S32 (SoftFallback.SignedSrcSignedDstSatQ));
SetSoftFallbackDelegateInfo(new _S64_S64_S64 (SoftFallback.MaxS64));
SetSoftFallbackDelegateInfo(new _S64_S64_S64 (SoftFallback.MinS64));
SetSoftFallbackDelegateInfo(new _S64_S64_S64 (SoftFallback.BinarySignedSatQAdd));
SetSoftFallbackDelegateInfo(new _S64_S64_S64 (SoftFallback.BinarySignedSatQSub));
SetSoftFallbackDelegateInfo(new _S64_S64_S64_Bool_S32 (SoftFallback.SignedShlRegSatQ));
SetSoftFallbackDelegateInfo(new _S64_S64_S64_Bool_S32 (SoftFallback.SignedShlReg));
SetSoftFallbackDelegateInfo(new _S64_S64_S64_S32 (SoftFallback.SignedShrImm64));
SetSoftFallbackDelegateInfo(new _S64_U64_S32 (SoftFallback.UnsignedSrcSignedDstSatQ));
SetSoftFallbackDelegateInfo(new _S64_U64_S64 (SoftFallback.BinarySignedSatQAcc));
SetSoftFallbackDelegateInfo(new _U32_F32 (SoftFallback.SatF32ToU32));
SetSoftFallbackDelegateInfo(new _U32_F64 (SoftFallback.SatF64ToU32));
SetSoftFallbackDelegateInfo(new _U32_U32 (SoftFallback.ReverseBits32));
SetSoftFallbackDelegateInfo(new _U32_U32 (SoftFallback.ReverseBytes16_32));
SetSoftFallbackDelegateInfo(new _U32_U32 (SoftFallback.FixedRotate));
SetSoftFallbackDelegateInfo(new _U32_U32 (SoftFallback.ReverseBits8));
SetSoftFallbackDelegateInfo(new _U32_U32_U16 (SoftFallback.Crc32h));
SetSoftFallbackDelegateInfo(new _U32_U32_U16 (SoftFallback.Crc32ch));
SetSoftFallbackDelegateInfo(new _U32_U32_U32 (SoftFallback.Crc32w));
SetSoftFallbackDelegateInfo(new _U32_U32_U32 (SoftFallback.Crc32cw));
SetSoftFallbackDelegateInfo(new _U32_U32_U64 (SoftFallback.Crc32x));
SetSoftFallbackDelegateInfo(new _U32_U32_U64 (SoftFallback.Crc32cx));
SetSoftFallbackDelegateInfo(new _U32_U32_U8 (SoftFallback.Crc32b));
SetSoftFallbackDelegateInfo(new _U32_U32_U8 (SoftFallback.Crc32cb));
SetSoftFallbackDelegateInfo(new _U64_F32 (SoftFallback.SatF32ToU64));
SetSoftFallbackDelegateInfo(new _U64_F64 (SoftFallback.SatF64ToU64));
SetSoftFallbackDelegateInfo(new _U64_S64_S32 (SoftFallback.SignedSrcUnsignedDstSatQ));
SetSoftFallbackDelegateInfo(new _U64_S64_U64 (SoftFallback.BinaryUnsignedSatQAcc));
SetSoftFallbackDelegateInfo(new _U64_U64 (SoftFallback.ReverseBits64));
SetSoftFallbackDelegateInfo(new _U64_U64 (SoftFallback.ReverseBytes16_64));
SetSoftFallbackDelegateInfo(new _U64_U64 (SoftFallback.ReverseBytes32_64));
SetSoftFallbackDelegateInfo(new _U64_U64 (SoftFallback.CountSetBits8));
SetSoftFallbackDelegateInfo(new _U64_U64_S32 (SoftFallback.CountLeadingSigns));
SetSoftFallbackDelegateInfo(new _U64_U64_S32 (SoftFallback.CountLeadingZeros));
SetSoftFallbackDelegateInfo(new _U64_U64_S32 (SoftFallback.UnsignedSrcUnsignedDstSatQ));
SetSoftFallbackDelegateInfo(new _U64_U64_S64_S32 (SoftFallback.UnsignedShrImm64));
SetSoftFallbackDelegateInfo(new _U64_U64_U64 (SoftFallback.MaxU64));
SetSoftFallbackDelegateInfo(new _U64_U64_U64 (SoftFallback.MinU64));
SetSoftFallbackDelegateInfo(new _U64_U64_U64 (SoftFallback.BinaryUnsignedSatQAdd));
SetSoftFallbackDelegateInfo(new _U64_U64_U64 (SoftFallback.BinaryUnsignedSatQSub));
SetSoftFallbackDelegateInfo(new _U64_U64_U64_Bool_S32 (SoftFallback.UnsignedShlRegSatQ));
SetSoftFallbackDelegateInfo(new _U64_U64_U64_Bool_S32 (SoftFallback.UnsignedShlReg));
SetSoftFallbackDelegateInfo(new _V128_V128 (SoftFallback.InverseMixColumns));
SetSoftFallbackDelegateInfo(new _V128_V128 (SoftFallback.MixColumns));
SetSoftFallbackDelegateInfo(new _V128_V128_U32_V128 (SoftFallback.HashChoose));
SetSoftFallbackDelegateInfo(new _V128_V128_U32_V128 (SoftFallback.HashMajority));
SetSoftFallbackDelegateInfo(new _V128_V128_U32_V128 (SoftFallback.HashParity));
SetSoftFallbackDelegateInfo(new _V128_V128_V128 (SoftFallback.Decrypt));
SetSoftFallbackDelegateInfo(new _V128_V128_V128 (SoftFallback.Encrypt));
SetSoftFallbackDelegateInfo(new _V128_V128_V128 (SoftFallback.Sha1SchedulePart2));
SetSoftFallbackDelegateInfo(new _V128_V128_V128 (SoftFallback.Sha256SchedulePart1));
SetSoftFallbackDelegateInfo(new _V128_V128_V128 (SoftFallback.Tbl1_V64));
SetSoftFallbackDelegateInfo(new _V128_V128_V128 (SoftFallback.Tbl1_V128));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128 (SoftFallback.Sha1SchedulePart1));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128 (SoftFallback.HashLower));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128 (SoftFallback.HashUpper));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128 (SoftFallback.Sha256SchedulePart2));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128 (SoftFallback.Tbl2_V64));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128 (SoftFallback.Tbl2_V128));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128_V128 (SoftFallback.Tbl3_V64));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128_V128 (SoftFallback.Tbl3_V128));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128_V128_V128(SoftFallback.Tbl4_V64));
SetSoftFallbackDelegateInfo(new _V128_V128_V128_V128_V128_V128(SoftFallback.Tbl4_V128));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.BinarySignedSatQAcc));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.BinarySignedSatQAdd));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.BinarySignedSatQSub));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.BinaryUnsignedSatQAcc));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.BinaryUnsignedSatQAdd));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.BinaryUnsignedSatQSub));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.CountLeadingSigns));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.CountLeadingZeros));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.CountSetBits8));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Crc32b));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Crc32cb));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Crc32ch));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Crc32cw));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Crc32cx));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Crc32h));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Crc32w));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Crc32x));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Decrypt));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Encrypt));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.FixedRotate));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.HashChoose));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.HashLower));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.HashMajority));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.HashParity));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.HashUpper));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.InverseMixColumns));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.MaxS64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.MaxU64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.MinS64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.MinU64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.MixColumns));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.ReverseBits32));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.ReverseBits64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.ReverseBits8));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.ReverseBytes16_32));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.ReverseBytes16_64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.ReverseBytes32_64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Round));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.RoundF));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SatF32ToS32));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SatF32ToS64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SatF32ToU32));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SatF32ToU64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SatF64ToS32));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SatF64ToS64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SatF64ToU32));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SatF64ToU64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Sha1SchedulePart1));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Sha1SchedulePart2));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Sha256SchedulePart1));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Sha256SchedulePart2));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SignedShlReg));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SignedShlRegSatQ));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SignedShrImm64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SignedSrcSignedDstSatQ));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.SignedSrcUnsignedDstSatQ));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Tbl1));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Tbl2));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Tbl3));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Tbl4));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Tbx1));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Tbx2));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Tbx3));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.Tbx4));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.UnarySignedSatQAbsOrNeg));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.UnsignedShlReg));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.UnsignedShlRegSatQ));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.UnsignedShrImm64));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.UnsignedSrcSignedDstSatQ));
SetSoftFallbackDelegateInfo(nameof(SoftFallback.UnsignedSrcUnsignedDstSatQ));
SetSoftFloatDelegateInfo(new _F32_U16(SoftFloat16_32.FPConvert));
SetSoftFloatDelegateInfo(typeof(SoftFloat16_32), nameof(SoftFloat16_32.FPConvert));
SetSoftFloatDelegateInfo(new _F32_F32 (SoftFloat32.FPRecipEstimate));
SetSoftFloatDelegateInfo(new _F32_F32 (SoftFloat32.FPRecpX));
SetSoftFloatDelegateInfo(new _F32_F32 (SoftFloat32.FPRSqrtEstimate));
SetSoftFloatDelegateInfo(new _F32_F32 (SoftFloat32.FPSqrt));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPCompareEQ));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPCompareGE));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPCompareGT));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPCompareLE));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPCompareLT));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPSub));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPAdd));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPDiv));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPMax));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPMaxNum));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPMin));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPMinNum));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPMul));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPMulX));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPRecipStepFused));
SetSoftFloatDelegateInfo(new _F32_F32_F32 (SoftFloat32.FPRSqrtStepFused));
SetSoftFloatDelegateInfo(new _F32_F32_F32_F32 (SoftFloat32.FPMulAdd));
SetSoftFloatDelegateInfo(new _F32_F32_F32_F32 (SoftFloat32.FPMulSub));
SetSoftFloatDelegateInfo(new _S32_F32_F32_Bool(SoftFloat32.FPCompare));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPAdd));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPCompare));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPCompareEQ));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPCompareGE));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPCompareGT));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPCompareLE));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPCompareLT));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPDiv));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPMax));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPMaxNum));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPMin));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPMinNum));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPMul));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPMulAdd));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPMulSub));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPMulX));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPRecipEstimate));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPRecipStepFused));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPRecpX));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPRSqrtEstimate));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPRSqrtStepFused));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPSqrt));
SetSoftFloatDelegateInfo(typeof(SoftFloat32), nameof(SoftFloat32.FPSub));
SetSoftFloatDelegateInfo(new _U16_F32(SoftFloat32_16.FPConvert));
SetSoftFloatDelegateInfo(typeof(SoftFloat32_16), nameof(SoftFloat32_16.FPConvert));
SetSoftFloatDelegateInfo(new _F64_F64 (SoftFloat64.FPRecipEstimate));
SetSoftFloatDelegateInfo(new _F64_F64 (SoftFloat64.FPRecpX));
SetSoftFloatDelegateInfo(new _F64_F64 (SoftFloat64.FPRSqrtEstimate));
SetSoftFloatDelegateInfo(new _F64_F64 (SoftFloat64.FPSqrt));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPCompareEQ));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPCompareGE));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPCompareGT));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPCompareLE));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPCompareLT));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPSub));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPAdd));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPDiv));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPMax));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPMaxNum));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPMin));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPMinNum));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPMul));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPMulX));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPRecipStepFused));
SetSoftFloatDelegateInfo(new _F64_F64_F64 (SoftFloat64.FPRSqrtStepFused));
SetSoftFloatDelegateInfo(new _F64_F64_F64_F64 (SoftFloat64.FPMulAdd));
SetSoftFloatDelegateInfo(new _F64_F64_F64_F64 (SoftFloat64.FPMulSub));
SetSoftFloatDelegateInfo(new _S32_F64_F64_Bool(SoftFloat64.FPCompare));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPAdd));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPCompare));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPCompareEQ));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPCompareGE));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPCompareGT));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPCompareLE));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPCompareLT));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPDiv));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPMax));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPMaxNum));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPMin));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPMinNum));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPMul));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPMulAdd));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPMulSub));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPMulX));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPRecipEstimate));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPRecipStepFused));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPRecpX));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPRSqrtEstimate));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPRSqrtStepFused));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPSqrt));
SetSoftFloatDelegateInfo(typeof(SoftFloat64), nameof(SoftFloat64.FPSub));
}
private delegate double _F64_F64(double a1);
private delegate double _F64_F64_F64(double a1, double a2);
private delegate double _F64_F64_F64_F64(double a1, double a2, double a3);
private delegate double _F64_F64_MidpointRounding(double a1, MidpointRounding a2);
private delegate float _F32_F32(float a1);
private delegate float _F32_F32_F32(float a1, float a2);
private delegate float _F32_F32_F32_F32(float a1, float a2, float a3);
private delegate float _F32_F32_MidpointRounding(float a1, MidpointRounding a2);
private delegate float _F32_U16(ushort a1);
private delegate int _S32_F32(float a1);
private delegate int _S32_F32_F32_Bool(float a1, float a2, bool a3);
private delegate int _S32_F64(double a1);
private delegate int _S32_F64_F64_Bool(double a1, double a2, bool a3);
private delegate int _S32_U64_U16(ulong a1, ushort a2);
private delegate int _S32_U64_U32(ulong a1, uint a2);
private delegate int _S32_U64_U64(ulong a1, ulong a2);
private delegate int _S32_U64_U8(ulong a1, byte a2);
private delegate int _S32_U64_V128(ulong a1, V128 a2);
private delegate long _S64_F32(float a1);
private delegate long _S64_F64(double a1);
private delegate long _S64_S64(long a1);
private delegate long _S64_S64_S32(long a1, int a2);
private delegate long _S64_S64_S64(long a1, long a2);
private delegate long _S64_S64_S64_Bool_S32(long a1, long a2, bool a3, int a4);
private delegate long _S64_S64_S64_S32(long a1, long a2, int a3);
private delegate long _S64_U64_S32(ulong a1, int a2);
private delegate long _S64_U64_S64(ulong a1, long a2);
private delegate ushort _U16_F32(float a1);
private delegate ushort _U16_U64(ulong a1);
private delegate uint _U32_F32(float a1);
private delegate uint _U32_F64(double a1);
private delegate uint _U32_U32(uint a1);
private delegate uint _U32_U32_U16(uint a1, ushort a2);
private delegate uint _U32_U32_U32(uint a1, uint a2);
private delegate uint _U32_U32_U64(uint a1, ulong a2);
private delegate uint _U32_U32_U8(uint a1, byte a2);
private delegate uint _U32_U64(ulong a1);
private delegate ulong _U64();
private delegate ulong _U64_F32(float a1);
private delegate ulong _U64_F64(double a1);
private delegate ulong _U64_S64_S32(long a1, int a2);
private delegate ulong _U64_S64_U64(long a1, ulong a2);
private delegate ulong _U64_U64(ulong a1);
private delegate ulong _U64_U64_S32(ulong a1, int a2);
private delegate ulong _U64_U64_S64_S32(ulong a1, long a2, int a3);
private delegate ulong _U64_U64_U64(ulong a1, ulong a2);
private delegate ulong _U64_U64_U64_Bool_S32(ulong a1, ulong a2, bool a3, int a4);
private delegate byte _U8_U64(ulong a1);
private delegate V128 _V128_U64(ulong a1);
private delegate V128 _V128_V128(V128 a1);
private delegate V128 _V128_V128_U32_V128(V128 a1, uint a2, V128 a3);
private delegate V128 _V128_V128_V128(V128 a1, V128 a2);
private delegate V128 _V128_V128_V128_V128(V128 a1, V128 a2, V128 a3);
private delegate V128 _V128_V128_V128_V128_V128(V128 a1, V128 a2, V128 a3, V128 a4);
private delegate V128 _V128_V128_V128_V128_V128_V128(V128 a1, V128 a2, V128 a3, V128 a4, V128 a5);
private delegate void _Void();
private delegate void _Void_U64(ulong a1);
private delegate void _Void_U64_S32(ulong a1, int a2);
private delegate void _Void_U64_U16(ulong a1, ushort a2);
private delegate void _Void_U64_U32(ulong a1, uint a2);
private delegate void _Void_U64_U64(ulong a1, ulong a2);
private delegate void _Void_U64_U8(ulong a1, byte a2);
private delegate void _Void_U64_V128(ulong a1, V128 a2);
}
}