* 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:
florian 2007-07-22 16:40:44 +00:00
parent f70a4a64a0
commit 447276c5bb
8 changed files with 15 additions and 22 deletions

View File

@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
1380;
1379;

View File

@ -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)),

View File

@ -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;

View File

@ -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)

View File

@ -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

View File

@ -1,2 +1,2 @@
{ don't edit, this file is generated from x86ins.dat }
1379;
1378;

View File

@ -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)),

View File

@ -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;