* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
/* Target-dependent code for Xilinx MicroBlaze.
|
|
|
|
|
2021-01-01 12:03:39 +04:00
|
|
|
Copyright (C) 2009-2021 Free Software Foundation, Inc.
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
|
|
|
|
This file is part of GDB.
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
|
|
|
|
#include "defs.h"
|
|
|
|
#include "frame.h"
|
|
|
|
#include "inferior.h"
|
|
|
|
#include "symtab.h"
|
|
|
|
#include "target.h"
|
|
|
|
#include "gdbcore.h"
|
|
|
|
#include "gdbcmd.h"
|
|
|
|
#include "symfile.h"
|
|
|
|
#include "objfiles.h"
|
|
|
|
#include "regcache.h"
|
|
|
|
#include "value.h"
|
|
|
|
#include "osabi.h"
|
|
|
|
#include "regset.h"
|
|
|
|
#include "solib-svr4.h"
|
|
|
|
#include "microblaze-tdep.h"
|
|
|
|
#include "trad-frame.h"
|
|
|
|
#include "frame-unwind.h"
|
|
|
|
#include "tramp-frame.h"
|
2010-08-04 15:27:57 +00:00
|
|
|
#include "linux-tdep.h"
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
|
|
|
|
static int
|
2009-10-16 23:21:23 +00:00
|
|
|
microblaze_linux_memory_remove_breakpoint (struct gdbarch *gdbarch,
|
|
|
|
struct bp_target_info *bp_tgt)
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
{
|
Avoid software breakpoint's instruction shadow inconsistency
This change:
commit b775012e845380ed4c7421a1b87caf7bfae39f5f
Author: Luis Machado <luisgpm@br.ibm.com>
Date: Fri Feb 24 15:10:59 2012 +0000
2012-02-24 Luis Machado <lgustavo@codesourcery.com>
* remote.c (remote_supports_cond_breakpoints): New forward
declaration.
[...]
changed the way breakpoints are inserted and removed such that
`insert_bp_location' can now be called with the breakpoint being handled
already in place, while previously the call was only ever made for
breakpoints that have not been put in place. This in turn caused an
issue for software breakpoints and targets for which a breakpoint's
`placed_address' may not be the same as the original requested address.
The issue is `insert_bp_location' overwrites the previously adjusted
value in `placed_address' with the original address, that is only
replaced back with the correct adjusted address later on when
`gdbarch_breakpoint_from_pc' is called. Meanwhile there's a window
where the value in `placed_address' does not correspond to data stored
in `shadow_contents', leading to incorrect instruction bytes being
supplied when `one_breakpoint_xfer_memory' is called to supply the
instruction overlaid by the breakpoint.
And this is exactly what happens on the MIPS target with software
breakpoints placed in microMIPS code. In this case not only
`placed_address' is not the original address because of the ISA bit, but
`mips_breakpoint_from_pc' has to read the original instruction to
determine which one of the two software breakpoint instruction encodings
to choose as well. The 16-bit encoding is used to replace 16-bit
instructions and similarly the 32-bit one is used with 32-bit
instructions, to satisfy branch delay slot size requirements.
The mismatch between `placed_address' and the address data in
`shadow_contents' has been obtained from leads to the wrong encoding
being used in some cases, which in the case of a 32-bit software
breakpoint instruction replacing a 16-bit instruction causes corruption
to the adjacent following instruction and leads the debug session astray
if execution reaches there e.g. with a jump.
To address this problem I made the change below, that adds a
`reqstd_address' field to `struct bp_target_info' and leaves
`placed_address' unchanged once it has been set. This ensures data in
`shadow_contents' is always consistent with `placed_address'.
This approach also has this good side effect that all the places that
examine the breakpoint's address see a consistent value, either
`reqstd_address' or `placed_address', as required. Currently some
places see either the original or the adjusted address in
`placed_address', depending on whether they have been called before
`gdbarch_remote_breakpoint_from_pc' or afterwards. This is in
particular true for subsequent calls to
`gdbarch_remote_breakpoint_from_pc' itself, e.g. from
`one_breakpoint_xfer_memory'. This is also important for places like
`find_single_step_breakpoint' where a breakpoint's address is compared
to the raw value of $pc.
* breakpoint.h (bp_target_info): Add `reqstd_address' member,
update comments.
* breakpoint.c (one_breakpoint_xfer_memory): Use `reqstd_address'
for the breakpoint's address. Don't preinitialize `placed_size'.
(insert_bp_location): Set `reqstd_address' rather than
`placed_address'.
(bp_target_info_copy_insertion_state): Also copy `placed_address'.
(bkpt_insert_location): Use `reqstd_address' for the breakpoint's
address.
(bkpt_remove_location): Likewise.
(deprecated_insert_raw_breakpoint): Likewise.
(deprecated_remove_raw_breakpoint): Likewise.
(find_single_step_breakpoint): Likewise.
* mem-break.c (default_memory_insert_breakpoint): Use
`reqstd_address' for the breakpoint's address. Don't set
`placed_address' or `placed_size' if breakpoint contents couldn't
have been determined.
* remote.c (remote_insert_breakpoint): Use `reqstd_address' for
the breakpoint's address.
(remote_insert_hw_breakpoint): Likewise. Don't set
`placed_address' or `placed_size' if breakpoint couldn't have been
set.
* aarch64-linux-nat.c (aarch64_linux_insert_hw_breakpoint): Use
`reqstd_address' for the breakpoint's address.
* arm-linux-nat.c (arm_linux_hw_breakpoint_initialize): Likewise.
* ia64-tdep.c (ia64_memory_insert_breakpoint): Likewise.
* m32r-tdep.c (m32r_memory_insert_breakpoint): Likewise.
* microblaze-linux-tdep.c
(microblaze_linux_memory_remove_breakpoint): Likewise.
* monitor.c (monitor_insert_breakpoint): Likewise.
* nto-procfs.c (procfs_insert_breakpoint): Likewise.
(procfs_insert_hw_breakpoint): Likewise.
* ppc-linux-nat.c (ppc_linux_insert_hw_breakpoint): Likewise.
* ppc-linux-tdep.c (ppc_linux_memory_remove_breakpoint): Likewise.
* remote-m32r-sdi.c (m32r_insert_breakpoint): Likewise.
* remote-mips.c (mips_insert_breakpoint): Likewise.
* x86-nat.c (x86_insert_hw_breakpoint): Likewise.
2014-10-03 12:44:58 +01:00
|
|
|
CORE_ADDR addr = bp_tgt->reqstd_address;
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
const gdb_byte *bp;
|
|
|
|
int val;
|
|
|
|
int bplen;
|
|
|
|
gdb_byte old_contents[BREAKPOINT_MAX];
|
|
|
|
|
|
|
|
/* Determine appropriate breakpoint contents and size for this address. */
|
|
|
|
bp = gdbarch_breakpoint_from_pc (gdbarch, &addr, &bplen);
|
|
|
|
|
|
|
|
val = target_read_memory (addr, old_contents, bplen);
|
|
|
|
|
|
|
|
/* If our breakpoint is no longer at the address, this means that the
|
|
|
|
program modified the code on us, so it is wrong to put back the
|
|
|
|
old value. */
|
|
|
|
if (val == 0 && memcmp (bp, old_contents, bplen) == 0)
|
2011-12-14 14:55:27 +00:00
|
|
|
val = target_write_raw_memory (addr, bp_tgt->shadow_contents, bplen);
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
|
|
|
|
return val;
|
|
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
|
|
microblaze_linux_sigtramp_cache (struct frame_info *next_frame,
|
|
|
|
struct trad_frame_cache *this_cache,
|
|
|
|
CORE_ADDR func, LONGEST offset,
|
|
|
|
int bias)
|
|
|
|
{
|
|
|
|
CORE_ADDR base;
|
|
|
|
CORE_ADDR gpregs;
|
|
|
|
int regnum;
|
|
|
|
|
2009-10-16 23:21:23 +00:00
|
|
|
base = frame_unwind_register_unsigned (next_frame, MICROBLAZE_SP_REGNUM);
|
|
|
|
if (bias > 0 && get_frame_address_in_block (next_frame) != func)
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
/* See below, some signal trampolines increment the stack as their
|
|
|
|
first instruction, need to compensate for that. */
|
|
|
|
base -= bias;
|
|
|
|
|
|
|
|
/* Find the address of the register buffer. */
|
|
|
|
gpregs = base + offset;
|
|
|
|
|
|
|
|
/* Registers saved on stack. */
|
|
|
|
for (regnum = 0; regnum < MICROBLAZE_BTR_REGNUM; regnum++)
|
|
|
|
trad_frame_set_reg_addr (this_cache, regnum,
|
|
|
|
gpregs + regnum * MICROBLAZE_REGISTER_SIZE);
|
|
|
|
trad_frame_set_id (this_cache, frame_id_build (base, func));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
microblaze_linux_sighandler_cache_init (const struct tramp_frame *self,
|
|
|
|
struct frame_info *next_frame,
|
|
|
|
struct trad_frame_cache *this_cache,
|
|
|
|
CORE_ADDR func)
|
|
|
|
{
|
|
|
|
microblaze_linux_sigtramp_cache (next_frame, this_cache, func,
|
|
|
|
0 /* Offset to ucontext_t. */
|
|
|
|
+ 24 /* Offset to .reg. */,
|
|
|
|
0);
|
|
|
|
}
|
|
|
|
|
|
|
|
static struct tramp_frame microblaze_linux_sighandler_tramp_frame =
|
|
|
|
{
|
|
|
|
SIGTRAMP_FRAME,
|
|
|
|
4,
|
|
|
|
{
|
2018-08-07 13:04:05 -06:00
|
|
|
{ 0x31800077, ULONGEST_MAX }, /* addik R12,R0,119. */
|
|
|
|
{ 0xb9cc0008, ULONGEST_MAX }, /* brki R14,8. */
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
{ TRAMP_SENTINEL_INSN },
|
|
|
|
},
|
|
|
|
microblaze_linux_sighandler_cache_init
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
microblaze_linux_init_abi (struct gdbarch_info info,
|
|
|
|
struct gdbarch *gdbarch)
|
|
|
|
{
|
gdb: make displaced stepping implementation capable of managing multiple buffers
The displaced_step_buffer class, introduced in the previous patch,
manages access to a single displaced step buffer. Change it into
displaced_step_buffers (note the plural), which manages access to
multiple displaced step buffers.
When preparing a displaced step for a thread, it looks for an unused
buffer.
For now, all users still pass a single displaced step buffer, so no real
behavior change is expected here. The following patch makes a user pass
more than one buffer, so the functionality introduced by this patch is
going to be useful in the next one.
gdb/ChangeLog:
* displaced-stepping.h (struct displaced_step_buffer): Rename
to...
(struct displaced_step_buffers): ... this.
<m_addr, m_current_thread, m_copy_insn_closure>: Remove.
<struct displaced_step_buffer>: New inner class.
<m_buffers>: New.
* displaced-stepping.c (displaced_step_buffer::prepare): Rename
to...
(displaced_step_buffers::prepare): ... this, adjust for multiple
buffers.
(displaced_step_buffer::finish): Rename to...
(displaced_step_buffers::finish): ... this, adjust for multiple
buffers.
(displaced_step_buffer::copy_insn_closure_by_addr): Rename to...
(displaced_step_buffers::copy_insn_closure_by_addr): ... this,
adjust for multiple buffers.
(displaced_step_buffer::restore_in_ptid): Rename to...
(displaced_step_buffers::restore_in_ptid): ... this, adjust for
multiple buffers.
* linux-tdep.h (linux_init_abi): Change supports_displaced_step
for num_disp_step_buffers.
* linux-tdep.c (struct linux_gdbarch_data)
<num_disp_step_buffers>: New field.
(struct linux_info) <disp_step_buf>: Rename to...
<disp_step_bufs>: ... this, change type to
displaced_step_buffers.
(linux_displaced_step_prepare): Use
linux_gdbarch_data::num_disp_step_buffers to create that number
of buffers.
(linux_displaced_step_finish): Adjust.
(linux_displaced_step_copy_insn_closure_by_addr): Adjust.
(linux_displaced_step_restore_all_in_ptid): Adjust.
(linux_init_abi): Change supports_displaced_step parameter for
num_disp_step_buffers, save it in linux_gdbarch_data.
* aarch64-linux-tdep.c (aarch64_linux_init_abi): Adjust.
* alpha-linux-tdep.c (alpha_linux_init_abi): Adjust.
* amd64-linux-tdep.c (amd64_linux_init_abi_common): Change
supports_displaced_step parameter for num_disp_step_buffers.
(amd64_linux_init_abi): Adjust.
(amd64_x32_linux_init_abi): Adjust.
* arc-linux-tdep.c (arc_linux_init_osabi): Adjust.
* arm-linux-tdep.c (arm_linux_init_abi): Adjust.
* bfin-linux-tdep.c (bfin_linux_init_abi): Adjust.
* cris-linux-tdep.c (cris_linux_init_abi): Adjust.
* csky-linux-tdep.c (csky_linux_init_abi): Adjust.
* frv-linux-tdep.c (frv_linux_init_abi): Adjust.
* hppa-linux-tdep.c (hppa_linux_init_abi): Adjust.
* i386-linux-tdep.c (i386_linux_init_abi): Adjust.
* ia64-linux-tdep.c (ia64_linux_init_abi): Adjust.
* m32r-linux-tdep.c (m32r_linux_init_abi): Adjust.
* m68k-linux-tdep.c (m68k_linux_init_abi):
* microblaze-linux-tdep.c (microblaze_linux_init_abi):
* mips-linux-tdep.c (mips_linux_init_abi): Adjust.
* mn10300-linux-tdep.c (am33_linux_init_osabi): Adjust.
* nios2-linux-tdep.c (nios2_linux_init_abi): Adjust.
* or1k-linux-tdep.c (or1k_linux_init_abi): Adjust.
* ppc-linux-tdep.c (ppc_linux_init_abi): Adjust.
* riscv-linux-tdep.c (riscv_linux_init_abi): Adjust.
* rs6000-tdep.c (struct ppc_inferior_data) <disp_step_buf>:
Change type to displaced_step_buffers.
* s390-linux-tdep.c (s390_linux_init_abi_any): Adjust.
* sh-linux-tdep.c (sh_linux_init_abi): Adjust.
* sparc-linux-tdep.c (sparc32_linux_init_abi): Adjust.
* sparc64-linux-tdep.c (sparc64_linux_init_abi): Adjust.
* tic6x-linux-tdep.c (tic6x_uclinux_init_abi): Adjust.
* tilegx-linux-tdep.c (tilegx_linux_init_abi): Adjust.
* xtensa-linux-tdep.c (xtensa_linux_init_abi): Adjust.
Change-Id: Ia9c02f207da2c9e1d9188020139619122392bb70
2020-12-04 16:43:56 -05:00
|
|
|
linux_init_abi (info, gdbarch, 0);
|
2010-08-04 15:27:57 +00:00
|
|
|
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
set_gdbarch_memory_remove_breakpoint (gdbarch,
|
|
|
|
microblaze_linux_memory_remove_breakpoint);
|
|
|
|
|
|
|
|
/* Shared library handling. */
|
|
|
|
set_solib_svr4_fetch_link_map_offsets (gdbarch,
|
2021-08-16 16:17:25 -07:00
|
|
|
linux_ilp32_fetch_link_map_offsets);
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
|
|
|
|
/* Trampolines. */
|
|
|
|
tramp_frame_prepend_unwinder (gdbarch,
|
|
|
|
µblaze_linux_sighandler_tramp_frame);
|
|
|
|
}
|
|
|
|
|
2020-01-13 14:01:38 -05:00
|
|
|
void _initialize_microblaze_linux_tdep ();
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
void
|
2020-01-13 14:01:38 -05:00
|
|
|
_initialize_microblaze_linux_tdep ()
|
* config/djgpp/fnchange.lst: Add translations for cpu-microblaze.c,
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
2009-10-15 19:28:52 +00:00
|
|
|
{
|
|
|
|
gdbarch_register_osabi (bfd_arch_microblaze, 0, GDB_OSABI_LINUX,
|
|
|
|
microblaze_linux_init_abi);
|
|
|
|
}
|