ソースを参照

Added more checks to allow compiler to build from scratch.

git-svn-id: branches/laksen/intrinsics@32390 -
Jeppe Johansen 10 年 前
コミット
1f6ea9d847
3 ファイル変更14 行追加9 行削除
  1. 1 0
      compiler/defutil.pas
  2. 2 0
      compiler/options.pas
  3. 11 9
      rtl/inc/systemh.inc

+ 1 - 0
compiler/defutil.pas

@@ -1081,6 +1081,7 @@ implementation
       begin
         result:=(p.typ=arraydef) and
                 not(is_special_array(p)) and
+                assigned(tarraydef(p).elementdef) and
                 (tarraydef(p).elementdef.typ in [floatdef,orddef]) {and
                 (tarraydef(p).elementdef.typ=floatdef) and
                 (tfloatdef(tarraydef(p).elementdef).floattype in [s32real,s64real])};

+ 2 - 0
compiler/options.pas

@@ -4001,6 +4001,8 @@ if (target_info.abi = abi_eabihf) then
       include (cdecl_pocalls, pocall_safecall);
       include (clearstack_pocalls, pocall_safecall)
     end;
+
+  def_system_macro('FPC_HAS_INTRINSICS');
 end;
 
 

+ 11 - 9
rtl/inc/systemh.inc

@@ -798,15 +798,17 @@ procedure ReadDependencyBarrier;
 procedure ReadWriteBarrier;
 procedure WriteBarrier;
 
-{$ifdef ARM}
-  {$i armprocs.inc}
-{$endif ARM}
-{$ifdef i386}
-  {$i x86procs.inc}
-{$endif i386}
-{$ifdef x86_64}
-  {$i x86procs.inc}
-{$endif x86_64}
+{$ifdef FPC_HAS_INTRINSICS}
+  {$ifdef ARM}
+    {$i armprocs.inc}
+  {$endif ARM}
+  {$ifdef i386}
+    {$i x86procs.inc}
+  {$endif i386}
+  {$ifdef x86_64}
+    {$i x86procs.inc}
+  {$endif x86_64}
+{$endif}
 
 
 {****************************************************************************