Checkpointer: consider bss section too for go32v2 (webtbs/tw3661 now works)

git-svn-id: trunk@10967 -
This commit is contained in:
giulio 2008-05-14 13:08:11 +00:00
parent 416e43903b
commit 50cd527d30

View File

@ -885,7 +885,7 @@ end;
var var
__stklen : longword;external name '__stklen'; __stklen : longword;external name '__stklen';
__stkbottom : longword;external name '__stkbottom'; __stkbottom : longword;external name '__stkbottom';
edata : longword; external name 'edata'; ebss : longword; external name 'end';
{$endif go32v2} {$endif go32v2}
{$ifdef linux} {$ifdef linux}
@ -929,7 +929,7 @@ var
loc_info: pheap_info; loc_info: pheap_info;
{$ifdef go32v2} {$ifdef go32v2}
get_ebp,stack_top : longword; get_ebp,stack_top : longword;
data_end : longword; bss_end : longword;
{$endif go32v2} {$endif go32v2}
{$ifdef morphos} {$ifdef morphos}
stack_top: longword; stack_top: longword;
@ -953,12 +953,12 @@ begin
runerror(216); runerror(216);
asm asm
movl %ebp,get_ebp movl %ebp,get_ebp
leal edata,%eax leal ebss,%eax
movl %eax,data_end movl %eax,bss_end
end; end;
stack_top:=__stkbottom+__stklen; stack_top:=__stkbottom+__stklen;
{ allow all between start of code and end of data } { allow all between start of code and end of bss }
if ptruint(p)<=data_end then if ptruint(p)<=bss_end then
goto _exit; goto _exit;
{ stack can be above heap !! } { stack can be above heap !! }