[Info-vax] VAX VMS going forward
Arne Vajhøj
arne at vajhoej.dk
Mon Jul 27 14:47:20 EDT 2020
On 7/27/2020 2:41 PM, John Reagan wrote:
> On Monday, July 27, 2020 at 1:43:51 PM UTC-4, Arne Vajhøj wrote:
>> It is not a 32 mode and a 64 bit mode.
>>
>> The CPU always use 64 bit addresses.
>>
>> A program is not running in any mode.
>>
>> It is API's that can use either 64 bit addresses or 32 bit
>> "compressed" addresses (by only passing the lower part and assuming
>> high bits are all 0).
>
> 32-bit addresses are SIGN extended to 64-bits. The Alpha LDL
> instruction sign-extends for this reason. S0 addresses 80000000
> become FFFFFFFF.80000000. Alpha always uses 64-bit addresses.
>
> Itanium also uses 64-bit addresses exclusively. Its 'ld4'
> instruction zero-extends so you'll see the compiler inserting 'sxt4'
> instructions to explicitly sign-extend a longword after a load to
> mimic the Alpha behavior.
>
> x86 zero-extends as well with a 'movl', but has a richer instruction
> set so you'll see 'movslq' without the need for an extra sign-extend
> instruction. x86 in 64-bit mode only has 64-bit addresses. Many of
> the old school memory descriptor flags are simply ignored.
Ooops.
Yes.
32 bit Px addresses get high bits 0 while 32 bit Sx addresses
get high bits 1.
Arne
More information about the Info-vax
mailing list