mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-07-24 19:56:30 +02:00
* saveregisters no longer supported by compiler, for now save all registers in stackcheck
This commit is contained in:
parent
5ec6609d11
commit
ad45adbb6e
@ -202,7 +202,7 @@ end;
|
||||
|
||||
const StackErr : boolean = false;
|
||||
|
||||
procedure int_stackcheck(stack_size:Cardinal);[saveregisters,public,alias:'FPC_STACKCHECK'];
|
||||
procedure int_stackcheck(stack_size:Cardinal);[public,alias:'FPC_STACKCHECK'];
|
||||
{
|
||||
called when trying to get local stack if the compiler directive $S
|
||||
is set this function must preserve all registers
|
||||
@ -212,7 +212,14 @@ procedure int_stackcheck(stack_size:Cardinal);[saveregisters,public,alias:'FPC_S
|
||||
}
|
||||
begin
|
||||
if StackErr then exit; // avoid recursive calls
|
||||
if _stackavail > stack_size + 2048 THEN EXIT;
|
||||
asm
|
||||
pusha
|
||||
end;
|
||||
stackerr := ( _stackavail < stack_size + 2048);
|
||||
asm
|
||||
popa
|
||||
end;
|
||||
if not StackErr then exit;
|
||||
StackErr := true;
|
||||
HandleError (202);
|
||||
end;
|
||||
@ -967,7 +974,10 @@ Begin
|
||||
End.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.28 2004-10-25 15:38:59 peter
|
||||
Revision 1.29 2004-10-25 18:11:49 armin
|
||||
* saveregisters no longer supported by compiler, for now save all registers in stackcheck
|
||||
|
||||
Revision 1.28 2004/10/25 15:38:59 peter
|
||||
* compiler defined HEAP and HEAPSIZE removed
|
||||
|
||||
Revision 1.27 2004/09/26 19:25:49 armin
|
||||
|
@ -193,7 +193,7 @@ end;
|
||||
|
||||
const StackErr : boolean = false;
|
||||
|
||||
procedure int_stackcheck(stack_size:Cardinal);[saveregisters,public,alias:'FPC_STACKCHECK'];
|
||||
procedure int_stackcheck(stack_size:Cardinal);[public,alias:'FPC_STACKCHECK'];
|
||||
{
|
||||
called when trying to get local stack if the compiler directive $S
|
||||
is set this function must preserve all registers
|
||||
@ -203,7 +203,14 @@ procedure int_stackcheck(stack_size:Cardinal);[saveregisters,public,alias:'FPC_S
|
||||
}
|
||||
begin
|
||||
if StackErr then exit; // avoid recursive calls
|
||||
if stackavail > stack_size + 5120 then exit; // we really need that much, at least on nw6.5
|
||||
asm
|
||||
pusha
|
||||
end;
|
||||
stackerr := (stackavail < stack_size + 5120); // we really need that much, at least on nw6.5
|
||||
asm
|
||||
popa
|
||||
end;
|
||||
if not StackErr then exit;
|
||||
StackErr := true;
|
||||
HandleError (202);
|
||||
end;
|
||||
@ -1178,7 +1185,10 @@ Begin
|
||||
End.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.5 2004-10-25 15:38:59 peter
|
||||
Revision 1.6 2004-10-25 18:11:49 armin
|
||||
* saveregisters no longer supported by compiler, for now save all registers in stackcheck
|
||||
|
||||
Revision 1.5 2004/10/25 15:38:59 peter
|
||||
* compiler defined HEAP and HEAPSIZE removed
|
||||
|
||||
Revision 1.4 2004/09/26 19:23:34 armin
|
||||
|
Loading…
Reference in New Issue
Block a user