{$asmmode intel}
type TVector4i = array[0..3] of longint;
function Vec_Add(const v0, v1: TVector4i): TVector4i; assembler; nostackframe; register;
asm
Movups Xmm0 , [v0]
Movups Xmm1 , [v1]
Addps Xmm1 , Xmm0
Movups [Result], Xmm1
end;
var a,b:TVector4i;
begin
a[0]:=11;a[1]:=12;a[2]:=31;a[3]:=24;
b[0]:=91;b[1]:=42;b[2]:=64;b[3]:=93;
a:=Vec_Add(a,b);
writeln(a[0],' ',a[1],' ',a[2],' ',a[3]);
end.
cf上成功编译,洛谷上CE,说[Result]
不合法,有无汇编神仙帮忙,教我汇编大法,诶帮忙治疗一下。
(其实就是用脚实现了个__m128i的加