diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-02-08 13:00:24 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-02-08 13:00:24 +0000 |
commit | 59c4e24824d8eeda4420de36ed33d3dbccd716db (patch) | |
tree | e3c083fe5018c9c5bef39fafcdc1aaf766d80d54 /compiler/ncgopt.pas | |
parent | 0e6130b6fa510ea1c4135d0d657d81e08a5854f8 (diff) | |
download | fpc-59c4e24824d8eeda4420de36ed33d3dbccd716db.tar.gz |
* the compiler now explicitly keeps track of the minimally guaranteed
alignment for each memory reference (mantis #12137, and
test/packages/fcl-registry/tregistry1.pp on sparc). This also
enables better code generation for packed records in many cases.
o several changes were made to the compiler to minimise the chances
of accidentally forgetting to set the alignment of memory references
in the future:
- reference_reset*() now has an extra alignment parameter
- location_reset() can now only be used for non LOC_(C)REFERENCE,
use location_reset_ref() for those (split the tloc enum so the
compiler can catch errors using range checking)
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@12719 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 cb2b8d96fd..1393eaef9b 100644 --- a/compiler/ncgopt.pas +++ b/compiler/ncgopt.pas @@ -94,7 +94,7 @@ begin cg.g_copyshortstring(current_asmdata.CurrAsmList,left.location.reference,href,255); location_freetemp(current_asmdata.CurrAsmList,left.location); { return temp reference } - location_reset(left.location,LOC_REFERENCE,def_cgsize(resultdef)); + location_reset_ref(left.location,LOC_REFERENCE,def_cgsize(resultdef),1); left.location.reference:=href; end; secondpass(right); |