From 27f6376fd4b68dc4628e58a8593afadf21a36c0f Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Thu, 3 Jun 2010 18:43:42 +0000 Subject: [PATCH] * when determining whether a temporary paraloc can be in a LOC_REGISTER, look at paraloc^.size rather than cgpara.size, because e.g. a 32 bit record (-> cgpara.size=OS_32) may have to be passed via a LOC_MMREGISTER (-> paraloc^.size=OS_F32 or OS_M32) git-svn-id: trunk@15365 - --- compiler/paramgr.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/paramgr.pas b/compiler/paramgr.pas index d7e470f35d..d004529443 100644 --- a/compiler/paramgr.pas +++ b/compiler/paramgr.pas @@ -349,7 +349,7 @@ implementation on arm it reduces executable size of the compiler by 2.1 per cent (FK) } { Does it fit a register? } if (len<=sizeof(pint)) and - (cgpara.size in [OS_8,OS_16,OS_32,OS_64,OS_128,OS_S8,OS_S16,OS_S32,OS_S64,OS_S128]) then + (paraloc^.size in [OS_8,OS_16,OS_32,OS_64,OS_128,OS_S8,OS_S16,OS_S32,OS_S64,OS_S128]) then newparaloc^.loc:=LOC_REGISTER else newparaloc^.loc:=paraloc^.loc;