From 9080711bd1c0645c272e74c25724ad2969d64674 Mon Sep 17 00:00:00 2001 From: Qianli Zhao Date: Thu, 26 Nov 2020 12:49:36 +0800 Subject: [PATCH 03/13] arm64: update mapping symbol filter in arm64_verify_symbol Update mapping symbol filter in arm64_verify_symbol() to support the long form of mapping symbols, e.g. "$x." described on [1]. Without the patch, the "dis" command cannot completely parse out the disassembly of a function that has mapping symbols in the long form and misses the tail part of the function. [1] Morello Supplement to ELF for the Arm 64-bit Architecture https://developer.arm.com/documentation/102072/ Signed-off-by: Qianli Zhao Signed-off-by: Kazuhito Hagio Signed-off-by: Lianbo Jiang --- arm64.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arm64.c b/arm64.c index fdf77bd5e0c1..37aed07edf1d 100644 --- a/arm64.c +++ b/arm64.c @@ -510,9 +510,11 @@ arm64_verify_symbol(const char *name, ulong value, char type) ((type == 'a') || (type == 'n') || (type == 'N') || (type == 'U'))) return FALSE; - if (STREQ(name, "$d") || STREQ(name, "$x")) + if (STREQ(name, "$d") || STRNEQ(name, "$d.") || + STREQ(name, "$x") || STRNEQ(name, "$x.") || + STREQ(name, "$c") || STRNEQ(name, "$c.")) return FALSE; - + if ((type == 'A') && STRNEQ(name, "__crc_")) return FALSE; -- 2.17.1