ZB. auf einem ARM (Raspberry) soll es ohne ASM laufen.
Folgender Code nimmt den ASM-Block nur auf auf 64Bit.
Code: Alles auswählen
{$ifdef cpux86_64 or cpu386}
function Vec_Add(const v0, v1: TVector4f): TVector4f; assembler; nostackframe; register;
asm
Movups Xmm0, [v0]
Movups Xmm1, [v1]
Addps Xmm1, Xmm0
Movups [Result], Xmm1
end;
{$else}
function Vec_Add(const v0, v1: TVector4f): TVector4f; inline;
begin
Result[0] := v0[0] + v1[0];
Result[1] := v0[1] + v1[1];
Result[2] := v0[2] + v1[2];
Result[3] := v0[3] + v1[3];
end;
{$endif}
Hier habe ich mal geguckt, aber nicht gescheites gefunden: http://wiki.freepascal.org/Conditional_compilation/de