diff options
Diffstat (limited to 'tools/4.11/gdb/sparc/7.9/0001-sim-erc32-Disassembly-in-stand-alone-mode-did-not-wo.patch')
-rw-r--r-- | tools/4.11/gdb/sparc/7.9/0001-sim-erc32-Disassembly-in-stand-alone-mode-did-not-wo.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tools/4.11/gdb/sparc/7.9/0001-sim-erc32-Disassembly-in-stand-alone-mode-did-not-wo.patch b/tools/4.11/gdb/sparc/7.9/0001-sim-erc32-Disassembly-in-stand-alone-mode-did-not-wo.patch new file mode 100644 index 0000000..e48ff75 --- /dev/null +++ b/tools/4.11/gdb/sparc/7.9/0001-sim-erc32-Disassembly-in-stand-alone-mode-did-not-wo.patch @@ -0,0 +1,61 @@ +From 723f3af6060ee39c89f2b79954a39c7bdee39f99 Mon Sep 17 00:00:00 2001 +From: Jiri Gaisler <jiri@gaisler.se> +Date: Sat, 30 Aug 2014 22:40:25 +0200 +Subject: [PATCH 01/23] sim/erc32: Disassembly in stand-alone mode did not + work. + + The API to print_insn_sparc() has changed over the years ... + + * func.c (print_insn_sparc_sis) Add helper function for disassembly. + (disp_ctrl) Use helper function. +--- + sim/erc32/func.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/sim/erc32/func.c b/sim/erc32/func.c +index d001c58..e6744ee 100644 +--- a/sim/erc32/func.c ++++ b/sim/erc32/func.c +@@ -759,6 +759,17 @@ disp_regs(sregs,cwp) + } + } + ++static void print_insn_sparc_sis(uint32 addr, struct disassemble_info *info) ++{ ++ unsigned char i[4]; ++ ++ sis_memory_read(addr, i, 4); ++ dinfo.buffer_vma = addr; ++ dinfo.buffer_length = 4; ++ dinfo.buffer = i; ++ print_insn_sparc(addr, info); ++} ++ + static void + disp_ctrl(sregs) + struct pstate *sregs; +@@ -770,10 +781,10 @@ disp_ctrl(sregs) + sregs->psr, sregs->wim, sregs->tbr, sregs->y); + sis_memory_read(sregs->pc, i, 4); + printf("\n pc: %08X = %02X%02X%02X%02X ", sregs->pc,i[0],i[1],i[2],i[3]); +- print_insn_sparc(sregs->pc, &dinfo); ++ print_insn_sparc_sis(sregs->pc, &dinfo); + sis_memory_read(sregs->npc, i, 4); + printf("\n npc: %08X = %02X%02X%02X%02X ",sregs->npc,i[0],i[1],i[2],i[3]); +- print_insn_sparc(sregs->npc, &dinfo); ++ print_insn_sparc_sis(sregs->npc, &dinfo); + if (sregs->err_mode) + printf("\n IU in error mode"); + printf("\n\n"); +@@ -821,7 +832,7 @@ dis_mem(addr, len, info) + for (i = addr & -3; i < ((addr & -3) + (len << 2)); i += 4) { + sis_memory_read(i, data, 4); + printf(" %08x %02x%02x%02x%02x ", i, data[0],data[1],data[2],data[3]); +- print_insn_sparc(i, info); ++ print_insn_sparc_sis(i, info); + if (i >= 0xfffffffc) break; + printf("\n"); + } +-- +1.9.1 + |