From 319d92fe9a7c9a82c5218716b650cfed134984a7 Mon Sep 17 00:00:00 2001 From: yury Date: Sun, 26 Nov 2006 14:42:17 +0000 Subject: [PATCH] * Release register of by value parameter after making its local copy. It fixes bug when local stack location is referenced using big (>4k) PC relative offset by ARM CPU. In this case temp register is needed and wrong temp register is allocated. git-svn-id: trunk@5488 - --- compiler/ncgutil.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas index 5d64ec6419..b097063a4d 100644 --- a/compiler/ncgutil.pas +++ b/compiler/ncgutil.pas @@ -1618,7 +1618,6 @@ implementation sizeleft:=currpara.paraloc[calleeside].intsize; while assigned(paraloc) do begin - unget_para(paraloc^); if (paraloc^.size=OS_NO) then begin { Can only be a reference that contains the rest @@ -1636,6 +1635,7 @@ implementation inc(href.offset,TCGSize2Size[paraloc^.size]); dec(sizeleft,TCGSize2Size[paraloc^.size]); end; + unget_para(paraloc^); paraloc:=paraloc^.next; end; end;