Skip to content

Commit 465f278

Browse files
authored
Long overdue FPC 64bit Support
1 parent 39ab719 commit 465f278

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Source/CPUID.pas

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,17 @@ procedure ___CallCPUID(const ID: NativeInt; var CPUIDStruct);
139139
MOV RAX,RCX
140140
MOV R9,RDX
141141
CPUID
142+
{$IFNDEF FPC}
142143
MOV R9.TCPUIDStruct.rEAX,EAX
143144
MOV R9.TCPUIDStruct.rEBX,EBX
144145
MOV R9.TCPUIDStruct.rECX,ECX
145146
MOV R9.TCPUIDStruct.rEDX,EDX
147+
{$ELSE FPC}
148+
MOV [R9].TCPUIDStruct.rEAX,EAX
149+
MOV [R9].TCPUIDStruct.rEBX,EBX
150+
MOV [R9].TCPUIDStruct.rECX,ECX
151+
MOV [R9].TCPUIDStruct.rEDX,EDX
152+
{$ENDIF !FPC}
146153
POP RDX
147154
POP RBX
148155
POP R9
@@ -160,7 +167,7 @@ function ___IsAVXSupported: Boolean;
160167
2) Detect CPUID.1:ECX.AVX[bit 28] = 1
161168
=> AVX instructions supported.
162169
163-
3) Issue XGETBV and verify that XCR0[2:1] = ‘11b’
170+
3) Issue XGETBV and verify that XCR0[2:1] = ‘11b’
164171
=> XMM state and YMM state are enabled by OS.
165172
166173
}

0 commit comments

Comments
 (0)