summaryrefslogtreecommitdiff
path: root/compiler/avr/aoptcpu.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-12-04 19:53:20 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-12-04 19:53:20 +0000
commit79ef30f1836addc0e5004b96db199f42ca78f961 (patch)
tree6372b5b424f8746503a60d39d26c55ea040a4194 /compiler/avr/aoptcpu.pas
parentfcc3063b875cb97388869362c9f5ad98c2e2bc24 (diff)
downloadfpc-79ef30f1836addc0e5004b96db199f42ca78f961.tar.gz
+ volatile() expression that marks an expression as volatile
* disable matching volatile references in the assembler optimisers, so they can't be removed (more conservative than needed, but better than removing too many) o the CSE optimiser will ignore them by default, because they're an unknown inline node for it * also removed no longer used fpc_in_move_x and fpc_in_fillchar_x inline node identifiers from rtl/inc/innr.inc, and placed fpc_in_unaligned_x at the right place git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@40465 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/avr/aoptcpu.pas')
-rw-r--r--compiler/avr/aoptcpu.pas4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/avr/aoptcpu.pas b/compiler/avr/aoptcpu.pas
index 3a182be179..e938b26e55 100644
--- a/compiler/avr/aoptcpu.pas
+++ b/compiler/avr/aoptcpu.pas
@@ -75,7 +75,9 @@ Implementation
(r1.index = r2.index) and (r1.scalefactor = r2.scalefactor) and
(r1.symbol=r2.symbol) and (r1.refaddr = r2.refaddr) and
(r1.relsymbol = r2.relsymbol) and
- (r1.addressmode = r2.addressmode);
+ (r1.addressmode = r2.addressmode) and
+ (r1.volatility=[]) and
+ (r2.volatility=[]);
end;