mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-14 10:20:21 +02:00
* Jcc reads the flags, this was not in the dat yet, resolves #9278
* disabled 4 ops variant of insertq for now git-svn-id: trunk@8133 -
This commit is contained in:
parent
f70a4a64a0
commit
447276c5bb
@ -1,2 +1,2 @@
|
||||
{ don't edit, this file is generated from x86ins.dat }
|
||||
1380;
|
||||
1379;
|
||||
|
@ -386,7 +386,7 @@
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_ROp1, Ch_WOp2, Ch_RFLAGS)),
|
||||
(Ch: (Ch_None, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_RFLAGS, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_RFLAGS, Ch_WOp1, Ch_None)),
|
||||
(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
|
||||
(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
|
||||
|
@ -9604,13 +9604,6 @@
|
||||
code : #65#192#220#213#62#2#15#43#63;
|
||||
flags : if_sse4
|
||||
),
|
||||
(
|
||||
opcode : A_INSERTQ;
|
||||
ops : 4;
|
||||
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate);
|
||||
code : #76#2#15#120#63#253#18#253#19;
|
||||
flags : if_sse4 or if_sb
|
||||
),
|
||||
(
|
||||
opcode : A_INSERTQ;
|
||||
ops : 2;
|
||||
|
@ -2151,7 +2151,7 @@ void \333\3\x0F\xA7\xE8 P6,CYRIX
|
||||
reg16|32|64,regmem \301\320\1\x0F\13\x40\110 P6,SM
|
||||
|
||||
[Jcc]
|
||||
(Ch_None, Ch_None, Ch_None)
|
||||
(Ch_RFLAGS, Ch_None, Ch_None)
|
||||
imm8 \13\x70\50 8086
|
||||
imm16|32 \320\1\x0F\13\x80\64 386,PASS2
|
||||
imm|short \13\x70\50 8086
|
||||
@ -3262,8 +3262,9 @@ mem,xmmreg \101\300\334\325\76\2\x0F\x2B\77 SSE4 ;,S
|
||||
|
||||
[INSERTQ]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,xmmreg,imm,imm \110\334\76\2\x0F\x78\77\375\22\375\23 SSE4,SB
|
||||
xmmreg,xmmreg \110\334\76\2\x0F\x79\77 SSE4
|
||||
; four operands are not possible yet
|
||||
; xmmreg,xmmreg,imm,imm \110\334\76\2\x0F\x78\77\375\22\375\23 SSE4,SB
|
||||
|
||||
[EXTRQ]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
|
@ -178,12 +178,18 @@ unit cpupara;
|
||||
|
||||
|
||||
function tx86_64paramanager.ret_in_param(def : tdef;calloption : tproccalloption) : boolean;
|
||||
var
|
||||
loc1,loc2:tcgloc;
|
||||
begin
|
||||
if target_info.system=system_x86_64_win64 then
|
||||
result:=(calloption=pocall_safecall) or
|
||||
(def.size>8) or not(def.size in [1,2,4,8])
|
||||
else
|
||||
result:=inherited ret_in_param(def,calloption);
|
||||
begin
|
||||
{ get memory class }
|
||||
getvalueparaloc(p,loc1,loc2);
|
||||
result:=loc1=LOC_REFERENCE;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@ -224,7 +230,7 @@ unit cpupara;
|
||||
formaldef :
|
||||
result:=true;
|
||||
recorddef :
|
||||
result:=((varspez=vs_const) and ((def.size>16) or (calloption<>pocall_register))) or
|
||||
result:=((varspez=vs_const) and ((def.size>16) or (calloption<>pocall_register))) or
|
||||
((target_info.system=system_x86_64_win64) and (def.size>8));
|
||||
arraydef :
|
||||
begin
|
||||
|
@ -1,2 +1,2 @@
|
||||
{ don't edit, this file is generated from x86ins.dat }
|
||||
1379;
|
||||
1378;
|
||||
|
@ -386,7 +386,7 @@
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_ROp1, Ch_WOp2, Ch_RFLAGS)),
|
||||
(Ch: (Ch_None, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_RFLAGS, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_RFLAGS, Ch_WOp1, Ch_None)),
|
||||
(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
|
||||
(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
|
||||
|
@ -9597,13 +9597,6 @@
|
||||
code : #65#192#220#213#62#2#15#43#63;
|
||||
flags : if_sse4
|
||||
),
|
||||
(
|
||||
opcode : A_INSERTQ;
|
||||
ops : 4;
|
||||
optypes : (ot_xmmreg,ot_xmmreg,ot_immediate);
|
||||
code : #76#2#15#120#63#253#18#253#19;
|
||||
flags : if_sse4 or if_sb
|
||||
),
|
||||
(
|
||||
opcode : A_INSERTQ;
|
||||
ops : 2;
|
||||
|
Loading…
Reference in New Issue
Block a user