44 lines
1.4 KiB
Diff
44 lines
1.4 KiB
Diff
|
From 9080711bd1c0645c272e74c25724ad2969d64674 Mon Sep 17 00:00:00 2001
|
||
|
From: Qianli Zhao <zhaoqianli@xiaomi.com>
|
||
|
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.<any...>" 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 <zhaoqianli@xiaomi.com>
|
||
|
Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
|
||
|
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
|
||
|
---
|
||
|
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
|
||
|
|