* 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 -
This commit is contained in:
Jonas Maebe 2010-06-03 18:43:42 +00:00
parent 82b65a1f93
commit 27f6376fd4

View File

@ -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;