summaryrefslogtreecommitdiff
path: root/patches/gdb/7.10.1/110-xtensa-initialize-call_abi-in-xtensa_tdep.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gdb/7.10.1/110-xtensa-initialize-call_abi-in-xtensa_tdep.patch')
-rw-r--r--patches/gdb/7.10.1/110-xtensa-initialize-call_abi-in-xtensa_tdep.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/patches/gdb/7.10.1/110-xtensa-initialize-call_abi-in-xtensa_tdep.patch b/patches/gdb/7.10.1/110-xtensa-initialize-call_abi-in-xtensa_tdep.patch
new file mode 100644
index 0000000..1182a45
--- /dev/null
+++ b/patches/gdb/7.10.1/110-xtensa-initialize-call_abi-in-xtensa_tdep.patch
@@ -0,0 +1,39 @@
+From 7f8c0d8984bf5754807d3bb543cbc3ffc634e9e4 Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Sat, 30 May 2015 13:00:32 +0300
+Subject: [PATCH] xtensa: initialize call_abi in xtensa_tdep
+
+Use XSHAL_ABI value provided by xtensa-config.h to correctly initialize
+xtensa_tdep.call_abi
+This fixes calls to functions from GDB that otherwise fail with the
+following assertion in call0 configuration:
+
+ gdb/regcache.c:602: internal-error: regcache_raw_read: Assertion
+ `regnum >= 0 && regnum < regcache->descr->nr_raw_registers' failed.
+
+gdb/
+ * xtensa-tdep.h (XTENSA_GDBARCH_TDEP_INSTANTIATE): Initialize
+ call_abi using XSHAL_ABI macro.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+ gdb/xtensa-tdep.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/gdb/xtensa-tdep.h b/gdb/xtensa-tdep.h
+index adacaf8..3b6ea66 100644
+--- a/gdb/xtensa-tdep.h
++++ b/gdb/xtensa-tdep.h
+@@ -246,7 +246,8 @@ struct gdbarch_tdep
+ .spill_location = -1, \
+ .spill_size = (spillsz), \
+ .unused = 0, \
+- .call_abi = 0, \
++ .call_abi = (XSHAL_ABI == XTHAL_ABI_CALL0) ? \
++ CallAbiCall0Only : CallAbiDefault, \
+ .debug_interrupt_level = XCHAL_DEBUGLEVEL, \
+ .icache_line_bytes = XCHAL_ICACHE_LINESIZE, \
+ .dcache_line_bytes = XCHAL_DCACHE_LINESIZE, \
+--
+1.8.1.4
+