mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 21:29:26 +02:00
clean up
git-svn-id: branches/tg74/avx512-0037785@47281 -
This commit is contained in:
parent
12ccccd610
commit
3f05580f21
@ -505,7 +505,6 @@ implementation
|
||||
end;
|
||||
R_ADDRESSREGISTER:
|
||||
case reg of
|
||||
//NR_K0..NR_K7: reg_cgsize:=OS_64;
|
||||
NR_K0..NR_K7: reg_cgsize:=OS_NO;
|
||||
else internalerror(2003031801);
|
||||
end;
|
||||
|
@ -1451,114 +1451,23 @@ var
|
||||
begin
|
||||
if opsize<>S_NO then
|
||||
exit;
|
||||
// case ops of
|
||||
// 0 : ;
|
||||
// 1 :
|
||||
// begin
|
||||
// { "push es" must be stored as a long PM }
|
||||
// if ((opcode=A_PUSH) or
|
||||
// (opcode=A_POP)) and
|
||||
// (operands[1].opr.typ=OPR_REGISTER) and
|
||||
// is_segment_reg(operands[1].opr.reg) then
|
||||
//{$ifdef i8086}
|
||||
// opsize:=S_W
|
||||
//{$else i8086}
|
||||
// opsize:=S_L
|
||||
//{$endif i8086}
|
||||
// else
|
||||
// opsize:=tx86operand(operands[1]).opsize;
|
||||
// end;
|
||||
// 2 :
|
||||
// begin
|
||||
// case opcode of
|
||||
// A_MOVZX,A_MOVSX :
|
||||
// begin
|
||||
// if tx86operand(operands[1]).opsize=S_NO then
|
||||
// begin
|
||||
// tx86operand(operands[1]).opsize:=S_B;
|
||||
// if (m_delphi in current_settings.modeswitches) then
|
||||
// Message(asmr_w_unable_to_determine_reference_size_using_byte)
|
||||
// else
|
||||
// Message(asmr_e_unable_to_determine_reference_size);
|
||||
// end;
|
||||
// case tx86operand(operands[1]).opsize of
|
||||
// S_W :
|
||||
// case tx86operand(operands[2]).opsize of
|
||||
// S_L :
|
||||
// opsize:=S_WL;
|
||||
//{$ifdef x86_64}
|
||||
// S_Q :
|
||||
// opsize:=S_WQ;
|
||||
//{$endif}
|
||||
// else
|
||||
// ;
|
||||
// end;
|
||||
// S_B :
|
||||
// begin
|
||||
// case tx86operand(operands[2]).opsize of
|
||||
// S_W :
|
||||
// opsize:=S_BW;
|
||||
// S_L :
|
||||
// opsize:=S_BL;
|
||||
//{$ifdef x86_64}
|
||||
// S_Q :
|
||||
// opsize:=S_BQ;
|
||||
//{$endif}
|
||||
// else
|
||||
// ;
|
||||
// end;
|
||||
// end;
|
||||
// else
|
||||
// ;
|
||||
// end;
|
||||
// end;
|
||||
// A_MOVSS,
|
||||
// A_VMOVSS,
|
||||
// A_MOVD : { movd is a move from a mmx register to a
|
||||
// 32 bit register or memory, so no opsize is correct here PM }
|
||||
// //exit;
|
||||
// ;
|
||||
// A_MOVQ :
|
||||
// opsize:=S_IQ;
|
||||
// A_CVTSI2SS,
|
||||
// A_CVTSI2SD,
|
||||
// A_VCVTPD2DQ,
|
||||
// A_VCVTPD2PS,
|
||||
// A_VCVTTPD2DQ,
|
||||
// A_VCVTPD2UDQ,
|
||||
// A_VCVTQQ2PS,
|
||||
// A_VCVTTPD2UDQ,
|
||||
// A_VCVTUQQ2PS,
|
||||
//
|
||||
// A_OUT :
|
||||
// opsize:=tx86operand(operands[1]).opsize;
|
||||
// else
|
||||
// opsize:=tx86operand(operands[2]).opsize;
|
||||
// end;
|
||||
// end;
|
||||
// 3 :
|
||||
// begin
|
||||
// case opcode of
|
||||
// A_VCVTSI2SS,
|
||||
// A_VCVTSI2SD,
|
||||
// A_VCVTUSI2SS,
|
||||
// A_VCVTUSI2SD:
|
||||
// opsize:=tx86operand(operands[1]).opsize;
|
||||
// A_VFPCLASSPD,
|
||||
// A_VFPCLASSPS:
|
||||
// opsize:=tx86operand(operands[2]).opsize;
|
||||
// else
|
||||
// opsize:=tx86operand(operands[ops]).opsize;
|
||||
// end;
|
||||
// end;
|
||||
// 4 :
|
||||
// opsize:=tx86operand(operands[ops]).opsize;
|
||||
//
|
||||
// end;
|
||||
|
||||
// iops := S_NO;
|
||||
case ops of
|
||||
0,1: iops := opsize;
|
||||
0 : ;
|
||||
1 :
|
||||
begin
|
||||
{ "push es" must be stored as a long PM }
|
||||
if ((opcode=A_PUSH) or
|
||||
(opcode=A_POP)) and
|
||||
(operands[1].opr.typ=OPR_REGISTER) and
|
||||
is_segment_reg(operands[1].opr.reg) then
|
||||
{$ifdef i8086}
|
||||
opsize:=S_W
|
||||
{$else i8086}
|
||||
opsize:=S_L
|
||||
{$endif i8086}
|
||||
else
|
||||
opsize:=tx86operand(operands[1]).opsize;
|
||||
end;
|
||||
2 : begin
|
||||
case opcode of
|
||||
A_MOVZX,A_MOVSX :
|
||||
@ -1644,26 +1553,7 @@ begin
|
||||
end;
|
||||
4 :
|
||||
opsize:=tx86operand(operands[ops]).opsize;
|
||||
|
||||
|
||||
end;
|
||||
|
||||
// todo delete (only test)
|
||||
// if opsize <> iops then
|
||||
// begin
|
||||
// if not isBCastMemRef then
|
||||
// Message1(asmr_w_adding_explicit_args_fXX, std_op2str[opcode] + 'no broadcast')
|
||||
// else
|
||||
// begin
|
||||
// Message1(asmr_w_adding_explicit_args_fXX, std_op2str[opcode] + ' -broadcast- ' + GetEnumName(TypeInfo(topsize), ord(opsize)) + ':' + GetEnumName(TypeInfo(topsize), ord(iops)));
|
||||
//
|
||||
//
|
||||
//// writeln(GetEnumName(TypeInfo(topsize), ord(opsize)));
|
||||
//// writeln(GetEnumName(TypeInfo(topsize), ord(iops)));
|
||||
// end;
|
||||
//
|
||||
// end;
|
||||
// opsize := iops;
|
||||
end;
|
||||
|
||||
|
||||
|
@ -567,11 +567,6 @@ begin
|
||||
;
|
||||
|
||||
|
||||
//TG TODO delete
|
||||
if aInst = 'vpmovw2m' then
|
||||
begin
|
||||
sSuffix := sSuffix;
|
||||
end;
|
||||
|
||||
for il_Op := 1 to 4 do
|
||||
begin
|
||||
|
@ -34,12 +34,21 @@ uses SysUtils, AsmTestGenerator, Dialogs;
|
||||
{ TAVXTestGenerator }
|
||||
|
||||
constructor TAVXTestGenerator.Create;
|
||||
var
|
||||
i: integer;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
FOpCodeList := TStringList.Create;
|
||||
FOpCodeList.Duplicates := dupIgnore;
|
||||
FOpCodeList.Sorted := true;
|
||||
|
||||
Init;
|
||||
|
||||
|
||||
FOpCodeList.Sorted := false;
|
||||
for i := 0 to FOpCodeList.Count - 1 do
|
||||
FOpCodeList[i] := AnsiLowerCase(FOpCodeList[i]);
|
||||
end;
|
||||
|
||||
destructor TAVXTestGenerator.Destroy;
|
||||
@ -2441,24 +2450,6 @@ begin
|
||||
FOpCodeList.Add('vpblendmw,1,1,1,xmmreg_mz,xmmreg,xmmrm,');
|
||||
FOpCodeList.Add('vpblendmw,1,1,1,ymmreg_mz,ymmreg,ymmrm,');
|
||||
FOpCodeList.Add('vpblendmw,1,1,1,zmmreg_mz,zmmreg,zmmrm,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,xmmreg_mz,mem8,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,xmmreg_mz,reg16,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,xmmreg_mz,reg32,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,xmmreg_mz,reg64,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,xmmreg_mz,reg8,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,xmmreg_mz,xmmreg,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,ymmreg_mz,mem8,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,ymmreg_mz,reg16,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,ymmreg_mz,reg32,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,ymmreg_mz,reg64,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,ymmreg_mz,reg8,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,ymmreg_mz,xmmreg,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,zmmreg_mz,mem8,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,zmmreg_mz,reg16,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,zmmreg_mz,reg32,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,zmmreg_mz,reg64,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,zmmreg_mz,reg8,,');
|
||||
FOpCodeList.Add('vpbroadcastb,1,1,1,zmmreg_mz,xmmreg,,');
|
||||
FOpCodeList.Add('vpbroadcastd,1,1,1,xmmreg_mz,mem32,,');
|
||||
FOpCodeList.Add('vpbroadcastd,1,1,1,xmmreg_mz,reg32,,');
|
||||
FOpCodeList.Add('vpbroadcastd,1,1,1,xmmreg_mz,xmmreg,,');
|
||||
@ -2483,21 +2474,6 @@ begin
|
||||
FOpCodeList.Add('vpbroadcastq,1,1,1,zmmreg_mz,mem64,,');
|
||||
FOpCodeList.Add('vpbroadcastq,1,1,1,zmmreg_mz,reg64,,');
|
||||
FOpCodeList.Add('vpbroadcastq,1,1,1,zmmreg_mz,xmmreg,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,xmmreg_mz,mem16,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,xmmreg_mz,reg16,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,xmmreg_mz,reg32,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,xmmreg_mz,reg64,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,xmmreg_mz,xmmreg,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,ymmreg_mz,mem16,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,ymmreg_mz,reg16,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,ymmreg_mz,reg32,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,ymmreg_mz,reg64,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,ymmreg_mz,xmmreg,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,zmmreg_mz,mem16,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,zmmreg_mz,reg16,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,zmmreg_mz,reg32,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,zmmreg_mz,reg64,,');
|
||||
FOpCodeList.Add('vpbroadcastw,1,1,1,zmmreg_mz,xmmreg,,');
|
||||
FOpCodeList.Add('vpcmpb,1,1,1,kreg_m,xmmreg,xmmrm,imm8');
|
||||
FOpCodeList.Add('vpcmpb,1,1,1,kreg_m,ymmreg,ymmrm,imm8');
|
||||
FOpCodeList.Add('vpcmpb,1,1,1,kreg_m,zmmreg,zmmrm,imm8');
|
||||
@ -3322,20 +3298,6 @@ begin
|
||||
NewOpCode := ansilowercase(sl[0]);
|
||||
if NewOpCode <> '' then
|
||||
begin
|
||||
//if NewOpCode <> LastOpCode then
|
||||
//begin
|
||||
// if LastOpCode <> '' then
|
||||
// begin
|
||||
// SaveFile(slAsm, LastOpCode, aDestPath, aFileExt, aHeaderList, aFooterList);
|
||||
// writeln(format('%s%s%s', [aDestPath, LastOpCode, aFileExt]));
|
||||
//
|
||||
// slAsm.Clear;
|
||||
// LastOpCode := NewOpCode;
|
||||
// end
|
||||
// else LastOpCode := NewOpCode;
|
||||
//end;
|
||||
|
||||
|
||||
if (not(aX64) and (sl[1] = '1')) or // i386
|
||||
(aX64 and (sl[2] = '1')) then // x86_64
|
||||
begin
|
||||
@ -3358,13 +3320,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
if NewOpCode <> '' then
|
||||
begin
|
||||
//SaveFile(slAsm, NewOpCode, aDestPath, aFileExt, aHeaderList, aFooterList);
|
||||
//writeln(format('%s%s%s', [aDestPath, NewOpCode, aFileExt]));
|
||||
end;
|
||||
|
||||
finally
|
||||
FreeAndNil(slAsm);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user