This patch unify the 39-bit and 42-bit mapping for aarch64 using only
one instrumentation algorithm (based on 39-bit mapping). This removes
compiler flag SANITIZER_AARCH64_VMA requirement for msan on aarch64.
The unifies mapping scheme now is:
{0x00000000000ULL, 0x04000000000ULL, MappingDesc::INVALID, "invalid"},
{0x04000000000ULL, 0x04100000000ULL, MappingDesc::SHADOW, "shadow-1"},
{0x04100000000ULL, 0x04300000000ULL, MappingDesc::SHADOW, "shadow-2"},
{0x04300000000ULL, 0x04400000000ULL, MappingDesc::ORIGIN, "origin-1"},
{0x04400000000ULL, 0x04600000000ULL, MappingDesc::ORIGIN, "origin-2"},
{0x04600000000ULL, 0x05500000000ULL, MappingDesc::INVALID, "invalid"},
{0x05500000000ULL, 0x05600000000ULL, MappingDesc::APP, "app-1 (39)"},
{0x05600000000ULL, 0x07000000000ULL, MappingDesc::INVALID, "invalid"},
{0x07000000000ULL, 0x08000000000ULL, MappingDesc::APP, "app-2 (39)"},
{0x08000000000ULL, 0x2AA00000000ULL, MappingDesc::INVALID, "invalid"},
// The segments below are only valid and mapped for 42-bit VMA kernels.
{0x2AA00000000ULL, 0x2AB00000000ULL, MappingDesc::APP, "app-3 (42)"},
{0x2AB00000000ULL, 0x2C300000000ULL, MappingDesc::INVALID, "invalid"},
{0x2C300000000ULL, 0x2C400000000ULL, MappingDesc::SHADOW, "shadow-3"},
{0x2C400000000ULL, 0x2C600000000ULL, MappingDesc::INVALID, "invalid"},
{0x2C600000000ULL, 0x2C700000000ULL, MappingDesc::ORIGIN, "origin-3"},
{0x2C700000000ULL, 0x3C100000000ULL, MappingDesc::INVALID, "invalid"},
{0x3C100000000ULL, 0x3C300000000ULL, MappingDesc::SHADOW, "shadow-4"},
{0x3C300000000ULL, 0x3C400000000ULL, MappingDesc::INVALID, "invalid"},
{0x3C400000000ULL, 0x3C600000000ULL, MappingDesc::ORIGIN, "origin-5"},
{0x3C600000000ULL, 0x3F000000000ULL, MappingDesc::INVALID, "invalid"},
{0x3F000000000ULL, 0x40000000000ULL, MappingDesc::APP, "app-4 (42)"},