This commit is contained in:
Pavel 2023-10-14 20:58:37 +03:00
parent aa0ccabb33
commit 8214e87840
1 changed files with 22 additions and 7 deletions

View File

@ -209,6 +209,8 @@ type
OPor, OPout, OPouts,
OPextrq,
OPpabs, OPpackssdw, OPpacksswb, OPpackusdw, OPpackuswb, OPpadd, OPpadds,
OPpaddus, OPpalignr, OPpand, OPpandn, OPpause, OPpavg, OPpavgusb, OPpblendvb,
OPpblend, OPpclmulqdq, OPpcmpeq, OPpcmpestri, OPpcmpestrm, OPpcmpgt, OPpcmpistri,
@ -709,6 +711,8 @@ const
'or', 'out', 'outs',
'extrq',
'pabs', 'packssdw', 'packsswb', 'packusdw', 'packuswb', 'padd', 'padds',
'paddus', 'palignr', 'pand', 'pandn', 'pause', 'pavg', 'pavgusb', 'pblendvb',
'pblend', 'pclmulqdq', 'pcmpeq', 'pcmpestri', 'pcmpestrm', 'pcmpgt', 'pcmpistri',
@ -3146,10 +3150,12 @@ begin
end;
end;
$2B: begin
DecodeSIMD([soNone, so66]);
DecodeSIMD([soNone, so66, soF2, soF3]);
case SimdOpcode of
soNone: begin SetOpcode(OPmovnt, OPSx_ps, True); AddMps; AddVps; end;
so66: begin SetOpcode(OPmovnt, OPSx_pd, True); AddMpd; AddVpd; end;
soF2: begin SetOpcode(OPmovnt, OPSx_sd, True); AddMpd; AddVpd; end;
soF3: begin SetOpcode(OPmovnt, OPSx_ss, True); AddMpd; AddVpd; end;
end;
end;
$2C: begin
@ -3376,14 +3382,23 @@ begin
end;
end;
$78: begin
DecodeSIMD([soNone]);
if SimdOpcode = soNone
then begin SetOpcode(OPvmread); AddEy; AddGy; end;
DecodeSIMD([soNone, so66, soF2]);
case SimdOpcode of
soNone: begin SetOpcode(OPvmread); AddEy; AddGy; end;
so66: begin
DecodeModRM;
if ModRM.Index = 0
then begin SetOpcode(OPextrq); AddVq; AddIb; AddIb; end;
end;
soF2: begin SetOpcode(OPinsert, OPSx_q); AddVq; AddUdq; AddIb; AddIb; end;
end;
end;
$79: begin
DecodeSIMD([soNone]);
if SimdOpcode = soNone
then begin SetOpcode(OPvmwrite); AddGy; AddEy; end;
DecodeSIMD([soNone, so66]);
case SimdOpcode of
soNone: begin SetOpcode(OPvmwrite); AddGy; AddEy; end;
so66: begin SetOpcode(OPextrq); AddVq; AddUdq; end;
end;
end;
// $7A..$7B: OPX_Invalid
$7C: begin