On 08/30/2017 02:43 AM, Michael Clark wrote:
> POINTERS_EXTEND_UNSIGNED -1 (which is true) is defined on some targets. I
> assume they sign-extend but the meaning has been overloaded.
Just for your edification, this is for e.g. ia64's "addp4" instruction and it
is not a normal extension. A 2-bit segment tag of a 32-bit pointer is remapped
to a 3-bit segment tag of a 64-bit pointer and also zeros bits {60:32}.
If you care,
http://refspecs.linuxbase.org/IA64-softdevman-vol3
has a nice picture that better describes this.
r~