|
@@ -299,10 +299,20 @@ end;
|
|
|
|
|
|
|
|
|
|
{ checks for a correct vmt pointer }
|
|
{ checks for a correct vmt pointer }
|
|
|
|
+{$ifdef SYSTEMDEBUG}
|
|
|
|
+{ we want the stack for debugging !! PM }
|
|
|
|
+procedure int_check_object(obj : pointer);[public,alias:'FPC_CHECK_OBJECT'];
|
|
|
|
+begin
|
|
|
|
+{$else not SYSTEMDEBUG}
|
|
procedure int_check_object;assembler;[public,alias:'FPC_CHECK_OBJECT'];
|
|
procedure int_check_object;assembler;[public,alias:'FPC_CHECK_OBJECT'];
|
|
|
|
+{$endif not SYSTEMDEBUG}
|
|
asm
|
|
asm
|
|
pushl %edi
|
|
pushl %edi
|
|
|
|
+{$ifdef SYSTEMDEBUG}
|
|
|
|
+ movl obj,%edi
|
|
|
|
+{$else not SYSTEMDEBUG}
|
|
movl 8(%esp),%edi
|
|
movl 8(%esp),%edi
|
|
|
|
+{$endif not SYSTEMDEBUG}
|
|
pushl %eax
|
|
pushl %eax
|
|
{ Here we must check if the VMT pointer is nil before }
|
|
{ Here we must check if the VMT pointer is nil before }
|
|
{ accessing it... }
|
|
{ accessing it... }
|
|
@@ -318,8 +328,13 @@ asm
|
|
popl %eax
|
|
popl %eax
|
|
popl %edi
|
|
popl %edi
|
|
{ the adress is pushed : it needs to be removed from stack !! PM }
|
|
{ the adress is pushed : it needs to be removed from stack !! PM }
|
|
|
|
+{$ifdef SYSTEMDEBUG}
|
|
|
|
+end;{ of asm }
|
|
|
|
+end;
|
|
|
|
+{$else SYSTEMDEBUG}
|
|
ret $4
|
|
ret $4
|
|
end;
|
|
end;
|
|
|
|
+{$endif not SYSTEMDEBUG}
|
|
|
|
|
|
{$ifdef FPC_TESTOBJEXT}
|
|
{$ifdef FPC_TESTOBJEXT}
|
|
{ checks for a correct vmt pointer }
|
|
{ checks for a correct vmt pointer }
|
|
@@ -701,7 +716,13 @@ end;
|
|
Bounds Check
|
|
Bounds Check
|
|
****************************************************************************}
|
|
****************************************************************************}
|
|
|
|
|
|
|
|
+{$ifdef SYSTEMDEBUG}
|
|
|
|
+{ we want the stack for debugging !! PM }
|
|
|
|
+procedure int_boundcheck;[public,alias: 'FPC_BOUNDCHECK'];
|
|
|
|
+begin
|
|
|
|
+{$else not SYSTEMDEBUG}
|
|
procedure int_boundcheck;assembler;[public,alias: 'FPC_BOUNDCHECK'];
|
|
procedure int_boundcheck;assembler;[public,alias: 'FPC_BOUNDCHECK'];
|
|
|
|
+{$endif not SYSTEMDEBUG}
|
|
{
|
|
{
|
|
called with:
|
|
called with:
|
|
%ecx - value
|
|
%ecx - value
|
|
@@ -717,6 +738,9 @@ asm
|
|
call HandleError
|
|
call HandleError
|
|
.Lbc_ok:
|
|
.Lbc_ok:
|
|
end;
|
|
end;
|
|
|
|
+{$ifdef SYSTEMDEBUG}
|
|
|
|
+end;
|
|
|
|
+{$endif def SYSTEMDEBUG}
|
|
|
|
|
|
|
|
|
|
{****************************************************************************
|
|
{****************************************************************************
|
|
@@ -745,7 +769,10 @@ end;
|
|
|
|
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.41 1999-03-01 15:40:55 peter
|
|
|
|
|
|
+ Revision 1.42 1999-04-07 16:21:10 pierre
|
|
|
|
+ + no assembler if systemdebug defined
|
|
|
|
+
|
|
|
|
+ Revision 1.41 1999/03/01 15:40:55 peter
|
|
* use external names
|
|
* use external names
|
|
* removed all direct assembler modes
|
|
* removed all direct assembler modes
|
|
|
|
|