mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-02-21 17:26:41 +00:00
gdb: add xtensa-specific patches for 7.10
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
parent
9af5ff74ef
commit
6717dbfd3f
@ -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
|
||||
|
@ -0,0 +1,35 @@
|
||||
From 208ea73d38c9c16cf983b6419f58050dbadcb6a9 Mon Sep 17 00:00:00 2001
|
||||
From: Max Filippov <jcmvbkbc@gmail.com>
|
||||
Date: Sun, 7 Jun 2015 22:43:49 +0300
|
||||
Subject: [PATCH 2/2] xtensa: make sure ar_base is initialized
|
||||
|
||||
ar_base is uninitialized for cores w/o windowed registers as their
|
||||
regmap doesn't have register 0x0100.
|
||||
Check that ar_base is initialized and if not initialize it with a0_base.
|
||||
|
||||
gdb/
|
||||
* xtensa-tdep.c (xtensa_derive_tdep): Make sure ar_base is
|
||||
initialized.
|
||||
|
||||
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
||||
---
|
||||
gdb/xtensa-tdep.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||
index 55e7d98..41f5ec1 100644
|
||||
--- a/gdb/xtensa-tdep.c
|
||||
+++ b/gdb/xtensa-tdep.c
|
||||
@@ -3175,6 +3175,9 @@ xtensa_derive_tdep (struct gdbarch_tdep *tdep)
|
||||
tdep->num_regs = n;
|
||||
}
|
||||
|
||||
+ if (tdep->ar_base == -1)
|
||||
+ tdep->ar_base = tdep->a0_base;
|
||||
+
|
||||
/* Number of pseudo registers. */
|
||||
tdep->num_pseudo_regs = n - tdep->num_regs;
|
||||
|
||||
--
|
||||
1.8.1.4
|
||||
|
@ -0,0 +1,31 @@
|
||||
From 7f8eacbb468575fb67db7fd1155a3aedaa91911b Mon Sep 17 00:00:00 2001
|
||||
From: Max Filippov <jcmvbkbc@gmail.com>
|
||||
Date: Sun, 7 Jun 2015 23:15:39 +0300
|
||||
Subject: [PATCH] WIP: *end of prologue* detection hack
|
||||
|
||||
see
|
||||
http://www.esp8266.com/viewtopic.php?p=18461#p18461
|
||||
http://www.esp8266.com/viewtopic.php?p=19026#p19026
|
||||
http://www.esp8266.com/viewtopic.php?p=19683#p19683
|
||||
|
||||
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
||||
---
|
||||
gdb/xtensa-tdep.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
|
||||
index 41f5ec1..6a7dba7 100644
|
||||
--- a/gdb/xtensa-tdep.c
|
||||
+++ b/gdb/xtensa-tdep.c
|
||||
@@ -2410,7 +2410,7 @@ call0_analyze_prologue (struct gdbarch *gdbarch,
|
||||
/* Find out, if we have an information about the prologue from DWARF. */
|
||||
prologue_sal = find_pc_line (start, 0);
|
||||
if (prologue_sal.line != 0) /* Found debug info. */
|
||||
- body_pc = prologue_sal.end;
|
||||
+ body_pc = prologue_sal.end + 40;
|
||||
|
||||
/* If we are going to analyze the prologue in general without knowing about
|
||||
the current PC, make the best assumtion for the end of the prologue. */
|
||||
--
|
||||
1.8.1.4
|
||||
|
Loading…
x
Reference in New Issue
Block a user