Age | Commit message (Collapse) | Author | Files | Lines |
|
Some of the top level (i.e. those that contain the <target> element)
xml files in gdb/features/ are clearly Linux only. I conclude this
based on the files names containing the string "linux".
I think that all of these files should have the <osabi> element
included with the value "GNU/Linux".
This commits adds the <osabi> element where I believe it is
appropriate and regenerates the associated .c files.
The benefit of this change is that gdbserver, which makes use of these
files, will now send the osabi back in more cases. Sending back more
descriptive target descriptions is a good thing as this makes it
easier for GDB to select the correct gdbarch.
Approved-By: Kevin Buettner <kevinb@redhat.com>
|
|
Now that defs.h, server.h and common-defs.h are included via the
`-include` option, it is no longer necessary for source files to include
them. Remove all the inclusions of these files I could find. Update
the generation scripts where relevant.
Change-Id: Ia026cff269c1b7ae7386dd3619bc9bb6a5332837
Approved-By: Pedro Alves <pedro@palves.net>
|
|
This patch changes various global target_desc declarations to const, thereby
correcting a prominent source of ODR violations in PowerPC-related target code.
The majority of files/changes are mechanical const-ifications accomplished by
regenerating the C files in features/.
This also required manually updating mips-linux-tdep.h, s390-linux-tdep.h,
nios2-tdep.h, s390-tdep.h, arch/ppc-linux-tdesc.h, arch/ppc-linux-common.c,
and rs6000-tdep.c.
Patch tested against the sourceware trybot, and fully regression tested against
our (Red Hat's) internal test infrastructure on Rawhide aarch64, s390x, x86_64,
and powerpcle.
With this patch, I can finally enable LTO in our GDB package builds. [Tested
with a rawhide scratch build containing this patch.]
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22395
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=24835
|
|
Update allocate_target_description to return a target_desc_up, a
specialisation of unique_ptr.
This commit does not attempt to make use of the unique_ptr in the
best possible way, in almost all cases we immediately release the
pointer from within the unique_ptr and then continue as before.
There are a few places where it was easy to handle the unique_ptr, and
in these cases I've done that.
Everything under gdb/features/* is auto-regenerated.
There should be no user visible changes after this commit.
gdb/ChangeLog:
* arch/aarch32.c (aarch32_create_target_description): Release
unique_ptr returned from allocate_target_description.
* arch/aarch64.c (aarch64_create_target_description): Likewise.
* arch/amd64.c (amd64_create_target_description): Likewise.
* arch/arc.c (arc_create_target_description): Likewise.
* arch/arm.c (arm_create_target_description): Likewise.
* arch/i386.c (i386_create_target_description): Likewise.
* arch/riscv.c (riscv_create_target_description): Update return
type. Handle allocate_target_description returning a unique_ptr.
(riscv_lookup_target_description): Update to handle unique_ptr.
* arch/tic6x.c (tic6x_create_target_description): Release
unique_ptr returned from allocate_target_description.
* features/microblaze-with-stack-protect.c: Regenerate.
* features/microblaze.c: Regenerate.
* features/mips-dsp-linux.c: Regenerate.
* features/mips-linux.c: Regenerate.
* features/mips64-dsp-linux.c: Regenerate.
* features/mips64-linux.c: Regenerate.
* features/nds32.c: Regenerate.
* features/nios2.c: Regenerate.
* features/or1k.c: Regenerate.
* features/rs6000/powerpc-32.c: Regenerate.
* features/rs6000/powerpc-32l.c: Regenerate.
* features/rs6000/powerpc-403.c: Regenerate.
* features/rs6000/powerpc-403gc.c: Regenerate.
* features/rs6000/powerpc-405.c: Regenerate.
* features/rs6000/powerpc-505.c: Regenerate.
* features/rs6000/powerpc-601.c: Regenerate.
* features/rs6000/powerpc-602.c: Regenerate.
* features/rs6000/powerpc-603.c: Regenerate.
* features/rs6000/powerpc-604.c: Regenerate.
* features/rs6000/powerpc-64.c: Regenerate.
* features/rs6000/powerpc-64l.c: Regenerate.
* features/rs6000/powerpc-7400.c: Regenerate.
* features/rs6000/powerpc-750.c: Regenerate.
* features/rs6000/powerpc-860.c: Regenerate.
* features/rs6000/powerpc-altivec32.c: Regenerate.
* features/rs6000/powerpc-altivec32l.c: Regenerate.
* features/rs6000/powerpc-altivec64.c: Regenerate.
* features/rs6000/powerpc-altivec64l.c: Regenerate.
* features/rs6000/powerpc-e500.c: Regenerate.
* features/rs6000/powerpc-e500l.c: Regenerate.
* features/rs6000/powerpc-isa205-32l.c: Regenerate.
* features/rs6000/powerpc-isa205-64l.c: Regenerate.
* features/rs6000/powerpc-isa205-altivec32l.c: Regenerate.
* features/rs6000/powerpc-isa205-altivec64l.c: Regenerate.
* features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c: Regenerate.
* features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c: Regenerate.
* features/rs6000/powerpc-isa205-vsx32l.c: Regenerate.
* features/rs6000/powerpc-isa205-vsx64l.c: Regenerate.
* features/rs6000/powerpc-isa207-htm-vsx32l.c: Regenerate.
* features/rs6000/powerpc-isa207-htm-vsx64l.c: Regenerate.
* features/rs6000/powerpc-isa207-vsx32l.c: Regenerate.
* features/rs6000/powerpc-isa207-vsx64l.c: Regenerate.
* features/rs6000/powerpc-vsx32.c: Regenerate.
* features/rs6000/powerpc-vsx32l.c: Regenerate.
* features/rs6000/powerpc-vsx64.c: Regenerate.
* features/rs6000/powerpc-vsx64l.c: Regenerate.
* features/rs6000/rs6000.c: Regenerate.
* features/rx.c: Regenerate.
* features/s390-gs-linux64.c: Regenerate.
* features/s390-linux32.c: Regenerate.
* features/s390-linux32v1.c: Regenerate.
* features/s390-linux32v2.c: Regenerate.
* features/s390-linux64.c: Regenerate.
* features/s390-linux64v1.c: Regenerate.
* features/s390-linux64v2.c: Regenerate.
* features/s390-te-linux64.c: Regenerate.
* features/s390-tevx-linux64.c: Regenerate.
* features/s390-vx-linux64.c: Regenerate.
* features/s390x-gs-linux64.c: Regenerate.
* features/s390x-linux64.c: Regenerate.
* features/s390x-linux64v1.c: Regenerate.
* features/s390x-linux64v2.c: Regenerate.
* features/s390x-te-linux64.c: Regenerate.
* features/s390x-tevx-linux64.c: Regenerate.
* features/s390x-vx-linux64.c: Regenerate.
* mips-tdep.c (_initialize_mips_tdep): Release unique_ptr returned
from allocate_target_description.
* target-descriptions.c (allocate_target_description): Update
return type.
(print_c_tdesc::visit_pre): Release unique_ptr returned from
allocate_target_description.
gdbserver/ChangeLog:
* linux-low.cc (linux_process_target::handle_extended_wait):
Release the unique_ptr returned from allocate_target_description.
* linux-riscv-low.cc (riscv_target::low_arch_setup): Likewise.
* linux-x86-low.cc (tdesc_amd64_linux_no_xml): Change type.
(tdesc_i386_linux_no_xml): Change type.
(x86_linux_read_description): Borrow pointer from unique_ptr
object.
(x86_target::get_ipa_tdesc_idx): Likewise.
(initialize_low_arch): Likewise.
* tdesc.cc (allocate_target_description): Update return type.
gdbsupport/ChangeLog:
* tdesc.h (allocate_target_description): Update return type.
|
|
Target description can be modeled as a tree, the target description
is the root node, features are children nodes, registers and types are
grand-children nodes. So command "maint print c-tdesc" in effect
traverse/visit each node, and print them in c. This can be
implemented by visitor pattern, this is the first reason. Secondly,
I want to this command prints c files in a different way for some
specific xml files, but still print c files the same way for the rest
of xml files. Third, I even want to print xml files from target
descriptions, so that GDBserver can use it to reply GDB's query
qXfer:features:read:target.xml.
gdb:
2017-07-26 Yao Qi <yao.qi@linaro.org>
* target-descriptions.c (tdesc_element_visitor): New class.
(tdesc_element): New class.
(tdesc_reg): Inherit from tdesc_element.
(tdesc_reg::accept): New function.
(tdesc_type): Inherit from tdesc_element.
(tdesc_type::accept): New function.
(tdesc_feature): Inherit from tdesc_element.
(tdesc_feature::accept): New function.
(target_desc): Inherit from tdesc_element.
(target_desc::target_desc): New.
(target_desc::~target_desc): New.
(target_desc::accept): New.
(allocate_target_description): Use new.
(free_target_description): Use delete.
(print_c_tdesc): New class.
(maint_print_c_tdesc_cmd): Adjust.
* features/aarch64.c: Re-generated.
* features/arc-arcompact.c: Re-generated.
* features/arc-v2.c: Re-generated.
* features/arm/arm-with-iwmmxt.c: Re-generated.
* features/arm/arm-with-m.c: Re-generated.
* features/arm/arm-with-m-fpa-layout.c: Re-generated.
* features/arm/arm-with-m-vfp-d16.c: Re-generated.
* features/arm/arm-with-neon.c: Re-generated.
* features/arm/arm-with-vfpv2.c: Re-generated.
* features/arm/arm-with-vfpv3.c: Re-generated.
* features/i386/amd64-avx-avx512.c: Re-generated.
* features/i386/amd64-avx-avx512-linux.c: Re-generated.
* features/i386/amd64-avx.c: Re-generated.
* features/i386/amd64-avx-linux.c: Re-generated.
* features/i386/amd64-avx-mpx-avx512-pku.c: Re-generated.
* features/i386/amd64-avx-mpx-avx512-pku-linux.c: Re-generated.
* features/i386/amd64-avx-mpx.c: Re-generated.
* features/i386/amd64-avx-mpx-linux.c: Re-generated.
* features/i386/amd64.c: Re-generated.
* features/i386/amd64-linux.c: Re-generated.
* features/i386/amd64-mpx.c: Re-generated.
* features/i386/amd64-mpx-linux.c: Re-generated.
* features/i386/i386-avx-avx512.c: Re-generated.
* features/i386/i386-avx-avx512-linux.c: Re-generated.
* features/i386/i386-avx.c: Re-generated.
* features/i386/i386-avx-linux.c: Re-generated.
* features/i386/i386-avx-mpx-avx512-pku.c: Re-generated.
* features/i386/i386-avx-mpx-avx512-pku-linux.c: Re-generated.
* features/i386/i386-avx-mpx.c: Re-generated.
* features/i386/i386-avx-mpx-linux.c: Re-generated.
* features/i386/i386.c: Re-generated.
* features/i386/i386-linux.c: Re-generated.
* features/i386/i386-mmx.c: Re-generated.
* features/i386/i386-mmx-linux.c: Re-generated.
* features/i386/i386-mpx.c: Re-generated.
* features/i386/i386-mpx-linux.c: Re-generated.
* features/i386/x32-avx-avx512.c: Re-generated.
* features/i386/x32-avx-avx512-linux.c: Re-generated.
* features/i386/x32-avx.c: Re-generated.
* features/i386/x32-avx-linux.c: Re-generated.
* features/i386/x32.c: Re-generated.
* features/i386/x32-linux.c: Re-generated.
* features/microblaze.c: Re-generated.
* features/microblaze-with-stack-protect.c: Re-generated.
* features/mips64-dsp-linux.c: Re-generated.
* features/mips64-linux.c: Re-generated.
* features/mips-dsp-linux.c: Re-generated.
* features/mips-linux.c: Re-generated.
* features/nds32.c: Re-generated.
* features/nios2.c: Re-generated.
* features/nios2-linux.c: Re-generated.
* features/rs6000/powerpc-32.c: Re-generated.
* features/rs6000/powerpc-32l.c: Re-generated.
* features/rs6000/powerpc-403.c: Re-generated.
* features/rs6000/powerpc-403gc.c : Re-generated.
* features/rs6000/powerpc-405.c: Re-generated.
* features/rs6000/powerpc-505.c: Re-generated.
* features/rs6000/powerpc-601.c: Re-generated.
* features/rs6000/powerpc-602.c: Re-generated.
* features/rs6000/powerpc-603.c: Re-generated.
* features/rs6000/powerpc-604.c: Re-generated.
* features/rs6000/powerpc-64.c: Re-generated.
* features/rs6000/powerpc-64l.c: Re-generated.
* features/rs6000/powerpc-7400.c: Re-generated.
* features/rs6000/powerpc-750.c: Re-generated.
* features/rs6000/powerpc-860.c: Re-generated.
* features/rs6000/powerpc-altivec32.c: Re-generated.
* features/rs6000/powerpc-altivec32l.c: Re-generated.
* features/rs6000/powerpc-altivec64.c: Re-generated.
* features/rs6000/powerpc-altivec64l.c: Re-generated.
* features/rs6000/powerpc-cell32l.c: Re-generated.
* features/rs6000/powerpc-cell64l.c: Re-generated.
* features/rs6000/powerpc-e500.c: Re-generated.
* features/rs6000/powerpc-e500l.c: Re-generated.
* features/rs6000/powerpc-isa205-32l.c: Re-generated.
* features/rs6000/powerpc-isa205-64l.c: Re-generated.
* features/rs6000/powerpc-isa205-altivec32l.c: Re-generated.
* features/rs6000/powerpc-isa205-altivec64l.c: Re-generated.
* features/rs6000/powerpc-isa205-vsx32l.c: Re-generated.
* features/rs6000/powerpc-isa205-vsx64l.c: Re-generated.
* features/rs6000/powerpc-vsx32.c: Re-generated.
* features/rs6000/powerpc-vsx32l.c: Re-generated.
* features/rs6000/powerpc-vsx64.c: Re-generated.
* features/rs6000/powerpc-vsx64l.c: Re-generated.
* features/rs6000/rs6000.c: Re-generated.
* features/s390-linux32.c: Re-generated.
* features/s390-linux32v1.c: Re-generated.
* features/s390-linux32v2.c: Re-generated.
* features/s390-linux64.c: Re-generated.
* features/s390-linux64v1.c: Re-generated.
* features/s390-linux64v2.c: Re-generated.
* features/s390-te-linux64.c: Re-generated.
* features/s390-tevx-linux64.c: Re-generated.
* features/s390-vx-linux64.c: Re-generated.
* features/s390x-linux64.c: Re-generated.
* features/s390x-linux64v1.c: Re-generated.
* features/s390x-linux64v2.c: Re-generated.
* features/s390x-te-linux64.c: Re-generated.
* features/s390x-tevx-linux64.c: Re-generated.
* features/s390x-vx-linux64.c: Re-generated.
* features/sparc/sparc32-solaris.c: Re-generated.
* features/sparc/sparc64-solaris.c: Re-generated.
* features/tic6x-c62x.c: Re-generated.
* features/tic6x-c62x-linux.c: Re-generated.
* features/tic6x-c64x.c: Re-generated.
* features/tic6x-c64x-linux.c: Re-generated.
* features/tic6x-c64xp.c: Re-generated.
* features/tic6x-c64xp-linux.c: Re-generated.
|
|
* copying.awk: Print buffer-read-only and vi ro markers.
* copying.c: Rebuild.
* gdbarch.sh (copyright): Print buffer-read-only and vi ro markers.
* gdbarch.c, gdbarch.h: Rebuild.
* target-descriptions.c (maint_print_c_tdesc_cmd): Print
buffer-read-only and vi ro markers.
* features/arm-with-iwmmxt.c: Rebuild.
* features/arm-with-m-fpa-layout.c: Rebuild.
* features/arm-with-m-vfp-d16.c: Rebuild.
* features/arm-with-m.c: Rebuild.
* features/arm-with-neon.c: Rebuild.
* features/arm-with-vfpv2.c: Rebuild.
* features/arm-with-vfpv3.c: Rebuild.
* features/i386/amd64-avx-linux.c: Rebuild.
* features/i386/amd64-avx.c: Rebuild.
* features/i386/amd64-linux.c: Rebuild.
* features/i386/amd64.c: Rebuild.
* features/i386/i386-avx-linux.c: Rebuild.
* features/i386/i386-avx.c: Rebuild.
* features/i386/i386-linux.c: Rebuild.
* features/i386/i386-mmx-linux.c: Rebuild.
* features/i386/i386-mmx.c: Rebuild.
* features/i386/i386.c: Rebuild.
* features/i386/x32-avx-linux.c: Rebuild.
* features/i386/x32-avx.c: Rebuild.
* features/i386/x32-linux.c: Rebuild.
* features/i386/x32.c: Rebuild.
* features/mips-dsp-linux.c: Rebuild.
* features/mips-linux.c: Rebuild.
* features/mips64-dsp-linux.c: Rebuild.
* features/mips64-linux.c: Rebuild.
* features/rs6000/powerpc-32.c: Rebuild.
* features/rs6000/powerpc-32l.c: Rebuild.
* features/rs6000/powerpc-403.c: Rebuild.
* features/rs6000/powerpc-403gc.c: Rebuild.
* features/rs6000/powerpc-405.c: Rebuild.
* features/rs6000/powerpc-505.c: Rebuild.
* features/rs6000/powerpc-601.c: Rebuild.
* features/rs6000/powerpc-602.c: Rebuild.
* features/rs6000/powerpc-603.c: Rebuild.
* features/rs6000/powerpc-604.c: Rebuild.
* features/rs6000/powerpc-64.c: Rebuild.
* features/rs6000/powerpc-64l.c: Rebuild.
* features/rs6000/powerpc-7400.c: Rebuild.
* features/rs6000/powerpc-750.c: Rebuild.
* features/rs6000/powerpc-860.c: Rebuild.
* features/rs6000/powerpc-altivec32.c: Rebuild.
* features/rs6000/powerpc-altivec32l.c: Rebuild.
* features/rs6000/powerpc-altivec64.c: Rebuild.
* features/rs6000/powerpc-altivec64l.c: Rebuild.
* features/rs6000/powerpc-cell32l.c: Rebuild.
* features/rs6000/powerpc-cell64l.c: Rebuild.
* features/rs6000/powerpc-e500.c: Rebuild.
* features/rs6000/powerpc-e500l.c: Rebuild.
* features/rs6000/powerpc-isa205-32l.c: Rebuild.
* features/rs6000/powerpc-isa205-64l.c: Rebuild.
* features/rs6000/powerpc-isa205-altivec32l.c: Rebuild.
* features/rs6000/powerpc-isa205-altivec64l.c: Rebuild.
* features/rs6000/powerpc-isa205-vsx32l.c: Rebuild.
* features/rs6000/powerpc-isa205-vsx64l.c: Rebuild.
* features/rs6000/powerpc-vsx32.c: Rebuild.
* features/rs6000/powerpc-vsx32l.c: Rebuild.
* features/rs6000/powerpc-vsx64.c: Rebuild.
* features/rs6000/powerpc-vsx64l.c: Rebuild.
* features/rs6000/rs6000.c: Rebuild.
* features/s390-linux32.c: Rebuild.
* features/s390-linux32v1.c: Rebuild.
* features/s390-linux32v2.c: Rebuild.
* features/s390-linux64.c: Rebuild.
* features/s390-linux64v1.c: Rebuild.
* features/s390-linux64v2.c: Rebuild.
* features/s390x-linux64.c: Rebuild.
* features/s390x-linux64v1.c: Rebuild.
* features/s390x-linux64v2.c: Rebuild.
* features/tic6x-c62x-linux.c: Rebuild.
* features/tic6x-c62x.c: Rebuild.
* features/tic6x-c64x-linux.c: Rebuild.
* features/tic6x-c64x.c: Rebuild.
* features/tic6x-c64xp-linux.c: Rebuild.
* features/tic6x-c64xp.c: Rebuild.
|
|
* features/arm-with-iwmmxt.c: Regenerate.
* features/arm-with-m-fpa-layout.c: Likewise.
* features/arm-with-m.c: Likewise.
* features/arm-with-neon.c: Likewise.
* features/arm-with-vfpv2.c: Likewise.
* features/arm-with-vfpv3.c: Likewise.
* features/mips-dsp-linux.c: Likewise.
* features/mips-linux.c: Likewise.
* features/mips64-dsp-linux.c: Likewise.
* features/mips64-linux.c: Likewise.
* features/s390-linux32.c: Likewise.
* features/s390-linux32v1.c: Likewise.
* features/s390-linux32v2.c: Likewise.
* features/s390-linux64.c: Likewise.
* features/s390-linux64v1.c: Likewise.
* features/s390-linux64v2.c: Likewise.
* features/s390x-linux64.c: Likewise.
* features/s390x-linux64v1.c: Likewise.
* features/s390x-linux64v2.c: Likewise.
* features/tic6x-c62x-linux.c: Likewise.
* features/tic6x-c62x.c: Likewise.
* features/tic6x-c64x-linux.c: Likewise.
* features/tic6x-c64x.c: Likewise.
* features/tic6x-c64xp-linux.c: Likewise.
* features/tic6x-c64xp.c: Likewise.
* target-descriptions.c: Only generate `field_type' and `type'
variables when needed.
|
|
* features/mips-dsp.xml: New file.
* features/mips64-dsp.xml: New file.
* features/mips-dsp-linux.xml: New file.
* features/mips64-dsp-linux.xml: New file.
* features/Makefile (WHICH): Add mips-dsp-linux and
mips64-dsp-linux.
(mips-dsp-expedite, mips64-dsp-expedite): New variables.
* features/mips-dsp-linux.c: New file.
* features/mips64-dsp-linux.c: New file.
* regformats/mips-dsp-linux.dat: New file.
* regformats/mips64-dsp-linux.dat: New file.
* mips-linux-nat.c (mips_linux_register_addr): Handle DSP
registers.
(mips64_linux_register_addr): Likewise.
(mips64_linux_regsets_fetch_registers): Likewise.
(mips64_linux_regsets_store_registers): Likewise.
(mips64_linux_fetch_registers): Update call to
mips64_linux_regsets_fetch_registers.
(mips64_linux_store_registers): Update call to
mips64_linux_regsets_store_registers.
(mips_linux_read_description): Probe for DSP registers.
(_initialize_mips_linux_nat): Call initialize_tdesc_mips_dsp_linux
and initialize_tdesc_mips64_dsp_linux.
* mips-linux-tdep.c (supply_gregset, mips64_supply_gregset):
Remove padding of no longer used embedded register slots.
* mips-linux-tdep.h (DSP_BASE, DSP_CONTROL): New macros.
(MIPS_RESTART_REGNUM): Redefine enum value.
* mips-tdep.c (mips_generic_reg_names): Remove trailing null
strings.
(mips_tx39_reg_names): Likewise.
(mips_linux_reg_names): New array of register names for Linux
targets.
(mips_register_name): Check for a null pointer in
mips_processor_reg_names and return an empty string.
(mips_register_type): Exclude embedded registers for the IRIX
and Linux ABIs.
(mips_pseudo_register_type): Likewise. Use dynamic numbers to
refer to FP registers, LO, HI, BadVAddr, Cause and PC. Handle
DSP registers.
(mips_stab_reg_to_regnum): Handle DSP accumulators.
(mips_dwarf_dwarf2_ecoff_reg_to_regnum): Likewise.
(mips_gdbarch_init): Likewise. Initialize internal register
indices for the Linux ABI. Use dynamic numbers to refer to
registers, as applicable, while parsing the target description.
* mips-tdep.h (struct mips_regnum): Add dspacc/dspctl offsets.
gdb/doc/
* gdb.texinfo (MIPS Features): Add org.gnu.gdb.mips.dsp.
gdb/gdbserver/
* linux-low.h (linux_target_ops): Add regset_bitmap member.
* linux-low.c (use_linux_regsets): New macro.
[!HAVE_LINUX_REGSETS] (regsets_fetch_inferior_registers): Likewise.
[!HAVE_LINUX_REGSETS] (regsets_store_inferior_registers): Likewise.
(linux_register_in_regsets): New function.
(usr_fetch_inferior_registers): Skip registers covered by
regsets.
(usr_store_inferior_registers): Likewise.
(usr_fetch_inferior_registers): New macro.
(usr_store_inferior_registers): Likewise.
(linux_fetch_registers): Handle mixed regset/non-regset targets.
(linux_store_registers): Likewise.
* linux-mips-low.c (init_registers_mips_dsp_linux): New
prototype.
(init_registers_mips64_dsp_linux): Likewise.
(init_registers_mips_linux): New macro.
(init_registers_mips_dsp_linux): Likewise.
(mips_dsp_num_regs): Likewise.
(DSP_BASE, DSP_CONTROL): New fallback macros.
(mips_base_regs): New macro.
(mips_regmap): Use it. Fix the size.
(mips_dsp_regmap): New variable.
(mips_dsp_regset_bitmap): Likewise.
(mips_arch_setup): New function.
(mips_cannot_fetch_register): Use the_low_target.regmap rather
than mips_regmap.
(mips_cannot_store_register): Likewise.
(the_low_target): Update .arch_setup, .num_regs and .regmap
initializers. Add .regset_bitmap initializer.
* linux-arm-low.c (the_low_target): Add .regset_bitmap
initializer.
* linux-bfin-low.c (the_low_target): Likewise.
* linux-cris-low.c (the_low_target): Likewise.
* linux-crisv32-low.c (the_low_target): Likewise.
* linux-ia64-low.c (the_low_target): Likewise.
* linux-m32r-low.c (the_low_target): Likewise.
* linux-m68k-low.c (the_low_target): Likewise.
* linux-ppc-low.c (the_low_target): Likewise.
* linux-s390-low.c (the_low_target): Likewise.
* linux-sh-low.c (the_low_target): Likewise.
* linux-sparc-low.c (the_low_target): Likewise.
* linux-tic6x-low.c (the_low_target): Likewise.
* linux-x86-low.c (the_low_target): Likewise.
* linux-xtensa-low.c (the_low_target): Likewise.
* configure.srv <mips*-*-linux*>: Add mips-dsp-linux.o and
mips64-dsp-linux.o to srv_regobj. Add mips-dsp-linux.xml,
mips64-dsp-linux.xml, mips-dsp.xml and mips64-dsp.xml to
srv_xmlfiles.
* Makefile.in (mips-dsp-linux.o, mips-dsp-linux.c): New targets.
(mips64-dsp-linux.o, mips64-dsp-linux.c): Likewise.
gdb/testsuite/
* gdb.xml/tdesc-regs.exp: Add "mips-dsp.xml" to the list of MIPS
core registers.
|