summaryrefslogtreecommitdiff
path: root/patches/gdb/7.10/110-xtensa-initialize-call_abi-in-xtensa_tdep.patch
blob: 1182a455f3d7af0d7f2b178b7814c630ad33d364 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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