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~