Commit Graph

62 Commits

Author SHA1 Message Date
Schimpe, Christina
fc14343205 gdb, gdbserver, python, testsuite: Remove MPX.
GDB deprecated the commands "show/set mpx bound" in GDB 15.1, as Intel
listed Intel(R) Memory Protection Extensions (MPX) as removed in 2019.
MPX is also deprecated in gcc (since v9.1), the linux kernel (since v5.6)
and glibc (since v2.35).  Let's now remove MPX support in GDB completely.

This includes the removal of:
- MPX functionality including register support
- deprecated mpx commands
- i386 and amd64 implementation of the hooks report_signal_info and
  get_siginfo_type
- tests
- and pretty printer.

We keep MPX register numbers to not break compatibility with old gdbservers.

Approved-By: Felix Willgerodt <felix.willgerodt@intel.com>
2024-09-25 11:06:57 +00:00
Andrew Burgess
1d506c26d9 Update copyright year range in header of all files managed by GDB
This commit is the result of the following actions:

  - Running gdb/copyright.py to update all of the copyright headers to
    include 2024,

  - Manually updating a few files the copyright.py script told me to
    update, these files had copyright headers embedded within the
    file,

  - Regenerating gdbsupport/Makefile.in to refresh it's copyright
    date,

  - Using grep to find other files that still mentioned 2023.  If
    these files were updated last year from 2022 to 2023 then I've
    updated them this year to 2024.

I'm sure I've probably missed some dates.  Feel free to fix them up as
you spot them.
2024-01-12 15:49:57 +00:00
Joel Brobecker
213516ef31 Update copyright year range in header of all files managed by GDB
This commit is the result of running the gdb/copyright.py script,
which automated the update of the copyright year range for all
source files managed by the GDB project to be updated to include
year 2023.
2023-01-01 17:01:16 +04:00
H.J. Lu
0653f01479 gdb: Consolidate 32bit-pkeys.xml and 64bit-pkeys.xml
1. Since 32bit-pkeys.xml and 64bit-pkeys.xml are identical, consolidate
them into a single keys.xml.
2. Enable PKU for x32 to fix:

$ gdbserver :123456 x32-program
...
.../gdbserver/regcache.cc:255: A problem internal to GDBserver has been detected
.
Unknown register pkru requested

on Tiger Lake.
2022-03-31 10:25:26 -07:00
Joel Brobecker
4a94e36819 Automatic Copyright Year update after running gdb/copyright.py
This commit brings all the changes made by running gdb/copyright.py
as per GDB's Start of New Year Procedure.

For the avoidance of doubt, all changes in this commits were
performed by the script.
2022-01-01 19:13:23 +04:00
Felix Willgerodt
8661f70c49 Add half support for AVX512 register view.
This adds support for the half datatype, FP16, to the AVX512 register printing.

gdb/ChangeLog:
2020-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>

	* i386-tdep.c (i386_zmm_type) <v32_half>: New field.
	(i386_ymm_type) <v16_half>: New field.
	(i386_gdbarch_init): Add set_gdbarch_half_format.
	* features/i386/64bit-avx512.xml: Add half type.
	* features/i386/64bit-avx512.c: Regenerated.
	* features/i386/64bit-sse.xml: Add half type.
	* features/i386/64bit-sse.c: Regenerated.

gdb/testsuite/ChangeLog:
2021-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>

	* gdb.arch/x86-avx512fp16.c: New file.
	* gdb.arch/x86-avx512fp16.exp: New file.
	* lib/gdb.exp (skip_avx512fp16_tests): New function.
2021-09-03 15:18:31 +02:00
Felix Willgerodt
41bbbb89c4 gdb, i386: Enable AVX512-bfloat16 for i386 targets.
Values of type bfloat16 can also be used on 32-bit targets, which was missed
in the original enablement.  This also adjusts the testcase to pass with
"unix/-m32", where only the lower 8 AVX registers are available.

gdb/ChangeLog:
2021-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>

	* features/i386/32bit-sse.xml: Add bfloat16 type.
	* features/i386/32bit-sse.c: Regenerated.

gdb/testsuite/ChangeLog:
2021-07-21  Felix Willgerodt  <Felix.Willgerodt@intel.com>

	* gdb.arch/x86-avx512bf16.exp: Only use x/z/ymm 0-7.
2021-09-03 14:50:16 +02:00
Joel Brobecker
3666a04883 Update copyright year range in all GDB files
This commits the result of running gdb/copyright.py as per our Start
of New Year procedure...

gdb/ChangeLog

        Update copyright year range in copyright header of all GDB files.
2021-01-01 12:12:21 +04:00
Felix Willgerodt
2a67f09db1 Add bfloat16 support for AVX512 register view.
This adds support for the bfloat16 datatype, which can be seen as a short
version of FP32, skipping the least significant 16 bits of the mantissa.
Since the datatype is currently only supported by the AVX512 registers,
the printing of bfloat16 values is only supported for xmm, ymm and zmm
registers.

gdb/ChangeLog:
2020-09-11  Moritz Riesterer  <moritz.riesterer@intel.com>
	    Felix Willgerodt  <Felix.Willgerodt@intel.com>

	* gdbarch.sh: Added bfloat16 type.
	* gdbarch.c: Regenerated.
	* gdbarch.h: Regenerated.
	* gdbtypes.c (floatformats_bfloat16): New struct.
	(gdbtypes_post_init): Add builtin_bfloat16.
	* gdbtypes.h (struct builtin_type) <builtin_bfloat16>: New member.
	(floatformats_bfloat16): New struct.
	* i386-tdep.c (i386_zmm_type): Add field "v32_bfloat16"
	(i386_ymm_type): Add field "v16_bfloat16"
	(i386_gdbarch_init): Add set_gdbarch_bfloat16_format.
	* target-descriptions.c (make_gdb_type): Add case TDESC_TYPE_BFLOAT16.
	* gdbsupport/tdesc.cc (tdesc_predefined_types): New member bfloat16.
	* gdbsupport/tdesc.h (tdesc_type_kind): New member TDESC_TYPE_BFLOAT16.
	* features/i386/64bit-avx512.xml: Add bfloat16 type.
	* features/i386/64bit-avx512.c: Regenerated.
	* features/i386/64bit-sse.xml: Add bfloat16 type.
	* features/i386/64bit-sse.c: Regenerated.

gdb/testsuite/ChangeLog:
2020-09-11  Moritz Riesterer  <moritz.riesterer@intel.com>
	    Felix Willgerodt  <Felix.Willgerodt@intel.com>

	* x86-avx512bf16.c: New file.
	* x86-avx512bf16.exp: Likewise.
	* lib/gdb.exp (skip_avx512bf16_tests): New function.
2020-09-11 11:42:47 -07:00
Joel Brobecker
b811d2c292 Update copyright year range in all GDB files.
gdb/ChangeLog:

        Update copyright year range in all GDB files.
2020-01-01 10:20:53 +04:00
Tom Tromey
268a13a5a3 Rename common to gdbsupport
This is the next patch in the ongoing series to move gdbsever to the
top level.

This patch just renames the "common" directory.  The idea is to do
this move in two parts: first rename the directory (this patch), then
move the directory to the top.  This approach makes the patches a bit
more tractable.

I chose the name "gdbsupport" for the directory.  However, as this
patch was largely written by sed, we could pick a new name without too
much difficulty.

Tested by the buildbot.

gdb/ChangeLog
2019-07-09  Tom Tromey  <tom@tromey.com>

	* contrib/ari/gdb_ari.sh: Change common to gdbsupport.
	* configure: Rebuild.
	* configure.ac: Change common to gdbsupport.
	* gdbsupport: Rename from common.
	* acinclude.m4: Change common to gdbsupport.
	* Makefile.in (CONFIG_SRC_SUBDIR, COMMON_SFILES)
	(HFILES_NO_SRCDIR, stamp-version, ALLDEPFILES): Change common to
	gdbsupport.
	* aarch64-tdep.c, ada-lang.c, ada-lang.h, agent.c, alloc.c,
	amd64-darwin-tdep.c, amd64-dicos-tdep.c, amd64-fbsd-nat.c,
	amd64-fbsd-tdep.c, amd64-linux-nat.c, amd64-linux-tdep.c,
	amd64-nbsd-tdep.c, amd64-obsd-tdep.c, amd64-sol2-tdep.c,
	amd64-tdep.c, amd64-windows-tdep.c, arch-utils.c,
	arch/aarch64-insn.c, arch/aarch64.c, arch/aarch64.h, arch/amd64.c,
	arch/amd64.h, arch/arm-get-next-pcs.c, arch/arm-linux.c,
	arch/arm.c, arch/i386.c, arch/i386.h, arch/ppc-linux-common.c,
	arch/riscv.c, arch/riscv.h, arch/tic6x.c, arm-tdep.c, auto-load.c,
	auxv.c, ax-gdb.c, ax-general.c, ax.h, breakpoint.c, breakpoint.h,
	btrace.c, btrace.h, build-id.c, build-id.h, c-lang.h, charset.c,
	charset.h, cli/cli-cmds.c, cli/cli-cmds.h, cli/cli-decode.c,
	cli/cli-dump.c, cli/cli-option.h, cli/cli-script.c,
	coff-pe-read.c, command.h, compile/compile-c-support.c,
	compile/compile-c.h, compile/compile-cplus-symbols.c,
	compile/compile-cplus-types.c, compile/compile-cplus.h,
	compile/compile-loc2c.c, compile/compile.c, completer.c,
	completer.h, contrib/ari/gdb_ari.sh, corefile.c, corelow.c,
	cp-support.c, cp-support.h, cp-valprint.c, csky-tdep.c, ctf.c,
	darwin-nat.c, debug.c, defs.h, disasm-selftests.c, disasm.c,
	disasm.h, dtrace-probe.c, dwarf-index-cache.c,
	dwarf-index-cache.h, dwarf-index-write.c, dwarf2-frame.c,
	dwarf2expr.c, dwarf2loc.c, dwarf2read.c, event-loop.c,
	event-top.c, exceptions.c, exec.c, extension.h, fbsd-nat.c,
	features/aarch64-core.c, features/aarch64-fpu.c,
	features/aarch64-pauth.c, features/aarch64-sve.c,
	features/i386/32bit-avx.c, features/i386/32bit-avx512.c,
	features/i386/32bit-core.c, features/i386/32bit-linux.c,
	features/i386/32bit-mpx.c, features/i386/32bit-pkeys.c,
	features/i386/32bit-segments.c, features/i386/32bit-sse.c,
	features/i386/64bit-avx.c, features/i386/64bit-avx512.c,
	features/i386/64bit-core.c, features/i386/64bit-linux.c,
	features/i386/64bit-mpx.c, features/i386/64bit-pkeys.c,
	features/i386/64bit-segments.c, features/i386/64bit-sse.c,
	features/i386/x32-core.c, features/riscv/32bit-cpu.c,
	features/riscv/32bit-csr.c, features/riscv/32bit-fpu.c,
	features/riscv/64bit-cpu.c, features/riscv/64bit-csr.c,
	features/riscv/64bit-fpu.c, features/tic6x-c6xp.c,
	features/tic6x-core.c, features/tic6x-gp.c, filename-seen-cache.h,
	findcmd.c, findvar.c, fork-child.c, gcore.c, gdb_bfd.c, gdb_bfd.h,
	gdb_proc_service.h, gdb_regex.c, gdb_select.h, gdb_usleep.c,
	gdbarch-selftests.c, gdbthread.h, gdbtypes.h, gnu-nat.c,
	go32-nat.c, guile/guile.c, guile/scm-ports.c,
	guile/scm-safe-call.c, guile/scm-type.c, i386-fbsd-nat.c,
	i386-fbsd-tdep.c, i386-go32-tdep.c, i386-linux-nat.c,
	i386-linux-tdep.c, i386-tdep.c, i387-tdep.c,
	ia64-libunwind-tdep.c, ia64-linux-nat.c, inf-child.c,
	inf-ptrace.c, infcall.c, infcall.h, infcmd.c, inferior-iter.h,
	inferior.c, inferior.h, inflow.c, inflow.h, infrun.c, infrun.h,
	inline-frame.c, language.h, linespec.c, linux-fork.c, linux-nat.c,
	linux-tdep.c, linux-thread-db.c, location.c, machoread.c,
	macrotab.h, main.c, maint.c, maint.h, memattr.c, memrange.h,
	mi/mi-cmd-break.h, mi/mi-cmd-env.c, mi/mi-cmd-stack.c,
	mi/mi-cmd-var.c, mi/mi-interp.c, mi/mi-main.c, mi/mi-parse.h,
	minsyms.c, mips-linux-tdep.c, namespace.h,
	nat/aarch64-linux-hw-point.c, nat/aarch64-linux-hw-point.h,
	nat/aarch64-linux.c, nat/aarch64-sve-linux-ptrace.c,
	nat/amd64-linux-siginfo.c, nat/fork-inferior.c,
	nat/linux-btrace.c, nat/linux-btrace.h, nat/linux-namespaces.c,
	nat/linux-nat.h, nat/linux-osdata.c, nat/linux-personality.c,
	nat/linux-procfs.c, nat/linux-ptrace.c, nat/linux-ptrace.h,
	nat/linux-waitpid.c, nat/mips-linux-watch.c,
	nat/mips-linux-watch.h, nat/ppc-linux.c, nat/x86-dregs.c,
	nat/x86-dregs.h, nat/x86-linux-dregs.c, nat/x86-linux.c,
	nto-procfs.c, nto-tdep.c, objfile-flags.h, objfiles.c, objfiles.h,
	obsd-nat.c, observable.h, osdata.c, p-valprint.c, parse.c,
	parser-defs.h, ppc-linux-nat.c, printcmd.c, probe.c, proc-api.c,
	procfs.c, producer.c, progspace.h, psymtab.h,
	python/py-framefilter.c, python/py-inferior.c, python/py-ref.h,
	python/py-type.c, python/python.c, record-btrace.c, record-full.c,
	record.c, record.h, regcache-dump.c, regcache.c, regcache.h,
	remote-fileio.c, remote-fileio.h, remote-sim.c, remote.c,
	riscv-tdep.c, rs6000-aix-tdep.c, rust-exp.y, s12z-tdep.c,
	selftest-arch.c, ser-base.c, ser-event.c, ser-pipe.c, ser-tcp.c,
	ser-unix.c, skip.c, solib-aix.c, solib-target.c, solib.c,
	source-cache.c, source.c, source.h, sparc-nat.c, spu-linux-nat.c,
	stack.c, stap-probe.c, symfile-add-flags.h, symfile.c, symfile.h,
	symtab.c, symtab.h, target-descriptions.c, target-descriptions.h,
	target-memory.c, target.c, target.h, target/waitstatus.c,
	target/waitstatus.h, thread-iter.h, thread.c, tilegx-tdep.c,
	top.c, top.h, tracefile-tfile.c, tracefile.c, tracepoint.c,
	tracepoint.h, tui/tui-io.c, ui-file.c, ui-out.h,
	unittests/array-view-selftests.c,
	unittests/child-path-selftests.c, unittests/cli-utils-selftests.c,
	unittests/common-utils-selftests.c,
	unittests/copy_bitwise-selftests.c, unittests/environ-selftests.c,
	unittests/format_pieces-selftests.c,
	unittests/function-view-selftests.c,
	unittests/lookup_name_info-selftests.c,
	unittests/memory-map-selftests.c, unittests/memrange-selftests.c,
	unittests/mkdir-recursive-selftests.c,
	unittests/observable-selftests.c,
	unittests/offset-type-selftests.c, unittests/optional-selftests.c,
	unittests/parse-connection-spec-selftests.c,
	unittests/ptid-selftests.c, unittests/rsp-low-selftests.c,
	unittests/scoped_fd-selftests.c,
	unittests/scoped_mmap-selftests.c,
	unittests/scoped_restore-selftests.c,
	unittests/string_view-selftests.c, unittests/style-selftests.c,
	unittests/tracepoint-selftests.c, unittests/unpack-selftests.c,
	unittests/utils-selftests.c, unittests/xml-utils-selftests.c,
	utils.c, utils.h, valarith.c, valops.c, valprint.c, value.c,
	value.h, varobj.c, varobj.h, windows-nat.c, x86-linux-nat.c,
	xml-support.c, xml-support.h, xml-tdesc.h, xstormy16-tdep.c,
	xtensa-linux-nat.c, dwarf2read.h: Change common to gdbsupport.

gdb/gdbserver/ChangeLog
2019-07-09  Tom Tromey  <tom@tromey.com>

	* configure: Rebuild.
	* configure.ac: Change common to gdbsupport.
	* acinclude.m4: Change common to gdbsupport.
	* Makefile.in (SFILES, OBS, GDBREPLAY_OBS, IPA_OBJS)
	(version-generated.c, gdbsupport/%-ipa.o, gdbsupport/%.o): Change
	common to gdbsupport.
	* ax.c, event-loop.c, fork-child.c, gdb_proc_service.h,
	gdbreplay.c, gdbthread.h, hostio-errno.c, hostio.c, i387-fp.c,
	inferiors.c, inferiors.h, linux-aarch64-tdesc-selftest.c,
	linux-amd64-ipa.c, linux-i386-ipa.c, linux-low.c,
	linux-tic6x-low.c, linux-x86-low.c, linux-x86-tdesc-selftest.c,
	linux-x86-tdesc.c, lynx-i386-low.c, lynx-low.c, mem-break.h,
	nto-x86-low.c, regcache.c, regcache.h, remote-utils.c, server.c,
	server.h, spu-low.c, symbol.c, target.h, tdesc.c, tdesc.h,
	thread-db.c, tracepoint.c, win32-i386-low.c, win32-low.c: Change
	common to gdbsupport.
2019-07-09 07:45:38 -06:00
Alan Hayward
df0bb381e2 i386/AArch64: Remove unused xml files
Remove all the xml files that are no longer used by gdbserver,
and remove their entries from the makefile.

gdb/ChangeLog:

	* features/Makefile: Remove unused xml files.
	* features/aarch64.xml: Remove.
	* features/i386/amd64-avx-avx512-linux.xml: Remove.
	* features/i386/amd64-avx-avx512.xml: Remove.
	* features/i386/amd64-avx-linux.xml: Remove.
	* features/i386/amd64-avx-mpx-avx512-pku-linux.xml: Remove.
	* features/i386/amd64-avx-mpx-avx512-pku.xml: Remove.
	* features/i386/amd64-avx-mpx-linux.xml: Remove.
	* features/i386/amd64-avx-mpx.xml: Remove.
	* features/i386/amd64-avx.xml: Remove.
	* features/i386/amd64-linux.xml: Remove.
	* features/i386/amd64-mpx-linux.xml: Remove.
	* features/i386/amd64-mpx.xml: Remove.
	* features/i386/amd64.xml: Remove.
	* features/i386/i386-avx-avx512-linux.xml: Remove.
	* features/i386/i386-avx-avx512.xml: Remove.
	* features/i386/i386-avx-linux.xml: Remove.
	* features/i386/i386-avx-mpx-avx512-pku-linux.xml: Remove.
	* features/i386/i386-avx-mpx-avx512-pku.xml: Remove.
	* features/i386/i386-avx-mpx-linux.xml: Remove.
	* features/i386/i386-avx-mpx.xml: Remove.
	* features/i386/i386-avx.xml: Remove.
	* features/i386/i386-linux.xml: Remove.
	* features/i386/i386-mmx-linux.xml: Remove.
	* features/i386/i386-mmx.xml: Remove.
	* features/i386/i386-mpx-linux.xml: Remove.
	* features/i386/i386-mpx.xml: Remove.
	* features/i386/i386.xml: Remove.
	* features/i386/x32-avx-avx512-linux.xml: Remove.
	* features/i386/x32-avx-linux.xml: Remove.
	* features/i386/x32-linux.xml: Remove.
2019-07-04 11:55:21 +01:00
John Baldwin
1163a4b7a3 Support the fs_base and gs_base registers on i386.
As on amd64, these registers hold the base address of the fs and gs
segments, respectively.  For i386 these two registers are 32 bits.

gdb/ChangeLog:

	* amd64-fbsd-nat.c (amd64_fbsd_nat_target::read_description):
	Update calls to i386_target_description to add 'segments'
	parameter.
	* amd64-tdep.c (amd64_init_abi): Set tdep->fsbase_regnum.  Don't
	add segment base registers.
	* arch/i386.c (i386_create_target_description): Add 'segments'
	parameter to enable segment base registers.
	* arch/i386.h (i386_create_target_description): Likewise.
	* features/i386/32bit-segments.xml: New file.
	* features/i386/32bit-segments.c: Generate.
	* i386-fbsd-nat.c (i386_fbsd_nat_target::read_description): Update
	call to i386_target_description to add 'segments' parameter.
	* i386-fbsd-tdep.c (i386fbsd_core_read_description): Likewise.
	* i386-go32-tdep.c (i386_go32_init_abi): Likewise.
	* i386-linux-tdep.c (i386_linux_read_description): Likewise.
	* i386-tdep.c (i386_validate_tdesc_p): Add segment base registers
	if feature is present.
	(i386_gdbarch_init): Pass I386_NUM_REGS to set_gdbarch_num_regs.
	Add 'segments' parameter to call to i386_target_description.
	(i386_target_description): Add 'segments' parameter to enable
	segment base registers.
	(_initialize_i386_tdep) [GDB_SELF_TEST]: Add 'segments' parameter
	to call to i386_target_description.
	* i386-tdep.h (struct gdbarch_tdep): Add 'fsbase_regnum'.
	(enum i386_regnum): Add I386_FSBASE_REGNUM and I386_GSBASE_REGNUM.
	Define I386_NUM_REGS.
	(i386_target_description): Add 'segments' parameter to enable
	segment base registers.

gdb/gdbserver/ChangeLog:

	* linux-x86-tdesc.c (i386_linux_read_description): Update call to
	i386_create_target_description for 'segments' parameter.
	* lynx-i386-low.c (lynx_i386_arch_setup): Likewise.
	* nto-x86-low.c (nto_x86_arch_setup): Likewise.
	* win32-i386-low.c (i386_arch_setup): Likewise.
2019-03-12 13:39:02 -07:00
Joel Brobecker
42a4f53d2b Update copyright year range in all GDB files.
This commit applies all changes made after running the gdb/copyright.py
script.

Note that one file was flagged by the script, due to an invalid
copyright header
(gdb/unittests/basic_string_view/element_access/char/empty.cc).
As the file was copied from GCC's libstdc++-v3 testsuite, this commit
leaves this file untouched for the time being; a patch to fix the header
was sent to gcc-patches first.

gdb/ChangeLog:

	Update copyright year range in all GDB files.
2019-01-01 10:01:51 +04:00
Alan Hayward
3b74854b8d Remove xml file references from target descriptions
gdb/
	* common/tdesc.h (tdesc_create_feature): Remove xml filename
	parameter.
	* features/aarch64-core.c (create_feature_aarch64_core):
	Regenerate.
	* features/aarch64-fpu.c (create_feature_aarch64_fpu):
	Likewise.
	* features/i386/32bit-avx.c (create_feature_i386_32bit_avx):
	Likewise.
	* features/i386/32bit-avx512.c
	(create_feature_i386_32bit_avx512): Likewise.
	* features/i386/32bit-core.c (create_feature_i386_32bit_core):
	Likewise.
	* features/i386/32bit-linux.c (create_feature_i386_32bit_linux):
	Likewise.
	* features/i386/32bit-mpx.c (create_feature_i386_32bit_mpx):
	Likewise.
	* features/i386/32bit-pkeys.c (create_feature_i386_32bit_pkeys):
	Likewise.
	* features/i386/32bit-sse.c (create_feature_i386_32bit_sse):
	Likewise.
	* features/i386/64bit-avx.c (create_feature_i386_64bit_avx):
	Likewise.
	* features/i386/64bit-avx512.c
	(create_feature_i386_64bit_avx512): Likewise.
	* features/i386/64bit-core.c (create_feature_i386_64bit_core):
	Likewise.
	* features/i386/64bit-linux.c (create_feature_i386_64bit_linux):
	Likewise.
	* features/i386/64bit-mpx.c (create_feature_i386_64bit_mpx):
	Likewise.
	* features/i386/64bit-pkeys.c (create_feature_i386_64bit_pkeys):
	Likewise.
	* features/i386/64bit-segments.c
	(create_feature_i386_64bit_segments): Likewise.
	* features/i386/64bit-sse.c (create_feature_i386_64bit_sse):
	Likewise.
	* features/i386/x32-core.c
	(create_feature_i386_x32_core): Likewise.
	* features/tic6x-c6xp.c (create_feature_tic6x_c6xp): Likewise.
	* features/tic6x-core.c (create_feature_tic6x_core): Likewise.
	* features/tic6x-gp.c (create_feature_tic6x_gp): Likewise.
	* target-descriptions.c: In generated code, don't pass xml
	filename.

gdbserver/
	* tdesc.c: Remove xml parameter.
2018-04-18 20:49:37 +01:00
Alan Hayward
f46cd62a69 Move arch/tdesc.h to common/tdesc.h
gdb/
	* arch/amd64.h: Use common/tdesc.h.
	* arch/i386.c: Likewise.
	* arch/i386.h: Likewise.
	* arch/tic6x.c: Likewise.
	* arch/tdesc.h: Move file from here...
	* common/tdesc.h: ...to here.
	* features/aarch64-core.c: Regenerate.
	* features/aarch64-fpu.c: Regenerate.
	* features/i386/32bit-avx.c: Regenerate.
	* features/i386/32bit-avx512.c: Regenerate.
	* features/i386/32bit-core.c: Regenerate.
	* features/i386/32bit-linux.c: Regenerate.
	* features/i386/32bit-mpx.c: Regenerate.
	* features/i386/32bit-pkeys.c: Regenerate.
	* features/i386/32bit-sse.c: Regenerate.
	* features/i386/64bit-avx.c: Regenerate.
	* features/i386/64bit-avx512.c: Regenerate.
	* features/i386/64bit-core.c: Regenerate.
	* features/i386/64bit-linux.c: Regenerate.
	* features/i386/64bit-mpx.c: Regenerate.
	* features/i386/64bit-pkeys.c: Regenerate.
	* features/i386/64bit-segments.c: Regenerate.
	* features/i386/64bit-sse.c: Regenerate.
	* features/i386/x32-core.c: Regenerate.
	* features/tic6x-c6xp.c: Regenerate.
	* features/tic6x-core.c: Regenerate.
	* features/tic6x-gp.c: Regenerate.
	* target-descriptions.c: Use common/tdesc.h.
	* target-descriptions.h: Likewise.

gdbserver/
	* tdesc.c: Use common/tdesc.h.
	* tdesc.h: Likewise.
2018-02-26 11:46:57 +00:00
Joel Brobecker
e2882c8578 Update copyright year range in all GDB files
gdb/ChangeLog:

        Update copyright year range in all GDB files
2018-01-02 07:38:06 +04:00
Simon Marchi
a8d2e5856f Do not emit "field_type" var if not needed on "maint print c-tdesc"
While fiddling a bit with -Wunused-variable, Sergio noticed that "maint
print c-tdesc" was always generating code for the "tdesc_type
*field_type" variable, even when it wasn't used.  This is caught by GCC
when using -Wunused-variable, of course.

This patch changes the print_c_tdesc class to only output the field
declaration when we actually need it.

It shouldn't be necessary to do the same with the other variable
declarations (type_with_fields and element_type), because they are
always if they are declared.

The C files in features/ are regenerated, some declarations of
field_type are removed, as expected, while some others move to where
they are used for the first time.

gdb/ChangeLog:

	* target-descriptions.c (print_c_tdesc) <visit>: Don't output
	field_type declaration, use printf_field_type_assignment
	instead.
	<printf_field_type_assignment>: New method.
	* features/aarch64-core.c, features/aarch64-fpu.c
	features/arc-arcompact.c, features/arc-v2.c,
	features/arm/arm-with-iwmmxt.c, features/i386/32bit-core.c,
	features/i386/32bit-mpx.c, features/i386/32bit-sse.c,
	features/i386/64bit-avx512.c, features/i386/64bit-core.c,
	features/i386/64bit-mpx.c, features/i386/64bit-sse.c,
	features/i386/x32-core.c, features/or1k.c,
	features/rs6000/powerpc-7400.c,
	features/rs6000/powerpc-altivec32.c,
	features/rs6000/powerpc-altivec32l.c,
	features/rs6000/powerpc-altivec64.c,
	features/rs6000/powerpc-altivec64l.c,
	features/rs6000/powerpc-cell32l.c,
	features/rs6000/powerpc-cell64l.c,
	features/rs6000/powerpc-isa205-altivec32l.c,
	features/rs6000/powerpc-isa205-altivec64l.c,
	features/rs6000/powerpc-isa205-vsx32l.c,
	features/rs6000/powerpc-isa205-vsx64l.c,
	features/rs6000/powerpc-vsx32.c,
	features/rs6000/powerpc-vsx32l.c,
	features/rs6000/powerpc-vsx64.c,
	features/rs6000/powerpc-vsx64l.c, features/s390-gs-linux64.c,
	features/s390-tevx-linux64.c, features/s390-vx-linux64.c,
	features/s390x-gs-linux64.c, features/s390x-tevx-linux64.c,
	features/s390x-vx-linux64.c: Re-generate.
2017-12-21 18:21:45 -05:00
Simon Marchi
d4a0e8b57d Split tdesc_type into multiple classes
This patch makes tdesc_type an abstract base class and creates three
subclasses:

- tdesc_type_builtin, for builtin types
- tdesc_type_vector, for vector types
- tdesc_type_with_fields, for struct, union, flag and enum types

This allows getting rid of the union in tdesc_type and to not allow the
std::vector separately.  I tried to go further and create separate
classes for struct, union, flag and enum, but it proved too difficult.
One problem is that from the point of the of the target description
code, the types tdesc_type_* are opaque (only forward-declared).
Therefore, it doesn't know about inheritance relationship between those
classes.  This makes it impossible to make functions that accept a
pointer to a base class and pass a pointer to a derived class, for
example.  I think this patch here is a good compromise, and if somebody
wants to improve things further, the door is open.

A make_gdb_type virtual pure method is added to tdesc_type, which
replaces the current tdesc_gdb_type function.  Calling this method on a
tdesc_type returns the corresponding built gdb type.

gdb/ChangeLog:

	* target-descriptions.c (struct tdesc_type): Use default
	destructor.
	<u>: Remove.
	<accept>: Remove.
	(struct tdesc_type_builtin): New.
	(struct tdesc_type_vector): New.
	(struct tdesc_type_with_fields): New.
	(tdesc_predefined_types): Change type to tdesc_type_builtin[].
	(tdesc_gdb_type): Remove.
	(tdesc_register_type): Adjust.
	(tdesc_create_vector): Create tdesc_type_vector.
	(tdesc_create_struct): Create tdesc_type_with_fields.
	(tdesc_set_struct_size): Change parameter type.
	(tdesc_create_union): Create tdesc_type_with_fields.
	(tdesc_create_flags): Likewise.
	(tdesc_create_enum): Likewise.
	(tdesc_add_field): Change parameter type.
	(tdesc_add_typed_bitfield): Likewise.
	(tdesc_add_bitfield): Likewise.
	(tdesc_add_flag): Likewise.
	(tdesc_add_enum_value): Likewise.
	(print_c_tdesc) <visit>: Remove overload with tdesc_type
	parameter, add overloads for tdesc_type_builtin,
	tdesc_type_with_fields and tdesc_type_vector.
	<m_printed_type>: Remove.
	<m_printed_element_type, m_printed_type_with_fields>: Add.
	* target-descriptions.h (tdesc_create_enum): Change return type.
	(tdesc_add_typed_bitfield): Change parameter type.
	(tdesc_add_enum_value): Change parameter type.
	* xml-tdesc.c (struct tdesc_parsing_data) <current_type>: Change
	type to tdesc_type_with_fields.
	(tdesc_start_struct): Adjust.
	(tdesc_start_flags): Adjust.
	(tdesc_start_enum): Adjust.
	(tdesc_start_field): Adjust.
	* arch/tdesc.h (struct tdesc_type_builtin): Forward-declare.
	(struct tdesc_type_vector): Forward-declare.
	(struct tdesc_type_with_fields): Forward-declare.
	(tdesc_create_struct): Change return type.
	(tdesc_create_union): Likewise.
	(tdesc_create_flags): Likewise.
	(tdesc_add_field): Change parameter type.
	(tdesc_set_struct_size): Likewise.
	(tdesc_add_bitfield): Likewise.
	(tdesc_add_flag): Likewise.
	* features: Re-generate C files.

gdb/gdbserver/ChangeLog:

	* tdesc.c (struct tdesc_type): Change return type.
	(tdesc_add_flag): Change parameter type.
	(tdesc_add_bitfield): Likewise.
	(tdesc_add_field): Likewise.
	(tdesc_set_struct_size): Likewise.
2017-12-05 16:30:28 -05:00
Yao Qi
22916b0786 Convert the rest x86 target descriptions
This patch changes the rest of x86 target descriptions in GDB and
GDBserver.

gdb:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* amd64-tdep.c (amd64_target_description): Create target
	descriptions.
	(_initialize_amd64_tdep): Don't call functions
	initialize_tdesc_amd64_*.  Add self tests.
	* arch/amd64.c (amd64_create_target_description): Add parameter
	is_linux.  Call set_tdesc_osabi if is_linux is true.
	* arch/amd64.h (amd64_create_target_description): Update the
	declaration.
	* arch/i386.c (i386_create_target_description): Add parameter
	is_linux.  Call set_tdesc_osabi if is_linux is true.
	* arch/i386.h (i386_create_target_description): Update
	declaration.
	* configure.tgt: Add i386.o to gdb_target_obs.
	* features/Makefile (XMLTOC): Remove i386/*.xml.
	* features/i386/amd64-avx-avx512.c: Remove.
	* features/i386/amd64-avx-mpx-avx512-pku.c: Remove.
	* features/i386/amd64-avx-mpx.c: Remove.
	* features/i386/amd64-avx.c: Remove.
	* features/i386/amd64-mpx.c: Remove.
	* features/i386/amd64.c: Remove.
	* features/i386/i386-avx-avx512.c: Remove.
	* features/i386/i386-avx-mpx-avx512-pku.c: Remove.
	* features/i386/i386-avx-mpx.c: Remove.
	* features/i386/i386-avx.c: Remove.
	* features/i386/i386-mmx.c: Remove.
	* features/i386/i386-mpx.c: Remove.
	* features/i386/i386.c: Remove.
	* i386-tdep.c: Don't include features/i386/i386*.c., include
	target-descriptions.h and arch/i386.h.
	(i386_target_description): Create target descriptions.
	(i386_gdbarch_init): Don't call initialize_tdesc_i386_*
	functions.  Do self tests.

gdb/gdbserver:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* configure.srv (srv_i386_regobj): Remove.
	(srv_amd64_regobj): Remove.
	(srv_regobj): Set it to "" for x86 non-linux targets.
	* linux-x86-tdesc.c (i386_linux_read_description):
	* lynx-i386-low.c: Include x86-xstate.h and arch/i386.h.
	(init_registers_i386): Remove the declaration.
	(tdesc_i386): Remove the declaration.
	(lynx_i386_arch_setup): Call i386_create_target_description.
	* nto-x86-low.c: Likewise.
	* win32-i386-low.c [__x86_64__]: include arch/amd64.h.
	[!__x86_64__]: include arch/i386.h.
	(i386_arch_setup) [__x86_64__]: Call amd64_create_target_description.
2017-09-05 09:54:54 +01:00
Yao Qi
0854b7b187 Remove features/i386/amd64-*linux.c and features/i386/x32-*linux.c
gdb:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* features/Makefile (XMLTOC): Remove i386/amd64XXX-linux.xml.
	* features/i386/amd64-avx-avx512-linux.c: Removed.
	* features/i386/amd64-avx-linux.c: Removed.
	* features/i386/amd64-avx-mpx-avx512-pku-linux.c: Removed.
	* features/i386/amd64-avx-mpx-linux.c: Removed.
	* features/i386/amd64-linux.c: Removed.
	* features/i386/amd64-mpx-linux.c: Removed.
	* features/i386/x32-avx-avx512-linux.c: Removed.
	* features/i386/x32-avx-linux.c: Removed.
	* features/i386/x32-linux.c: Removed.
2017-09-05 09:54:54 +01:00
Yao Qi
6c73f67f9c Lazily and dynamically create amd64-linux target descriptions
This patch starts to use the generate c feature files to dynamically
create amd64-linux target descriptions.

gdb:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* amd64-linux-tdep.c: Don't include amd64-XXX-linux and
	x32-XXX-linux.c.  Include 64bit-XX.c and x32-XX.c.
	(amd64_linux_read_description): Create target descriptions.
	(_initialize_amd64_linux_tdep): Don't call initialize_tdesc_XXX
	functions.  Add unit tests.
	* features/Makefile (FEATURE_XMLFILES): Append 64bit-XXX.xml and
	x32-core.xml.
	* features/i386/64bit-avx.c: Generated.
	* features/i386/64bit-avx512.c: Generated.
	* features/i386/64bit-core.c: Generated.
	* features/i386/64bit-linux.c: Generated.
	* features/i386/64bit-mpx.c: Generated.
	* features/i386/64bit-pkeys.c: Generated.
	* features/i386/64bit-segments.c: Generated.
	* features/i386/64bit-sse.c: Generated.
	* features/i386/x32-core.c: Generated.
	* target-descriptions.c (maint_print_c_tdesc_cmd): Print feature
	c files for amd64-linux and x32-linux.
2017-09-05 09:54:54 +01:00
Yao Qi
188c9e6dcb Remove features/i386/i386-*linux.c
Now, features/i386/i386-XXX-linux.c are not used, remove them.

gdb:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* features/Makefile (XMLTOC): Remove i386/i386-XX-linux.xml.
	* features/i386/i386-avx-avx512-linux.c: Remove.
	* features/i386/i386-avx-linux.c: Remove.
	* features/i386/i386-avx-mpx-avx512-pku-linux.c: Remove.
	* features/i386/i386-avx-mpx-linux.c: Remove.
	* features/i386/i386-linux.c: Remove.
	* features/i386/i386-mmx-linux.c: Remove.
	* features/i386/i386-mpx-linux.c: Remove.
2017-09-05 09:54:53 +01:00
Yao Qi
0abe8a8992 Dynamically composite xml in reply to GDB
GDBserver still uses pre-generated target descriptions in order to
reply to GDB's query on target description (see xml-builtin-generated.c
in GDBserver build directory).  This patch teaches GDBserver to
create XML contents according to the target descriptions rather than
using pre-generated ones.

First, change target feature c files to pass the feature xml file
name to tdesc_create_feature, so that target description in GDBserver
can record them, and create XML contents from these features in
buffer, like

  ...
  <xi:include href="$FEATURE1_XML_NAME"/>
  <xi:include href="$FEATURE2_XML_NAME"/>
  ...

and send this buffer back to GDB.

Note that this patch reuses target_desc.xmltarget a little bit, which is
to hold the XML contents dynamically generated in tdesc_get_features_xml.
However, it is not xfree'ed in ~target_desc, because we can't tell it is
from xstrdup or a literal string.  Since we don't delete target_desc,
there is no memory leak yet.  After we change all target descriptions to
the new style, target_desc.xmltarget is from xstrdup, then, we can safely
xfree it in ~target_desc.

gdb:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* arch/tdesc.h (tdesc_create_feature): Add an argument xml.
	* target-descriptions.c (tdesc_create_feature): Likewise, and
	adjust code.
	* features/i386/32bit-avx.c: Re-generated.
	* features/i386/32bit-avx512.c: Re-generated.
	* features/i386/32bit-core.c: Re-generated.
	* features/i386/32bit-linux.c: Re-generated.
	* features/i386/32bit-mpx.c: Re-generated.
	* features/i386/32bit-pkeys.c: Re-generated.
	* features/i386/32bit-sse.c: Re-generated.

gdb/gdbserver:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* linux-x86-tdesc.c: Don't include <inttypes.h>.
	(i386_linux_read_description) [!IN_PROCESS_AGENT]: Call
	set_tdesc_architecture and set_tdesc_osabi.  Remove code setting
	.xmltarget.
	* server.c (get_features_xml): Call tdesc_get_features_xml.
	* tdesc.c (set_tdesc_architecture): New function.
	(set_tdesc_osabi): New function.
	(tdesc_get_features_xml): New function.
	(tdesc_create_feature): Add an argument.
	* tdesc.h (struct target_desc) <features>: New field.
	<arch, osabi>: New field.
	(~target_desc): xfree features, arch, and osabi.
	(target_desc::oerator==): Don't compare .xmltarget.
	[!IN_PROCESS_AGENT] (set_tdesc_architecture): Declare.
	(set_tdesc_osabi): Likewise.
	(tdesc_get_features_xml): Likewise.
2017-09-05 09:54:53 +01:00
Yao Qi
f49ff00066 [GDBserver] Centralize tdesc for i386-linux
tdesc_i386_XXX_linux is used in many places in linux-x86-low.c and this
patch adds a new function i386_linux_read_description to return the right
tdesc according to xcr0.  i386_linux_read_description is quite similar to
the counterpart in GDB, and the following patch will share the duplicated
code, so this patch adds arch/tdesc.h includes the declarations of various
tdesc apis which are used by the shared code.  The generated c feature
files can include arch/tdesc.h only.

gdb/gdbserver:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* configure.srv (srv_tgtobj): Append linux-x86-tdesc.o.
	(ipa_obj): Likewise.
	* linux-i386-ipa.c: Include common/x86-xstate.h
	(get_ipa_tdesc): Call i386_linux_read_description.
	(initialize_low_tracepoint): Don't call  init_registers_XXX
	functions, call initialize_low_tdesc instead.
	* linux-x86-low.c (x86_linux_read_description): Call
	i386_linux_read_description.
	(initialize_low_arch): Don't call init_registers_i386_XXX
	functions, call initialize_low_tdesc.
	* linux-x86-tdesc.c: New file.
	* linux-x86-tdesc.h (x86_linux_tdesc): New X86_TDESC_LAST.
	(i386_get_ipa_tdesc_idx): Declare.
	(i386_get_ipa_tdesc): Declare.
	(initialize_low_tdesc): Declare.

gdb:

2017-09-05  Yao Qi  <yao.qi@linaro.org>

	* arch/tdesc.h: New file.
	* regformats/regdat.sh: Generate code using tdesc_create_reg.
	* target-descriptions.c: Update comments.
	* target-descriptions.h: Include "arch/tdesc.h".  Remove the
	declarations.
	* features/i386/32bit-avx.c: Re-generated.
	* features/i386/32bit-avx512.c: Re-generated.
	* features/i386/32bit-core.c: Re-generated.
	* features/i386/32bit-linux.c: Re-generated.
	* features/i386/32bit-mpx.c: Re-generated.
	* features/i386/32bit-pkeys.c: Re-generated.
	* features/i386/32bit-sse.c: Re-generated.
2017-09-05 09:54:53 +01:00
Yao Qi
57757c2f09 Remove x32 non-linux target descriptions
x32 non-linux target descriptions are not used in GDB or GDBserver.  This
patch removes them.

gdb:

2017-08-09  Yao Qi  <yao.qi@linaro.org>

	* amd64-tdep.h (tdesc_x32): Remove the declaration.
	* amd64-tdep.c: Don't include features/i386/x32*.c.
	(_initialize_amd64_tdep): Don't call initialize_tdesc_x32*
	functions.
	* features/Makefile (WHICH): Remove i386/x32, i386/x32-avx,
	and i386/x32-avx-avx512.
	(XMLTOC): Remove i386/x32-avx.xml, i386/x32-avx-avx512.xml,
	and i386/x32.xml.
	* features/i386/x32-avx-avx512.c: Removed.
	* features/i386/x32-avx-avx512.xml: Removed.
	* features/i386/x32-avx.c: Removed.
	* features/i386/x32-avx.xml: Removed.
	* features/i386/x32.c: Removed.
	* features/i386/x32.xml: Removed.
	* regformats/i386/x32-avx-avx512.dat: Removed.
	* regformats/i386/x32-avx.dat: Removed.
	* regformats/i386/x32.dat: Removed.

gdb/gdbserver:

2017-08-09  Yao Qi  <yao.qi@linaro.org>

	* configure.srv (srv_amd64_regobj): Remove x32.o, x32-avx.o
	and x32-avx-avx512.o.
	(srv_amd64_xmlfiles): Remove i386/x32.xml, i386/x32-avx.xml
	i386/x32-avx-avx512.xml.
2017-08-09 12:28:59 +01:00
Yao Qi
ea03d0d3c3 Lazily and dynamically create i386-linux target descriptions
Instead of using pre-generated target descriptions, this patch
changes GDB to lazily and dynamically create target descriptions
according to the target hardware capability (xcr0 in i386).
This support any combination of target features.

Some reg in target description has "regnum" attribute, so its register
number is got from the attribute value instead from sequential allocation.

  <reg name="xmm0" bitsize="128" type="vec128" regnum="32"/>

when target description is created, it should match the regnum, so this
patch adds a new field m_next_regnum to track it, if attribute number is
greater than the m_next_regnum, print the code to set register number
explicitly.

gdb:

2017-07-26  Yao Qi  <yao.qi@linaro.org>

	* i386-linux-tdep.c: Don't include features/i386/i386-*linux.c.
	Include features/i386/32bit-*.c.
	(i386_linux_read_description): Generate target description if it
	doesn't exist.
	(_initialize_i386_linux_tdep): Don't call _initialize_tdesc_i386
	functions.
	* features/i386/32bit-linux.c: Re-generated.
	* features/i386/32bit-sse.c: Likewise.
	* target-descriptions.c (print_c_feature::visit): Print code to
	set register number if needed.
	(print_c_feature) <m_next_regnum>: New field.
2017-07-26 14:39:54 +01:00
Yao Qi
25aa13e522 Generate c for feature instead of tdesc
This patch changes Makefile and command "maint print c-files" so
that GDB can print c files for features instead target description.
Previously, we feed GDB a target description xml file, which generate
c files including multiple features.

With this patch, in Makefile, we wrap each feature xml file, and
create a temp target description which include only one feature.
Then, adjust the target description printer for them, and print
a c function for each given feature, so that we can use these
c functions later to create target description in a flexible way.

gdb:

2017-07-26  Yao Qi  <yao.qi@linaro.org>

	* features/Makefile (CFILES): Rename with TDESC_CFILES.
	(FEATURE_XMLFILES): New.
	(FEATURE_CFILES): New.
	New rules.
	(clean-cfiles): Remove generated c files.
	* features/i386/32bit-avx.c: Generated.
 	* features/i386/32bit-avx512.c: Generated.
 	* features/i386/32bit-core.c: Generated.
 	* features/i386/32bit-linux.c: Generated.
 	* features/i386/32bit-mpx.c: Generated.
 	* features/i386/32bit-pkeys.c: Generated.
 	* features/i386/32bit-sse.c: Generated.
 	* target-descriptions.c: Include algorithm.
	(tdesc_element_visitor): Add method visit_end.
	(print_c_tdesc): Implement visit_end.
	(print_c_tdesc:: m_filename_after_features): Move it to
	protected.
	(print_c_feature): New class.
	(maint_print_c_tdesc_cmd): Use print_c_feature if XML file
	name starts with "i386/32bit-".
2017-07-26 14:24:08 +01:00
Yao Qi
6eb1e6a8c1 Use visitor pattern for "maint print c-tdesc"
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.
2017-07-26 12:56:54 +01:00
John Baldwin
48aeef91c2 Include the fs_base and gs_base registers in amd64 target descriptions.
This permits these registers to be used with non-Linux targets.

gdb/ChangeLog:

	* features/Makefile (amd64.dat, amd64-avx.dat, amd64-mpx.dat)
	(amd64-avx-mpx.dat, amd64-avx-avx512.dat)
	(amd64-avx-mpx-avx512-pku.dat): Add i386/64bit-segments.xml in
	those rules.
	* features/i386/amd64-avx-avx512.xml: Add 64bit-segments.xml.
        * features/i386/amd64-avx-mpx-avx512-pku.xml: Add 64bit-segments.xml.
	* features/i386/amd64-avx-mpx.xml: Add 64bit-segments.xml.
	* features/i386/amd64-avx.xml: Add 64bit-segments.xml.
	* features/i386/amd64-mpx.xml: Add 64bit-segments.xml.
	* features/i386/amd64.xml: Add 64bit-segments.xml.
	* features/i386/amd64-avx-avx512.c: Regenerated.
	* features/i386/amd64-avx-mpx-avx512-pku.c: Regenerated.
	* features/i386/amd64-avx-mpx.c: Regenerated.
	* features/i386/amd64-avx.c: Regenerated.
	* features/i386/amd64-mpx.c: Regenerated.
	* features/i386/amd64.c: Regenerated.
	* regformats/i386/amd64-avx-avx512.dat: Regenerated.
	* regformats/i386/amd64-avx-mpx-avx512-pku.dat: Regenerated.
	* regformats/i386/amd64-avx-mpx.dat: Regenerated.
	* regformats/i386/amd64-avx.dat: Regenerated.
	* regformats/i386/amd64-mpx.dat: Regenerated.
	* regformats/i386/amd64.dat: Regenerated.
2017-07-11 09:46:29 -07:00
Yao Qi
77c501bcea Re-generate i386/amd64-avx-avx512-linux.c and i386/amd64-avx-mpx-avx512-pku-linux.c
gdb:

2017-07-10  Yao Qi  <yao.qi@linaro.org>

	* features/i386/amd64-avx-avx512-linux.c: Re-generated.
	* features/i386/amd64-avx-mpx-avx512-pku-linux.c: Re-generated.
2017-07-10 12:00:35 +01:00
Yao Qi
75c554cf9c Adjust the order of 32bit-linux.xml and 32bit-sse.xml in i386/i386-linux.xml
Exchange the order of 32bit-linux.xml and 32bit-sse.xml in
i386/i386-linux.xml, to align with other i386 linux .xml files.

gdb:

2017-06-20  Yao Qi  <yao.qi@linaro.org>

	* features/i386/i386-linux.xml: Exchange the order of including
	32bit-linux.xml and 32bit-sse.xml.
	* features/i386/i386-linux.c: Regenerated.
2017-06-20 12:08:33 +01:00
Michael Sturm
51547df62c Add support for Intel PKRU register to GDB and GDBserver.
This patch adds support for the registers added by the
Memory Protection Keys for Userspace (PKU aka PKEYs) feature.
Native and remote debugging are covered by this patch.

The XSAVE area is extended with a new state containing
the 32-bit wide PKRU register. The new register is added to
amd64-avx-mpx_avx512-* tdesc, thus it is renamed accordingly. Also,
respective xstate mask X86_XSTATE_AVX_MPX_AVX512_MASK is renamed to
X86_XSTATE_AVX_MPX_AVX512_PKU_MASK to reflect the new feature set
it supports.

For more information, please refer to the
Intel(R) 64 and IA-32 Architectures Software Developer's
Manual - Septemper 2015
http://www.intel.com/content/dam/www/public/us/en/documents/
manuals/64-ia-32-architectures-software-developer-manual-325462.pdf

gdb/Changelog:
2015-12-08  Michael Sturm  <michael.sturm@intel.com>

     * NEWS: Mention addition of PKU feature.
     * amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add PKRU register.
     * amd64-linux-tdep.c (features/i386/amd64-avx-mpx-avx512-linux.c): Rename
       to...
     (features/i386/amd64-avx-mpx-avx512-pku-linux.c): ...this.
     (amd64_linux_gregset_reg_offset): Add PKRU register.
     (amd64_linux_core_read_description): Rename
     X86_XSTATE_AVX_MPX_AVX512_MASK,
     rename tdesc_amd64_avx_mpx_avx512_pku_linux.
     (_initialize_amd64_linux_tdep): Rename
     initialize_tdesc_amd64_avx_mpx_avx512_linux.
     * amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum
     calculation.
     (tdesc_amd64_avx_mpx_avx512_linux): Rename to...
     (tdesc_amd64_avx_mpx_avx512_pku_linux): ...this.
     * amd64-tdep.c (features/i386/amd64-avx-mpx-avx512-pku.c): Rename to...
     (features/i386/amd64-avx-mpx-avx512-pku.c): ...this.
     (amd64_pkeys_names): New register name for raw register PKRU.
     (amd64_init_abi): Add code to initialize PKRU tdep variables if feature
     is present.
     (amd64_target_description): Rename X86_XSTATE_AVX_MPX_AVX512_MASK,
     rename tdesc_amd64_avx_mpx_avx512.
     (_initialize_amd64_tdep): Rename initialize_tdesc_amd64_avx_mpx_avx512.
     * amd64-tdep.h (enum amd64_regnum): Add PKRU register.
     (AMD64_NUM_REGS): Adjust regnum calculation.
     * i386-linux.nat.c (GETXSTATEREGS_SUPPLIES): Extend range of
     registers supplied via XSTATE by PKRU register.
     * common/x86-xstate.h (X86_XSTATE_PKRU): New macro.
     (X86_XSTATE_AVX_MPX_AVX512_MASK): Add PKRU and renamed mask.
     (X86_XSTATE_ALL_MASK): Rename X86_XSTATE_AVX_MPX_AVX512_MASK.
     (X86_XSTATE_PKRU_SIZE): New macro.
     (X86_XSTATE_MAX_SIZE): Adjust size.
     (HAS_PKRU(XCR0)): New macro.
     (X86_XSTATE_SIZE): Add checkfor PKRU.
     * features/Makefile (WHICH): Rename i386/i386-avx-mpx-avx512,
     i386/i386-avx-mpx-avx512-linux, i386/amd64-avx-mpx-avx512,
     i386/amd64-avx-mpx-avx512-linux.
     (i386/i386-avx-mpx-avx512-expedite): Rename expedite.
     (i386/i386-avx-mpx-avx512-linux-expedite): Likewise.
     (i386/amd64-avx-mpx-avx512-expedite): Likewise.
     (i386/amd64-avx-mpx-avx512-linux-expedite): Likewise.
     (XMLTOC): Rename i386/amd64-avx-mpx-avx512-linux.xml,
     i386/amd64-avx-mpx-avx512.xml, i386/i386-avx-mpx-avx512-linux.xml,
     i386/i386-avx-mpx-avx512.xml.
     ((outdir)/i386/i386-avx-mpx-avx512.dat): Rename rule, add
     i386/32bit-pkeys.xml.
     ((outdir)/i386/i386-avx-mpx-avx512-pku-linux.dat): Likewise.
     ((outdir)/i386/amd64-avx-mpx-avx512.dat): Rename rule, add
     i386/64bit-pkeys.xml.
     ((outdir)/i386/amd64-avx-mpx-avx512-linux.dat): Likewise.
     * features/i386/32bit-pkeys.xml: New file.
     * features/i386/64bit-pkeys.xml: Likewise.
     * features/i386/amd64-avx-mpx-avx512-linux-pku.c: Regenerate from
     renamed XML file.
     * features/i386/amd64-avx-mpx-avx512-linux.xml: Rename to
     amd64-avx-mpx-avx512-pku-linux.xml, add 64bit-pkeys.xml
     * features/i386/amd64-avx-mpx-avx512.c: Regenerate from
     renamed XML file.
     * features/i386/amd64-avx-mpx-avx512.xml: Rename to
     amd64-avx-mpx-avx512-pku.xml, add 64bit-pkeys.xml.
     * features/i386/i386-avx-mpx-avx512-linux.c: Regenerate from
     renamed XML file.
     * features/i386/i386-avx-mpx-avx512-linux.xml: Rename to
     i386-avx-mpx-avx512-pku-linux.xml, add 32bit-pkeys.xml.
     * features/i386/i386-avx-mpx-avx512.c: Regenerate from
     renamed XML file.
     * features/i386/i386-avx-mpx-avx512.xml: Rename to
     i386-avx-mpx-avx512-pku.xml, add 32bit-pkeys.xml.
     * i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Change to use
     I386_PKEYS_NUM_REGS.
     * i386-linux-tdep.c (features/i386/i386-avx-mpx-avx512-linux.c): Rename
     include.
     (i386_linux_gregset_reg_offset): Add PKRU register.
     (i386_linux_core_read_description): Rename xstate mask and returned
     tdesc for X86_XSTATE_AVX_MPX_AVX512_PKU_MASK.
     (_initialize_i386_linux_tdep): Rename
     initialize_tdesc_i386_avx_mpx_avx512_linux.
     * i386-linux-tdep.h (I386_LINUX_ORIG_EAX_REGNUM): Adjuste regnum
     calculation.
     (tdesc_i386_avx_mpx_avx512_linux): Rename prototype.
     (/* Format of XSAVE...): Add pkru register.
     * i386-tdep.c (i386-avx-mpx-avx512.c): Rename include.
     (i386_pkeys_names): New register name for raw register PKRU.
     (i386_pkru_regnum_p): Add function to look up register number of
     PKRU raw register.
     (i386_register_reggroup_p): Add code to exclude PKRU from general
     register group.
     (i386_validate_tdesc_p): Add code to handle PKRU feature, add PKRU
     registers if feature is present in xcr0.
     (i386_gdbarch_init): Adjust number of registers in architecture. Add code
     to initialize PKRU feature variables in tdep structure.
     (i386_target_description): Rename xstate mask and returned
     tdesc for X86_XSTATE_AVX_MPX_AVX512_PKU_MASK.
     (_initialize_i386_tdep): Rename initialize_tdesc_i386_avx_mpx_avx512.
     * i386-tdep.h (struct gdbarch_tdep): Add feature variables to tdep
     structure.
     (enum i386_regnum): Add PKRU register.
     (I386_PKEYS_NUM_REGS): New define for number of registers in PKRU feature.
     (i386_pkru_regnum_p): New prototype.
     * i387-tdep.c (xsave_pkeys_offset): New table for PKRU offsets in
     XSAVE buffer.
     (XSAVE_PKEYS_ADDR): New macro.
     (i387_supply_xsave): Add code to handle PKRU register.
     (i387_collect_xsave): Likewise.
     * i387-tdep.h (I387_NUM_PKEYS_REGS): New define for number of registers
     in PKRU feature.
     (I387_PKRU_REGNUM): New macro.
     (I387_PKEYSEND_REGNUM): Likewise.
     * regformats/i386/amd64_avx_mpx_avx512_pku_linux.dat: Regenerate from
     renamed XML file.
     * regformats/i386/amd64_avx_mpx_avx512_pku.dat: Likewise.
     * regformats/i386/i386/amd64-avx-mpx-avx512-pku.dat: Likewise.
     * regformats/i386/i386_avx_mpx_avx512_pku_linux.dat: Likewise.

testsuite/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * gdb.arch/i386-pkru.c: New file.
     * gdb.arch/i386-pkru.exp: Likewise.

gdbserver/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * Makefile.in (clean): Rename i386-avx-mpx-avx512.c,
     i386-avx-mpx-avx512-linux.c, amd64-avx-mpx-avx512.c,
     amd64-avx-mpx-avx512-linux.c.
     (i386-avx-mpx-avx512-linux-ipa.o:): Rename rule and source file.
     (amd64-avx-mpx-avx512-linux-ipa.o:): Likewise.
     (i386-avx-mpx-avx512.c :): Rename rule, source files and dat files.
     (i386-avx-mpx-avx512-linux.c :): Likewise.
     (amd64-avx-mpx-avx512.c :): Likewise.
     (amd64-avx-mpx-avx512-linux.c :): Likewise.
     * configure.srv (srv_i386_regobj): Rename i386-avx-mpx-avx512.o.
     (srv_i386_linux_regobj): Rename i386-avx-mpx-avx512-linux.o.
     (srv_amd64_regobj): Rename amd64-avx-mpx-avx512.o.
     (srv_amd64_linux_regobj): Rename amd64-avx-mpx-avx512-linux.o.
     (ipa_i386_linux_regobj): Rename i386-avx-mpx-avx512-linux-ipa.o.
     (ipa_amd64_linux_regobj): Rename amd64-avx-mpx-avx512-pku-linux-ipa.o.
     (srv_i386_32bit_xmlfiles): Add 32bit-pkeys.xml.
     (srv_i386_64bit_xmlfiles): Add 64bit-pkeys.xml.
     (srv_i386_xmlfiles): Rename i386/i386-avx-mpx-avx512.xml.
     (srv_amd64_xmlfiles): Rename i386/amd64-avx-mpx-avx512.xml.
     (srv_i386_linux_xmlfiles): Rename i386/i386-avx-mpx-avx512-linux.xml.
     (srv_amd64_linux_xmlfiles): Rename di386/amd64-avx-mpx-avx512-linux.xml.
     * i387-fp.c (num_pkeys_registers): New variable.
     (struct i387_xsave): Add space for pkru values.
     (i387_cache_to_fsave): Add code to handle PKRU register.
     (i387_xsave_to_cache): Likewise.
     * linux-amd64-ipa.c (get_ipa_tdesc): Rename
     tdesc_amd64_avx_mpx_avx512_linux.
     (initialize_low_tracepoint): Rename
     init_registers_amd64_avx_mpx_avx512_linux.
     * linux-i386-ipa.c (get_ipa_desc): Rename
     tdesc_i386_avx_mpx_avx512_linux.
     (initialize_low_tracepoint): Rename
     init_registers_i386_avx_mpx_avx512_linux.
     * linux-x86-low.c (x86_64_regmap[]): Add PKRU register.
     (x86_linux_read_description): Rename X86_XSTATE_AVX_MPX_AVX512_MASK,
     rename tdesc_amd64_avx_mpx_avx512_linux, rename
     tdesc_i386_avx_mpx_avx512_linux.
     (x86_get_ipa_tdesc_idx): Rename tdesc_amd64_avx_mpx_avx512_linux,
     rename tdesc_i386_avx_mpx_avx512_linux.
     (initialize_low_arch): Rename init_registers_amd64_avx_mpx_avx512_linux,
     rename init_registers_i386_avx_mpx_avx512_linux.
     * linux-x86-tdesc.h (init_registers_amd64_avx_mpx_avx512_linux): Renamed
     prototype.
     (tdesc_amd64_avx_mpx_avx512_linux): Likewise.
     (init_registers_i386_avx_mpx_avx512_linux): Likewise.
     (tdesc_i386_avx_mpx_avx512_linux): Likewise.

doc/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * gdb.texinfo (i386 Features): Add description of PKRU register.

Change-Id: If75ce5aba7dfd33fdbe3d8b47f04ef3f550c52be
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2017-02-17 11:44:48 +01:00
Michael Sturm
a1fa17ee15 Add target description for avx-avx512.
Add a dedicated target description for the feature combination
avx-avx512 as implemented by certain IA CPU models.

The corresponding X86_XSTATE_AVX_AVX512_MASK already exists, but shared
the tdesc with X86_XSTATE_AVX_MPX_AVX512_MASK. This caused MPX registers
displayed as undefined on CPUs that only implemented
X86_XSTATE_AVX_AVX512_MASK, which is undesired. This patch solves this issue.

This patch also corrects the wrong usage of x32-avx-mpx-avx512, which is
replaced by x32-avx-avx512. The MPX feature is not implemented in x32 mode.

gdb/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * amd64-linux-tdep.c (features/i386/amd64-avx-avx512-linux.c):
     New include.
     (features/i386/x32-avx-mpx-avx512-linux.c): Rename to...
     (features/i386/x32-avx-avx512-linux.c): ...this.
     (amd64_linux_core_read_description): Add dedicated cases for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (_initialize_amd64_linux_tdep): Add calls to
     initialize_tdesc_amd64_avx_avx512_linux and
     initialize_tdesc_x32_avx_avx512_linux.
     * amd64-linux.tdep.h (tdesc_amd64_avx_avx512_linux): New prototype.
     (tdesc_x32_avx_mpx_avx512_linux): Rename to...
     (tdesc_x32_avx_avx512_linu): ...this.
     * amd64-tdep.c (features/i386/amd64-avx-avx512.c): New include.
     (features/i386/x32-avx-mpx-avx512.c): Rename to...
     (features/i386/x32-avx-avx512.c): ...this.
     (amd64_target_description): Add dedicated case for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (_initialize_amd64_tdep): Add call to
     initialize_tdesc_amd64_avx_avx512.
     (initialize_tdesc_x32_avx_mpx_avx512): Rename to...
     (initialize_tdesc_x32_avx_avx512): ...this.
     * features/Makefile (WHICH): New tdescs i386/i386-avx-avx512,
     i386/i386-avx-avx512-linux, i386/amd64-avx-avx512,
     i386/amd64-avx-avx512-linux.
     (i386/x32-avx-mpx-avx512): Rename to...
     (i386/x32-avx-avx512): ...this.
     (i386/x32-avx-mpx-avx512-linux): Rename to...
     (i386/x32-avx-avx512-linux): ...this.
     (i386/i386-avx-avx512-expedite, i386/i386-avx-avx512-linux-expedite,
     i386/amd64-avx-avx512-expedite, i386/amd64-avx-avx512-linux-expedite):
     New expedites.
     (i386/x32-avx-mpx-avx512-expedite): Rename to...
     (i386/x32-avx-avx512-expedite): ...this.
     (i386/x32-avx-mpx-avx512-linux-expedite): Rename to...
     (i386/x32-avx-avx512-linux-expedite): ...this.
     (XMLTOC): New XML files i386/amd64-avx-avx512-linux.xml,
     i386/amd64-avx-avx512.xml, i386/i386-avx-avx512-linux.xml,
     i386/i386-avx-avx512.xml.
     (i386/x32-avx-mpx-avx512-linux.xml): Rename to...
     (i386/x32-avx-avx512-linux.xml): ...this.
     (i386/x32-avx-mpx-avx512.xml): Rename to...
     (i386/x32-avx-avx512.xml): ...this.
     ($(outdir)/i386/i386-avx-avx512.dat): New rule.
     ($(outdir)/i386/i386-avx-avx512-linux.dat): Likewise.
     ($(outdir)/i386/amd64-avx-avx512.dat): Likewise.
     ($(outdir)/i386/amd64-avx-avx512-linux.dat): Likewise.
     ($(outdir)/i386/x32-avx-mpx-avx512.dat):  Rename to...
     ($(outdir)/i386/x32-avx-avx512.dat): ...this.
     ($(outdir)/i386/x32-avx-mpx-avx512-linux.dat): Rename to...
     ($(outdir)/i386/x32-avx-avx512-linux.dat): ...this.
     * features/i386/amd64-avx-avx512-linux.c: New file.
     * features/i386/amd64-avx-avx512-linux.xml: Likewise.
     * features/i386/amd64-avx-avx512.c: Likewise.
     * features/i386/amd64-avx-avx512.xml: Likewise.
     * features/i386/i386-avx-avx512-linux.c: Likewise.
     * features/i386/i386-avx-avx512-linux.xml: Likewise.
     * features/i386/i386-avx-avx512.c: Likewise.
     * features/i386/i386-avx-avx512.xml: Likewise.
     * features/i386/x32-avx-mpx-avx512-linux.c: Deleted.
     * features/i386/x32-avx-avx512-linux.c: New file.
     * features/i386/x32-avx-mpx-avx512-linux.xml: Deleted.
     * features/i386/x32-avx-avx512-linux.xml: New file.
     * features/i386/x32-avx-mpx-avx512.c: Deleted.
     * features/i386/x32-avx-avx512.c: New file.
     * features/i386/x32-avx-mpx-avx512.xml: Deleted.
     * features/i386/x32-avx-avx512.xml: New file.
     * i386-linux-tdep.c (features/i386/i386-avx-avx512-linux.c): New include.
     (i386_linux_core_read_description): Add dedicated case for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (_initialize_i386_linux_tdep): Add call to
     initialize_tdesc_i386_avx_avx512_linux.
     * i386-linux-tdep.h (tdesc_i386_avx_avx512_linux): New prototype.
     * i386-tdep.c (features/i386/i386-avx-avx512.c): New include.
     (i386_validate_tdesc_p): Correct XSTATE mask used for feature_avx512.
     (i386_target_description): Add dedicated case for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (_initialize_i386_tdep): Add call to initialize_tdesc_i386_avx_avx512.
     * regformats/i386/amd64-avx-avx512-linux.dat: New file
     * regformats/i386/amd64-avx-avx512.dat: Likewise.
     * regformats/i386/i386-avx-avx512-linux.dat: Likewise.
     * regformats/i386/i386-avx-avx512.dat: Likewise.
     * regformats/i386/x32-avx-mpx-avx512-linux.dat: Deleted.
     * regformats/i386/x32-avx-avx512-linux.dat: New file.
     * regformats/i386/x32-avx-mpx-avx512.dat: Deleted.
     * regformats/i386/x32-avx-avx512.dat: New file.
     * x86-linux-nat.c (x86_linux_read_description): Add dedidated case for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate description.

gdbserver/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * Makefile.in  (clean): Add handling of new source files
     i386-avx-avx512.c, i386-avx-avx512-linux.c, amd64-avx-avx512.c,
     amd64-avx-avx512-linux.c.
     (x32-avx-mpx-avx512.c): Rename to...
     (x32-avx-avx512.c): ...this.
     (x32-avx-mpx-avx512-linux.c): Rename to...
     (x32-avx-avx512-linux.c): ...this.
     (i386-avx-avx512-linux-ipa.o): New rule.
     (amd64-avx-avx512-linux-ipa.o): Likewise.
     (i386-avx-avx512.c): Likewise.
     (i386-avx-avx512-linux.c): Likewise.
     (amd64-avx-avx512.c): Likewise.
     (amd64-avx-avx512-linux.c): Likewise.
     (x32-avx-avx512.c): Rename rule, source files, dat files from
     x32-avx-mpx-avx512.*) to this.
     (x32-avx-avx512-linux.c): Rename rule, source files, dat files from
     x32-avx-mpx-avx512-linux.*) to this.
     * configure.srv (srv_i386_regobj): Add i386-avx-avx512.o.
     (srv_i386_linux_regobj): Add i386-avx-avx512-linux.o.
     (srv_amd64_regobj): Add amd64-avx-avx512.o, rename
     x32-avx-mpx-avx512.o to x32-avx-avx512.o.
     (srv_amd64_linux_regobj): Add amd64-avx-avx512-linux.o, rename
     x32-avx-mpx-avx512-linux.o to x32-avx-avx512-linux.o.
     (ipa_i386_linux_regobj): Add i386-avx-avx512-linux-ipa.o.
     (ipa_amd64_linux_regobj): Add amd64-avx-avx512-linux-ipa.o.
     (srv_i386_xmlfiles): Add i386/i386-avx-avx512.xml.
     (srv_amd64_xmlfiles): Add i386/amd64-avx-avx512.xml, rename
     x32-avx-mpx-avx512.xml to x32-avx-avx512.xml.
     (srv_i386_linux_xmlfiles): Add i386/i386-avx-avx512-linux.xml.
     (srv_amd64_linux_xmlfiles): Add i386/amd64-avx-avx512-linux.xml,
     rename x32-avx-mpx-avx512-linux.xml to x32-avx-avx512-linux.xml.
     * linux-amd64-ipa.c (get_ipa_tdesc): Add dedicated case for
     X86_TDESC_AVX_AVX512 and return appropriate tdesc.
     (initialize_low_tracepoint): Add init_registers_amd64_avx_avx512_linux.
     * linux-i386-ipa.c (get_ipa_tdesc): Add dedicated case for
     X86_TDESC_AVX_AVX512 and return appropriate tdesc.
     (initialize_low_tracepoint): Add init_registers_i386_avx_avx512_linux.
     * linux-x86-low.c (x86_linux_read_description): Add dedicated cases for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (x86_get_ipa_tdesc_idx): Rename tdesc_x32_avx_mpx_avx512_linux to
     tdesc_x32_avx_avx512_linux, add dedicated if-clause for
     tdesc_amd64_avx_avx512_linux and return appropriate mask.
     Add dedicated clause for tdesc_i386_avx_avx512_linux
     and return appropriate mask.
     (initialize_low_arch): Add init_registers_amd64_avx_avx512_linux,
     rename init_registers_x32_avx_mpx_avx512_linux, add
     init_registers_i386_avx_avx512_linux.
     * linux-x86-tdesc.h (enum x86_linux_tdesc): Add new value for
     X86_TDESC_AVX_AVX512.
     (init_registers_amd64_avx_avx512_linux): New prototype.
     (tdesc_amd64_avx_avx512_linux): Likewise.
     (init_registers_x32_avx_mpx_avx512_linux): Rename to...
     (init_registers_x32_avx_avx512_linux): ...this.
     (tdesc_x32_avx_mpx_avx512_linux): Rename to...
     (tdesc_x32_avx_avx512_linux): ...this.
     (init_registers_i386_avx_avx512_linux): New prototype.
     (tdesc_i386_avx_avx512_linux): Likewise.

Change-Id: I01359fab56c961a39568df50af39714ec7b31706
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2017-02-17 11:44:36 +01:00
Michael Sturm
22049425ce Rename target descriptions to reflect actual content of description.
To better reflect the actual feature set covered by the IA target
descriptions, the existing descriptions are renamed. Each feature of
the extended state is added to the name of a description or xstate mask
starting from AVX.
For example, amd64-mpx-avx512-linux becomes amd64-avx-mpx-avx512-linux,
while amd64-avx-linux remains unchanged.
Likewise, the corresponding xstate masks are changed, e.g. from
X86_XSTATE_MPX_AVX512_MASK to X86_XSTATE_AVX_MPX_AVX512_MASK.

gdb/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * amd64-linux-tdep.c (features/i386/amd64-avx512-linux.c): Rename
     include to...
     (features/i386/amd64-avx-mpx-avx512-linux.c): ...this.
     (features/i386/x32-avx512-linux.c): Rename include to...
     (features/i386/x32-avx-mpx-avx512-linux.c): ...this.
     (amd64_linux_core_read_description): Rename X86_XSTATE_MPX_AVX512_MASK,
     X86_XSTATE_AVX512_MASK, desc_x32_avx512_linux, tdesc_amd64_avx512_linux.
     (_initialize_amd64_linux_tdep): Rename
     initialize_tdesc_amd64_avx512_linux, initialize_tdesc_x32_avx512_linux.
     * amd64-linux-tdep.h (tdesc_amd64_avx512_linux): Rename to...
     (tdesc_amd64_avx_mpx_avx512_linux): ...this.
     (tdesc_x32_avx512_linux): Rename to...
     (tdesc_x32_avx_mpx_avx512_linux): ...this.
     * amd64-tdep.c (features/i386/amd64-avx512.c): Rename include to...
     (features/i386/amd64-avx-mpx-avx512.c): ...this.
     (features/i386/x32-avx512.c): Rename include to...
     (features/i386/x32-avx-mpx-avx512.c): ...this.
     (amd64_target_description): Rename X86_XSTATE_MPX_AVX512_MASK,
     X86_XSTATE_AVX512_MASK, tdesc_amd64_avx512.
     (_initialize_amd64_tdep): Rename initialize_tdesc_amd64_avx512. Rename
     initialize_tdesc_x32_avx512.
     * common/x86-xstate.h (X86_XSTATE_AVX512_MASK): Rename to...
     (X86_XSTATE_AVX_AVX512_MASK): ...this.
     (86_XSTATE_MPX_AVX512_MASK): Rename to...
     (X86_XSTATE_AVX_MPX_AVX512_MASK): ...this.
     (X86_XSTATE_ALL_MASK): Rename X86_XSTATE_MPX_AVX512_MASK to
     X86_XSTATE_AVX_MPX_AVX512_MASK.
     * features/Makefile (WHICH): Rename i386/i386-avx512,
     i386/i386-avx512-linux, i386/amd64-avx512, i386/amd64-avx512-linux,
     i386/x32-avx512, i386/x32-avx512-linux.
     (i386/i386-avx512-expedite, i386/i386-avx512-linux-expedite,
     i386/amd64-avx512-expedite, i386/amd64-avx512-linux-expedite,
     i386/x32-avx512-expedite, i386/x32-avx512-linux-expedite): Rename
     expedites.
     (XMLTOC): Rename i386/amd64-avx512-linux.xml, i386/amd64-avx512.xml,
     i386/i386-avx512-linux.xml, i386/i386-avx512.xml,
     i386/x32-avx512-linux.xml, i386/x32-avx512.xml.
     ($(outdir)/i386/i386-avx512.dat): Rename dat file in rule.
     ($(outdir)/i386/i386-avx512-linux.dat): Likewise.
     ($(outdir)/i386/amd64-avx512.dat): Likewise.
     ($(outdir)/i386/amd64-avx512-linux.dat): Likewise.
     ($(outdir)/i386/x32-avx512.dat): Likewise.
     ($(outdir)/i386/x32-avx512-linux.dat): Likewise.
     * features/i386/amd64-avx512-linux.c: Regenerate from renamed XML file.
     * features/i386/amd64-avx512-linux.xml: Rename XML file.
     * features/i386/amd64-avx512.c: Regenerate from renamed XML file.
     * features/i386/amd64-avx512.xml: Rename XML file.
     * features/i386/i386-avx512-linux.c: Regenerate from renamed XML file.
     * features/i386/i386-avx512-linux.xml: Rename XML file.
     * features/i386/i386-avx512.c: Regenerate from renamed XML file.
     * features/i386/i386-avx512.xml: Rename XML file.
     * features/i386/x32-avx512-linux.c: Regenerate from renamed XML file.
     * features/i386/x32-avx512-linux.xml: Rename XML file.
     * features/i386/x32-avx512.c: Regenerate from renamed XML file.
     * features/i386/x32-avx512.xml: Rename XML file.
     * i386-linux-tdep.c (features/i386/i386-avx512-linux.c): Rename to...
     (features/i386/i386-avx-mpx-avx512-linux.c): ...this.
     (i386_linux_core_read_description): Rename X86_XSTATE_MPX_AVX512_MASK,
     X86_XSTATE_AVX512_MASK, tdesc_i386_avx512_linux.
     (_initialize_i386_linux_tdep): Rename initialize_tdesc_i386_avx512_linux.
     * i386-linux-tdep.h (tdesc_i386_avx512_linux): Rename to...
     (tdesc_i386_avx_mpx_avx512_linux): ...this.
     * i386-tdep.c (features/i386/i386-avx512.c): Rename to...
     (features/i386/i386-avx-mpx-avx512.c): ...this.
     (i386_register_reggroup_p): Rename X86_XSTATE_AVX512_MASK.
     (i386_validate_tdesc_p): Likewise.
     (i386_target_description): Rename X86_XSTATE_MPX_AVX512_MASK,
     tdesc_i386_avx512.
     (_initialize_i386_tdep): Rename initialize_tdesc_i386_avx512.
     * regformats/i386/amd64-avx512-linux.dat: Regenerate from renamed XML
     file.
     * regformats/i386/amd64-avx512.dat: Likewise.
     * regformats/i386/i386-avx512-linux.dat: Likewise.
     * regformats/i386/i386-avx512.dat: Likewise.
     * regformats/i386/x32-avx512-linux.dat: Likewise.
     * regformats/i386/x32-avx512.dat: Likewise.
     * x86-Linux-nat.c (x86_linux_read_description): Rename
     X86_XSTATE_MPX_AVX512_MASK, X86_XSTATE_AVX512_MASK,
     tdesc_x32_avx512_linux, tdesc_amd64_avx512_linux, tdesc_i386_avx512_linux.

gdbserver/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * Makefile.in (clean): Rename i386-avx512.c, i386-avx512-linux.c,
     amd64-avx512.c, amd64-avx512-linux.c, x32-avx512.c, x32-avx512-linux.c.
     (i386-avx512-linux-ipa.o): Rename rule and source files.
     (amd64-avx512-linux-ipa.o): Likewise.
     (i386-avx512.c): Rename rule, source fils and dat files.
     (i386-avx512-linux.c): Likewise.
     (amd64-avx512.c): Likewise.
     (amd64-avx512-linux.c): Likewise.
     (x32-avx512.c): Likewise.
     (x32-avx512-linux.c): Likewise.
     * configfure.srv (srv_i386_regobj): Rename i386-avx512.o.
     (i386_linux_regobj): Rename i386-avx512-linux.o.
     (srv_amd64_regobj): Rename amd64-avx512.o, x32-avx512.o.
     (srv_amd64_linux_regobj): Rename amd64-avx512-linux.o,
     x32-avx512-linux.o.
     (ipa_i386_linux_regobj): Rename i386-avx512-linux-ipa.o.
     (ipa_amd64_linux_regobj): Rename amd64-avx512-linux-ipa.o.
     (srv_i386_xmlfiles): Rename i386/i386-avx512.xml.
     (srv_amd64_xmlfiles): Rename i386/amd64-avx512.xml, i386/x32-avx512.xml.
     (srv_i386_linux_xmlfiles): Rename i386/i386-avx512-linux.xml.
     (srv_amd64_linux_xmlfiles): Rename i386/amd64-avx512-linux.xml,
     i386/x32-avx512-linux.xml).
     * linux-amd64-ipa.c (get_ipa_tdesc): Rename X86_TDESC_AVX512 and returned
     tdesc for that case.
     (initialize_low_tracepoint): Rename init_registers_amd64_avx512_linux.
     * linux-i386-ipa.c (get_ipa_tdesc): Rename X86_TDESC_AVX512 and tdesc
     returned for that case.
     (initialize_low_tracepoint): Rename init_registers_i386_avx512_linux.
     * linux-x86-low.c (x86_linux_read_description): Rename
     X86_XSTATE_AVX512_MASK and tdesc returned for that case.
     (x86_get_ipa_tdesc_idx): Rename tdesc_amd64_avx512_linux,
     tdesc_x32_avx512_linux and mask returned for these descriptions.
     Rename tdesc_i386_avx512_linux and mask returned for that description.
     (initialize_low_arch): Rename init_registers_amd64_avx512_linux,
     init_registers_x32_avx512_linux, init_registers_i386_avx512_linux.
     * linux-x86-tdesc.h (enum x86_linux_tdesc): Rename X86_TDESC_AVX512.
     (init_registers_amd64_avx512_linux): Rename to...
     (init_registers_amd64_avx_mpx_avx512_linux): ...this.
     (tdesc_amd64_avx512_linux): Rename to...
     (tdesc_amd64_avx_mpx_avx512_linux): ...this.
     (init_registers_x32_avx512_linux): Rename to...
     (init_registers_x32_avx_mpx_avx512_linux): ...this.
     (tdesc_x32_avx512_linux): Rename to...
     (tdesc_x32_avx_mpx_avx512_linux): ...this.
     (init_registers_i386_avx512_linux): Rename to...
     (init_registers_i386_avx_mpx_avx512_linux): ...this.
     (tdesc_i386_avx512_linux): Rename to...
     (tdesc_i386_avx_mpx_avx512_linux): ...this.

Change-Id: Idb83be3b3b72d5487542d4b568193df2777a3d9d
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2017-02-17 11:44:24 +01:00
Walfred Tedeschi
2735833d5f amd64-linux: expose system register FS_BASE and GS_BASE for Linux.
This patch allows examination of the registers FS_BASE and GS_BASE
for Linux Systems running on 64bit. Tests for simple read and write
of the new registers is also added with this patch.

2017-01-27  Walfred Tedeschi  <walfred.tedeschi@intel.com>
	    Richard Henderson  <rth@redhat.com>

gdb/ChangeLog:

	* amd64-linux-nat.c (PTRACE_ARCH_PRCTL): New define.
	(amd64_linux_fetch_inferior_registers): Add case to fetch FS_BASE
	GS_BASE for older kernels.
	(amd64_linux_store_inferior_registers): Add case to store FS_BASE
	GS_BASE for older kernels.
	* amd64-linux-tdep.c (amd64_linux_gregset_reg_offset): Add FS_BASE
	and GS_BASE to the offset table.
	(amd64_linux_register_reggroup_p): Add FS_BASE and GS_BASE to the
	system register group.
	* amd64-nat.c (amd64_native_gregset_reg_offset): Implements case
	for older kernels.
	* amd64-tdep.c (amd64_init_abi): Add segment registers for the
	amd64 ABI.
	* amd64-tdep.h (amd64_regnum): Add AMD64_FSBASE_REGNUM and
	AMD64_GSBASE_REGNUM.
	(AMD64_NUM_REGS): Set to AMD64_GSBASE_REGNUM + 1.
	* features/Makefile (amd64-linux.dat, amd64-avx-linux.dat)
	(amd64-mpx-linux.dat, amd64-avx512-linux.dat, x32-linux.dat)
	(x32-avx-linux.dat, x32-avx512-linux.dat): Add
	i386/64bit-segments.xml in those rules.
	* features/i386/64bit-segments.xml: New file.
	* features/i386/amd64-avx-mpx-linux.xml: Add 64bit-segments.xml.
	* features/i386/amd64-avx-linux.xml: Add 64bit-segments.xml.
	* features/i386/amd64-avx512-linux.xml: Add 64bit-segments.xml.
	* features/i386/amd64-mpx-linux.xml: Add 64bit-segments.xml.
	* features/i386/x32-avx512-linux.xml: Add 64bit-segments.xml.
	* features/i386/x32-avx-linux.xml: Add 64bit-segments.xml.
	* features/i386/amd64-linux.xml: Add 64bit-segments.xml.
	* features/i386/amd64-avx-linux.c: Regenerated.
	* features/i386/amd64-avx-mpx-linux.c: Regenerated.
	* features/i386/amd64-avx-mpx.c: Regenerated.
	* features/i386/amd64-avx512-linux.c: Regenerated.
	* features/i386/amd64-linux.c: Regenerated.
	* features/i386/amd64-mpx-linux.c: Regenerated.
	* features/i386/i386-avx-mpx-linux.c: Regenerated.
	* features/i386/i386-avx-mpx.c: Regenerated.
	* features/i386/x32-avx-linux.c: Regenerated.
	* features/i386/x32-avx512-linux.c: Regenerated.
	* regformats/i386/amd64-avx-linux.dat: Regenerated.
	* regformats/i386/amd64-avx-mpx-linux.dat: Regenerated.
	* regformats/i386/amd64-avx512-linux.dat: Regenerated.
	* regformats/i386/amd64-linux.dat: Regenerated.
	* regformats/i386/amd64-mpx-linux.dat: Regenerated.
	* regformats/i386/x32-avx-linux.dat: Regenerated.
	* regformats/i386/x32-avx512-linux.dat: Regenerated.
	* regformats/i386/x32-linux.dat: Regenerated.

gdb/doc/ChangeLog:

	* gdb.texinfo (i386 Features): Add system segment registers
	as feature.

gdb/gdbserver/ChangeLog:

	* linux-x86-low.c (x86_64_regmap): Add fs_base and gs_base
	to the register table.
	(x86_fill_gregset): Add support for old kernels for the
	fs_base and gs_base system registers.
	(x86_store_gregset): Likewise.
	* configure.srv (srv_i386_64bit_xmlfiles): Add 64bit-segments.xml.

gdb/testsuite/ChangeLog:

	* gdb.arch/amd64-gs_base.c: New file.
	* gdb.arch/amd64-gs_base.exp: New file.

Change-Id: I2e0eeb93058a2320d4d3b045082643cfe4aff963
Signed-off-by: Walfred Tedeschi <walfred.tedeschi@intel.com>
2017-01-27 15:20:14 +01:00
Joel Brobecker
61baf725ec update copyright year range in GDB files
This applies the second part of GDB's End of Year Procedure, which
updates the copyright year range in all of GDB's files.

gdb/ChangeLog:

        Update copyright year range in all GDB files.
2017-01-01 10:52:34 +04:00
Doug Evans
ee8da4b839 Make "end" field in feature specs required again.
Newer gdbservers may be talking to older gdbs,
and older gdbs will flag a missing "end" as an error.
So just make "end" required again, and for compatibility
change the default field type to "bool".

gdb/ChangeLog:
2016-10-06  Doug Evans  <dje@google.com>

	* features/aarch64-core.xml (cpsr_flags): Elide "type" and specify
	"end" in all fields.
	* features/aarch64.c: Regenerate.
	* features/i386/32bit-mpx.xml (_bndcfgu): Specify type of "preserved"
	and "enabled" fields. Correct size of "enabled" field.
	* features/i386/64bit-mpx.xml (_bndcfgu): Specify type of "preserved"
	and "enabled" fields.
	* features/i386/i386-avx-mpx-linux.c: Regenerate.
	* features/i386/i386-avx-mpx.c: Regenerate.
	* features/i386/i386-avx512-linux.c: Regenerate.
	* features/i386/i386-avx512.c: Regenerate.
	* features/i386/i386-mpx-linux.c: Regenerate.
	* features/i386/i386-mpx.c: Regenerate.
	* features/arc-arcompact.c: Regenerate.
	* features/arc-v2.c: Regenerate.
	* xml-tdesc.c (tdesc_start_field): Require "end" spec.  Single bit
	fields default to "bool" type.

	Revert 2016-03-15  Doug Evans  <dje@google.com>
	* features/i386/32bit-core.xml (i386_eflags): Remove "end" spec.
	* features/i386/32bit-sse.xml (i386_eflags): Ditto.
	* features/i386/64bit-core.xml (i386_eflags): Ditto.
	* features/i386/64bit-sse.xml (i386_eflags): Ditto.
	* features/i386/x32-core.xml (i386_eflags): Ditto.

gdb/doc/ChangeLog:
2016-10-06  Doug Evans  <dje@google.com>

	* gdb.texinfo (Target Description Format): Update docs on "end"
	field spec and field default type.

gdb/testsuite/ChangeLog:
2016-10-06  Doug Evans  <dje@google.com>

	* gdb.xml/extra-regs.xml: Update, end field now required, default type
	for single bitfields is bool.
	* gdb.xml/tdesc-regs.exp: Ditto.
2016-10-06 12:12:33 +01:00
Pedro Alves
6a17ca318b Regenerate some target description files
I regenerated all target description .c files from scratch, and got
this spurious diff.

It's a simple mid-air collision - these files were clearly generated
before commit 73b4f516a0 ("maint_print_c_tdesc_cmd: Use type for
TYPE_CODE_FLAGS instead of field_type."), which did the global
s/field_type/type/, and pushed to master afterwards.

gdb/features/ChangeLog:
2016-08-08  Pedro Alves  <palves@redhat.com>

	* features/i386/amd64-avx-mpx-linux.c: Regenerate.
	* features/i386/amd64-avx-mpx.c: Regenerate.
	* features/i386/i386-avx-mpx-linux.c: Regenerate.
	* features/i386/i386-avx-mpx.c: Regenerate.
2016-08-08 15:09:46 +01:00
Walfred Tedeschi
f42bf748e4 Re-factor (i386|amd64)mpx target descriptions.
In the previous patch a new set of target descriptions
(i386|amd64)-avx-mpx were added  being same as the (i386|amd64)-mpx.
This patch removes AVX feature from  (i386|amd64)-mpx target
description set.

This way the (i386|amd64)avx_mpx(_linux|) set has AVX and MPX features
and (i386|amd64)mpx(_linux|) only MPX.

2016-04-14  Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* features/i386/amd64-mpx-linux.xml: Remove AVX feature.
	* features/i386/amd64-mpx.xml: Remove AVX feature.
	* features/i386/i386-mpx-linux.xml: Remove AVX feature.
	* features/i386/i386-mpx.xml: Remove AVX feature.
	* features/i386/amd64-mpx-linux.c: Regenerate.
	* features/i386/amd64-mpx.c: Regenerate.
	* features/i386/i386-mpx-linux.c: Regenerate.
	* features/i386/i386-mpx.c: Regenerate.
	* regformats/i386/amd64-mpx-linux.dat: Regenerate.
	* regformats/i386/amd64-mpx.dat: Regenerate.
	* regformats/i386/i386-mpx-linux.dat: Regenerate.
	* regformats/i386/i386-mpx.dat: Regenerate.
2016-04-19 15:45:50 +02:00
Walfred Tedeschi
2b863f512d Add target descriptions for AVX + MPX
The current MPX target descriptions assume that MPX is always combined
with AVX, however that's not correct.  We can have machines with MPX
and without AVX; or machines with AVX and without MPX.

This patch adds new target descriptions for machines that support
both MPX and AVX, as duplicates of the existing MPX descriptions.

The following commit will remove AVX from the MPX-only descriptions.


2016-04-16  Walfred Tedeschi  <walfred.tedeschi@intel.com>

gdb/ChangeLog:

	* amd64-linux-tdep.c (features/i386/amd64-avx-mpx-linux.c):
	New include.
	(amd64_linux_core_read_description): Add case for
	 X86_XSTATE_AVX_MPX_MASK.
	(_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_avx_mpx_linux.
	* amd64-linux-tdep.h (tdesc_amd64_avx_mpx_linux): New definition.
	* amd64-tdep.c (features/i386/amd64-avx-mpx.c): New include.
	(amd64_target_description): Add case for  X86_XSTATE_AVX_MPX_MASK.
	(_initialize_amd64_tdep): Call initialize_tdesc_amd64_avx_mpx.
	* common/x86-xstate.h (X86_XSTATE_MPX_MASK): Remove AVX bits.
	(X86_XSTATE_AVX_MPX_MASK): New case.
	* features/Makefile (i386/i386-avx-mpx, i386/i386-avx-mpx-linux)
	(i386/amd64-avx-mpx, i386/amd64-avx-mpx-linux): New rules.
	(i386/i386-avx-mpx-expedite, i386/i386-avx-mpx-linux-expedite)
	(i386/amd64-avx-mpx-expedite, i386/amd64-avx-mpx-linux-expedite):
	New expedites.
	* i386-linux-tdep.c (features/i386/i386-avx-mpx-linux.c): New
	include.
	(i386_linux_core_read_description): Add case
	X86_XSTATE_AVX_MPX_MASK.
	(_initialize_i386_linux_tdep): Call
	initialize_tdesc_i386_avx_mpx_linux.
	* i386-linux-tdep.h (tdesc_i386_avx_mpx_linux): New include.
	* i386-tdep.c (features/i386/i386-avx-mpx.c): New include.
	(i386_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
	* x86-linux-nat.c (x86_linux_read_description): Add case for
	X86_XSTATE_AVX_MPX_MASK.
	* features/i386/amd64-avx-mpx-linux.xml: New file.
	* features/i386/i386-avx-mpx-linux.xml: New file.
	* features/i386/i386-avx-mpx.xml: New file.
	* features/i386/amd64-avx-mpx.xml: New file.
	* features/i386/amd64-avx-mpx-linux.c: Generated.
	* features/i386/amd64-avx-mpx.c: Generated.
	* features/i386/i386-avx-mpx-linux.c: Generated.
	* features/i386/i386-avx-mpx.c: Generated.
	* regformats/i386/amd64-avx-mpx-linux.dat: Generated.
	* regformats/i386/amd64-avx-mpx.dat: Generated.
	* regformats/i386/i386-avx-mpx-linux.dat: Generated.
	* regformats/i386/i386-avx-mpx.dat: Generated.

gdb/gdbserver/ChangeLog:

	* Makefile.in (clean): Add removal for i386-avx-mpx.c,
	i386-avx-mpx-linux.c, amd64-avx-mpx.c and amd64-avx-mpx-linux.c.
	(i386-avx-mpx.c, i386-avx-mpx-linux.c, amd64-avx-mpx.c)
	(amd64-avx-mpx-linux.c): New rules.
	(amd64-avx-mpx-linux-ipa.o, i386-avx-mpx-linux-ipa.o): New rule.
	* configure.srv (srv_i386_regobj): Add i386-avx-mpx.o.
	(srv_i386_linux_regobj): Add i386-avx-mpx-linux.o.
	(srv_amd64_regobj): Add amd64-avx-mpx.o.
	(srv_amd64_linux_regobj): Add amd64-avx-mpx-linux.o.
	(srv_i386_xmlfiles): Add i386/i386-avx-mpx.xml.
	(srv_amd64_xmlfiles): Add i386/amd64-avx-mpx.xml.
	(srv_i386_linux_xmlfiles): Add i386/i386-avx-mpx-linux.xml.
	(srv_amd64_linux_xmlfiles): Add i386/amd64-avx-mpx-linux.xml.
	(ipa_i386_linux_regobj): Add i386-avx-mpx-linux-ipa.o.
	(ipa_amd64_linux_regobj): Add amd64-avx-mpx-linux-ipa.o.
	* linux-x86-low.c (x86_linux_read_description): Add case for
	X86_XSTATE_AVX_MPX_MASK.
	(x86_get_ipa_tdesc_idx): Add cases for avx_mpx.
	(initialize_low_arch): Call init_registers_amd64_avx_mpx_linux and
	init_registers_i386_avx_mpx_linux.
	* linux-i386-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
	(initialize_low_tracepoint): Call
	init_registers_i386_avx_mpx_linux.
	* linux-amd64-ipa.c (get_ipa_tdesc):  Add case for avx_mpx.
	(initialize_low_tracepoint): Call
	init_registers_amd64_avx_mpx_linux.
	* linux-x86-tdesc.h (X86_TDESC_AVX_MPX): New enum value.
	(init_registers_amd64_avx_mpx_linux, tdesc_amd64_avx_mpx_linux)
	(init_registers_i386_avx_mpx_linux, tdesc_i386_avx_mpx_linux): New
	declarations.
2016-04-19 15:44:32 +02:00
Doug Evans
49b7ae7bb8 Remove "end" spec.
gdb/ChangeLog:

	* features/i386/32bit-core.xml (i386_eflags): Remove "end" spec.
	* features/i386/32bit-sse.xml (i386_eflags): Ditto.
	* features/i386/64bit-core.xml (i386_eflags): Ditto.
	* features/i386/64bit-sse.xml (i386_eflags): Ditto.
	* features/i386/x32-core.xml (i386_eflags): Ditto.
2016-03-15 14:41:52 -07:00
Doug Evans
73b4f516a0 maint_print_c_tdesc_cmd: Use type for TYPE_CODE_FLAGS instead of field_type.
gdb/ChangeLog:

	* target-descriptions.c (maint_print_c_tdesc_cmd): Use "type" for
	TYPE_CODE_FLAGS instead of "field_type", for consistency.
	* features/i386/amd64-avx-linux.c: Regenerate.
	* features/i386/amd64-avx.c: Regenerate.
	* features/i386/amd64-avx512-linux.c: Regenerate.
	* features/i386/amd64-avx512.c: Regenerate.
	* features/i386/amd64-linux.c: Regenerate.
	* features/i386/amd64-mpx-linux.c: Regenerate.
	* features/i386/amd64-mpx.c: Regenerate.
	* features/i386/amd64.c: Regenerate.
	* features/i386/i386-avx-linux.c: Regenerate.
	* features/i386/i386-avx.c: Regenerate.
	* features/i386/i386-avx512-linux.c: Regenerate.
	* features/i386/i386-avx512.c: Regenerate.
	* features/i386/i386-linux.c: Regenerate.
	* features/i386/i386-mmx-linux.c: Regenerate.
	* features/i386/i386-mmx.c: Regenerate.
	* features/i386/i386-mpx-linux.c: Regenerate.
	* features/i386/i386-mpx.c: Regenerate.
	* features/i386/i386.c: Regenerate.
	* features/i386/x32-avx-linux.c: Regenerate.
	* features/i386/x32-avx.c: Regenerate.
	* features/i386/x32-avx512-linux.c: Regenerate.
	* features/i386/x32-avx512.c: Regenerate.
	* features/i386/x32-linux.c: Regenerate.
	* features/i386/x32.c: Regenerate.
2016-03-15 12:53:55 -07:00
Joel Brobecker
618f726fcb GDB copyright headers update after running GDB's copyright.py script.
gdb/ChangeLog:

        Update year range in copyright notice of all files.
2016-01-01 08:43:22 +04:00
Joel Brobecker
32d0add0a6 Update year range in copyright notice of all files owned by the GDB project.
gdb/ChangeLog:

        Update year range in copyright notice of all files.
2015-01-01 13:32:14 +04:00
Pedro Alves
d63f2f8402 Regenerate AVX512 target description C files
I regenerated all the .c files under src/gdb/features/ and this is
what I got.

gdb/
2014-10-01  Pedro Alves  <palves@redhat.com>

	* features/i386/amd64-avx512-linux.c: Regenerate.
	* features/i386/amd64-avx512.c: Regenerate.
	* features/i386/x32-avx512-linux.c: Regenerate.
	* features/i386/x32-avx512.c: Regenerate.
2014-10-01 11:59:46 +01:00
Pedro Alves
e001e535f6 Fix features/i386/64bit-avx512.xml
This file's format is invalid, as it's missing some end quotes.

I noticed this because I tried to regenerate all the .dat files in
gdb/regformats/.  I got:

    sh ../../move-if-change ../regformats/i386/x32-avx.tmp ../regformats/i386/x32-avx.dat
    echo "# DO NOT EDIT: generated from i386/x32-avx512.xml" > ../regformats/i386/x32-avx512.tmp
    echo "name:`echo x32-avx512 | sed 's/-/_/g'`" >> ../regformats/i386/x32-avx512.tmp
    echo "xmltarget:x32-avx512.xml" >> ../regformats/i386/x32-avx512.tmp
    echo "expedite:rbp,rsp,rip" \
      >> ../regformats/i386/x32-avx512.tmp
    xsltproc --path "/home/pedro/gdb/mygit/src/gdb/features" --xinclude number-regs.xsl i386/x32-avx512.xml | \
      xsltproc sort-regs.xsl - | \
      xsltproc gdbserver-regs.xsl - >> ../regformats/i386/x32-avx512.tmp
    i386/64bit-avx512.xml:81: parser error : Unescaped '<' not allowed in attributes values
      <reg name="zmm11h" bitsize="256" type="v2ui128/>
      ^
    i386/64bit-avx512.xml:81: parser error : attributes construct error
      <reg name="zmm11h" bitsize="256" type="v2ui128/>
      ^
    i386/64bit-avx512.xml:81: parser error : Couldn't find end of Start Tag reg line 80
      <reg name="zmm11h" bitsize="256" type="v2ui128/>
      ^
    i386/64bit-avx512.xml:82: parser error : Unescaped '<' not allowed in attributes values
      <reg name="zmm12h" bitsize="256" type="v2ui128/>
      ^
    i386/64bit-avx512.xml:82: parser error : attributes construct error
      <reg name="zmm12h" bitsize="256" type="v2ui128/>
      ^
...
    i386/x32-avx512.xml:17: element include: XInclude error : could not load i386/64bit-avx512.xml, and no fallback was found
    -:1: parser error : Document is empty

    ^
    -:1: parser error : Start tag expected, '<' not found

    ^
    unable to parse -
    -:1: parser error : Document is empty

    ^
    -:1: parser error : Start tag expected, '<' not found

    ^
    unable to parse -
    make: *** [../regformats/i386/x32-avx512.dat] Error 6

Interestingly, gdb/expat manages to grok the broken file.

gdb/
2014-10-01  Pedro Alves  <palves@redhat.com>

	* features/i386/64bit-avx512.xml (zmm10h, zmm11h, zmm12h, zmm13h)
	(zmm14h): Add missing end quotes.
2014-10-01 10:52:54 +01:00
Michael Sturm
01f9f808e2 Add AVX512 registers support to GDB and GDBserver.
This patch adds support for the Intel(R) Advanced Vector
Extensions 512 (Intel(R) AVX-512) registers.  Native and remote
debugging are covered by this patch.

Intel(R) AVX-512 is an extension to AVX to support 512-bit wide
SIMD registers in 64-bit mode (XMM0-XMM31, YMM0-YMM31, ZMM0-ZMM31).
The number of available registers in 32-bit mode is still 8
(XMM0-7, YMM0-7, ZMM0-7).  The lower 256-bits of the ZMM registers
are aliased to the respective 256-bit YMM registers.  The lower
128-bits are aliased to the respective 128-bit XMM registers.

There are also 8 new, dedicated mask registers (K0-K7) in both 32-bit
mode and 64-bit mode.

For more information please see
Intel(R) Developer Zone: Intel(R) AVX
http://software.intel.com/en-us/intel-isa-extensions#pid-16007-1495

Intel(R) Architecture Instruction Set Extensions Programming Reference:
http://software.intel.com/en-us/file/319433-017pdf

2014-04-24  Michael Sturm  <michael.sturm@mintel.com>
            Walfred Tedeschi  <walfred.tedeschi@intel.com>

     * amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add
     AVX512 registers.
     (amd64_linux_read_description): Add code to handle AVX512 xstate
     mask and return respective tdesc.
     * amd64-linux-tdep.c: Include features/i386/amd64-avx512-linux.c
     and features/i386/x32-avx512-linux.c.
     (amd64_linux_gregset_reg_offset): Add AVX512 registers.
     (amd64_linux_core_read_description): Add code to handle AVX512
     xstate mask and return respective tdesc.
     (_initialize_amd64_linux_tdep): Initialize AVX512 tdesc.
     * amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum
     calculation.
     (AMD64_LINUX_NUM_REGS): Adjust to new number of registers.
     (tdesc_amd64_avx512_linux): New prototype.
     (tdesc_x32_avx512_linux): Likewise.
     * amd64-tdep.c: Include features/i386/amd64-avx512.c and
     features/i386/x32-avx512.c.
     (amd64_ymm_avx512_names): New register names for pseudo
     registers YMM16-31.
     (amd64_ymmh_avx512_names): New register names for raw registers
     YMMH16-31.
     (amd64_k_names): New register names for K registers.
     (amd64_zmmh_names): New register names for ZMM raw registers.
     (amd64_zmm_names): New registers names for ZMM pseudo registers.
     (amd64_xmm_avx512_names): New register names for XMM16-31
     registers.
     (amd64_pseudo_register_name): Add code to return AVX512 pseudo
     registers.
     (amd64_init_abi): Add code to intitialize AVX512 tdep variables
     if feature is present.
     (_initialize_amd64_tdep): Call AVX512 tdesc initializers.
     * amd64-tdep.h (enum amd64_regnum): Add AVX512 registers.
     (AMD64_NUM_REGS): Adjust to new number of registers.
     * i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Extend range of
     registers supplied via XSTATE by AVX512 registers.
     (i386_linux_read_description): Add case for AVX512.
     * i386-linux-tdep.c: Include i386-avx512-linux.c.
     (i386_linux_gregset_reg_offset): Add AVX512 registers.
     (i386_linux_core_read_description): Add case for AVX512.
     (i386_linux_init_abi): Install supported register note section
     for AVX512.
     (_initialize_i386_linux_tdep): Add call to tdesc init function for
     AVX512.
     * i386-linux-tdep.h (I386_LINUX_NUM_REGS): Set number of
     registers to be number of zmm7h + 1.
     (tdesc_i386_avx512_linux): Add tdesc for AVX512 registers.
     * i386-tdep.c: Include features/i386/i386-avx512.c.
     (i386_zmm_names): Add ZMM pseudo register names array.
     (i386_zmmh_names): Add ZMM raw register names array.
     (i386_k_names): Add K raw register names array.
     (num_lower_zmm_regs): Add constant for the number of lower ZMM
     registers. AVX512 has 16 more ZMM registers than there are YMM
     registers.
     (i386_zmmh_regnum_p): Add function to look up register number of
     ZMM raw registers.
     (i386_zmm_regnum_p): Likewise for ZMM pseudo registers.
     (i386_k_regnum_p): Likewise for K raw registers.
     (i386_ymmh_avx512_regnum_p): Likewise for additional YMM raw
     registers added by AVX512.
     (i386_ymm_avx512_regnum_p): Likewise for additional YMM pseudo
     registers added by AVX512.
     (i386_xmm_avx512_regnum_p): Likewise for additional XMM registers
     added by AVX512.
     (i386_register_name): Add code to hide YMMH16-31 and ZMMH0-31.
     (i386_pseudo_register_name): Add ZMM pseudo registers.
     (i386_zmm_type): Construct and return vector registers type for ZMM
     registers.
     (i386_pseudo_register_type): Return appropriate type for YMM16-31,
     ZMM0-31 pseudo registers and K registers.
     (i386_pseudo_register_read_into_value): Add code to read K, ZMM
     and YMM16-31 registers from register cache.
     (i386_pseudo_register_write): Add code to write  K, ZMM and
     YMM16-31 registers.
     (i386_register_reggroup_p): Add code to include/exclude AVX512
     registers in/from respective register groups.
     (i386_validate_tdesc_p): Handle AVX512 feature, add AVX512
     registers if feature is present in xcr0.
     (i386_gdbarch_init): Add code to initialize AVX512 feature
     variables in tdep structure, wire in pseudo registers and call
     initialize_tdesc_i386_avx512.
     * i386-tdep.h (struct gdbarch_tdep): Add AVX512 related
     variables.
     (i386_regnum): Add AVX512 registers.
     (I386_SSE_NUM_REGS): New define for number of SSE registers.
     (I386_AVX_NUM_REGS): Likewise for AVX registers.
     (I386_AVX512_NUM_REGS): Likewise for AVX512 registers.
     (I386_MAX_REGISTER_SIZE): Change to 64 bytes, ZMM registers are
     512 bits wide.
     (i386_xmm_avx512_regnum_p): New prototype for register look up.
     (i386_ymm_avx512_regnum_p): Likewise.
     (i386_k_regnum_p): Likewise.
     (i386_zmm_regnum_p): Likewise.
     (i386_zmmh_regnum_p): Likewise.
     * i387-tdep.c : Update year in copyright notice.
     (xsave_ymm_avx512_offset): New table for YMM16-31 offsets in
     XSAVE buffer.
     (XSAVE_YMM_AVX512_ADDR): New macro.
     (xsave_xmm_avx512_offset): New table for XMM16-31 offsets in
     XSAVE buffer.
     (XSAVE_XMM_AVX512_ADDR): New macro.
     (xsave_avx512_k_offset): New table for K register offsets in
     XSAVE buffer.
     (XSAVE_AVX512_K_ADDR): New macro.
     (xsave_avx512_zmm_h_offset): New table for ZMM register offsets
     in XSAVE buffer.
     (XSAVE_AVX512_ZMM_H_ADDR): New macro.
     (i387_supply_xsave): Add code to supply AVX512 registers to XSAVE
     buffer.
     (i387_collect_xsave): Add code to collect AVX512 registers from
     XSAVE buffer.
     * i387-tdep.h (I387_NUM_XMM_AVX512_REGS): New define for number
     of XMM16-31 registers.
     (I387_NUM_K_REGS): New define for number of K registers.
     (I387_K0_REGNUM): New define for K0 register number.
     (I387_NUM_ZMMH_REGS): New define for number of ZMMH registers.
     (I387_ZMM0H_REGNUM): New define for ZMM0H register number.
     (I387_NUM_YMM_AVX512_REGS): New define for number of YMM16-31
     registers.
     (I387_YMM16H_REGNUM): New define for YMM16H register number.
     (I387_XMM16_REGNUM): New define for XMM16 register number.
     (I387_YMM0_REGNUM): New define for YMM0 register number.
     (I387_KEND_REGNUM): New define for last K register number.
     (I387_ZMMENDH_REGNUM): New define for last ZMMH register number.
     (I387_YMMH_AVX512_END_REGNUM): New define for YMM31 register
     number.
     (I387_XMM_AVX512_END_REGNUM): New define for XMM31 register
     number.
     * common/i386-xstate.h: Add AVX 3.1 feature bits, mask and XSTATE
     size.
     * features/Makefile: Add AVX512 related files.
     * features/i386/32bit-avx512.xml: New file.
     * features/i386/64bit-avx512.xml: Likewise.
     * features/i386/amd64-avx512-linux.c: Likewise.
     * features/i386/amd64-avx512-linux.xml: Likewise.
     * features/i386/amd64-avx512.c: Likewise.
     * features/i386/amd64-avx512.xml: Likewise.
     * features/i386/i386-avx512-linux.c: Likewise.
     * features/i386/i386-avx512-linux.xml: Likewise.
     * features/i386/i386-avx512.c: Likewise.
     * features/i386/i386-avx512.xml: Likewise.
     * features/i386/x32-avx512-linux.c: Likewise.
     * features/i386/x32-avx512-linux.xml: Likewise.
     * features/i386/x32-avx512.c: Likewise.
     * features/i386/x32-avx512.xml: Likewise.
     * regformats/i386/amd64-avx512-linux.dat: New file.
     * regformats/i386/amd64-avx512.dat: Likewise.
     * regformats/i386/i386-avx512-linux.dat: Likewise.
     * regformats/i386/i386-avx512.dat: Likewise.
     * regformats/i386/x32-avx512-linux.dat: Likewise.
     * regformats/i386/x32-avx512.dat: Likewise.
     * NEWS: Add note about new support for AVX512.

testsuite/
     * Makefile.in (EXECUTABLES): Added i386-avx512.
     * gdb.arch/i386-avx512.c: New file.
     * gdb.arch/i386-avx512.exp: Likewise.

gdbserver/
     * Makefile.in: Added rules to handle new files
     i386-avx512.c i386-avx512-linux.c amd64-avx512.c
     amd64-avx512-linux.c x32-avx512.c x32-avx512-linux.c.
     * configure.srv (srv_i386_regobj): Add i386-avx512.o.
     (srv_i386_linux_regobj): Add i386-avx512-linux.o.
     (srv_amd64_regobj): Add amd64-avx512.o and x32-avx512.o.
     (srv_amd64_linux_regobj): Add amd64-avx512-linux.o and
     x32-avx512-linux.o.
     (srv_i386_32bit_xmlfiles): Add i386/32bit-avx512.xml.
     (srv_i386_64bit_xmlfiles): Add i386/64bit-avx512.xml.
     (srv_amd64_xmlfiles): Add i386/amd64-avx512.xml and
     i386/x32-avx512.xml.
     (srv_i386_linux_xmlfiles): Add i386/i386-avx512-linux.xml.
     (srv_amd64_linux_xmlfiles): Add i386/amd64-avx512-linux.xml and
     i386/x32-avx512-linux.xml.
     * i387-fp.c (num_avx512_k_registers): New constant for number
     of K registers.
     (num_avx512_zmmh_low_registers): New constant for number of
     lower ZMM registers (0-15).
     (num_avx512_zmmh_high_registers): New constant for number of
     higher ZMM registers (16-31).
     (num_avx512_ymmh_registers): New contant for number of higher
     YMM registers (ymm16-31 added by avx521 on x86_64).
     (num_avx512_xmm_registers): New constant for number of higher
     XMM registers (xmm16-31 added by AVX512 on x86_64).
     (struct i387_xsave): Add space for AVX512 registers.
     (i387_cache_to_xsave): Change raw buffer size to 64 characters.
     Add code to handle AVX512 registers.
     (i387_xsave_to_cache): Add code to handle AVX512 registers.
     * linux-x86-low.c (init_registers_amd64_avx512_linux): New
     prototypei from generated file.
     (tdesc_amd64_avx512_linux): Likewise.
     (init_registers_x32_avx512_linux): Likewise.
     (tdesc_x32_avx512_linux): Likewise.
     (init_registers_i386_avx512_linux): Likewise.
     (tdesc_i386_avx512_linux): Likewise.
     (x86_64_regmap): Add AVX512 registers.
     (x86_linux_read_description): Add code to handle AVX512 XSTATE
     mask.
     (initialize_low_arch): Add code to initialize AVX512 registers.

doc/
     * gdb.texinfo (i386 Features): Add description of AVX512
     registers.

Change-Id: Ifc4c08c76b85dbec18d02efdbe6182e851584438
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2014-04-24 16:30:03 +02:00
Joel Brobecker
ecd75fc8ee Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
Walfred Tedeschi
ccc42043f7 Add MPX registers XML files.
2013-11-20  Walfred Tedeschi  <walfred.tedeschi@intel.com>

	* features/i386/Makefile: Adapts for using MPX registers.
	* features/i386/32bit-mpx.xml: New file.
	* features/i386/64bit-mpx.xml: Likewise.
	* features/i386/amd64-mpx-linux.c: Likewise.
	* features/i386/amd64-mpx-linux.xml: Likewise.
	* features/i386/amd64-mpx.c: Likewise.
	* features/i386/amd64-mpx.xml: Likewise.
	* features/i386/i386-mpx-linux.c: Likewise.
	* features/i386/i386-mpx-linux.xml: Likewise.
	* features/i386/i386-mpx.c: Likewise.
	* features/i386/i386-mpx.xml: Likewise.
	* regformats/i386/amd64-mpx-linux.dat: New file.
	* regformats/i386/amd64-mpx.dat: Likewise.
	* regformats/i386/i386-mpx-linux.dat: Likewise.
 	* regformats/i386/i386-mpx.dat: Likewise.
2013-11-20 14:42:50 +01:00