diff --git a/compiler/powerpc/itcpugas.pas b/compiler/powerpc/itcpugas.pas index 609d283e02..065ae49d38 100644 --- a/compiler/powerpc/itcpugas.pas +++ b/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 - } diff --git a/compiler/powerpc/ppcreg.dat b/compiler/powerpc/ppcreg.dat index 9aa7d34f8e..4567440ad2 100644 --- a/compiler/powerpc/ppcreg.dat +++ b/compiler/powerpc/ppcreg.dat @@ -4,126 +4,129 @@ ; PowerPC registers ; ; layout -; ,,,,, +; ,,,,,, ; -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 diff --git a/compiler/powerpc/rppcgss.inc b/compiler/powerpc/rppcgss.inc new file mode 100644 index 0000000000..df78c36d00 --- /dev/null +++ b/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' diff --git a/compiler/utils/mkppcreg.pp b/compiler/utils/mkppcreg.pp index 988464a653..f767f46a04 100644 --- a/compiler/utils/mkppcreg.pp +++ b/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