* 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:
pierre 2011-07-04 07:33:00 +00:00
parent 4c7af0b52f
commit cdd4b0297a

View File

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