mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-21 01:49:08 +02:00
Disable checkpointer call when handling left of prefetch node
git-svn-id: trunk@34559 -
This commit is contained in:
parent
c36faacd57
commit
fe4e2956c6
@ -380,10 +380,16 @@ implementation
|
|||||||
var
|
var
|
||||||
ref : treference;
|
ref : treference;
|
||||||
r : tregister;
|
r : tregister;
|
||||||
|
checkpointer_used : boolean;
|
||||||
begin
|
begin
|
||||||
if not(GenerateThumbCode) and (CPUARM_HAS_EDSP in cpu_capabilities[current_settings.cputype]) then
|
if not(GenerateThumbCode) and (CPUARM_HAS_EDSP in cpu_capabilities[current_settings.cputype]) then
|
||||||
begin
|
begin
|
||||||
|
{ do not call Checkpointer for left node }
|
||||||
|
checkpointer_used:=(cs_checkpointer in current_settings.localswitches);
|
||||||
|
exclude(current_settings.localswitches,cs_checkpointer);
|
||||||
secondpass(left);
|
secondpass(left);
|
||||||
|
if checkpointer_used then
|
||||||
|
include(current_settings.localswitches,cs_checkpointer);
|
||||||
case left.location.loc of
|
case left.location.loc of
|
||||||
LOC_CREFERENCE,
|
LOC_CREFERENCE,
|
||||||
LOC_REFERENCE:
|
LOC_REFERENCE:
|
||||||
|
@ -205,8 +205,14 @@ implementation
|
|||||||
procedure tgppcinlinenode.second_prefetch;
|
procedure tgppcinlinenode.second_prefetch;
|
||||||
var
|
var
|
||||||
r: tregister;
|
r: tregister;
|
||||||
|
checkpointer_used : boolean;
|
||||||
begin
|
begin
|
||||||
|
{ do not call Checkpointer for left node }
|
||||||
|
checkpointer_used:=(cs_checkpointer in current_settings.localswitches);
|
||||||
|
exclude(current_settings.localswitches,cs_checkpointer);
|
||||||
secondpass(left);
|
secondpass(left);
|
||||||
|
if checkpointer_used then
|
||||||
|
include(current_settings.localswitches,cs_checkpointer);
|
||||||
case left.location.loc of
|
case left.location.loc of
|
||||||
LOC_CREFERENCE,
|
LOC_CREFERENCE,
|
||||||
LOC_REFERENCE:
|
LOC_REFERENCE:
|
||||||
|
@ -591,12 +591,18 @@ implementation
|
|||||||
var
|
var
|
||||||
ref : treference;
|
ref : treference;
|
||||||
r : tregister;
|
r : tregister;
|
||||||
|
checkpointer_used : boolean;
|
||||||
begin
|
begin
|
||||||
{$if defined(i386) or defined(i8086)}
|
{$if defined(i386) or defined(i8086)}
|
||||||
if current_settings.cputype>=cpu_Pentium3 then
|
if current_settings.cputype>=cpu_Pentium3 then
|
||||||
{$endif i386 or i8086}
|
{$endif i386 or i8086}
|
||||||
begin
|
begin
|
||||||
|
{ do not call Checkpointer for left node }
|
||||||
|
checkpointer_used:=(cs_checkpointer in current_settings.localswitches);
|
||||||
|
exclude(current_settings.localswitches,cs_checkpointer);
|
||||||
secondpass(left);
|
secondpass(left);
|
||||||
|
if checkpointer_used then
|
||||||
|
include(current_settings.localswitches,cs_checkpointer);
|
||||||
case left.location.loc of
|
case left.location.loc of
|
||||||
LOC_CREFERENCE,
|
LOC_CREFERENCE,
|
||||||
LOC_REFERENCE:
|
LOC_REFERENCE:
|
||||||
|
Loading…
Reference in New Issue
Block a user