On Nov 30, 2021, at 10:07:51, Gary Weinhold wrote: > > Actually the 24-bit architecture wasn't the legacy problem as much as > not restricting the leading byte of a fullword (whether in memory or > registers) that the hardware would interpret as an address. That led to > the use of the high-order bit to denote a 31-bit address, which led to > the missing 2G in the 64-bit architecture. > That's only a software constraint. Linux is pure 64-bit and uses that 2GiB with no concerns.
Using the rightmost bit introduces another ambiguity. ENTRY usually identifies a code address, which must be even, so that bit is available to indicare AMODE 64. However, ENTRY might identify a data address, which might be even or odd. However, if the CSECT is marked AMODE 64, Binder will set that bit, regardless. The programmer must be mindful not to define an ENTRY at an odd data address. -- gil