diff --git a/compiler/utils/mkppcreg.pp b/compiler/utils/mkppcreg.pp index 083e8f6fee..988464a653 100644 --- a/compiler/utils/mkppcreg.pp +++ b/compiler/utils/mkppcreg.pp @@ -25,6 +25,7 @@ var s : string; regcount_bsstart:byte; names, regtypes, + supregs, numbers, stdnames, gasnames, @@ -264,7 +265,7 @@ begin readcomma; regtypes[regcount]:=readstr; readcomma; - numbers[regcount]:=readstr; + supregs[regcount]:=readstr; readcomma; stdnames[regcount]:=readstr; readcomma; @@ -273,6 +274,14 @@ begin motnames[regcount]:=readstr; readcomma; stabs[regcount]:=readstr; + { Create register number } + if supregs[regcount][1]<>'$' then + begin + writeln('Missing $ before number, at line ',line); + writeln('Line: "',s,'"'); + halt(1); + end; + numbers[regcount]:=regtypes[regcount]+'0000'+copy(supregs[regcount],2,255); if i'$' then + supregs[regcount]:=readstr; + readcomma; + stdnames[regcount]:=readstr; + readcomma; + stabs[regcount]:=readstr; + { Create register number } + if supregs[regcount][1]<>'$' then begin writeln('Missing $ before number, at line ',line); writeln('Line: "',s,'"'); halt(1); end; - readcomma; - stdnames[regcount]:=readstr; - readcomma; - stabs[regcount]:=readstr; + numbers[regcount]:=regtypes[regcount]+'0000'+copy(supregs[regcount],2,255); if i