mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-25 12:41:40 +02:00 
			
		
		
		
	* the alpha compiler can be compiled now
This commit is contained in:
		
							parent
							
								
									b309bf03cc
								
							
						
					
					
						commit
						1cf1665d73
					
				| @ -150,6 +150,10 @@ begin | ||||
| {$ifdef m68k} | ||||
|     target_m68k_Linux : | ||||
|       exportlib:=new(pexportlib,Init); | ||||
| {$endif m68k} | ||||
| {$ifdef alpha} | ||||
|     target_m68k_Linux : | ||||
|       exportlib:=new(pexportlib,Init); | ||||
| {$endif m68k} | ||||
|     else | ||||
|       exportlib:=new(pexportlib,Init); | ||||
| @ -160,7 +164,10 @@ end; | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.4  1998-11-30 09:43:09  pierre | ||||
|   Revision 1.5  1999-08-03 17:09:34  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.4  1998/11/30 09:43:09  pierre | ||||
|     * some range check bugs fixed (still not working !) | ||||
|     + added DLL writing support for win32 (also accepts variables) | ||||
|     + TempAnsi for code that could be used for Temporary ansi strings | ||||
|  | ||||
| @ -1165,31 +1165,27 @@ unit globals; | ||||
|         description:='Compiled by FPC '+version_string+' - '+target_cpu_string; | ||||
| 
 | ||||
|       { Init values } | ||||
| {$ifdef i386} | ||||
|         initoptprocessor:=Class386; | ||||
|         initmodeswitches:=fpcmodeswitches; | ||||
|         initlocalswitches:=[]; | ||||
|         initmoduleswitches:=[cs_extsyntax,cs_browser]; | ||||
|         initglobalswitches:=[cs_check_unit_name,cs_link_static]; | ||||
|         initmodeswitches:=fpcmodeswitches; | ||||
| {$ifdef i386} | ||||
|         initoptprocessor:=Class386; | ||||
|         initpackenum:=4; | ||||
|         initpackrecords:=packrecord_2; | ||||
|         initoutputformat:=target_asm.id; | ||||
|         initasmmode:=asmmode_i386_att; | ||||
|         initdefines.init; | ||||
| {$else not i386} | ||||
|   {$ifdef m68k} | ||||
|         initoptprocessor:=MC68000; | ||||
|         initlocalswitches:=[]; | ||||
|         initmoduleswitches:=[cs_extsyntax,cs_browser,cs_fp_emulation]; | ||||
|         initglobalswitches:=[cs_check_unit_name,cs_link_static]; | ||||
|         initmodeswitches:=fpcmodeswitches; | ||||
|         include(initmoduleswitches,cs_fp_emulation); | ||||
|         initpackenum:=4; | ||||
|         initpackrecords:=packrecord_2; | ||||
|         initoutputformat:=as_m68k_as; | ||||
|         initasmmode:=asmmode_m68k_mot; | ||||
|         initdefines.init; | ||||
|   {$endif m68k} | ||||
| {$endif i386} | ||||
|         initdefines.init; | ||||
| 
 | ||||
|       { memory sizes, will be overriden by parameter or default for target | ||||
|         in options or init_parser } | ||||
| @ -1210,7 +1206,10 @@ begin | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.14  1999-07-23 16:05:19  peter | ||||
|   Revision 1.15  1999-08-03 17:09:35  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.14  1999/07/23 16:05:19  peter | ||||
|     * alignment is now saved in the symtable | ||||
|     * C alignment added for records | ||||
|     * PPU version increased to solve .12 <-> .13 probs | ||||
|  | ||||
| @ -90,13 +90,13 @@ Type | ||||
|               R_F30,R_F31); | ||||
| 
 | ||||
|   TRegisterset = Set of TRegister; | ||||
|    | ||||
| 
 | ||||
| { Constants describing the registers } | ||||
| 
 | ||||
| Const   | ||||
| Const | ||||
|   Firstreg = R_0; | ||||
|   LastReg = R_F31; | ||||
|    | ||||
| 
 | ||||
|   stack_pointer = R_30; | ||||
|   frame_pointer = R_15; | ||||
|   self_pointer  = R_16; | ||||
| @ -167,8 +167,6 @@ Type | ||||
|            top_symbol : (sym:pasmsymbol;symofs:longint); | ||||
|         end; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Const | ||||
|   { offsets for the integer and floating point registers } | ||||
|   INT_REG = 0; | ||||
| @ -178,7 +176,7 @@ Const | ||||
|   OQ_CHOPPED_ROUNDING            = $01;  { /C } | ||||
|   OQ_ROUNDING_MODE_DYNAMIC       = $02;  { /D } | ||||
|   OQ_ROUND_TOWARD_MINUS_INFINITY = $04;  { /M } | ||||
|   OQ_INEXACT_RSULT_ENABLE        = $08;  { /I } | ||||
|   OQ_INEXACT_RESULT_ENABLE        = $08; { /I } | ||||
|   OQ_SOFTWARE_COMPLETION_ENABLE  = $10;  { /S } | ||||
|   OQ_FLOATING_UNDERFLOW_ENABLE   = $20;  { /U } | ||||
|   OQ_INTEGER_OVERFLOW_ENABLE     = $40;  { /V } | ||||
| @ -189,9 +187,23 @@ procedure reset_reference(var ref : treference); | ||||
| function new_reference(base : tregister;offset : longint) : preference; | ||||
| procedure disposereference(var r : preference); | ||||
| 
 | ||||
| function reg2str(r : tregister) : string; | ||||
| 
 | ||||
| implementation | ||||
| 
 | ||||
| uses | ||||
|    verbose; | ||||
| 
 | ||||
| function reg2str(r : tregister) : string; | ||||
| 
 | ||||
|   begin | ||||
|      if r in [R_0..R_31] then | ||||
|        reg2str:='R'+tostr(longint(r)-longint(R_0)) | ||||
|      else if r in [R_F0..R_F31] then | ||||
|        reg2str:='F'+tostr(longint(r)-longint(R_F0)) | ||||
|      else internalerror(38991); | ||||
|   end; | ||||
| 
 | ||||
| procedure reset_reference(var ref : treference); | ||||
| begin | ||||
|   FillChar(ref,sizeof(treference),0); | ||||
| @ -219,7 +231,10 @@ end; | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.4  1999-08-03 15:52:40  michael | ||||
|   Revision 1.5  1999-08-03 17:09:48  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.4  1999/08/03 15:52:40  michael | ||||
|   * Additional changes | ||||
| 
 | ||||
|   Revision 1.3  1999/08/03 00:35:54  michael | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|     Copyright (c) 1999 by the Free Pascal development team | ||||
| 
 | ||||
|     Basic Processor information | ||||
|      | ||||
| 
 | ||||
|     See the file COPYING.FPC, included in this distribution, | ||||
|     for details about the copyright. | ||||
| 
 | ||||
| @ -20,8 +20,12 @@ Interface | ||||
| 
 | ||||
| Type | ||||
|    { Architecture word - Native unsigned type } | ||||
| {$ifdef FPC} | ||||
|    AWord = Qword; | ||||
|     | ||||
| {$else FPC} | ||||
|    AWord = Longint; | ||||
| {$endif FPC} | ||||
| 
 | ||||
| Const | ||||
|    { Size of native extended type } | ||||
|    extended_size = 16; | ||||
|  | ||||
| @ -48,8 +48,6 @@ unit tgcpu; | ||||
| 
 | ||||
|     var | ||||
|        tg : ttgobji386; | ||||
|        reg_pushes : array[R_EAX..R_MM6] of longint; | ||||
|        is_reg_var : array[R_EAX..R_MM6] of boolean; | ||||
| 
 | ||||
|   implementation | ||||
| 
 | ||||
| @ -74,7 +72,10 @@ begin | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.2  1999-08-02 23:13:24  florian | ||||
|   Revision 1.3  1999-08-03 17:09:50  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.2  1999/08/02 23:13:24  florian | ||||
|     * more changes to compile for the Alpha | ||||
| 
 | ||||
|   Revision 1.1  1999/08/02 17:14:14  florian | ||||
|  | ||||
| @ -48,7 +48,6 @@ unit nmem; | ||||
|     uses | ||||
|        cobjects,aasm,cgbase,cgobj,types,verbose,tgobj,tgcpu | ||||
| {$I cpuunit.inc} | ||||
| {$I tempgen.inc} | ||||
|        ; | ||||
| 
 | ||||
| {**************************************************************************** | ||||
| @ -131,6 +130,7 @@ unit nmem; | ||||
| {$endif i386} | ||||
|                     else | ||||
|                       begin | ||||
| {$ifdef i386} | ||||
|                          symtabletype:=symtable^.symtabletype; | ||||
|                          { in case it is a register variable: } | ||||
|                          if pvarsym(symtableentry)^.reg<>R_NO then | ||||
| @ -254,6 +254,7 @@ unit nmem; | ||||
|                               reset_reference(location.reference); | ||||
|                               location.reference.base:=hregister; | ||||
|                           end; | ||||
| {$endif i386} | ||||
|                       end; | ||||
|                  end; | ||||
|               procsym: | ||||
| @ -271,7 +272,10 @@ unit nmem; | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.3  1999-08-02 17:14:08  florian | ||||
|   Revision 1.4  1999-08-03 17:09:45  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.3  1999/08/02 17:14:08  florian | ||||
|     + changed the temp. generator to an object | ||||
| 
 | ||||
|   Revision 1.2  1999/08/01 18:22:35  florian | ||||
|  | ||||
| @ -391,15 +391,17 @@ implementation | ||||
|                                   include(tg.usedinproc,varregs[i]); | ||||
|                                end; | ||||
|                              nextreg: | ||||
| {$ifdef i386} | ||||
|                                { dummy } | ||||
|                                regsize:=S_W; | ||||
| {$endif i386} | ||||
|                           end; | ||||
|                         if (status.verbosity and v_debug)=v_debug then | ||||
|                           begin | ||||
|                              for i:=1 to maxvarregs do | ||||
|                                begin | ||||
|                                   if assigned(regvars[i]) then | ||||
|                                    Message3(cg_d_register_weight,reg2str(regvars[i]^.reg), | ||||
|                                     Message3(cg_d_register_weight,reg2str(regvars[i]^.reg), | ||||
|                                            tostr(regvars[i]^.refs),regvars[i]^.name); | ||||
|                                end; | ||||
|                           end; | ||||
| @ -423,7 +425,10 @@ implementation | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.3  1999-08-03 00:30:36  florian | ||||
|   Revision 1.4  1999-08-03 17:09:46  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.3  1999/08/03 00:30:36  florian | ||||
|     * again a fix for the alpha | ||||
| 
 | ||||
|   Revision 1.2  1999/08/03 00:28:03  florian | ||||
|  | ||||
| @ -25,5 +25,5 @@ | ||||
| {$ifdef i386} | ||||
| ,tgeni386 | ||||
| {$else} | ||||
| ,tgencpu | ||||
| ,tgcpu | ||||
| {$endif i386} | ||||
|  | ||||
| @ -964,12 +964,12 @@ begin | ||||
| {$endif Delphi} | ||||
| {$ifdef i386} | ||||
|   option:=new(poption386,Init); | ||||
| {$else} | ||||
|   {$ifdef m68k} | ||||
|     option:=new(poption68k,Init); | ||||
|   {$else} | ||||
|     option:=new(poption,Init); | ||||
|   {$endif} | ||||
| {$endif} | ||||
| {$ifdef m68k} | ||||
|   option:=new(poption68k,Init); | ||||
| {$endif} | ||||
| {$ifdef alpha} | ||||
|   option:=new(poption,Init); | ||||
| {$endif} | ||||
| { Load messages } | ||||
|   if (cmd='') and (paramcount=0) then | ||||
| @ -999,6 +999,9 @@ begin | ||||
| {$ifdef m68k} | ||||
|   def_symbol('CPU68'); | ||||
| {$endif} | ||||
| {$ifdef ALPHA} | ||||
|   def_symbol('ALPHA'); | ||||
| {$endif} | ||||
| 
 | ||||
| { get default messagefile } | ||||
| {$ifdef Delphi} | ||||
| @ -1016,8 +1019,12 @@ begin | ||||
|    begin | ||||
| {$ifdef i386} | ||||
|      ppccfg:='ppc386.cfg'; | ||||
| {$else} | ||||
| {$endif i386} | ||||
| {$ifdef m68k} | ||||
|      ppccfg:='ppc.cfg'; | ||||
| {$endif} | ||||
| {$ifdef alpha} | ||||
|      ppccfg:='ppcalpha.cfg'; | ||||
| {$endif} | ||||
|    end; | ||||
| 
 | ||||
| @ -1144,7 +1151,10 @@ end; | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.7  1999-08-02 23:13:19  florian | ||||
|   Revision 1.8  1999-08-03 17:09:36  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.7  1999/08/02 23:13:19  florian | ||||
|     * more changes to compile for the Alpha | ||||
| 
 | ||||
|   Revision 1.6  1999/07/23 22:56:27  michael | ||||
|  | ||||
| @ -60,9 +60,7 @@ unit parser; | ||||
| {$endif UseExcept} | ||||
| {$ifdef newcg} | ||||
|       cgobj, | ||||
|   {$ifdef i386} | ||||
|       cgcpu, | ||||
|   {$endif i386} | ||||
| {$endif newcg} | ||||
|       comphook,tree,scanner,pbase,pdecl,psystem,pmodules,cresstr; | ||||
| 
 | ||||
| @ -298,6 +296,9 @@ unit parser; | ||||
| {$ifdef i386} | ||||
|          cg:=new(pcg386,init); | ||||
| {$endif i386} | ||||
| {$ifdef alpha} | ||||
|          cg:=new(pcgalpha,init); | ||||
| {$endif alpha} | ||||
| {$endif newcg} | ||||
| 
 | ||||
|          { If the compile level > 1 we get a nice "unit expected" error | ||||
| @ -471,7 +472,10 @@ unit parser; | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.79  1999-08-01 23:36:40  florian | ||||
|   Revision 1.80  1999-08-03 17:09:37  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.79  1999/08/01 23:36:40  florian | ||||
|     * some changes to compile the new code generator | ||||
| 
 | ||||
|   Revision 1.78  1999/07/24 16:22:18  michael | ||||
|  | ||||
| @ -44,6 +44,11 @@ unit pmodules; | ||||
| {$ifdef m68k} | ||||
|        ,m68k | ||||
| {$endif} | ||||
| {$ifdef newcg} | ||||
| {$ifndef i386} | ||||
|        ,cpubase | ||||
| {$endif} | ||||
| {$endif newcg} | ||||
|        ,scanner,pbase,psystem,pdecl,psub,parser; | ||||
| 
 | ||||
| 
 | ||||
| @ -178,6 +183,10 @@ unit pmodules; | ||||
|             target_i386_OS2: | ||||
|               ; | ||||
| {$endif i386} | ||||
| {$ifdef alpha} | ||||
|             target_alpha_linux: | ||||
|               ; | ||||
| {$endif alpha} | ||||
| {$ifdef m68k} | ||||
|             target_m68k_Mac: | ||||
|               bsssegment^.concat(new(pai_datablock,init_global('HEAP',4))); | ||||
| @ -187,16 +196,15 @@ unit pmodules; | ||||
|          else | ||||
|            bsssegment^.concat(new(pai_datablock,init_global('HEAP',heapsize))); | ||||
|          end; | ||||
| {$ifdef i386} | ||||
|          datasegment^.concat(new(pai_symbol,initname_global('HEAPSIZE',4))); | ||||
|          datasegment^.concat(new(pai_const,init_32bit(heapsize))); | ||||
| {$endif i386} | ||||
| {$ifdef m68k} | ||||
|          if target_info.target<>target_m68k_PalmOS then | ||||
|            begin | ||||
|               datasegment^.concat(new(pai_symbol,init_global('HEAP_SIZE'))); | ||||
|               datasegment^.concat(new(pai_const,init_32bit(heapsize))); | ||||
|            end; | ||||
| {$else m68k} | ||||
|          datasegment^.concat(new(pai_symbol,initname_global('HEAPSIZE',4))); | ||||
|          datasegment^.concat(new(pai_const,init_32bit(heapsize))); | ||||
| {$endif m68k} | ||||
|       end; | ||||
| 
 | ||||
| @ -204,6 +212,10 @@ unit pmodules; | ||||
|     procedure inserttargetspecific; | ||||
|       begin | ||||
|         case target_info.target of | ||||
| {$ifdef alpha} | ||||
|           target_alpha_linux: | ||||
|             ; | ||||
| {$endif alpha} | ||||
| {$ifdef i386} | ||||
|           target_i386_GO32V2 : | ||||
|             begin | ||||
| @ -1352,7 +1364,10 @@ unit pmodules; | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.136  1999-08-02 17:17:10  florian | ||||
|   Revision 1.137  1999-08-03 17:09:38  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.136  1999/08/02 17:17:10  florian | ||||
|     * small changes for the new code generator | ||||
| 
 | ||||
|   Revision 1.135  1999/07/29 20:54:04  peter | ||||
|  | ||||
| @ -62,6 +62,10 @@ unit pstatmnt; | ||||
|        ,ra68kmot | ||||
|   {$endif NoRa68kMot} | ||||
| {$endif m68k} | ||||
| {$ifdef alpha} | ||||
|        ,cpubase,cpuasm | ||||
|        ,tgeni386 | ||||
| {$endif alpha} | ||||
|        ; | ||||
| 
 | ||||
| 
 | ||||
| @ -1284,7 +1288,10 @@ unit pstatmnt; | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.93  1999-08-02 21:28:59  florian | ||||
|   Revision 1.94  1999-08-03 17:09:39  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.93  1999/08/02 21:28:59  florian | ||||
|     * the main branch psub.pas is now used for | ||||
|       newcg compiler | ||||
| 
 | ||||
|  | ||||
| @ -76,7 +76,10 @@ uses | ||||
|   { parser specific stuff } | ||||
|   ,pbase,pdecl,pexpr,pstatmnt | ||||
| {$ifdef newcg} | ||||
|   ,tgcpu,convtree,cgobj | ||||
|   ,tgcpu,convtree,cgobj,tgeni386  { for the new code generator tgeni386 is only a dummy } | ||||
| {$ifndef i386} | ||||
|   ,cpubase | ||||
| {$endif i386} | ||||
| {$endif newcg} | ||||
|   ; | ||||
| 
 | ||||
| @ -1904,7 +1907,10 @@ end. | ||||
| 
 | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.7  1999-08-02 21:29:01  florian | ||||
|   Revision 1.8  1999-08-03 17:09:42  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.7  1999/08/02 21:29:01  florian | ||||
|     * the main branch psub.pas is now used for | ||||
|       newcg compiler | ||||
| 
 | ||||
|  | ||||
| @ -1613,6 +1613,9 @@ begin | ||||
|     {$endif atari} | ||||
|   {$endif amiga} | ||||
| {$endif m68k} | ||||
| {$ifdef alpha} | ||||
|   default_os(target_alpha_linux); | ||||
| {$endif i386} | ||||
| end; | ||||
| 
 | ||||
| 
 | ||||
| @ -1621,7 +1624,10 @@ begin | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.86  1999-08-03 15:52:00  michael | ||||
|   Revision 1.87  1999-08-03 17:09:43  florian | ||||
|     * the alpha compiler can be compiled now | ||||
| 
 | ||||
|   Revision 1.86  1999/08/03 15:52:00  michael | ||||
|   * changed shortname for linux alpha | ||||
| 
 | ||||
|   Revision 1.85  1999/08/03 13:50:19  michael | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 florian
						florian