mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 19:48:31 +02:00
41 lines
825 B
ObjectPascal
41 lines
825 B
ObjectPascal
{ %OPT=-OaVARMAX=16 -OaVARMIN=16 }
|
|
{ %CPU=i386 }
|
|
uses
|
|
mmx;
|
|
|
|
{ only a small test to see if it works in principle }
|
|
|
|
var
|
|
b : byte;
|
|
q : array[0..15] of byte;
|
|
|
|
begin
|
|
if is_sse2_cpu then
|
|
asm
|
|
{$ifdef FPC_PIC}
|
|
call .LPIC
|
|
.LPIC:
|
|
popl %ecx
|
|
{$ifdef darwin}
|
|
movdqa %xmm1,%xmm2
|
|
movdqa q-.LPIC(%ecx),%xmm4
|
|
psubq %xmm1,%xmm2
|
|
psubq q-.LPIC(%ecx),%xmm4
|
|
{$else darwin}
|
|
addl $_GLOBAL_OFFSET_TABLE_+1,%ecx
|
|
movdqa %xmm1,%xmm2
|
|
movl q@GOT(%ecx),%eax
|
|
movdqa (%eax),%xmm4
|
|
psubq %xmm1,%xmm2
|
|
movl q@GOT(%ecx),%eax
|
|
psubq (%eax),%xmm4
|
|
{$endif darwin}
|
|
{$else FPC_PIC}
|
|
movdqa %xmm1,%xmm2
|
|
movdqa q,%xmm4
|
|
psubq %xmm1,%xmm2
|
|
psubq q,%xmm4
|
|
{$endif FPC_PIC}
|
|
end;
|
|
end.
|