* fixed setting the paraloc shift value for data whose size is not a power

of 2: paraloc^.size was then OS_NO, so their shiftval was set to 0,
    while we also have to put those in the upper bytes of the paraloc

git-svn-id: trunk@32634 -
This commit is contained in:
Jonas Maebe 2015-12-10 22:45:59 +00:00
parent 1320d6bdba
commit e43f767cbf

View File

@ -502,9 +502,9 @@ unit cpupara;
registers is left-aligned }
if (target_info.system in systems_aix) and
(paradef.typ = recorddef) and
(tcgsize2size[paraloc^.size] <> sizeof(aint)) then
(paralen < sizeof(aint)) then
begin
paraloc^.shiftval := (sizeof(aint)-tcgsize2size[paraloc^.size])*(-8);
paraloc^.shiftval := (sizeof(aint)-paralen)*(-8);
paraloc^.size := OS_INT;
paraloc^.def := u32inttype;
end;