mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-07 12:44:00 +02:00
(cherry picked from commit 9cff61c5a0
)
This commit is contained in:
parent
07c3071d31
commit
7824207ffc
@ -3274,6 +3274,7 @@ begin
|
|||||||
then begin
|
then begin
|
||||||
if flagVex in Flags
|
if flagVex in Flags
|
||||||
then begin
|
then begin
|
||||||
|
Exclude(Flags,flagModRM);
|
||||||
if Vex.VectorLength = os128
|
if Vex.VectorLength = os128
|
||||||
then SetOpcode(OPvzeroupper)
|
then SetOpcode(OPvzeroupper)
|
||||||
else SetOpcode(OPvzeroall);
|
else SetOpcode(OPvzeroall);
|
||||||
@ -4351,7 +4352,7 @@ begin
|
|||||||
$A9: begin
|
$A9: begin
|
||||||
SetOpcode(OPtest);
|
SetOpcode(OPtest);
|
||||||
AddReg(regGeneral, OperandSize, REG_A);
|
AddReg(regGeneral, OperandSize, REG_A);
|
||||||
AddIv;
|
AddIz;
|
||||||
end;
|
end;
|
||||||
$AA: begin
|
$AA: begin
|
||||||
SetOpcode(OPstos, OPSx_b); CheckRepeat;
|
SetOpcode(OPstos, OPSx_b); CheckRepeat;
|
||||||
|
@ -53,7 +53,7 @@ codeBytes, ' ', asmInstr,
|
|||||||
|
|
||||||
r := TRegExpr.Create('(\$)0+([0-9a-fA-F])');
|
r := TRegExpr.Create('(\$)0+([0-9a-fA-F])');
|
||||||
|
|
||||||
s := LowerCase(asmInstr);
|
s := Trim(LowerCase(asmInstr));
|
||||||
s := StringReplace(s, ' ', ' ', [rfReplaceAll]); // space
|
s := StringReplace(s, ' ', ' ', [rfReplaceAll]); // space
|
||||||
s := StringReplace(s, ', ', ',', [rfReplaceAll]); // space
|
s := StringReplace(s, ', ', ',', [rfReplaceAll]); // space
|
||||||
s := r.Replace(s, '$1$2', True);
|
s := r.Replace(s, '$1$2', True);
|
||||||
@ -259,6 +259,11 @@ begin
|
|||||||
TestDis('vmovd [rax],xmm0', #$C4#$E1#$79#$7E#$00, 'vmovd [rax],xmm0');
|
TestDis('vmovd [rax],xmm0', #$C4#$E1#$79#$7E#$00, 'vmovd [rax],xmm0');
|
||||||
TestDis('vmovq [rax],xmm0', #$C4#$E1#$F9#$7E#$00, 'vmovq [rax],xmm0');
|
TestDis('vmovq [rax],xmm0', #$C4#$E1#$F9#$7E#$00, 'vmovq [rax],xmm0');
|
||||||
|
|
||||||
|
TestDis('test rax,$FFFFFEFE', #$48#$A9#$FE#$FE#$FF#$FF, 'test rax,$FFFFFEFE');
|
||||||
|
TestDis('test eax,$FFFFFEFE', #$A9#$FE#$FE#$FF#$FF, 'test eax,$FFFFFEFE');
|
||||||
|
TestDis('vzeroupper', #$C5#$F8#$77, 'vzeroupper');
|
||||||
|
TestDis('vzeroall', #$C5#$FC#$77, 'vzeroall');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Process.NewMode := dm32;
|
Process.NewMode := dm32;
|
||||||
@ -373,6 +378,10 @@ begin
|
|||||||
TestDis('movd edi,xmm1', #$66#$0F#$7E#$CF, 'movd edi,xmm1');
|
TestDis('movd edi,xmm1', #$66#$0F#$7E#$CF, 'movd edi,xmm1');
|
||||||
TestDis('vmovd [eax],xmm0', #$C4#$E1#$79#$7E#$00, 'vmovd [eax],xmm0');
|
TestDis('vmovd [eax],xmm0', #$C4#$E1#$79#$7E#$00, 'vmovd [eax],xmm0');
|
||||||
|
|
||||||
|
TestDis('test eax,$FFFFFEFE', #$A9#$FE#$FE#$FF#$FF, 'test eax,$FFFFFEFE');
|
||||||
|
TestDis('vzeroupper', #$C5#$F8#$77, 'vzeroupper');
|
||||||
|
TestDis('vzeroall', #$C5#$FC#$77, 'vzeroall');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Process.NewMode := dm64;
|
Process.NewMode := dm64;
|
||||||
|
Loading…
Reference in New Issue
Block a user