public static bool IsS390xProcess => (int)RuntimeInformation.ProcessArchitecture == 5; // Architecture.S390x
public static bool IsArmv6Process => (int)RuntimeInformation.ProcessArchitecture == 7; // Architecture.Armv6
public static bool IsPpc64leProcess => (int)RuntimeInformation.ProcessArchitecture == 8; // Architecture.Ppc64le
+ public static bool IsRiscV64Process => (int)RuntimeInformation.ProcessArchitecture == 9; // Architecture.RiscV64;
public static bool IsX64Process => RuntimeInformation.ProcessArchitecture == Architecture.X64;
public static bool IsX86Process => RuntimeInformation.ProcessArchitecture == Architecture.X86;
public static bool IsNotX86Process => !IsX86Process;
/// A PowerPC 64-bit (little-endian) processor architecture.
/// </summary>
Ppc64le,
+ /// <summary>
+ /// A RiscV 64-bit processor architecture.
+ /// </summary>
+ /// <remarks>
+ /// This value indicates RV64GC set of extensions.
+ /// </remarks>
+ RiscV64,
}
}
#elif TARGET_POWERPC64
=> Architecture.Ppc64le
#elif TARGET_RISCV64
- => (Architecture)9 // TODO-RISCV64: go though API review for RiscV64
+ => Architecture.RiscV64
#else
#error Unknown Architecture
#endif
Arm64 = (ushort)43620,
LoongArch32 = (ushort)25138,
LoongArch64 = (ushort)25188,
+ RiscV32 = (ushort)20530,
+ RiscV64 = (ushort)20580,
+ RiscV128 = (ushort)20776,
}
public partial class ManagedPEBuilder : System.Reflection.PortableExecutable.PEBuilder
{
/// LOONGARCH64
/// </summary>
LoongArch64 = 0x6264,
+
+ /// <summary>
+ /// RISCV32
+ /// </summary>
+ RiscV32 = 0x5032,
+
+ /// <summary>
+ /// RISCV64
+ /// </summary>
+ RiscV64 = 0x5064,
+
+ /// <summary>
+ /// RISCV128
+ /// </summary>
+ RiscV128 = 0x5128,
}
}
Assert.Equal(Architecture.Ppc64le, processArch);
break;
+ case Architecture.RiscV64:
+ Assert.Equal(Architecture.RiscV64, processArch);
+ break;
+
default:
Assert.False(true, "Unexpected Architecture.");
break;
LoongArch64 = 6,
Armv6 = 7,
Ppc64le = 8,
+ RiscV64 = 9,
}
public enum CharSet
{