diff --git a/compiler/arm/narminl.pas b/compiler/arm/narminl.pas index c2bc4f3ebc..ca01572a8c 100644 --- a/compiler/arm/narminl.pas +++ b/compiler/arm/narminl.pas @@ -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: diff --git a/compiler/ppcgen/ngppcinl.pas b/compiler/ppcgen/ngppcinl.pas index 2792d05fab..eeee867f27 100644 --- a/compiler/ppcgen/ngppcinl.pas +++ b/compiler/ppcgen/ngppcinl.pas @@ -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: diff --git a/compiler/x86/nx86inl.pas b/compiler/x86/nx86inl.pas index ac85cc0477..7ebbc8e28c 100644 --- a/compiler/x86/nx86inl.pas +++ b/compiler/x86/nx86inl.pas @@ -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: