It's still happening today. When AMD64 was introduced, it ignored the upper 16 bits in the address. JIT compilers take advantage of that fact and use that space to store information. Now that we're bumping up against the 48-bit limit, special handling will be needed to ensure applications that assume the upper bits of the address are unused don't get allocated memory with the high bits set.