|
@@ -716,6 +716,13 @@ end ['EAX'];
|
|
|
move.l (a6),d0
|
|
|
end ['D0'];
|
|
|
{$endif}
|
|
|
+{$ifdef sparc}
|
|
|
+{$define FPC_PreviousFramePointer_Implemented}
|
|
|
+ { we have first our own frame }
|
|
|
+ ld [%fp],%i0
|
|
|
+ ld [%io],%i0
|
|
|
+end;
|
|
|
+{$endif}
|
|
|
{$ifdef powerpc}
|
|
|
{$define FPC_PreviousFramePointer_Implemented}
|
|
|
{$warning FIX ME !!!! }
|
|
@@ -732,6 +739,7 @@ end;
|
|
|
function CallPointerConstructor(Ctor: pointer; Obj: pointer; VMT: pointer; Param1: pointer): pointer;
|
|
|
{$undef FPC_CallPointerConstructor_Implemented}
|
|
|
begin
|
|
|
+{$ifdef VER1_0}
|
|
|
asm
|
|
|
{$ifdef i386}
|
|
|
{$define FPC_CallPointerConstructor_Implemented}
|
|
@@ -742,6 +750,10 @@ begin
|
|
|
move.l Obj, a5
|
|
|
{$endif}
|
|
|
end;
|
|
|
+{$else}
|
|
|
+{ 1.1 does not esi to be loaded }
|
|
|
+{$define FPC_CallPointerConstructor_Implemented}
|
|
|
+{$endif}
|
|
|
CallPointerConstructor := PointerConstructor(Ctor)(VMT, Obj, Param1)
|
|
|
end;
|
|
|
{$ifdef powerpc}
|
|
@@ -757,6 +769,7 @@ end;
|
|
|
function CallPointerMethod(Method: pointer; Obj: pointer; Param1: pointer): pointer;
|
|
|
{$undef FPC_CallPointerMethod_Implemented}
|
|
|
begin
|
|
|
+{$ifdef VER1_0}
|
|
|
asm
|
|
|
{$ifdef i386}
|
|
|
{$define FPC_CallPointerMethod_Implemented}
|
|
@@ -772,6 +785,10 @@ begin
|
|
|
so self should be in a register anyways }
|
|
|
{$endif}
|
|
|
end;
|
|
|
+{$else}
|
|
|
+{ 1.1 does not esi to be loaded }
|
|
|
+{$define FPC_CallPointerMethod_Implemented}
|
|
|
+{$endif}
|
|
|
CallPointerMethod := PointerMethod(Method)(Obj, Param1)
|
|
|
end;
|
|
|
{$ifndef FPC_CallPointerMethod_Implemented}
|
|
@@ -2910,7 +2927,10 @@ END;
|
|
|
END.
|
|
|
{
|
|
|
$Log$
|
|
|
- Revision 1.19 2003-06-05 14:45:56 peter
|
|
|
+ Revision 1.20 2003-07-08 21:21:33 peter
|
|
|
+ * 1.1 does not need to load esi
|
|
|
+
|
|
|
+ Revision 1.19 2003/06/05 14:45:56 peter
|
|
|
* use Windows THandle
|
|
|
|
|
|
Revision 1.18 2003/01/05 16:27:05 hajny
|