TagRef64 implementation considering aarch64 support
The current design of tagref64 is very x86_64-oriented. The address space is assumed to be 48 bit, and the highest bit (bit 47) is the sign bit which should be sign-extended to a 64-bit address. Therefore, user-space addresses are always lower than or equal to 0x7fffffffffff. However, this is not true for aarch64. On aarch64, user-space addresses may be up to 0xffffffffffff. For example, one execution of Mu has Mu (heap+stack+global) memory range 0xffff513b2b80-0xffff5157ab80.
The current tagref64 should be reimplemented to adapt to this difference.