binutils-gdb/gdb/features/i386
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
..
32bit-avx.c Generate c for feature instead of tdesc 2017-07-26 14:24:08 +01:00
32bit-avx.xml
32bit-avx512.c Generate c for feature instead of tdesc 2017-07-26 14:24:08 +01:00
32bit-avx512.xml
32bit-core.c Generate c for feature instead of tdesc 2017-07-26 14:24:08 +01:00
32bit-core.xml
32bit-linux.c Lazily and dynamically create i386-linux target descriptions 2017-07-26 14:39:54 +01:00
32bit-linux.xml
32bit-mpx.c Generate c for feature instead of tdesc 2017-07-26 14:24:08 +01:00
32bit-mpx.xml
32bit-pkeys.c Generate c for feature instead of tdesc 2017-07-26 14:24:08 +01:00
32bit-pkeys.xml Add support for Intel PKRU register to GDB and GDBserver. 2017-02-17 11:44:48 +01:00
32bit-sse.c Lazily and dynamically create i386-linux target descriptions 2017-07-26 14:39:54 +01:00
32bit-sse.xml
64bit-avx.xml
64bit-avx512.xml
64bit-core.xml
64bit-linux.xml
64bit-mpx.xml
64bit-pkeys.xml Add support for Intel PKRU register to GDB and GDBserver. 2017-02-17 11:44:48 +01:00
64bit-segments.xml
64bit-sse.xml
amd64-avx-avx512-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-avx-avx512-linux.xml Add target description for avx-avx512. 2017-02-17 11:44:36 +01:00
amd64-avx-avx512.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-avx-avx512.xml Include the fs_base and gs_base registers in amd64 target descriptions. 2017-07-11 09:46:29 -07:00
amd64-avx-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-avx-linux.xml
amd64-avx-mpx-avx512-pku-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-avx-mpx-avx512-pku-linux.xml Add support for Intel PKRU register to GDB and GDBserver. 2017-02-17 11:44:48 +01:00
amd64-avx-mpx-avx512-pku.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-avx-mpx-avx512-pku.xml Include the fs_base and gs_base registers in amd64 target descriptions. 2017-07-11 09:46:29 -07:00
amd64-avx-mpx-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-avx-mpx-linux.xml
amd64-avx-mpx.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-avx-mpx.xml Include the fs_base and gs_base registers in amd64 target descriptions. 2017-07-11 09:46:29 -07:00
amd64-avx.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-avx.xml Include the fs_base and gs_base registers in amd64 target descriptions. 2017-07-11 09:46:29 -07:00
amd64-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-linux.xml
amd64-mpx-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-mpx-linux.xml
amd64-mpx.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64-mpx.xml Include the fs_base and gs_base registers in amd64 target descriptions. 2017-07-11 09:46:29 -07:00
amd64.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
amd64.xml Include the fs_base and gs_base registers in amd64 target descriptions. 2017-07-11 09:46:29 -07:00
i386-avx-avx512-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-avx-avx512-linux.xml Add target description for avx-avx512. 2017-02-17 11:44:36 +01:00
i386-avx-avx512.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-avx-avx512.xml Add target description for avx-avx512. 2017-02-17 11:44:36 +01:00
i386-avx-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-avx-linux.xml
i386-avx-mpx-avx512-pku-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-avx-mpx-avx512-pku-linux.xml Add support for Intel PKRU register to GDB and GDBserver. 2017-02-17 11:44:48 +01:00
i386-avx-mpx-avx512-pku.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-avx-mpx-avx512-pku.xml Add support for Intel PKRU register to GDB and GDBserver. 2017-02-17 11:44:48 +01:00
i386-avx-mpx-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-avx-mpx-linux.xml
i386-avx-mpx.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-avx-mpx.xml
i386-avx.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-avx.xml
i386-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-linux.xml Adjust the order of 32bit-linux.xml and 32bit-sse.xml in i386/i386-linux.xml 2017-06-20 12:08:33 +01:00
i386-mmx-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-mmx-linux.xml
i386-mmx.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-mmx.xml
i386-mpx-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-mpx-linux.xml
i386-mpx.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386-mpx.xml
i386.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
i386.xml
x32-avx-avx512-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
x32-avx-avx512-linux.xml Add target description for avx-avx512. 2017-02-17 11:44:36 +01:00
x32-avx-avx512.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
x32-avx-avx512.xml Add target description for avx-avx512. 2017-02-17 11:44:36 +01:00
x32-avx-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
x32-avx-linux.xml
x32-avx.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
x32-avx.xml
x32-core.xml
x32-linux.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
x32-linux.xml
x32.c Use visitor pattern for "maint print c-tdesc" 2017-07-26 12:56:54 +01:00
x32.xml