mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 05:49:23 +02:00
+ several internalerrors in case things go wrong
+ support for OS_M64 in several places git-svn-id: trunk@15366 -
This commit is contained in:
parent
27f6376fd4
commit
9e785ea553
@ -196,6 +196,7 @@ unit cgx86;
|
|||||||
result:=rg[R_MMREGISTER].getregister(list,R_SUBMMD);
|
result:=rg[R_MMREGISTER].getregister(list,R_SUBMMD);
|
||||||
OS_F32:
|
OS_F32:
|
||||||
result:=rg[R_MMREGISTER].getregister(list,R_SUBMMS);
|
result:=rg[R_MMREGISTER].getregister(list,R_SUBMMS);
|
||||||
|
OS_M64,
|
||||||
OS_M128:
|
OS_M128:
|
||||||
result:=rg[R_MMREGISTER].getregister(list,R_SUBMMWHOLE);
|
result:=rg[R_MMREGISTER].getregister(list,R_SUBMMWHOLE);
|
||||||
else
|
else
|
||||||
@ -1087,7 +1088,14 @@ unit cgx86;
|
|||||||
(A_NONE,A_NONE,A_NONE,A_MOVQ,A_NONE),
|
(A_NONE,A_NONE,A_NONE,A_MOVQ,A_NONE),
|
||||||
(A_NONE,A_NONE,A_NONE,A_NONE,A_NONE));
|
(A_NONE,A_NONE,A_NONE,A_NONE,A_NONE));
|
||||||
begin
|
begin
|
||||||
result:=convertop[fromsize,tosize];
|
if (fromsize in [low(convertop)..high(convertop)]) and
|
||||||
|
(tosize in [low(convertop)..high(convertop)]) then
|
||||||
|
result:=convertop[fromsize,tosize]
|
||||||
|
else if (fromsize=tosize) and
|
||||||
|
(fromsize=OS_M64) then
|
||||||
|
result:=A_MOVQ
|
||||||
|
else
|
||||||
|
internalerror(2010060104);
|
||||||
if result=A_NONE then
|
if result=A_NONE then
|
||||||
internalerror(200312205);
|
internalerror(200312205);
|
||||||
end;
|
end;
|
||||||
@ -1106,6 +1114,8 @@ unit cgx86;
|
|||||||
instr:=taicpu.op_reg_reg(A_MOVAPS,S_NO,reg1,reg2);
|
instr:=taicpu.op_reg_reg(A_MOVAPS,S_NO,reg1,reg2);
|
||||||
OS_F64:
|
OS_F64:
|
||||||
instr:=taicpu.op_reg_reg(A_MOVAPD,S_NO,reg1,reg2);
|
instr:=taicpu.op_reg_reg(A_MOVAPD,S_NO,reg1,reg2);
|
||||||
|
OS_M64:
|
||||||
|
instr:=taicpu.op_reg_reg(A_MOVQ,S_NO,reg1,reg2);
|
||||||
else
|
else
|
||||||
internalerror(2006091201);
|
internalerror(2006091201);
|
||||||
end
|
end
|
||||||
@ -1246,6 +1256,7 @@ unit cgx86;
|
|||||||
//!!!
|
//!!!
|
||||||
if (shuffle<>nil) and not(shufflescalar(shuffle)) then
|
if (shuffle<>nil) and not(shufflescalar(shuffle)) then
|
||||||
begin
|
begin
|
||||||
|
internalerror(2010060101);
|
||||||
end
|
end
|
||||||
else if (shuffle=nil) then
|
else if (shuffle=nil) then
|
||||||
asmop:=opmm2asmop[1,size,op]
|
asmop:=opmm2asmop[1,size,op]
|
||||||
@ -1256,7 +1267,7 @@ unit cgx86;
|
|||||||
if asmop=A_NOP then
|
if asmop=A_NOP then
|
||||||
begin
|
begin
|
||||||
{ do vectorized and shuffle finally }
|
{ do vectorized and shuffle finally }
|
||||||
//!!!
|
internalerror(2010060102);
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user