aboutsummaryrefslogtreecommitdiff
path: root/gdb/csky-tdep.h
diff options
context:
space:
mode:
authorJiangshuai Li <jiangshuai_li@linux.alibaba.com>2022-09-13 14:19:26 +0800
committerJiangshuai Li <jiangshuai_li@linux.alibaba.com>2022-09-13 14:19:26 +0800
commitd354e0c8e7d333d2ec1796f8ce4216e892a4c714 (patch)
treec2357f7c769fe7950f731f3660c56c2537fb2d76 /gdb/csky-tdep.h
parent02cd1b4e97120f71710c4246953bcb2d63cb4aea (diff)
downloadgdb-d354e0c8e7d333d2ec1796f8ce4216e892a4c714.zip
gdb-d354e0c8e7d333d2ec1796f8ce4216e892a4c714.tar.gz
gdb-d354e0c8e7d333d2ec1796f8ce4216e892a4c714.tar.bz2
gdb/csky add unwinder for long branch cases
There are two sequences of instructions for long branch: 1. jmpi [pc+4] //insn code: 0xeac00001 .long addr 2. lrw t1, [pc+8] //insn code: 0xea8d0002 jmp t1 //insn code: 0x7834 nop //insn code: 0x6c03 .long addr
Diffstat (limited to 'gdb/csky-tdep.h')
-rw-r--r--gdb/csky-tdep.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/csky-tdep.h b/gdb/csky-tdep.h
index f845b9a..dbdcd15 100644
--- a/gdb/csky-tdep.h
+++ b/gdb/csky-tdep.h
@@ -385,4 +385,9 @@ enum csky_regnum
/* Macro for kernel 4.x */
#define CSKY_MOVI_R7_139 0x008bea07
+/* Macro for check long branch. */
+#define CSKY_JMPI_PC_4 0x1eac0
+#define CSKY_LRW_T1_PC_8 0x2ea8d
+#define CSKY_JMP_T1_VS_NOP 0x6c037834
+
#endif