Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
X86Base.cs
Go to the documentation of this file.
3
5
6[Intrinsic]
7public abstract class X86Base
8{
9 [Intrinsic]
10 public abstract class X64
11 {
12 public static bool IsSupported => IsSupported;
13
14 internal static ulong BitScanForward(ulong value)
15 {
16 return BitScanForward(value);
17 }
18
19 internal static ulong BitScanReverse(ulong value)
20 {
21 return BitScanReverse(value);
22 }
23 }
24
25 public static bool IsSupported => IsSupported;
26
27 [DllImport("QCall")]
28 private unsafe static extern void __cpuidex(int* cpuInfo, int functionId, int subFunctionId);
29
30 internal static uint BitScanForward(uint value)
31 {
32 return BitScanForward(value);
33 }
34
35 internal static uint BitScanReverse(uint value)
36 {
37 return BitScanReverse(value);
38 }
39
40 public unsafe static (int Eax, int Ebx, int Ecx, int Edx) CpuId(int functionId, int subFunctionId)
41 {
42 int* ptr = stackalloc int[4];
43 __cpuidex(ptr, functionId, subFunctionId);
44 return (Eax: *ptr, Ebx: ptr[1], Ecx: ptr[2], Edx: ptr[3]);
45 }
46}
static ulong BitScanReverse(ulong value)
Definition X86Base.cs:19
static ulong BitScanForward(ulong value)
Definition X86Base.cs:14
static uint BitScanForward(uint value)
Definition X86Base.cs:30
static unsafe void __cpuidex(int *cpuInfo, int functionId, int subFunctionId)
static unsafe(int Eax, int Ebx, int Ecx, int Edx) CpuId(int functionId
static uint BitScanReverse(uint value)
Definition X86Base.cs:35