Browse Source

* fixing run time errors related to unimplemented abstract methods in CG
+ giving empty emplementations for some RTL functions

mazen 22 years ago
parent
commit
92f035d47f
3 changed files with 60 additions and 4 deletions
  1. 10 1
      compiler/sparc/cgcpu.pas
  2. 13 1
      rtl/inc/system.inc
  3. 37 2
      rtl/sparc/sparc.inc

+ 10 - 1
compiler/sparc/cgcpu.pas

@@ -80,6 +80,7 @@ specific processor ABI. It is overriden for each CPU target.
     procedure g_stackframe_entry(list:TAasmOutput;localsize:LongInt);override;
     procedure g_restore_all_registers(list:TAasmOutput;selfused,accused,acchiused:boolean);override;
     procedure g_restore_frame_pointer(list:TAasmOutput);override;
+    procedure g_restore_standard_registers(list:taasmoutput;usedinproc:tregisterset);override;
     procedure g_return_from_proc(list:TAasmOutput;parasize:aword);override;
     procedure g_save_all_registers(list : taasmoutput);override;
     procedure g_save_standard_registers(list : taasmoutput; usedinproc : tregisterset);override;
@@ -964,6 +965,10 @@ procedure TCgSparc.g_restore_frame_pointer(list:TAasmOutput);
 {This function intontionally does nothing as frame pointer is restored in the
 delay slot of the return instrucion done in g_return_from_proc}
   end;
+procedure TCgSparc.g_restore_standard_registers(list:taasmoutput;usedinproc:tregisterset);
+  begin
+    {$WARNING FIX ME TCgSparc.g_restore_standard_registers}
+  end;
 procedure TCgSparc.g_return_from_proc(list:TAasmOutput;parasize:aword);
 
 var r,r2:Tregister;
@@ -1410,7 +1415,11 @@ BEGIN
 END.
 {
   $Log$
-  Revision 1.36  2003-01-22 22:30:03  mazen
+  Revision 1.37  2003-02-05 21:48:34  mazen
+  * fixing run time errors related to unimplemented abstract methods in CG
+  + giving empty emplementations for some RTL functions
+
+  Revision 1.36  2003/01/22 22:30:03  mazen
   - internal errors rmoved from a_loar_reg_reg when reg sizes differs from 32
 
   Revision 1.35  2003/01/20 22:21:36  mazen

+ 13 - 1
rtl/inc/system.inc

@@ -137,6 +137,14 @@ Procedure Rewrite(var f : TypedFile); [INTERNPROC: In_Rewrite_TypedFile];
   {$define SYSPROCDEFINED}
 {$endif iA64}
 
+{$ifdef SPARC}
+  {$ifdef SYSPROCDEFINED}
+    {$Error Can't determine processor type !}
+  {$endif}
+  {$define ENDIAN_BIG}
+  {$i sparc.inc}  { Case dependent, don't change }
+  {$define SYSPROCDEFINED}
+{$endif SPARC}
 
 procedure fillchar(var x;count : longint;value : boolean);{$ifdef SYSTEMINLINE}inline;{$endif}
 begin
@@ -757,7 +765,11 @@ end;
 
 {
   $Log$
-  Revision 1.38  2002-12-07 14:36:33  carl
+  Revision 1.39  2003-02-05 21:48:34  mazen
+  * fixing run time errors related to unimplemented abstract methods in CG
+  + giving empty emplementations for some RTL functions
+
+  Revision 1.38  2002/12/07 14:36:33  carl
     - avoid warnings (add typecast)
 
   Revision 1.37  2002/11/18 18:33:51  peter

+ 37 - 2
rtl/sparc/sparc.inc

@@ -1,5 +1,40 @@
+{$define FPC_SYSTEM_HAS_GET_FRAME}
+function get_frame:longint;{assembler;}
+begin{asm}
+    {$warning FIX ME!}
+    //    !!!!!!! depends on ABI !!!!!!!!
+end;
+{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
+function get_caller_addr(framebp:longint):longint;{assembler;}
+begin{asm}
+   {$warning FIX ME!}
+    //     !!!!!!! depends on ABI !!!!!!!!
+end;
+{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
+function get_caller_frame(framebp:longint):longint;{assembler;}
+begin{asm}
+    {$warning FIX ME!}
+   //     !!!!!!! depends on ABI !!!!!!!!
+end;
+{$define FPC_SYSTEM_HAS_SPTR}
+function Sptr:Longint;{assembler;}
+begin{asm}
+   {$warning FIX ME!}
+end;
+{$define FPC_SYSTEM_HAS_FPC_HELP_FAIL_CLASS}
+function fpc_help_fail_class(_vmt:pointer;_self:pointer):pointer;{assembler;}[public,alias:'FPC_HELP_FAIL_CLASS']; {$ifdef hascompilerproc} compilerproc; {$endif}
+{ a non zero class must allways be disposed
+  VMT is allways at pos 0 }
+begin{asm}
+{$warning FIX ME!}
+// !!!!!!!!!!!
+end;
 {
   $Log$
-  Revision 1.1  2002-11-16 20:10:31  florian
+  Revision 1.2  2003-02-05 21:48:34  mazen
+  * fixing run time errors related to unimplemented abstract methods in CG
+  + giving empty emplementations for some RTL functions
+
+  Revision 1.1  2002/11/16 20:10:31  florian
     + sparc specific rtl skeleton added
-}
+}