[PATCH] Don't define ARCH_cris for BFD64
Hans-Peter Nilsson
hp@axis.com
Fri May 6 02:35:24 GMT 2022
> From: Alan Modra <amodra@gmail.com>
> Date: Fri, 6 May 2022 02:56:46 +0200
> As is often the case the truth is more complicated than it would
> appear on the surface.
While aiming for the bigger picture is a good thing, you're
here letting the perfect be the enemy of the good. A
reasonable step would be to get all targets want64=true, to
avoid this annoying host-32/64-bit difference.
> I think the cris support works fine with a
> 32-bit bfd. It's just that the cris testsuite has expressions
> that overflow 32 bits.
>
> gas/testsuite/gas/cris/shexpr-1.s has this expression:
>
> ((0x17<<23)+((0xfede4194/8192)<<4)+8)
>
> It evaluates to 0x0bff6f28 when calculating in 64 bits, but to
> 0x0b7f6f38 when calculating in 32 bits
But seeing it as "calculating in 32 bits" is just So Wrong!
I admit I worked around this missing tracking of
subexpression signeness and papering over the gas bug by
just making the problem go away for *this* port.
Now 20 years down the line, when 64-bit is the norm, IMHO
that's a preferred solution (while waiting for Someone to
rewrite the expression bits, but it also happens to get
host-size-uniform address output).
brgds, H-P
More information about the Binutils
mailing list