blob: 0c3a9d9176fbd7191c3ef6fb4d58de1623a90abe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
{ %cpu=i386,x86_64 }
{$asmmode intel}
program test;
{$ifdef CPU386}
{$define USE_MMX_UNIT}
{ I do not know if SSE2 is always true for x86_64
but mmx unit is i386 specific PM }
{$endif CPU386}
{$ifdef USE_MMX_UNIT}
uses
mmx;
{$endif USE_MMX_UNIT}
{$APPTYPE CONSOLE}
procedure call_psrldq;
begin
asm
psrldq xmm2,4
end;
end;
begin
{$ifdef USE_MMX_UNIT}
if not is_sse2_cpu then
begin
Writeln('SSE2 extension not supported by CPU');
Writeln('SSE2 specific code not run');
end
else
{$endif USE_MMX_UNIT}
begin
Writeln('SSE2 extension supported by CPU');
call_psrldq;
Writeln('SSE2 extension code run');
end;
end.
|