Disable checkpointer call when handling left of prefetch node

git-svn-id: trunk@34559 -
This commit is contained in:
pierre 2016-09-24 07:34:10 +00:00
parent c36faacd57
commit fe4e2956c6
3 changed files with 18 additions and 0 deletions

View File

@ -380,10 +380,16 @@ implementation
var
ref : treference;
r : tregister;
checkpointer_used : boolean;
begin
if not(GenerateThumbCode) and (CPUARM_HAS_EDSP in cpu_capabilities[current_settings.cputype]) then
begin
{ do not call Checkpointer for left node }
checkpointer_used:=(cs_checkpointer in current_settings.localswitches);
exclude(current_settings.localswitches,cs_checkpointer);
secondpass(left);
if checkpointer_used then
include(current_settings.localswitches,cs_checkpointer);
case left.location.loc of
LOC_CREFERENCE,
LOC_REFERENCE:

View File

@ -205,8 +205,14 @@ implementation
procedure tgppcinlinenode.second_prefetch;
var
r: tregister;
checkpointer_used : boolean;
begin
{ do not call Checkpointer for left node }
checkpointer_used:=(cs_checkpointer in current_settings.localswitches);
exclude(current_settings.localswitches,cs_checkpointer);
secondpass(left);
if checkpointer_used then
include(current_settings.localswitches,cs_checkpointer);
case left.location.loc of
LOC_CREFERENCE,
LOC_REFERENCE:

View File

@ -591,12 +591,18 @@ implementation
var
ref : treference;
r : tregister;
checkpointer_used : boolean;
begin
{$if defined(i386) or defined(i8086)}
if current_settings.cputype>=cpu_Pentium3 then
{$endif i386 or i8086}
begin
{ do not call Checkpointer for left node }
checkpointer_used:=(cs_checkpointer in current_settings.localswitches);
exclude(current_settings.localswitches,cs_checkpointer);
secondpass(left);
if checkpointer_used then
include(current_settings.localswitches,cs_checkpointer);
case left.location.loc of
LOC_CREFERENCE,
LOC_REFERENCE: