Age | Commit message (Collapse) | Author | Files | Lines |
|
gdb/ChangeLog:
Update copyright year range in all GDB files
|
|
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.
|
|
This patch prepares the current GDB port of the OpenRISC processor from
https://github.com/openrisc/binutils-gdb for upstream merging.
Testing has been done with a cgen sim provided in a separate patch. This
has been tested with 2 toolchains. GCC [1] 5.4.0 from the OpenRISC
project with Newlib [2] and GCC 5.4.0 with Musl [3] 1.1.4.
It supports or1knd (no delay slot target).
The default target is or1k (with delay slot).
You can change the target arch with:
(gdb) set architecture or1knd
The target architecture is assumed to be or1knd
[1] https://github.com/openrisc/or1k-gcc
[2] https://github.com/openrisc/newlib
[3] https://github.com/openrisc/musl-cross
gdb/doc/ChangeLog:
2017-12-12 Stafford Horne <shorne@gmail.com>
Stefan Wallentowitz <stefan@wallentowitz.de>
Franck Jullien <franck.jullien@gmail.com>
Jeremy Bennett <jeremy.bennett@embecosm.com>
* gdb.texinfo: Add OpenRISC documentation.
gdb/ChangeLog:
2017-12-12 Stafford Horne <shorne@gmail.com>
Stefan Wallentowitz <stefan@wallentowitz.de>
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
Franck Jullien <franck.jullien@gmail.com>
Jeremy Bennett <jeremy.bennett@embecosm.com>
* configure.tgt: Add targets for or1k and or1knd.
* or1k-tdep.c: New file.
* or1k-tdep.h: New file.
* features/Makefile: Add or1k.xml to build.
* features/or1k.xml: New file.
* features/or1k-core.xml: New file.
* features/or1k.c: Generated.
|
|
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.
|
|
Make the name, group and type fields of tdesc_reg std::strings. This
way, we don't have to manually free them in ~tdesc_reg.
Doing so results in a small change in the generated tdesc. Instead of
passing an empty string for the group parameter of tdesc_create_reg, the
two modified tdesc now pass NULL. The end result should be the same.
gdb/ChangeLog:
* target-descriptions.c (struct tdesc_reg) <tdesc_reg>: Change
type of name_ parameter, adjust to std::string change.
<name, group, type>: Change type to std::string.
<~tdesc_reg>: Replace with default implementation.
<operator==>: Adjust.
(tdesc_find_register_early): Adjust.
(tdesc_register_name): Adjust.
(tdesc_register_type): Adjust.
(tdesc_register_in_reggroup_p): Adjust.
(class print_c_tdesc) <visit>: Adjust.
(class print_c_feature) <visit>: Adjust.
|
|
gdb/
* aarch64-tdep.c (_initialize_aarch64_tdep): Remove init.
* arch/aarch64.c (aarch64_create_target_description): Create
new target description.
* features/Makefile: Add new files.
* features/aarch64.c: Remove file.
* features/aarch64-core.c: New autogenerated file.
* features/aarch64-fpu.c: New autogenerated file.
* target-descriptions.c (maint_print_c_tdesc_cmd): Check for aarch64.
gdbserver/
* linux-aarch64-ipa.c (initialize_low_tracepoint): Remove init.
* linux-aarch64-low.c (initialize_low_arch): Remove init.
* linux-aarch64-tdesc.c (aarch64_linux_read_description): Add init.
|
|
This patch changes tic6x target descriptions to be more flexible. Rebuild
tic6x-uclinux GDBserver with my x86 g++, and the unit test passes.
gdb:
2017-11-24 Yao Qi <yao.qi@linaro.org>
* arch/tic6x.c: New file.
* arch/tic6x.h: New file.
* features/Makefile (FEATURE_XMLFILES): Add tic6x-c6xp.xml,
tic6x-core.xml and tic6x-gp.xml.
* features/tic6x-c6xp.c: Generated.
* features/tic6x-core.c: Generated.
* features/tic6x-gp.c: Generated.
* target-descriptions.c (maint_print_c_tdesc_cmd): Match
"tic6x-".
gdb/gdbserver:
2017-11-24 Yao Qi <yao.qi@linaro.org>
* configure.srv: Set $srv_regobj for tic6x-linux.
* linux-tic6x-low.c: Include "arch/tic6x.h" and "tdesc.h".
(tic6x_read_description): Move some code to tic6x_arch_setup.
(tic6x_tdesc_test): New function.
(initialize_low_arch): Call selftests::register_test.
|
|
They are not used by GDB nor by GDBserver. This patch removes them.
gdb:
2017-11-16 Yao Qi <yao.qi@linaro.org>
* features/tic6x-c62x.xml: Remove.
* features/tic6x-c64x.xml: Remove.
* features/tic6x-c64xp.xml: Remove.
|
|
tdesc_nios2_linux is not used at all. Remove features/nios2-linux.c,
and don't generate it anymore.
gdb:
2017-11-15 Yao Qi <yao.qi@linaro.org>
* features/Makefile (XMLTOC): Remove nios2-linux.xml.
* features/nios2-linux.c: Remove.
* nios2-linux-tdep.c (_initialize_nios2_linux_tdep): Don't call
initialize_tdesc_nios2_linux.
|
|
c40c7bf (Remove features/tic6x-*.c files) doesn't remove
features/tic6x-c62x-linux.c. This patch removes it.
gdb:
2017-10-18 Yao Qi <yao.qi@linaro.org>
* features/tic6x-c62x-linux.c: Remove.
|
|
features/*.c are generated from *.xml files, in order to get pre-defined
target descriptions, (for native debugging, for example). However, these
pre-generated tdesc_tic6x_* are not used in GDB at all. This patch removes
features/tic6x-*.c files.
gdb:
2017-10-16 Yao Qi <yao.qi@linaro.org>
* features/Makefile (XMLTOC): Remove tic6x-*.xml.
* features/tic6x-c62x.c: Remove.
* features/tic6x-c64x-linux.c: Remove.
* features/tic6x-c64x.c: Remove.
* features/tic6x-c64xp-linux.c: Remove.
* features/tic6x-c64xp.c: Remove.
* tic6x-linux-tdep.c (_initialize_tic6x_linux_tdep): Don't call
initialize_tdesc_tic6x_*_linux functions.
* tic6x-tdep.c (_initialize_tic6x_tdep): Don't call
initialize_tdesc_tic6x_* functions.
|
|
tic6x-uclinux GDBserver uses linux target descriptions, instead of these
non-linux target descriptions. So we can remove these *.dat files.
gdb:
2017-10-16 Yao Qi <yao.qi@linaro.org>
* features/Makefile (WHICH): Remove tic6x-c64xp, tic6x-c64x
tic6x-c62x.
* regformats/tic6x-c62x.dat: Remove.
* regformats/tic6x-c64x.dat: Remove.
* regformats/tic6x-c64xp.dat: Remove.
|
|
Nowadays, we have six tic6x expedite registers, which are duplicated.
tic6x-c64xp-expedite = A15,PC
tic6x-c64x-expedite = A15,PC
tic6x-c62x-expedite = A15,PC
tic6x-c64xp-linux-expedite = A15,PC
tic6x-c64x-linux-expedite = A15,PC
tic6x-c62x-linux-expedite = A15,PC
in features/Makefile, we have
echo "expedite:$(if $($*-expedite),$($*-expedite),$($(firstword $(subst -, ,$(notdir $*)))-expedite))" \
>> $(outdir)/$*.tmp
which means for a given bar/foo-baz.xml, we'll look for either
bar/foo-baz-expedite or foo-expedite. We can define only one generic
expedite register for all different ti6cx and s390x target descriptions.
Actually, we've done that for x86 target descriptions.
Re-run 'make GDB=/path/build/gdb all' to regenerate regformats/*.dat files,
and they are not changed.
gdb:
2017-10-13 Yao Qi <yao.qi@linaro.org>
* features/Makefile: Remove tic6x-*-expedite, add tic6x-expedite.
Remove s390x-*-expedite, add s390x-expedite.
|
|
gdb:
2017-10-13 Yao Qi <yao.qi@linaro.org>
* features/s390-gs-linux64.c: Regenerated.
* features/s390x-gs-linux64.c: Regenerated.
|
|
Newer Linux kernel versions offer two new register sets in support of the
z/Architecture's guarded storage facility. This patch adds XML
descriptions and the respective autogenerated .c and .dat files for
s390/s390x targets with this feature.
gdb/ChangeLog:
* features/s390-gs-linux64.xml: New file.
* features/s390-gs.xml: New file.
* features/s390-gsbc.xml: New file.
* features/s390x-gs-linux64.xml: New file.
* features/Makefile (WHICH): Add s390-gs-linux64 and
s390x-gs-linux64.
(s390-gs-linux64-expedite, s390x-gs-linux64-expedite): New macros.
(XMLTOC): Add s390-gs-linux64.xml and s390x-linux64.xml.
* features/s390-gs-linux64.c: New generated file.
* features/s390x-gs-linux64.c: New file.
* regformats/s390-gs-linux64.dat: New file.
* regformats/s390x-gs-linux64.dat: New file.
|
|
In an old commit the backslash of was missing in the rule for creating the
i386-avx-mpx-avx512-pku.dat file. No need to regenerate the files, this
was done by another commit from Yao.
2017-09-20 Walfred Tedeschi <walfred.tedeschi@intel.com>
* features/Makefile (i386-avx-mpx-avx512-pku.dat): Add backslash.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
In GDBserver, only tdesc_i386 and tdesc_amd64 are used. There is no point
of generating these *.dat files (which are used to generate *.c files during
GDBserver build.).
gdb:
2017-08-09 Yao Qi <yao.qi@linaro.org>
* features/Makefile (WHICH): Remove i386/ non-linux stuff.
* regformats/i386/amd64-avx-avx512.dat: Remove.
* regformats/i386/amd64-avx-mpx-avx512-pku.dat: Remove.
* regformats/i386/amd64-avx-mpx.dat:Remove.
* regformats/i386/amd64-avx.dat: Remove.
* regformats/i386/amd64-mpx.dat: Remove.
* regformats/i386/i386-avx-avx512.dat: Remove.
* regformats/i386/i386-avx-mpx-avx512-pku.dat: Remove.
* regformats/i386/i386-avx-mpx.dat: Remove.
* regformats/i386/i386-mmx.dat: Remove.
* regformats/i386/i386-mpx.dat: Remove.
gdb/gdbserver:
2017-08-09 Yao Qi <yao.qi@linaro.org>
* configure.srv (srv_i386_regobj): Remove i386-avx.o,
i386-avx-avx512.o, i386-avx-mpx-avx512-pku.o, i386-mpx.o,
i386-avx-mpx.o and i386-mmx.o.
(srv_amd64_regobj): Remove amd64-avx.o, amd64-avx-avx512.o,
amd64-avx-mpx-avx512-pku.o, amd64-mpx.o and amd64-avx-mpx.o.
(srv_i386_xmlfiles): Remove i386/i386-avx.xml,
i386/i386-avx-avx512.xml, i386/i386-avx-mpx-avx512-pku.xml,
i386/i386-mpx.xml, i386/i386-avx-mpx.xml and i386/i386-mmx.xml.
(srv_amd64_xmlfile):i386/amd64-avx.xml, i386/amd64-avx-avx512.xml,
i386/amd64-avx-mpx-avx512-pku.xml, i386/amd64-mpx.xml,
i386/amd64-avx-mpx.xml.
|
|
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.
|
|
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.
|
|
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-".
|
|
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.
|
|
Nowadays, we need two steps to print c files for xml target description,
that is, 1) read xml target description in, update the current tdesc,
2) visit the current tdesc, print the c file. It is unnecessary to
involve in current tdesc, and some validations in each gdbarch are
performed unnecessarily, which will reject some target descriptions if
they are missing some mandatory feature.
This patch adds an optional argument to "maint print c-tdesc", which
is an XML file target description, so that we can combine the two
steps above into one step, and don't have to involve in global current
tdesc.
gdb:
2017-07-26 Yao Qi <yao.qi@linaro.org>
* NEWS: Mention it.
* features/Makefile (%.c: %.xml): Pass the xml file name to
command "maint print c-tdesc".
* target-descriptions.c (maint_print_c_tdesc_cmd): Get file
name from 'arg'.
gdb/doc:
2017-07-26 Yao Qi <yao.qi@linaro.org>
* gdb.texinfo (Maintenance Commands): Document optional
argument of "maint print c-tdesc".
|
|
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.
|
|
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.
|
|
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.
|
|
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>
|
|
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>
|
|
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>
|
|
gdb/ChangeLog:
2017-02-06 Ivo Raisr <ivo.raisr@oracle.com>
PR tdep/20936
Provide and use sparc32 and sparc64 target description XML files.
* features/sparc/sparc32-cp0.xml, features/sparc/sparc32-cpu.xml,
features/sparc/sparc32-fpu.xml: New files for sparc 32-bit.
* features/sparc/sparc64-cp0.xml, features/sparc/sparc64-cpu.xml,
features/sparc/sparc64-fpu.xml: New files for sparc 64-bit.
* features/sparc/sparc32-solaris.xml: New file.
* features/sparc/sparc64-solaris.xml: New file.
* features/sparc/sparc32-solaris.c: Generated.
* features/sparc/sparc64-solaris.c: Generated.
* sparc-tdep.h: Account for differences in target descriptions.
* sparc-tdep.c (sparc32_register_name): Use target provided registers.
(sparc32_register_type): Use target provided registers.
(validate_tdesc_registers): New function.
(sparc32_gdbarch_init): Use tdesc_has_registers.
Set pseudoregister functions.
* sparc64-tdep.c (sparc64_register_name): Use target provided registers.
(sparc64_register_type): Use target provided registers.
(sparc64_init_abi): Set pseudoregister functions.
gdb/doc/ChangeLog:
2017-02-06 Ivo Raisr <ivo.raisr@oracle.com>
PR tdep/20936
* gdb.texinfo: (Standard Target Features): Document SPARC features.
(Sparc Features): New node.
gdb/testsuite/ChangeLog:
2017-02-06 Ivo Raisr <ivo.raisr@oracle.com>
PR tdep/20936
* gdb.xml/tdesc-regs.exp: Provide sparc core registers for the tests.
|
|
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>
|
|
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.
|
|
Remove some __cplusplus checks, inline EXPORTED_CONST, and update some comments.
gdb/ChangeLog:
2016-10-06 Pedro Alves <palves@redhat.com>
* cp-valprint.c (vtbl_ptr_name): Write "extern const" instead of
EXPORTED_CONST.
* stub-termcap.c: Remove __cplusplus checks.
* common/common-defs.h [!__cplusplus] (EXTERN_C, EXTERN_C_PUSH,
EXTERN_C_POP): Delete.
* common/common-exceptions.h (GDB_XCPT_SJMP): Update comments.
(GDB_XCPT) [!__cplusplus]: Delete.
(throw_exception, throw_exception_sjlj): Update comments.
* guile/guile-internal.h (as_a_scm_t_subr) [!__cplusplus]: Delete.
* guile/guile.c (extension_language_guile): Write "extern const"
instead of EXPORTED_CONST.
* features/feature_to_c.sh: Don't emit !__cplusplus code. Write
"extern const" instead of EXPORTED_CONST.
|
|
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.
|
|
If I remove all regformats/*.dat files and run
make GDB=/scratch/yao/gdb/build-git/all-targets/gdb/gdb all, some
powerpc .dat files are not generated.
This patch fixes it by adding them to WHICH, so these .dat files can
be generated.
gdb:
2016-10-05 Yao Qi <yao.qi@linaro.org>
* features/Makefile (WHICH): Add
rs6000/powerpc-isa205-32l, rs6000/powerpc-isa205-64l,
rs6000/powerpc-isa205-altivec32l, rs6000/powerpc-isa205-altivec64l,
rs6000/powerpc-isa205-vsx32l and rs6000/powerpc-isa205-vsx64l.
* regformats/rs6000/powerpc-isa205-32l.dat: Regenerated.
* regformats/rs6000/powerpc-isa205-64l.dat: Likewise.
* regformats/rs6000/powerpc-isa205-altivec32l.dat: Likewise.
* regformats/rs6000/powerpc-isa205-altivec64l.dat: Likewise.
* regformats/rs6000/powerpc-isa205-vsx32l.dat: Likewise.
* regformats/rs6000/powerpc-isa205-vsx64l.dat: Likewise.
|
|
If I delete all target description c files under features/ directory,
and run make GDB=/scratch/yao/gdb/build-git/all-targets/gdb/gdb cfiles,
some s390 target description c files are not generated.
This patch adds these s390 xml files to XMLTOC, so these c files can
be generated.
gdb:
2016-10-05 Yao Qi <yao.qi@linaro.org>
* features/Makefile (XMLTOC): Add s390-tevx-linux64.xml,
s390-vx-linux64.xml, s390x-tevx-linux64.xml and
s390x-vx-linux64.xml.
|
|
Nowadays, there are a lot of duplication about
i386/{i386, amd64, x32}*-expedite in features/Makefile. However,
in features/Makefile, we have
echo "expedite:$(if $($*-expedite),$($*-expedite),$($(firstword $(subst -, ,$(notdir $*)))-expedite))" \
>> $(outdir)/$*.tmp
which means for a given bar/foo-baz.xml, we'll look for either
bar/foo-baz-expedite or foo-expedite. In x86 expedite registers, we
use the former now, but it will be much simpler if we use the latter.
This is what this patch does. This patch removes them, and defines
three generic expedite. Re-run 'make GDB=/path/build/gdb all' to
regenerate regformats/*.dat files, and they are not changed.
gdb:
2016-10-05 Yao Qi <yao.qi@linaro.org>
* features/Makefile: Remove i386/*-expedite. Add i386-expedite,
amd64-expedite, and x32-expedite.
|
|
This patch is move features/arm-*.xml to features/arm/, and it is based
on Terry's patch posted here
https://sourceware.org/ml/gdb-patches/2014-06/msg00794.html
One comment to Terry's patch is about losing "arm" prefix, and the new
patch fixes this problem.
gdb:
2016-10-05 Terry Guo <terry.guo@arm.com>
Yao Qi <yao.qi@linaro.org>
* arm-tdep.c: Adjust includes.
* features/Makefile (WHICH): Add "arm/" directory to arm
target descriptions.
(XMLTOC): Likewise.
(arm/arm-with-iwmmxt.dat): Adjust the path for
dependencies.
* features/arm-core.xml: Moved to ...
* features/arm/arm-core.xml: ... it.
* features/arm-fpa.xml: Moved to ...
* features/arm/arm-fpa.xml: ... it.
* features/arm-m-profile.xml: Moved to ...
* features/arm/arm-m-profile.xm: ... it.
* features/arm-vfpv2.xml: Moved to ...
* features/arm/arm-vfpv2.xm: ... it.
* features/arm-vfpv3.xml: Moved to ...
* features/arm/arm-vfpv3.xml: ... it.
* features/arm-with-iwmmxt.c: Moved to ...
* features/arm/arm-with-iwmmxt.c: ... it.
* features/arm-with-iwmmxt.xml: Moved to ...
* features/arm/arm-with-iwmmxt.xml: ... it.
* features/arm-with-m-fpa-layout.c: Moved to ...
* features/arm/arm-with-m-fpa-layout.c: ... it.
* features/arm-with-m-fpa-layout.xml: Moved to ...
* features/arm/arm-with-m-fpa-layout.xml: ... it.
* features/arm-with-m-vfp-d16.c: Moved to ...
* features/arm/arm-with-m-vfp-d16.c: ... it.
* features/arm-with-m-vfp-d16.xml: Moved to ...
* features/arm/arm-with-m-vfp-d16.xml: ... it.
* features/arm-with-m.c: Moved to ...
* features/arm/arm-with-m.c: ... it.
* features/arm-with-m.xml: Moved to ...
* features/arm/arm-with-m.xm: ... it.
* features/arm-with-neon.c: Moved to ...
* features/arm/arm-with-neon.c: ... it.
* features/arm-with-neon.xml: Moved to ...
* features/arm/arm-with-neon.xml: ... it.
* features/arm-with-vfpv2.c: Moved to ...
* features/arm/arm-with-vfpv2.c: ... it.
* features/arm-with-vfpv2.xml: Moved to ...
* features/arm/arm-with-vfpv2.xml: ... it.
* features/arm-with-vfpv3.c: Moved to ...
* features/arm/arm-with-vfpv3.c: ... it.
* features/arm-with-vfpv3.xml: Moved to ...
* features/arm/arm-with-vfpv3.xml: ... it.
* features/xscale-iwmmxt.xml: Moved to ...
* features/arm/xscale-iwmmxt.xml: ... it.
gdb/gdbserver:
2016-10-05 Terry Guo <terry.guo@arm.com>
Yao Qi <yao.qi@linaro.org>
* Makefile.in: Adjust the path of rules.
* configure.srv: Update the path of xml files.
* regformats/arm-with-iwmmxt.dat: Regenerated.
* regformats/arm-with-neon.dat: Likewise.
* regformats/arm-with-vfpv2.dat: Likewise.
* regformats/arm-with-vfpv3.dat Likewise.
|
|
ARC is a family of licensable processors developed by Synopsys.
This is an initial patch that doesn't yet support some of the features, that
are already available in Synopsys' fork of GDB, namely:
* longjmp support
* signal frame handling
* prologue analysis
* Linux targets support
* native Linux support
ARC cores are configurable and extensible, which means from debugger
perspective that some registers and debug capabilities are optional, therefore
it is up to the GDB stub to determine exact list of register available on
target and supply it to GDB via XML target descriptions. List of registers
that is known to GDB and is required is intentionally kept small to simplify
requirements to GDB stub and implementation of a GDB client.
gdb/ChangeLog:
* Makefile.in (ALL_TARGET_OBS): Add arc-tdep.o.
(HFILES_NO_SRCDIR): Add arc-tdep.h.
(ALLDEPFILES): Add arc-tdep.c.
* NEWS: Mention new ARC port.
* configure.tgt: Add ARC.
* arc-tdep.c: New file.
* arc-tdep.h: New file.
* features/Makefile (XMLTOC): Add arc-v2.xml and arc-arcompact.xml.
* features/arc-v2.xml: New file.
* features/arc-v2.c: New file (generated).
* features/arc-arcompact.xml: New file.
* features/arc-arcompact.c: New file (generated).
gdb/doc/ChangeLog:
* gdb.texinfo (Embedded Processors): Document ARC.
(Synopsys ARC): New section.
(Standard Target Features): Document ARC features.
(ARC Features): New section.
gdb/testsuite/ChangeLog:
* gdb.xml/tdesc-regs.exp: set core-regs for arc*-*-elf32.
|
|
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 73b4f516a037 ("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.
|
|
gdb/ChangeLog:
* Makefile.in (ALL_TARGET_OBS): Add nds32-tdep.o.
(HFILES_NO_SRCDIR): Add nds32-tdep.h.
(ALLDEPFILES): Add nds32-tdep.c.
* NEWS: Mention new NDS32 port.
* configure.tgt: Add NDS32.
* nds32-tdep.c: New file.
* nds32-tdep.h: New file.
* features/Makefile (XMLTOC): Add nds32.xml.
* features/nds32-core.xml: New file.
* features/nds32-fpu.xml: New file.
* features/nds32-system.xml: New file.
* features/nds32.c: New file (generated).
* features/nds32.xml: New file.
gdb/doc/ChangeLog:
* gdb.texinfo (Standard Target Features): Document NDS32 features.
(NDS32 Features): New Section.
gdb/testsuite/ChangeLog:
* gdb.base/float.exp: Add target check for nds32*-*-*.
* gdb.xml/tdesc-regs.exp: Set core-regs for nds32*-*-*.
|
|
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.
|
|
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.
|
|
gdb/ChangeLog:
* features/aarch64-core.xml (cpsr_flags): New flags type.
(cpsr): Use it.
* features/aarch64.c: Regenerate.
|
|
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.
|