[fpc-devel] Bug in compiler after fixes applied: 2005/01/10 21:50:05 jonas

Jonas Maebe jonas at zeus.ugent.be
Mon Jan 17 15:45:49 CET 2005


On 17 jan 2005, at 15:18, Alexey Barkovoy wrote:

> {$ifndef cpu64bit}
> // Old code ---
> //                    if left.location.size in [OS_64,OS_S64] then
> // New code ---
> //                    { don't call the cg64 stuff for 8-byte sized 
> records etc }
> //                    if is_64bit(left.resulttype.def) then
>
>                    if left.location.size in [OS_64,OS_S64] then
>                      
> cg64.a_param64_loc(exprasmlist,left.location,tempcgpara)
>                    else
> {$endif cpu64bit}

It seems to me the bug is that such structures should be handled by the 
paramanager.copy_value_on_stack() stuff, also in ncgcal. Using 
a_param64_loc() is not good, because it swaps the two dwords of the 
value depending on whether the target processor is little or big 
endian. Dword-swapped records are no fun either ;)


Jonas





More information about the fpc-devel mailing list