summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-01-30 17:34:35 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2014-01-30 17:34:35 +0000
commit767a7eca6329182d2ca2677e53017411ede68bbb (patch)
tree2d7864521f5a85541f480c316d10d7eb583d589d /compiler
parentd5966ab0f90b7a40d76e8372b4143a105e5776e1 (diff)
downloadfpc-767a7eca6329182d2ca2677e53017411ede68bbb.tar.gz
* do not force the index location to a register for vec. nodes if the index is already in a register
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@26629 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler')
-rw-r--r--compiler/ncgmem.pas3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/ncgmem.pas b/compiler/ncgmem.pas
index f892ec2674..5c57614157 100644
--- a/compiler/ncgmem.pas
+++ b/compiler/ncgmem.pas
@@ -1053,7 +1053,8 @@ implementation
secondpass(right);
{ if mulsize = 1, we won't have to modify the index }
- hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,ptruinttype,true);
+ if not(right.location.loc in [LOC_CREGISTER,LOC_REGISTER]) or (right.location.size<>OS_ADDR) then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,ptruinttype,true);
if isjump then
begin