I am not sure, but if my memory serves me right somewhere in the amd64 specification there was something specifically forbidding the use of the uppermost 16 bit to implement tagged pointers, and this is one of the reasons why tagged-pointer-based runtimes haven't been spawning up like mushrooms after the amd64 ISA was implemented.