summaryrefslogtreecommitdiff
path: root/compiler/ncgopt.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-02-08 13:00:24 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-02-08 13:00:24 +0000
commit59c4e24824d8eeda4420de36ed33d3dbccd716db (patch)
treee3c083fe5018c9c5bef39fafcdc1aaf766d80d54 /compiler/ncgopt.pas
parent0e6130b6fa510ea1c4135d0d657d81e08a5854f8 (diff)
downloadfpc-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.pas2
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);