[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