Browse Source

* stack checking cannot be called before system unit is initialized
* MC68020 define

carl 23 years ago
parent
commit
8733061c78
3 changed files with 26 additions and 4 deletions
  1. 9 1
      compiler/defbase.pas
  2. 9 2
      compiler/ncgutil.pas
  3. 8 1
      compiler/options.pas

+ 9 - 1
compiler/defbase.pas

@@ -238,6 +238,10 @@ interface
       if acp is cp_value_equal_const call by value
       if acp is cp_value_equal_const call by value
       and call by const parameter are assumed as
       and call by const parameter are assumed as
       equal
       equal
+      allowdefaults indicates if default value parameters
+      are allowed (in this case, the search order will first
+      search for a routine with default parameters, before
+      searching for the same definition with no parameters)
     }
     }
     function equal_paras(paralist1,paralist2 : TLinkedList; acp : compare_type;allowdefaults:boolean) : boolean;
     function equal_paras(paralist1,paralist2 : TLinkedList; acp : compare_type;allowdefaults:boolean) : boolean;
 
 
@@ -1956,7 +1960,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.12  2002-09-16 14:11:12  peter
+  Revision 1.13  2002-09-22 14:02:34  carl
+    * stack checking cannot be called before system unit is initialized
+    * MC68020 define
+
+  Revision 1.12  2002/09/16 14:11:12  peter
     * add argument to equal_paras() to support default values or not
     * add argument to equal_paras() to support default values or not
 
 
   Revision 1.11  2002/09/15 17:54:46  peter
   Revision 1.11  2002/09/15 17:54:46  peter

+ 9 - 2
compiler/ncgutil.pas

@@ -1457,7 +1457,10 @@ implementation
 
 
               cg.g_stackframe_entry(stackalloclist,stackframe);
               cg.g_stackframe_entry(stackalloclist,stackframe);
 
 
-              if (cs_check_stack in aktlocalswitches) then
+              { never call stack checking before the standard system unit
+                has not been initialized
+              }  
+              if (cs_check_stack in aktlocalswitches) and (aktprocdef.proctypeoption<>potype_proginit) then
                 cg.g_stackcheck(stackalloclist,stackframe);
                 cg.g_stackcheck(stackalloclist,stackframe);
             end;
             end;
             list.insertlist(stackalloclist);
             list.insertlist(stackalloclist);
@@ -1831,7 +1834,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.50  2002-09-17 18:54:03  jonas
+  Revision 1.51  2002-09-22 14:02:35  carl
+    * stack checking cannot be called before system unit is initialized
+    * MC68020 define
+
+  Revision 1.50  2002/09/17 18:54:03  jonas
     * a_load_reg_reg() now has two size parameters: source and dest. This
     * a_load_reg_reg() now has two size parameters: source and dest. This
       allows some optimizations on architectures that don't encode the
       allows some optimizations on architectures that don't encode the
       register size in the register name.
       register size in the register name.

+ 8 - 1
compiler/options.pas

@@ -1550,6 +1550,9 @@ begin
    exclude(initmoduleswitches,cs_fp_emulation)
    exclude(initmoduleswitches,cs_fp_emulation)
   else
   else
    def_symbol('M68K_FPU_EMULATED');
    def_symbol('M68K_FPU_EMULATED');
+   
+  if initoptprocessor=MC68020 then
+    def_symbol('CPUM68020');
 {$endif m68k}
 {$endif m68k}
 
 
 { write logo if set }
 { write logo if set }
@@ -1677,7 +1680,11 @@ finalization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.82  2002-08-12 15:08:40  carl
+  Revision 1.83  2002-09-22 14:02:35  carl
+    * stack checking cannot be called before system unit is initialized
+    * MC68020 define
+
+  Revision 1.82  2002/08/12 15:08:40  carl
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + stab register indexes for powerpc (moved from gdb to cpubase)
     + tprocessor enumeration moved to cpuinfo
     + tprocessor enumeration moved to cpuinfo
     + linker in target_info is now a class
     + linker in target_info is now a class