x64-64 pointer arithmetics between 47 and 48 bits - there is a 47-bit barrier?

By: Heikki Kultala (heikk.i.kultala.a.delete@this.gmail.com), September 1, 2020 3:43 am
Room: Moderated Discussions
Lets say I have a pointer which has value (2^47)-8.

The 17 upper bits of this pointer are zeroes. This is fine for the x86-64 specification. I can access memory through this.

Now, I increase this pointer by 8. It becomes 2^47. The uppermost bitbit 47) of the 48-bit virtual memory space is now zero.

This becomes an invalid pointer, because if the bit 47 of a pointer is 1, all the bits 48-63 also have to be one.

So, there is practically a 47-bit barrier in x86-64, no pointers may be updated past this with simple pointer arithmetics?

Practically addresses with high bits ones are stack, high bits 0 are other memory?

 Next Post in Thread >
TopicPosted ByDate
x64-64 pointer arithmetics between 47 and 48 bits - there is a 47-bit barrier?Heikki Kultala2020/09/01 03:43 AM
  x64-64 pointer arithmetics between 47 and 48 bits - there is a 47-bit barrier?Bigos2020/09/01 05:43 AM
  x64-64 pointer arithmetics between 47 and 48 bits - there is a 47-bit barrier?anon.12020/09/01 09:27 AM
  x64-64 pointer arithmetics between 47 and 48 bits - there is a 47-bit barrier?Travis Downs2020/09/01 03:14 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?