[PATCH v2 08/12] [PowerPC] Add support for PPR and DSCR

Ulrich Weigand uweigand@de.ibm.com
Fri Aug 10 14:39:00 GMT 2018


Pedro Franco de Carvalho wrote:

> gdb/ChangeLog:
> YYYY-MM-DD  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
> 	    Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
> 
> 	* arch/ppc-linux-tdesc.h (tdesc_powerpc_isa205_ppr_dscr_vsx32l)
> 	(tdesc_powerpc_isa205_ppr_dscr_vsx64l): Declare.
> 	* arch/ppc-linux-common.h (PPC_LINUX_SIZEOF_PPRREGSET)
> 	(PPC_LINUX_SIZEOF_DSCRREGSET): Define.
> 	(struct ppc_linux_features) <ppr_dscr>: New field.
> 	(ppc_linux_no_features): Add initializer for ppr_dscr field.
> 	* arch/ppc-linux-common.c (ppc_linux_match_description): Return
> 	new tdescs.
> 	* nat/ppc-linux.h (PPC_FEATURE2_DSCR, NT_PPC_PPR, NT_PPC_DSCR):
> 	Define if not already defined.
> 	* features/Makefile (WHICH): Add
> 	rs6000/powerpc-isa205-ppr-dscr-vsx32l and
> 	rs6000/powerpc-isa205-ppr-dscr-vsx64l.
> 	(XMLTOC): Add rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml and
> 	rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml.
> 	* features/rs6000/power-dscr.xml: New file.
> 	* features/rs6000/power-ppr.xml: New file.
> 	* features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml: New file.
> 	* features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml: New file.
> 	* features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c: Generate.
> 	* features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c: Generate.
> 	* regformats/rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat: Generate.
> 	* regformats/rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat: Generate.
> 	* ppc-linux-nat.c: Include <sys/uio.h>.
> 	(fetch_regset, store_regset, check_regset): New functions.
> 	(fetch_register, fetch_ppc_registers): Call fetch_regset with
> 	DSCR and PPR regsets.
> 	(store_register, store_ppc_registers): Call store_regset with
> 	DSCR and PPR regsets.
> 	(ppc_linux_get_hwcap2): New function.
> 	(ppc_linux_nat_target::read_description): Call
> 	ppc_linux_get_hwcap2 and check_regset, set ppr_dscr field in the
> 	features struct if needed.
> 	* ppc-linux-tdep.c: Include
> 	features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c and
> 	features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c.
> 	(ppc32_regmap_ppr, ppc32_regmap_dscr, ppc32_linux_pprregset)
> 	(ppc32_linux_dscrregset): New globals.
> 	(ppc_linux_iterate_over_regset_sections): Call back with the ppr
> 	and dscr regsets.
> 	(ppc_linux_core_read_description): Check if the ppr and dscr
> 	sections are present and set ppr_dscr in the features struct.
> 	(_initialize_ppc_linux_tdep): Call
> 	initialize_tdesc_powerpc_isa205_ppr_dscr_vsx32l and
> 	initialize_tdesc_powerpc_isa205_ppr_dscr_vsx64l.
> 	* ppc-linux-tdep.h (ppc32_linux_pprregset)
> 	(ppc32_linux_dscrregset): Declare.
> 	* ppc-tdep.h (struct gdbarch_tdep) <ppc_ppr_regnum>: New field.
> 	<ppc_dscr_regnum>: New field.
> 	(enum) <PPC_PPR_REGNUM, PPC_DSCR_REGNUM>: New enum values.
> 	* rs6000-tdep.c (rs6000_gdbarch_init): Look for and validate ppr
> 	and dscr features.
> 	(ppc_process_record_op31): Record changes to PPR and DSCR.
> 
> gdb/gdbserver/ChangeLog:
> YYYY-MM-DD  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
> 	    Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
> 
> 	* configure.srv (ipa_ppc_linux_regobj): Add
> 	powerpc-isa205-ppr-dscr-vsx32l-ipa.o and
> 	powerpc-isa205-ppr-dscr-vsx64l-ipa.o.
> 	(powerpc*-*-linux*): Add powerpc-isa205-ppr-dscr-vsx32l.o and
> 	powerpc-isa205-ppr-dscr-vsx64l.o to srv_regobj, add
> 	rs6000/power-dscr.xml, rs6000/power-ppr.xml,
> 	rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml and
> 	rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml to srv_xmlfiles.
> 	* linux-ppc-tdesc-init.h (enum ppc_linux_tdesc)
> 	<PPC_TDESC_ISA205_PPR_DSCR_VSX>: New enum value.
> 	(init_registers_powerpc_isa205_ppr_dscr_vsx32l)
> 	(init_registers_powerpc_isa205_ppr_dscr_vsx64l): Declare.
> 	* linux-ppc-low.c: Include "elf/common.h" and <sys/uio.h>.
> 	(ppc_hwcap2): New global.
> 	(ppc_check_regset, ppc_fill_pprregset, ppc_store_pprregset)
> 	(ppc_fill_dscrregset, ppc_store_dscrregset): New functions.
> 	(ppc_regsets): Add entries for the DSCR and PPR regsets.
> 	(ppc_arch_setup): Get AT_HWCAP2.  Set ppr_dscr in features struct
> 	when needed.  Set sizes for the the DSCR and PPR regsets.
> 	(ppc_get_ipa_tdesc_idx): Return PPC_TDESC_ISA205_PPR_DSCR_VSX.
> 	(initialize_low_arch): Call
> 	init_registers_powerpc_isa205_ppr_dscr_vsx32l and
> 	init_registers_powerpc_isa205_ppr_dscr_vsx64l.
> 	* linux-ppc-ipa.c (get_ipa_tdesc): Handle
> 	PPC_TDESC_ISA205_PPR_DSCR_VSX.
> 	(initialize_low_tracepoint): Call
> 	init_registers_powerpc_isa205_ppr_dscr_vsx32l and
> 	init_registers_powerpc_isa205_ppr_dscr_vsx64l.
> 
> gdb/testsuite/ChangeLog:
> YYYY-MM-DD  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
> 
> 	* gdb.arch/powerpc-ppr-dscr.c: New file.
> 	* gdb.arch/powerpc-ppr-dscr.exp: New file.
> 
> gdb/doc/ChangeLog:
> YYYY-MM-DD  Pedro Franco de Carvalho  <pedromfc@linux.ibm.com>
> 
> 	* gdb.texinfo (PowerPC Features): Describe new features
> 	"org.gnu.gdb.power.ppr" and "org.gnu.gdb.power.dscr".

This is OK.

Thanks,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU/Linux compilers and toolchain
  Ulrich.Weigand@de.ibm.com



More information about the Gdb-patches mailing list