Explorar el Código

+ short gas register names for smartlinking added

florian hace 21 años
padre
commit
2d6847e5cd
Se han modificado 4 ficheros con 251 adiciones y 117 borrados
  1. 13 3
      compiler/powerpc/itcpugas.pas
  2. 115 112
      compiler/powerpc/ppcreg.dat
  3. 111 0
      compiler/powerpc/rppcgss.inc
  4. 12 2
      compiler/utils/mkppcreg.pp

+ 13 - 3
compiler/powerpc/itcpugas.pas

@@ -84,6 +84,7 @@ interface
 implementation
 
     uses
+      globtype,globals,
       cutils,verbose;
 
     const
@@ -91,6 +92,10 @@ implementation
         {$i rppcgas.inc}
       );
 
+      gas_regname_short_table : array[tregisterindex] of string[7] = (
+        {$i rppcgss.inc}
+      );
+
       gas_regname_index : array[tregisterindex] of tregisterindex = (
         {$i rppcgri.inc}
       );
@@ -127,7 +132,10 @@ implementation
       begin
         p:=findreg_by_number(r);
         if p<>0 then
-          result:=gas_regname_table[p]
+          if (cs_create_smart in aktmoduleswitches) then
+            result:=gas_regname_short_table[p]
+          else
+            result:=gas_regname_table[p]
         else
           result:=generic_regname(r);
       end;
@@ -135,7 +143,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.2  2003-11-15 19:00:10  florian
+  Revision 1.3  2003-12-10 22:19:27  florian
+    + short gas register names for smartlinking added
+
+  Revision 1.2  2003/11/15 19:00:10  florian
     * fixed ppc assembler reader
 
   Revision 1.1  2003/11/12 16:05:40  florian
@@ -151,5 +162,4 @@ end.
 
   Revision 1.1  2003/09/03 19:35:24  peter
     * powerpc compiles again
-
 }

+ 115 - 112
compiler/powerpc/ppcreg.dat

@@ -4,126 +4,129 @@
 ; PowerPC registers
 ;
 ; layout
-; <name>,<value>,<stdname>,<gasname>,<motname>,<stabidx>
+; <name>,<value>,<stdname>,<gasname>,<gasshortname>,<motname>,<stabidx>
 ;
-NO,$00,$00,INVALID,INVALID,INVALID,-1
+NO,$00,$00,INVALID,INVALID,INVALID,INVALID,-1
 
-R0,$01,$00,r0,r0,r0,0
-R1,$01,$01,r1,r1,r1,1
-R2,$01,$02,r2,r2,r2,2
-R3,$01,$03,r3,r3,r3,3
-R4,$01,$04,r4,r4,r4,4
-R5,$01,$05,r5,r5,r5,5
-R6,$01,$06,r6,r6,r6,6
-R7,$01,$07,r7,r7,r7,7
-R8,$01,$08,r8,r8,r8,8
-R9,$01,$09,r9,r9,r9,9
-R10,$01,$0a,r10,r10,r10,10
-R11,$01,$0b,r11,r11,r11,11
-R12,$01,$0c,r12,r12,r12,12
-R13,$01,$0d,r13,r13,r13,13
-R14,$01,$0e,r14,r14,r14,14
-R15,$01,$0f,r15,r15,r15,15
-R16,$01,$10,r16,r16,r16,16
-R17,$01,$11,r17,r17,r17,17
-R18,$01,$12,r18,r18,r18,18
-R19,$01,$13,r19,r19,r19,19
-R20,$01,$14,r20,r20,r20,20
-R21,$01,$15,r21,r21,r21,21
-R22,$01,$16,r22,r22,r22,22
-R23,$01,$17,r23,r23,r23,23
-R24,$01,$18,r24,r24,r24,24
-R25,$01,$19,r25,r25,r25,25
-R26,$01,$1a,r26,r26,r26,26
-R27,$01,$1b,r27,r27,r27,27
-R28,$01,$1c,r28,r28,r28,28
-R29,$01,$1d,r29,r29,r29,29
-R30,$01,$1e,r30,r30,r30,30
-R31,$01,$1f,r31,r31,r31,31
+R0,$01,$00,r0,r0,0,r0,0
+R1,$01,$01,r1,r1,1,r1,1
+R2,$01,$02,r2,r2,2,r2,2
+R3,$01,$03,r3,r3,3,r3,3
+R4,$01,$04,r4,r4,4,r4,4
+R5,$01,$05,r5,r5,5,r5,5
+R6,$01,$06,r6,r6,6,r6,6
+R7,$01,$07,r7,r7,7,r7,7
+R8,$01,$08,r8,r8,8,r8,8
+R9,$01,$09,r9,r9,9,r9,9
+R10,$01,$0a,r10,r10,10,r10,10
+R11,$01,$0b,r11,r11,11,r11,11
+R12,$01,$0c,r12,r12,12,r12,12
+R13,$01,$0d,r13,r13,13,r13,13
+R14,$01,$0e,r14,r14,14,r14,14
+R15,$01,$0f,r15,r15,15,r15,15
+R16,$01,$10,r16,r16,16,r16,16
+R17,$01,$11,r17,r17,17,r17,17
+R18,$01,$12,r18,r18,18,r18,18
+R19,$01,$13,r19,r19,19,r19,19
+R20,$01,$14,r20,r20,20,r20,20
+R21,$01,$15,r21,r21,21,r21,21
+R22,$01,$16,r22,r22,22,r22,22
+R23,$01,$17,r23,r23,23,r23,23
+R24,$01,$18,r24,r24,24,r24,24
+R25,$01,$19,r25,r25,25,r25,25
+R26,$01,$1a,r26,r26,26,r26,26
+R27,$01,$1b,r27,r27,27,r27,27
+R28,$01,$1c,r28,r28,28,r28,28
+R29,$01,$1d,r29,r29,29,r29,29
+R30,$01,$1e,r30,r30,30,r30,30
+R31,$01,$1f,r31,r31,31,r31,31
 
-F0,$02,$00,F0,f0,F0,32
-F1,$02,$01,F1,f1,F1,33
-F2,$02,$02,F2,f2,F2,34
-F3,$02,$03,F3,f3,F3,35
-F4,$02,$04,F4,f4,F4,36
-F5,$02,$05,F5,f5,F5,37
-F6,$02,$06,F6,f6,F6,38
-F7,$02,$07,F7,f7,F7,39
-F8,$02,$08,F8,f8,F8,40
-F9,$02,$09,F9,f9,F9,41
-F10,$02,$0a,F10,f10,F10,42
-F11,$02,$0b,F11,f11,F11,43
-F12,$02,$0c,F12,f12,F12,44
-F13,$02,$0d,F13,f13,F13,45
-F14,$02,$0e,F14,f14,F14,46
-F15,$02,$0f,F15,f15,F15,47
-F16,$02,$10,F16,f16,F16,48
-F17,$02,$11,F17,f17,F17,49
-F18,$02,$12,F18,f18,F18,50
-F19,$02,$13,F19,f19,F19,51
-F20,$02,$14,F20,f20,F20,52
-F21,$02,$15,F21,f21,F21,53
-F22,$02,$16,F22,f22,F22,54
-F23,$02,$17,F23,f23,F23,55
-F24,$02,$18,F24,f24,F24,56
-F25,$02,$19,F25,f25,F25,57
-F26,$02,$1a,F26,f26,F26,58
-F27,$02,$1b,F27,f27,F27,59
-F28,$02,$1c,F28,f28,F28,60
-F29,$02,$1d,F29,f29,F29,61
-F30,$02,$1e,F30,f30,F30,62
-F31,$02,$1f,F31,f31,F31,63
+F0,$02,$00,F0,f0,0,F0,32
+F1,$02,$01,F1,f1,1,F1,33
+F2,$02,$02,F2,f2,2,F2,34
+F3,$02,$03,F3,f3,3,F3,35
+F4,$02,$04,F4,f4,4,F4,36
+F5,$02,$05,F5,f5,5,F5,37
+F6,$02,$06,F6,f6,6,F6,38
+F7,$02,$07,F7,f7,7,F7,39
+F8,$02,$08,F8,f8,8,F8,40
+F9,$02,$09,F9,f9,9,F9,41
+F10,$02,$0a,F10,f10,10,F10,42
+F11,$02,$0b,F11,f11,11,F11,43
+F12,$02,$0c,F12,f12,12,F12,44
+F13,$02,$0d,F13,f13,13,F13,45
+F14,$02,$0e,F14,f14,14,F14,46
+F15,$02,$0f,F15,f15,15,F15,47
+F16,$02,$10,F16,f16,16,F16,48
+F17,$02,$11,F17,f17,17,F17,49
+F18,$02,$12,F18,f18,18,F18,50
+F19,$02,$13,F19,f19,19,F19,51
+F20,$02,$14,F20,f20,20,F20,52
+F21,$02,$15,F21,f21,21,F21,53
+F22,$02,$16,F22,f22,22,F22,54
+F23,$02,$17,F23,f23,23,F23,55
+F24,$02,$18,F24,f24,24,F24,56
+F25,$02,$19,F25,f25,25,F25,57
+F26,$02,$1a,F26,f26,26,F26,58
+F27,$02,$1b,F27,f27,27,F27,59
+F28,$02,$1c,F28,f28,28,F28,60
+F29,$02,$1d,F29,f29,29,F29,61
+F30,$02,$1e,F30,f30,30,F30,62
+F31,$02,$1f,F31,f31,31,F31,63
 
-M0,$03,$00,M0,v0,M0,-1
-M1,$03,$01,M1,v1,M1,-1
-M2,$03,$02,M2,v2,M2,-1
-M3,$03,$03,M3,v3,M3,-1
-M4,$03,$04,M4,v4,M4,-1
-M5,$03,$05,M5,v5,M5,-1
-M6,$03,$06,M6,v6,M6,-1
-M7,$03,$07,M7,v7,M7,-1
-M8,$03,$08,M8,v8,M8,-1
-M9,$03,$09,M9,v9,M9,-1
-M10,$03,$0a,M10,v10,M10,-1
-M11,$03,$0b,M11,v11,M11,-1
-M12,$03,$0c,M12,v12,M12,-1
-M13,$03,$0d,M13,v13,M13,-1
-M14,$03,$0e,M14,v14,M14,-1
-M15,$03,$0f,M15,v15,M15,-1
-M16,$03,$10,M16,v16,M16,-1
-M17,$03,$11,M17,v17,M17,-1
-M18,$03,$12,M18,v18,M18,-1
-M19,$03,$13,M19,v19,M19,-1
-M20,$03,$14,M20,v20,M20,-1
-M21,$03,$15,M21,v21,M21,-1
-M22,$03,$16,M22,v22,M22,-1
-M23,$03,$17,M23,v23,M23,-1
-M24,$03,$18,M24,v24,M24,-1
-M25,$03,$19,M25,v25,M25,-1
-M26,$03,$1a,M26,v26,M26,-1
-M27,$03,$1b,M27,v27,M27,-1
-M28,$03,$1c,M28,v28,M28,-1
-M29,$03,$1d,M29,v29,M29,-1
-M30,$03,$1e,M30,v30,M30,-1
-M31,$03,$1f,M31,v31,M31,-1
+M0,$03,$00,M0,v0,0,M0,-1
+M1,$03,$01,M1,v1,1,M1,-1
+M2,$03,$02,M2,v2,2,M2,-1
+M3,$03,$03,M3,v3,3,M3,-1
+M4,$03,$04,M4,v4,4,M4,-1
+M5,$03,$05,M5,v5,5,M5,-1
+M6,$03,$06,M6,v6,6,M6,-1
+M7,$03,$07,M7,v7,7,M7,-1
+M8,$03,$08,M8,v8,8,M8,-1
+M9,$03,$09,M9,v9,9,M9,-1
+M10,$03,$0a,M10,v10,10,M10,-1
+M11,$03,$0b,M11,v11,11,M11,-1
+M12,$03,$0c,M12,v12,12,M12,-1
+M13,$03,$0d,M13,v13,13,M13,-1
+M14,$03,$0e,M14,v14,14,M14,-1
+M15,$03,$0f,M15,v15,15,M15,-1
+M16,$03,$10,M16,v16,16,M16,-1
+M17,$03,$11,M17,v17,17,M17,-1
+M18,$03,$12,M18,v18,18,M18,-1
+M19,$03,$13,M19,v19,19,M19,-1
+M20,$03,$14,M20,v20,20,M20,-1
+M21,$03,$15,M21,v21,21,M21,-1
+M22,$03,$16,M22,v22,22,M22,-1
+M23,$03,$17,M23,v23,23,M23,-1
+M24,$03,$18,M24,v24,24,M24,-1
+M25,$03,$19,M25,v25,25,M25,-1
+M26,$03,$1a,M26,v26,26,M26,-1
+M27,$03,$1b,M27,v27,27,M27,-1
+M28,$03,$1c,M28,v28,28,M28,-1
+M29,$03,$1d,M29,v29,29,M29,-1
+M30,$03,$1e,M30,v30,30,M30,-1
+M31,$03,$1f,M31,v31,31,M31,-1
 
-CR,$05,$00,CR,cr,CR,-1
-CR0,$05,$01,CR0,cr0,CR0,68
-CR1,$05,$02,CR1,cr1,CR1,69
-CR2,$05,$03,CR2,cr2,CR2,70
-CR3,$05,$04,CR3,cr3,CR3,71
-CR4,$05,$05,CR4,cr4,CR4,72
-CR5,$05,$06,CR5,cr5,CR5,73
-CR6,$05,$07,CR6,cr6,CR6,74
-CR7,$05,$08,CR7,cr7,CR7,75
-XER,$05,$09,XER,xer,XER,76
-LR,$05,$0a,LR,lr,LR,65
-CTR,$05,$0b,CTR,ctr,CTR,66
-FPSCR,$05,$0c,FPSCR,fpscr,FPSCR,-1
+CR,$05,$00,CR,cr,cr,CR,-1
+CR0,$05,$01,CR0,cr0,cr0,CR0,68
+CR1,$05,$02,CR1,cr1,cr1,CR1,69
+CR2,$05,$03,CR2,cr2,cr2,CR2,70
+CR3,$05,$04,CR3,cr3,cr3,CR3,71
+CR4,$05,$05,CR4,cr4,cr4,CR4,72
+CR5,$05,$06,CR5,cr5,cr5,CR5,73
+CR6,$05,$07,CR6,cr6,cr5,CR6,74
+CR7,$05,$08,CR7,cr7,cr6,CR7,75
+XER,$05,$09,XER,xer,xer,XER,76
+LR,$05,$0a,LR,lr,lr,LR,65
+CTR,$05,$0b,CTR,ctr,ctr,CTR,66
+FPSCR,$05,$0c,FPSCR,fpscr,fpscr,FPSCR,-1
 
 ;
 ; $Log$
-; Revision 1.4  2003-09-04 21:07:03  florian
+; Revision 1.5  2003-12-10 22:19:27  florian
+;   + short gas register names for smartlinking added
+;
+; Revision 1.4  2003/09/04 21:07:03  florian
 ;   * ARM compiler compiles again
 ;
 ; Revision 1.3  2003/09/03 19:35:24  peter

+ 111 - 0
compiler/powerpc/rppcgss.inc

@@ -0,0 +1,111 @@
+{ don't edit, this file is generated from ppcreg.dat }
+'INVALID',
+'0',
+'1',
+'2',
+'3',
+'4',
+'5',
+'6',
+'7',
+'8',
+'9',
+'10',
+'11',
+'12',
+'13',
+'14',
+'15',
+'16',
+'17',
+'18',
+'19',
+'20',
+'21',
+'22',
+'23',
+'24',
+'25',
+'26',
+'27',
+'28',
+'29',
+'30',
+'31',
+'0',
+'1',
+'2',
+'3',
+'4',
+'5',
+'6',
+'7',
+'8',
+'9',
+'10',
+'11',
+'12',
+'13',
+'14',
+'15',
+'16',
+'17',
+'18',
+'19',
+'20',
+'21',
+'22',
+'23',
+'24',
+'25',
+'26',
+'27',
+'28',
+'29',
+'30',
+'31',
+'0',
+'1',
+'2',
+'3',
+'4',
+'5',
+'6',
+'7',
+'8',
+'9',
+'10',
+'11',
+'12',
+'13',
+'14',
+'15',
+'16',
+'17',
+'18',
+'19',
+'20',
+'21',
+'22',
+'23',
+'24',
+'25',
+'26',
+'27',
+'28',
+'29',
+'30',
+'31',
+'cr',
+'cr0',
+'cr1',
+'cr2',
+'cr3',
+'cr4',
+'cr5',
+'cr5',
+'cr6',
+'xer',
+'lr',
+'ctr',
+'fpscr'

+ 12 - 2
compiler/utils/mkppcreg.pp

@@ -29,6 +29,7 @@ var s : string;
     numbers,
     stdnames,
     gasnames,
+    gssnames,
     motnames,
     stabs : array[0..max_regcount-1] of string[63];
     regnumber_index,
@@ -271,6 +272,8 @@ begin
         readcomma;
         gasnames[regcount]:=readstr;
         readcomma;
+        gssnames[regcount]:=readstr;
+        readcomma;
         motnames[regcount]:=readstr;
         readcomma;
         stabs[regcount]:=readstr;
@@ -302,7 +305,7 @@ procedure write_inc_files;
 
 var
     norfile,stdfile,motfile,supfile,
-    numfile,stabfile,confile,gasfile,
+    numfile,stabfile,confile,gasfile,gssfile,
     rnifile,srifile,mrifile,grifile : text;
     first:boolean;
 
@@ -313,6 +316,7 @@ begin
   openinc(numfile,'rppcnum.inc');
   openinc(stdfile,'rppcstd.inc');
   openinc(gasfile,'rppcgas.inc');
+  openinc(gssfile,'rppcgss.inc');
   openinc(motfile,'rppcmot.inc');
   openinc(stabfile,'rppcstab.inc');
   openinc(norfile,'rppcnor.inc');
@@ -328,6 +332,7 @@ begin
           writeln(numfile,',');
           writeln(stdfile,',');
           writeln(gasfile,',');
+          writeln(gssfile,',');
           writeln(motfile,',');
           writeln(stabfile,',');
           writeln(rnifile,',');
@@ -342,6 +347,7 @@ begin
       write(numfile,'NR_',names[i]);
       write(stdfile,'''',stdnames[i],'''');
       write(gasfile,'''',gasnames[i],'''');
+      write(gssfile,'''',gssnames[i],'''');
       write(motfile,'''',motnames[i],'''');
       write(stabfile,stabs[i]);
       write(rnifile,regnumber_index[i]);
@@ -355,6 +361,7 @@ begin
   closeinc(numfile);
   closeinc(stdfile);
   closeinc(gasfile);
+  closeinc(gssfile);
   closeinc(motfile);
   closeinc(stabfile);
   closeinc(norfile);
@@ -383,7 +390,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.5  2003-09-03 20:33:28  peter
+  Revision 1.6  2003-12-10 22:19:28  florian
+    + short gas register names for smartlinking added
+
+  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