Ver Fonte

* Remove ifdef 1_0
* Add expirimental 32-bit x86_64 target to systems

git-svn-id: trunk@729 -

daniel há 20 anos atrás
pai
commit
d57c048696

+ 1 - 16
compiler/cgobj.pas

@@ -1627,30 +1627,15 @@ implementation
     { type used is checked against todefs ranges. fromdef (p.resulttype.def) }
     { is the original type used at that location. When both defs are equal   }
     { the check is also insert (needed for succ,pref,inc,dec)                }
-{$ifndef ver1_0}
       const
         aintmax=high(aint);
-{$endif}
       var
         neglabel : tasmlabel;
         hreg : tregister;
         lto,hto,
         lfrom,hfrom : TConstExprInt;
         from_signed: boolean;
-{$ifdef ver1_0}
-        aintmax : aint;
-{$endif ver1_0}
-      begin
-{$ifdef ver1_0}
-  {$ifdef cpu64bit}
-        { this is required to prevent incorrect code }
-        aintmax:=$7fffffff;
-        aintmax:=int64(aintmax shl 16) or int64($ffff);
-        aintmax:=int64(aintmax shl 16) or int64($ffff);
-  {$else cpu64bit}
-        aintmax:=high(aint);
-  {$endif cpu64bit}
-{$endif}
+      begin
         { range checking on and range checkable value? }
         if not(cs_check_range in aktlocalswitches) or
            not(fromdef.deftype in [orddef,enumdef,arraydef]) then

+ 0 - 4
compiler/cresstr.pas

@@ -90,10 +90,6 @@ begin
   FreeMem(Value,Len);
 end;
 
-{$ifdef ver1_0}
-  {$R-}
-{$endif}
-
 procedure TResourceStringItem.CalcHash;
 Var
   g : Cardinal;

+ 0 - 7
compiler/cutils.pas

@@ -31,9 +31,6 @@ interface
 
 
     type
-{$ifdef ver1_0}
-       ptrint = longint;
-{$endif ver1_0}
        pstring = ^string;
        get_var_value_proc=function(const s:string):string of object;
        Tcharset=set of char;
@@ -970,10 +967,6 @@ uses
                                GetSpeedValue
 *****************************************************************************}
 
-{$ifdef ver1_0}
-  {$R-}
-{$endif}
-
     var
       Crc32Tbl : array[0..255] of cardinal;
 

+ 0 - 6
compiler/globtype.pas

@@ -45,12 +45,6 @@ than 255 characters. That's why using Ansi Strings}
        qword = int64;
 {$endif fpc}
 
-{$ifdef ver1_0}
-       { Bootstrapping }
-       PtrInt = DWord;
-       SizeInt = Longint;
-{$endif ver1_0}
-
        { Natural integer register type and size for the target machine }
 {$ifdef cpu64bit}
        AWord = qword;

+ 0 - 10
compiler/powerpc/nppccnv.pas

@@ -117,14 +117,9 @@ implementation
       type
         tdummyarray = packed array[0..7] of byte;
 
-{$ifdef VER1_0}
-      var
-        dummy1, dummy2: int64;
-{$else VER1_0}
       const
          dummy1: int64 = $4330000080000000;
          dummy2: int64 = $4330000000000000;
-{$endif VER1_0}
 
       var
         tempconst: trealconstnode;
@@ -133,11 +128,6 @@ implementation
         size: tcgsize;
         signed : boolean;
       begin
-{$ifdef VER1_0}
-        dummy1 := (int64(1) shl 31) or (int64($43300000) shl 32);
-        dummy2 := int64($43300000) shl 32;
-{$endif VER1_0}
-
         location_reset(location,LOC_FPUREGISTER,def_cgsize(resulttype.def));
 
         { the code here comes from the PowerPC Compiler Writer's Guide }

+ 3 - 2
compiler/systems.pas

@@ -112,11 +112,12 @@ interface
              system_powerpc_MorphOS,    { 33 }
              system_x86_64_freebsd,     { 34 }
              system_i386_netwlibc,      { 35 }
-	     system_powerpc_Amiga,      { 36 }
+             system_powerpc_Amiga,      { 36 }
              system_x86_64_win64,       { 37 }
              system_arm_wince,          { 38 }
              system_ia64_win64,         { 39 }
-             system_i386_wince          { 40 }
+             system_i386_wince,         { 40 }
+             system_x86_6432_linux      { 41 }
        );
 
        tasm = (as_none

+ 62 - 0
compiler/systems/i_linux.pas

@@ -89,6 +89,68 @@ unit i_linux;
             abi : abi_default
           );
 
+       system_x86_6432_linux_info : tsysteminfo =
+          (
+            system       : system_x86_6432_LINUX;
+            name         : 'Linux for x64_6432';
+            shortname    : 'Linux6432';
+            flags        : [tf_needs_symbol_size,tf_pic_uses_got{,tf_smartlink_sections}];
+            cpu          : cpu_x86_64;
+            unit_env     : 'LINUXUNITS';
+            extradefines : 'UNIX;HASUNIX';
+            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';
+            p_ext_support : false;
+            Cprefix      : '';
+            newline      : #10;
+            dirsep       : '/';
+            files_case_relevent : true;
+            assem        : as_i386_elf32;
+            assemextern  : as_gas;
+            link         : nil;
+            linkextern   : nil;
+            ar           : ar_gnu_ar;
+            res          : res_none;
+            script       : script_unix;
+            endian       : endian_little;
+            alignment    :
+              (
+                procalign       : 16;
+                loopalign       : 4;
+                jumpalign       : 0;
+                constalignmin   : 0;
+                constalignmax   : 8;
+                varalignmin     : 0;
+                varalignmax     : 8;
+                localalignmin   : 4;
+                localalignmax   : 4;
+                recordalignmin  : 0;
+                recordalignmax  : 4;
+                maxCrecordalign : 4
+              );
+            first_parm_offset : 8;
+            stacksize    : 262144;
+            DllScanSupported:false;
+            use_function_relative_addresses : true;
+            abi : abi_default
+          );
+
        system_m68k_linux_info : tsysteminfo =
           (
             system       : system_m68k_linux;

+ 5 - 0
compiler/systems/t_linux.pas

@@ -549,6 +549,11 @@ initialization
   RegisterImport(system_i386_linux,timportliblinux);
   RegisterExport(system_i386_linux,texportliblinux);
   RegisterTarget(system_i386_linux_info);
+
+  RegisterExternalLinker(system_x86_6432_linux_info,TLinkerLinux);
+  RegisterImport(system_x86_6432_linux,timportliblinux);
+  RegisterExport(system_x86_6432_linux,texportliblinux);
+  RegisterTarget(system_x86_6432_linux_info);
 {$endif i386}
 {$ifdef m68k}
   RegisterExternalLinker(system_m68k_linux_info,TLinkerLinux);

+ 1 - 50
compiler/verbose.pas

@@ -582,80 +582,31 @@ var
 
 
     procedure Message1(w:longint;const s1:string);
-{$ifdef ver1_0}
-      var
-        hs1 : string;
-{$endif ver1_0}
+
       begin
         MaybeLoadMessageFile;
-{$ifdef ver1_0}
-        { 1.0.x is broken, it uses concatcopy instead of shortstring
-          copy when passing array of shortstring. (PFV) }
-        hs1:=s1;
-        Msg2Comment(msg^.Get(w,[hs1]));
-{$else ver1_0}
         Msg2Comment(msg^.Get(w,[s1]));
-{$endif ver1_0}
       end;
 
 
     procedure Message2(w:longint;const s1,s2:string);
-{$ifdef ver1_0}
-      var
-        hs1,hs2 : string;
-{$endif ver1_0}
       begin
         MaybeLoadMessageFile;
-{$ifdef ver1_0}
-        { 1.0.x is broken, it uses concatcopy instead of shortstring
-          copy when passing array of shortstring. (PFV) }
-        hs1:=s1;
-        hs2:=s2;
-        Msg2Comment(msg^.Get(w,[hs1,hs2]));
-{$else ver1_0}
         Msg2Comment(msg^.Get(w,[s1,s2]));
-{$endif ver1_0}
       end;
 
 
     procedure Message3(w:longint;const s1,s2,s3:string);
-{$ifdef ver1_0}
-      var
-        hs1,hs2,hs3 : string;
-{$endif ver1_0}
       begin
         MaybeLoadMessageFile;
-{$ifdef ver1_0}
-        { 1.0.x is broken, it uses concatcopy instead of shortstring
-          copy when passing array of shortstring. (PFV) }
-        hs1:=s1;
-        hs2:=s2;
-        hs3:=s3;
-        Msg2Comment(msg^.Get(w,[hs1,hs2,hs3]));
-{$else ver1_0}
         Msg2Comment(msg^.Get(w,[s1,s2,s3]));
-{$endif ver1_0}
       end;
 
 
     procedure Message4(w:longint;const s1,s2,s3,s4:string);
-{$ifdef ver1_0}
-      var
-        hs1,hs2,hs3,hs4 : string;
-{$endif ver1_0}
       begin
         MaybeLoadMessageFile;
-{$ifdef ver1_0}
-        { 1.0.x is broken, it uses concatcopy instead of shortstring
-          copy when passing array of shortstring. (PFV) }
-        hs1:=s1;
-        hs2:=s2;
-        hs3:=s3;
-        hs4:=s4;
-        Msg2Comment(msg^.Get(w,[hs1,hs2,hs3,hs4]));
-{$else ver1_0}
         Msg2Comment(msg^.Get(w,[s1,s2,s3,s4]));
-{$endif ver1_0}
       end;