From 1bbbb8e6ca0515ecf9abccb65a0dcb5f835d4b24 Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 7 Apr 1999 16:21:10 +0000 Subject: [PATCH] + no assembler if systemdebug defined --- rtl/i386/i386.inc | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/rtl/i386/i386.inc b/rtl/i386/i386.inc index 7abc7716d6..da1b75b4f9 100644 --- a/rtl/i386/i386.inc +++ b/rtl/i386/i386.inc @@ -299,10 +299,20 @@ end; { 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']; +{$endif not SYSTEMDEBUG} asm pushl %edi +{$ifdef SYSTEMDEBUG} + movl obj,%edi +{$else not SYSTEMDEBUG} movl 8(%esp),%edi +{$endif not SYSTEMDEBUG} pushl %eax { Here we must check if the VMT pointer is nil before } { accessing it... } @@ -318,8 +328,13 @@ asm popl %eax popl %edi { the adress is pushed : it needs to be removed from stack !! PM } +{$ifdef SYSTEMDEBUG} +end;{ of asm } +end; +{$else SYSTEMDEBUG} ret $4 end; +{$endif not SYSTEMDEBUG} {$ifdef FPC_TESTOBJEXT} { checks for a correct vmt pointer } @@ -701,7 +716,13 @@ end; 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']; +{$endif not SYSTEMDEBUG} { called with: %ecx - value @@ -717,6 +738,9 @@ asm call HandleError .Lbc_ok: end; +{$ifdef SYSTEMDEBUG} +end; +{$endif def SYSTEMDEBUG} {**************************************************************************** @@ -745,7 +769,10 @@ end; { $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 * removed all direct assembler modes