Browse Source

* more saveregisters added (merged)

peter 24 years ago
parent
commit
51e528796b
2 changed files with 19 additions and 11 deletions
  1. 11 6
      rtl/inc/generic.inc
  2. 8 5
      rtl/inc/genrtti.inc

+ 11 - 6
rtl/inc/generic.inc

@@ -328,6 +328,8 @@ end;
 { Generic code does not set the register used for self !
   So this needs to be done by the compiler after calling
   FPC_HELP_CONSTRUCTOR : generic allways means aa little less efficient (PM) }
+{ I don't think we really need to save any registers here      }
+{ since this is called at the start of the constructor (CEC)   }
 procedure int_help_constructor(var _self : pointer; vmt : pointer; vmt_pos : cardinal); [public,alias:'FPC_HELP_CONSTRUCTOR'];
    type
      ppointer = ^pointer;
@@ -349,7 +351,7 @@ end;
 
 {$ifndef FPC_SYSTEM_HAS_FPC_HELP_DESTRUCTOR}
 
-procedure int_help_destructor(var _self : pointer; vmt : pointer; vmt_pos : cardinal);[public,alias:'FPC_HELP_DESTRUCTOR'];
+procedure int_help_destructor(var _self : pointer; vmt : pointer; vmt_pos : cardinal);saveregisters;[public,alias:'FPC_HELP_DESTRUCTOR'];
    type
      ppointer = ^pointer;
      pvmt = ^tvmt;
@@ -377,7 +379,7 @@ end;
 
 {$ifndef FPC_SYSTEM_HAS_FPC_NEW_CLASS}
 {$error No pascal version of Int_new_class}
-(* procedure int_new_class;assembler;[public,alias:'FPC_NEW_CLASS'];
+(* procedure int_new_class;assembler;saveregisters;[public,alias:'FPC_NEW_CLASS'];
 asm
         { to be sure in the future, we save also edit }
         pushl   %edi
@@ -411,7 +413,7 @@ end; *)
 {$ifndef FPC_SYSTEM_HAS_FPC_DISPOSE_CLASS}
 
 {$error No pascal version of Int_dispose_class}
-(* procedure int_dispose_class;assembler;[public,alias:'FPC_DISPOSE_CLASS'];
+(* procedure int_dispose_class;assembler;saveregisters;[public,alias:'FPC_DISPOSE_CLASS'];
 asm
         { to be sure in the future, we save also edit }
         pushl   %edi
@@ -442,7 +444,7 @@ end; *)
 
 {$ifndef FPC_SYSTEM_HAS_FPC_CHECK_OBJECT}
 
-procedure int_check_object(vmt : pointer);[public,alias:'FPC_CHECK_OBJECT'];
+procedure int_check_object(vmt : pointer);saveregisters;[public,alias:'FPC_CHECK_OBJECT'];
    type
      pvmt = ^tvmt;
      tvmt = packed record
@@ -464,7 +466,7 @@ end;
 
 {$ifndef FPC_SYSTEM_HAS_FPC_CHECK_OBJECT_EXT}
 
-procedure int_check_object_ext(vmt, expvmt : pointer);[public,alias:'FPC_CHECK_OBJECT_EXT'];
+procedure int_check_object_ext(vmt, expvmt : pointer);saveregisters;[public,alias:'FPC_CHECK_OBJECT_EXT'];
    type
      pvmt = ^tvmt;
      tvmt = packed record
@@ -826,7 +828,10 @@ end;
 
 {
   $Log$
-  Revision 1.12  2001-05-18 22:59:59  peter
+  Revision 1.13  2001-05-28 20:43:17  peter
+    * more saveregisters added (merged)
+
+  Revision 1.12  2001/05/18 22:59:59  peter
     * merged fixes branch fixes
 
   Revision 1.11  2001/05/16 17:44:25  jonas

+ 8 - 5
rtl/inc/genrtti.inc

@@ -17,7 +17,7 @@
 
 
 {$ifndef FPC_SYSTEM_HAS_FPC_INITIALIZE}
-Procedure Initialize (Data,TypeInfo : pointer);[Public,Alias : 'FPC_INITIALIZE'];
+Procedure Initialize (Data,TypeInfo : pointer);saveregisters;[Public,Alias : 'FPC_INITIALIZE'];
 
 { this definition is sometimes (depending on switches)
   already defined or not so define it locally to avoid problems PM }
@@ -59,7 +59,7 @@ end;
 {$endif}
 
 {$ifndef FPC_SYSTEM_HAS_FPC_FINALIZE}
-Procedure Finalize (Data,TypeInfo: Pointer);[Public,Alias : 'FPC_FINALIZE'];
+Procedure Finalize (Data,TypeInfo: Pointer);saveregisters;[Public,Alias : 'FPC_FINALIZE'];
 
 { this definition is sometimes (depending on switches)
   already defined or not so define it locally to avoid problems PM }
@@ -101,7 +101,7 @@ end;
 {$endif}
 
 {$ifndef FPC_SYSTEM_HAS_FPC_ADDREF}
-Procedure Addref (Data,TypeInfo : Pointer); [Public,alias : 'FPC_ADDREF'];
+Procedure Addref (Data,TypeInfo : Pointer);saveregisters; [Public,alias : 'FPC_ADDREF'];
 
 { this definition is sometimes (depending on switches)
   already defined or not so define it locally to avoid problems PM }
@@ -143,7 +143,7 @@ end;
 {$endif}
 
 {$ifndef FPC_SYSTEM_HAS_FPC_DECREF}
-Procedure DecRef (Data, TypeInfo : Pointer);[Public,alias : 'FPC_DECREF'];
+Procedure DecRef (Data, TypeInfo : Pointer);saveregisters;[Public,alias : 'FPC_DECREF'];
 { this definition is sometimes (depending on switches)
   already defined or not so define it locally to avoid problems PM }
 Type
@@ -195,7 +195,10 @@ procedure FinalizeArray(data,typeinfo : pointer;count,size : longint); [Public,A
 
 {
  $Log$
- Revision 1.2  2001-04-23 18:25:44  peter
+ Revision 1.3  2001-05-28 20:43:17  peter
+   * more saveregisters added (merged)
+
+ Revision 1.2  2001/04/23 18:25:44  peter
    * m68k updates
 
 }