3 ms·
> preventing this sort of backward compatiblity issue is the reason why AMD64 will trap if the unused bits of the address space are not all 1 or 0. This helps
by bonzini 10y ago
> preventing this sort of backward compatiblity issue is the reason why AMD64 will trap if the unused bits of the address space are not all 1 or 0.
This helps debugging, but it doesn't help future extensions of AMD64. Programs exist that store data in bits 48..63 of a pointer on AMD64, and expect to retrieve a pointer by doing "x << 16 >> 16" on the integer data. Increasing the address space is a pain no matter what.
- qb45 10y agoTo make such program work it's sufficient to map it into the lowest quarter-petabye of address space. I can imagine a flag for that in the executable if it ever becomes a problem.