瀏覽代碼

* fixed sorting of register number

peter 22 年之前
父節點
當前提交
386027ffb5
共有 2 個文件被更改,包括 38 次插入16 次删除
  1. 16 4
      compiler/utils/mkppcreg.pp
  2. 22 12
      compiler/utils/mkspreg.pp

+ 16 - 4
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<length(s) then
           begin
             writeln('Extra chars at end of line, at line ',line);
@@ -328,8 +337,8 @@ begin
         end
       else
         first:=false;
-      writeln(confile,'NR_',names[i],' = ',regtypes[i],'0000',copy(numbers[i],2,255),';');
-      writeln(supfile,'RS_',names[i],' = ',numbers[i],';');
+      writeln(confile,'NR_',names[i],' = ',numbers[i],';');
+      writeln(supfile,'RS_',names[i],' = ',supregs[i],';');
       write(numfile,'NR_',names[i]);
       write(stdfile,'''',stdnames[i],'''');
       write(gasfile,'''',gasnames[i],'''');
@@ -374,7 +383,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.4  2003-09-03 19:37:07  peter
+  Revision 1.5  2003-09-03 20:33:28  peter
+    * fixed sorting of register number
+
+  Revision 1.4  2003/09/03 19:37:07  peter
     * powerpc reg update
 
   Revision 1.2  2003/09/03 15:55:01  peter

+ 22 - 12
compiler/utils/mkspreg.pp

@@ -23,9 +23,14 @@ var s : string;
     line : longint;
     regcount:byte;
     regcount_bsstart:byte;
-    names,regtypes,numbers,stdnames,stabs:
-        array[0..max_regcount-1] of string[63];
-    regnumber_index,std_regname_index:array[0..max_regcount-1] of byte;
+    supregs,
+    names,
+    regtypes,
+    numbers,
+    stdnames,
+    stabs : array[0..max_regcount-1] of string[63];
+    regnumber_index,
+    std_regname_index : array[0..max_regcount-1] of byte;
 
 {$ifndef FPC}
   procedure readln(var t:text;var s:string);
@@ -192,17 +197,19 @@ begin
         readcomma;
         regtypes[regcount]:=readstr;
         readcomma;
-        numbers[regcount]:=readstr;
-        if numbers[regcount][1]<>'$' 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<length(s) then
           begin
             writeln('Extra chars at end of line, at line ',line);
@@ -250,8 +257,8 @@ begin
         end
       else
         first:=false;
-      writeln(confile,'NR_',names[i],' = ',regtypes[i],'0000',copy(numbers[i],2,255),';');
-      writeln(supfile,'RS_',names[i],' = ',numbers[i],';');
+      writeln(confile,'NR_',names[i],' = ',numbers[i],';');
+      writeln(supfile,'RS_',names[i],' = ',supregs[i],';');
       write(numfile,'NR_',names[i]);
       write(stdfile,'''',stdnames[i],'''');
       write(stabfile,stabs[i]);
@@ -286,7 +293,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.3  2003-09-03 16:28:16  peter
+  Revision 1.4  2003-09-03 20:33:28  peter
+    * fixed sorting of register number
+
+  Revision 1.3  2003/09/03 16:28:16  peter
     * also generate superregisters
 
   Revision 1.2  2003/09/03 15:55:02  peter