diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2016-11-27 18:17:37 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2016-11-27 18:17:37 +0000 |
commit | c18f3da68f01c737b722ec5d19a052b4a74e9308 (patch) | |
tree | f79d285de82063856b11673f7f8e749ed425a696 /compiler/ncgopt.pas | |
parent | c24c856965f801d3d8e72361ffa1bc944127144d (diff) | |
download | fpc-c18f3da68f01c737b722ec5d19a052b4a74e9308.tar.gz |
+ added volatility information to all memory references
o separate information for reading and writing, because e.g. in a
try-block, only the writes to local variables and parameters are
volatile (they have to be committed immediately in case the next
instruction causes an exception)
o for now, only references to absolute memory addresses are marked
as volatile
o the volatily information is (should be) properly maintained throughout
all code generators for all archictures with this patch
o no optimizers or other compiler infrastructure uses the volatility
information yet
o this functionality is not (yet) exposed at the language level, it
is only for internal code generator use right now
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@34996 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ncgopt.pas')
-rw-r--r-- | compiler/ncgopt.pas | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/ncgopt.pas b/compiler/ncgopt.pas index 57572ccd7f..d067a75981 100644 --- a/compiler/ncgopt.pas +++ b/compiler/ncgopt.pas @@ -95,7 +95,7 @@ begin hlcg.g_copyshortstring(current_asmdata.CurrAsmList,left.location.reference,href,tstringdef(cshortstringtype)); location_freetemp(current_asmdata.CurrAsmList,left.location); { return temp reference } - location_reset_ref(left.location,LOC_REFERENCE,def_cgsize(resultdef),1); + location_reset_ref(left.location,LOC_REFERENCE,def_cgsize(resultdef),1,[]); left.location.reference:=href; end; secondpass(right); |