2
0
Эх сурвалжийг харах

+ added more patches from Mazen for SPARC port

carl 23 жил өмнө
parent
commit
f3e1648aa9

+ 4 - 8
compiler/cginfo.pas

@@ -90,13 +90,6 @@ interface
        OS_FLOAT = OS_F??;
        OS_FLOAT = OS_F??;
        OS_VECTOR = OS_NO; { the normal registers can also be used as vectors }
        OS_VECTOR = OS_NO; { the normal registers can also be used as vectors }
 {$endif ia64}
 {$endif ia64}
-{$ifdef SPARC}
-       OS_ADDR=OS_32;
-       OS_INT=OS_32;
-       OS_FLOAT=OS_F64;
-       {$WARNING "OS_VECTOR" was set to "OS_M64" but not verified!}  
-       OS_VECTOR=OS_M64;
-{$endif SPARC}
 
 
     const
     const
        tcgsize2size : Array[tcgsize] of integer =
        tcgsize2size : Array[tcgsize] of integer =
@@ -121,7 +114,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.5  2002-04-21 19:46:52  carl
+  Revision 1.6  2002-05-06 19:48:26  carl
+  + added more patches from Mazen for SPARC port
+
+  Revision 1.5  2002/04/21 19:46:52  carl
   + added patch for SPARC from Mazen (to move to cpuinfo)
   + added patch for SPARC from Mazen (to move to cpuinfo)
 
 
   Revision 1.4  2002/04/21 15:26:15  carl
   Revision 1.4  2002/04/21 15:26:15  carl

+ 12 - 2
compiler/gdb.pas

@@ -145,7 +145,14 @@ Const
           -1,-1,-1,-1,-1,-1,-1,-1
           -1,-1,-1,-1,-1,-1,-1,-1
         );
         );
 {$endif}
 {$endif}
-
+{$IFDEF SPARC}
+        GDB_SPARC_index:ARRAY[tregister]OF ShortInt=(0,0,0,0,0,0,0,0,0,0,0,0,0,
+          0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+          0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+          0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+          0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+          0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
+{$ENDIF SPARC}
   implementation
   implementation
 
 
 { to use N_EXCL we have to count the character in the stabs for
 { to use N_EXCL we have to count the character in the stabs for
@@ -297,7 +304,10 @@ end.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.9  2001-12-02 17:20:58  peter
+  Revision 1.10  2002-05-06 19:49:26  carl
+  + added more patches from Mazen for SPARC port
+
+  Revision 1.9  2001/12/02 17:20:58  peter
     * merged register fixes
     * merged register fixes
 
 
   Revision 1.8  2001/10/12 16:05:36  peter
   Revision 1.8  2001/10/12 16:05:36  peter

+ 11 - 4
compiler/systems.pas

@@ -112,7 +112,8 @@ interface
             ,as_m68k_as,as_m68k_gas,as_m68k_mit,as_m68k_mot,
             ,as_m68k_as,as_m68k_gas,as_m68k_mit,as_m68k_mot,
               as_m68k_mpw,as_m68k_palm
               as_m68k_mpw,as_m68k_palm
             ,as_alpha_as
             ,as_alpha_as
-            ,as_powerpc_as,as_powerpc_mpw
+            ,as_powerpc_as,as_powerpc_mpw,
+            as_SPARC_as,as_SPARC_elf32
        );
        );
 
 
        tld = (ld_none,
        tld = (ld_none,
@@ -122,7 +123,8 @@ interface
             ld_m68k_Amiga,ld_m68k_Atari,ld_m68k_Mac,
             ld_m68k_Amiga,ld_m68k_Atari,ld_m68k_Mac,
               ld_m68k_linux,ld_m68k_PalmOS,ld_m68k_freebsd,
               ld_m68k_linux,ld_m68k_PalmOS,ld_m68k_freebsd,
             ld_alpha_linux,
             ld_alpha_linux,
-            ld_powerpc_linux,ld_powerpc_macos,ld_i386_Wdosx
+            ld_powerpc_linux,ld_powerpc_macos,ld_i386_Wdosx,
+            ld_SPARC_SunOs,ld_SPARC_linux
        );
        );
 
 
        tar = (ar_none
        tar = (ar_none
@@ -641,7 +643,6 @@ begin
     {$endif atari}
     {$endif atari}
   {$endif amiga}
   {$endif amiga}
 {$endif cpu68}
 {$endif cpu68}
-
 { Now default target, this is dependent on the i386 or m68k define,
 { Now default target, this is dependent on the i386 or m68k define,
   when the define is the same as the current cpu then we use the source
   when the define is the same as the current cpu then we use the source
   os, else we pick a default }
   os, else we pick a default }
@@ -673,6 +674,9 @@ begin
     default_target(target_powerpc_linux);
     default_target(target_powerpc_linux);
   {$endif cpuppc}
   {$endif cpuppc}
 {$endif powerpc}
 {$endif powerpc}
+{$IFDEF SPARC}
+  default_target(target_SPARC_linux);
+{$ENDIF SPARC}
 end;
 end;
 
 
 
 
@@ -682,7 +686,10 @@ finalization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.41  2002-04-24 16:08:30  carl
+  Revision 1.42  2002-05-06 19:52:04  carl
+  + added more patches from Mazen for SPARC port
+
+  Revision 1.41  2002/04/24 16:08:30  carl
 
 
   * fix compilation problem
   * fix compilation problem
 
 

+ 76 - 2
compiler/targets/t_linux.pas

@@ -699,7 +699,72 @@ end;
             use_function_relative_addresses : true
             use_function_relative_addresses : true
           );
           );
 {$endif alpha}
 {$endif alpha}
-
+{$IFDEF SPARC}
+  CONST
+       target_SPARC_linux_info : ttargetinfo =
+          (
+            target       : target_SPARC_Linux;
+            name         : 'Linux for SPARC';
+            shortname    : 'Linux';
+            flags        : [];
+            cpu          : cpu_SPARC;
+            unit_env     : 'LINUXUNITS';
+            extradefines : 'UNIX';
+            sourceext    : '.pp';
+            pasext       : '.pas';
+            exeext       : '';
+            defext       : '.def';
+            scriptext    : '.sh';
+            smartext     : '.sl';
+            unitext      : '.ppu';
+            unitlibext   : '.ppl';
+            asmext       : '.s';
+            objext       : '.o';
+            resext       : '.res';
+            resobjext    : '.or';
+            sharedlibext : '.so';
+            staticlibext : '.a';
+            staticlibprefix : 'libp';
+            sharedlibprefix : 'lib';
+            sharedClibext : '.so';
+            staticClibext : '.a';
+            staticClibprefix : 'lib';
+            sharedClibprefix : 'lib';
+            Cprefix      : '';
+            newline      : #10;
+            dirsep       : '/';
+            files_case_relevent : true;
+            assem        : as_SPARC_elf32;
+            assemextern  : as_SPARC_as;
+            link         : ld_SPARC_linux;
+            linkextern   : ld_SPARC_linux;
+            ar           : ar_gnu_ar;
+            res          : res_none;
+            script       : script_unix;
+            endian       : endian_little;
+            alignment    :
+              (
+                procalign       : 4;
+                loopalign       : 4;
+                jumpalign       : 0;
+                constalignmin   : 0;
+                constalignmax   : 4;
+                varalignmin     : 0;
+                varalignmax     : 4;
+                localalignmin   : 0;
+                localalignmax   : 4;
+                paraalign       : 4;
+                recordalignmin  : 0;
+                recordalignmax  : 2;
+                maxCrecordalign : 4
+              );
+            first_parm_offset : 8;
+            heapsize     : 256*1024;
+            stacksize    : 262144;
+            DllScanSupported:false;
+            use_function_relative_addresses : true
+          );
+{$ENDIF SPARC}
 
 
 initialization
 initialization
 {$ifdef i386}
 {$ifdef i386}
@@ -726,10 +791,19 @@ initialization
   RegisterExport(target_alpha_linux,texportliblinux);
   RegisterExport(target_alpha_linux,texportliblinux);
   RegisterTarget(target_alpha_linux_info);
   RegisterTarget(target_alpha_linux_info);
 {$endif alpha}
 {$endif alpha}
+{$IFDEF SPARC}
+  RegisterLinker(ld_SPARC_linux,TLinkerLinux);
+  RegisterImport(target_SPARC_linux,timportliblinux);
+  RegisterExport(target_SPARC_linux,texportliblinux);
+  RegisterTarget(target_SPARC_linux_info);
+{$ENDIF SPARC}
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.21  2002-04-22 18:19:22  carl
+  Revision 1.22  2002-05-06 19:46:36  carl
+  + added more patches from Mazen for SPARC port
+
+  Revision 1.21  2002/04/22 18:19:22  carl
   - remove use_bound_instruction field
   - remove use_bound_instruction field
 
 
   Revision 1.20  2002/04/20 21:43:18  carl
   Revision 1.20  2002/04/20 21:43:18  carl