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)"},