This blog entry by Raymond Chen, "Why doesn’t Windows use the 64-bit virtual address space below 0x00000000`7ffe0000?"¹ is absolutely brilliant.

What I thought was a trivial design decision of some kind turns out to have deep roots in 32-bit Windows (the separation between user and kernel) and, this is where it becomes surreal, the DEC Alpha processor ​!

I quote Raymond Chen directly:

"On the Alpha AXP, most 32-bit constants can be generated in at most two instructions. But there’s a range of values that requires three instructions: 0x7fff8000 to 0x7fffffff. "

As the person who ran the first three DEC Alpha systems in the UK outside DEC "REO" (Reading Office) I have a bit of history with these processors and yet I had never ever heard of this.

Don't ignore the links embedded in the page because they are worth reading too.

(also, if you do not follow Raymond Chen's blog via RSS you should - his series on processors and the history of Windows design decisions is fabulous).

#Windows #MemoryAllocation #DECAlpha #WindowsOnAlpha
__
¹ https://devblogs.microsoft.com/oldnewthing/20221216-00/?p=107598

Why doesn't Windows use the 64-bit virtual address space below 0x00000000`7ffe0000?

It does use it, although it doesn't look like it.

The Old New Thing