mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-16 17:29:53 +02:00
* Show usage and halt with error if unknown parameters are given
at command line. * Also generate NASM register files for x86_64 (for support of NASM assembler for x86_64 CPU, to be committed later). git-svn-id: trunk@17927 -
This commit is contained in:
parent
4c7af0b52f
commit
cdd4b0297a
@ -321,10 +321,7 @@ begin
|
|||||||
openinc(stdfile,fileprefix+'std.inc');
|
openinc(stdfile,fileprefix+'std.inc');
|
||||||
openinc(attfile,fileprefix+'att.inc');
|
openinc(attfile,fileprefix+'att.inc');
|
||||||
openinc(intfile,fileprefix+'int.inc');
|
openinc(intfile,fileprefix+'int.inc');
|
||||||
if not(x86_64) then
|
openinc(nasmfile,fileprefix+'nasm.inc');
|
||||||
begin
|
|
||||||
openinc(nasmfile,fileprefix+'nasm.inc');
|
|
||||||
end;
|
|
||||||
openinc(stabfile,fileprefix+'stab.inc');
|
openinc(stabfile,fileprefix+'stab.inc');
|
||||||
openinc(dwrffile,fileprefix+'dwrf.inc');
|
openinc(dwrffile,fileprefix+'dwrf.inc');
|
||||||
openinc(otfile,fileprefix+'ot.inc');
|
openinc(otfile,fileprefix+'ot.inc');
|
||||||
@ -334,10 +331,7 @@ begin
|
|||||||
openinc(srifile,fileprefix+'sri.inc');
|
openinc(srifile,fileprefix+'sri.inc');
|
||||||
openinc(arifile,fileprefix+'ari.inc');
|
openinc(arifile,fileprefix+'ari.inc');
|
||||||
openinc(irifile,fileprefix+'iri.inc');
|
openinc(irifile,fileprefix+'iri.inc');
|
||||||
if not(x86_64) then
|
openinc(nrifile,fileprefix+'nri.inc');
|
||||||
begin
|
|
||||||
openinc(nrifile,fileprefix+'nri.inc');
|
|
||||||
end;
|
|
||||||
first:=true;
|
first:=true;
|
||||||
for i:=0 to regcount-1 do
|
for i:=0 to regcount-1 do
|
||||||
begin
|
begin
|
||||||
@ -347,10 +341,7 @@ begin
|
|||||||
writeln(stdfile,',');
|
writeln(stdfile,',');
|
||||||
writeln(attfile,',');
|
writeln(attfile,',');
|
||||||
writeln(intfile,',');
|
writeln(intfile,',');
|
||||||
if not(x86_64) then
|
writeln(nasmfile,',');
|
||||||
begin
|
|
||||||
writeln(nasmfile,',');
|
|
||||||
end;
|
|
||||||
writeln(stabfile,',');
|
writeln(stabfile,',');
|
||||||
writeln(dwrffile,',');
|
writeln(dwrffile,',');
|
||||||
writeln(otfile,',');
|
writeln(otfile,',');
|
||||||
@ -359,10 +350,7 @@ begin
|
|||||||
writeln(srifile,',');
|
writeln(srifile,',');
|
||||||
writeln(arifile,',');
|
writeln(arifile,',');
|
||||||
writeln(irifile,',');
|
writeln(irifile,',');
|
||||||
if not(x86_64) then
|
writeln(nrifile,',');
|
||||||
begin
|
|
||||||
writeln(nrifile,',');
|
|
||||||
end;
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
first:=false;
|
first:=false;
|
||||||
@ -371,10 +359,7 @@ begin
|
|||||||
write(stdfile,'''',stdnames[i],'''');
|
write(stdfile,'''',stdnames[i],'''');
|
||||||
write(attfile,'''',attnames[i],'''');
|
write(attfile,'''',attnames[i],'''');
|
||||||
write(intfile,'''',intnames[i],'''');
|
write(intfile,'''',intnames[i],'''');
|
||||||
if not(x86_64) then
|
write(nasmfile,'''',nasmnames[i],'''');
|
||||||
begin
|
|
||||||
write(nasmfile,'''',nasmnames[i],'''');
|
|
||||||
end;
|
|
||||||
{ stabs uses the same register numbering as dwarf
|
{ stabs uses the same register numbering as dwarf
|
||||||
for x86_64 CPU }
|
for x86_64 CPU }
|
||||||
if x86_64 then
|
if x86_64 then
|
||||||
@ -391,10 +376,7 @@ begin
|
|||||||
write(srifile,std_regname_index[i]);
|
write(srifile,std_regname_index[i]);
|
||||||
write(arifile,att_regname_index[i]);
|
write(arifile,att_regname_index[i]);
|
||||||
write(irifile,int_regname_index[i]);
|
write(irifile,int_regname_index[i]);
|
||||||
if not(x86_64) then
|
write(nrifile,nasm_regname_index[i]);
|
||||||
begin
|
|
||||||
write(nrifile,nasm_regname_index[i]);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
write(norfile,regcount);
|
write(norfile,regcount);
|
||||||
close(confile);
|
close(confile);
|
||||||
@ -402,10 +384,7 @@ begin
|
|||||||
closeinc(attfile);
|
closeinc(attfile);
|
||||||
closeinc(stdfile);
|
closeinc(stdfile);
|
||||||
closeinc(intfile);
|
closeinc(intfile);
|
||||||
if not(x86_64) then
|
closeinc(nasmfile);
|
||||||
begin
|
|
||||||
closeinc(nasmfile);
|
|
||||||
end;
|
|
||||||
closeinc(stabfile);
|
closeinc(stabfile);
|
||||||
closeinc(dwrffile);
|
closeinc(dwrffile);
|
||||||
closeinc(otfile);
|
closeinc(otfile);
|
||||||
@ -415,10 +394,7 @@ begin
|
|||||||
closeinc(srifile);
|
closeinc(srifile);
|
||||||
closeinc(arifile);
|
closeinc(arifile);
|
||||||
closeinc(irifile);
|
closeinc(irifile);
|
||||||
if not(x86_64) then
|
closeinc(nrifile);
|
||||||
begin
|
|
||||||
closeinc(nrifile);
|
|
||||||
end;
|
|
||||||
writeln('Done!');
|
writeln('Done!');
|
||||||
writeln(regcount,' registers procesed');
|
writeln(regcount,' registers procesed');
|
||||||
end;
|
end;
|
||||||
@ -426,11 +402,31 @@ end;
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
writeln('Register Table Converter Version ',Version);
|
writeln('Register Table Converter Version ',Version);
|
||||||
x86_64:=paramstr(1)='x86_64';
|
if paramcount=0 then
|
||||||
if x86_64 then
|
begin
|
||||||
fileprefix:='r8664'
|
x86_64:=false;
|
||||||
|
end
|
||||||
else
|
else
|
||||||
fileprefix:='r386';
|
begin
|
||||||
|
x86_64:=paramstr(1)='x86_64';
|
||||||
|
if (paramcount<>1) or
|
||||||
|
((paramstr(1)<>'i386') and (paramstr(1)<>'x86_64')) then
|
||||||
|
begin
|
||||||
|
writeln('Usage: ',paramstr(0));
|
||||||
|
writeln('Only one optional parameter is allowed: i386 or x86_64');
|
||||||
|
halt(1);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if x86_64 then
|
||||||
|
begin
|
||||||
|
fileprefix:='r8664';
|
||||||
|
writeln('Processing for CPU x86_64');
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
fileprefix:='r386';
|
||||||
|
writeln('Processing for CPU i386');
|
||||||
|
end;
|
||||||
line:=0;
|
line:=0;
|
||||||
regcount:=0;
|
regcount:=0;
|
||||||
read_x86reg_file;
|
read_x86reg_file;
|
||||||
|
Loading…
Reference in New Issue
Block a user