01f9f808e2
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>
356 lines
15 KiB
Text
356 lines
15 KiB
Text
# Mappings from configuration triplets to gdbserver build options.
|
|
# This is invoked from the autoconf-generated configure script, to
|
|
# produce the appropriate Makefile substitutions.
|
|
|
|
# This file sets the following shell variables:
|
|
# srv_regobj The register protocol appropriate for this target.
|
|
# srv_tgtobj Any other target-specific modules appropriate
|
|
# for this target.
|
|
# srv_hostio_err The object implementing the hostio_last_error
|
|
# target method.
|
|
# srv_xmlfiles All XML files which should be available for
|
|
# gdbserver in this configuration.
|
|
# ipa_obj Any other target-specific modules appropriate
|
|
# for this target's in-process agent.
|
|
#
|
|
# In addition, on GNU/Linux the following shell variables will be set:
|
|
# srv_linux_regsets Set to "yes" if ptrace(PTRACE_GETREGS) and friends
|
|
# may be available on this platform; unset otherwise.
|
|
# They will only be used if <sys/ptrace.h> defines
|
|
# PTRACE_GETREGS.
|
|
# srv_linux_usrregs Set to "yes" if we can get at registers via
|
|
# PTRACE_PEEKUSR / PTRACE_POKEUSR.
|
|
|
|
# Default hostio_last_error implementation
|
|
srv_hostio_err_objs="hostio-errno.o"
|
|
|
|
srv_i386_regobj="i386.o i386-avx.o i386-avx512.o i386-mpx.o i386-mmx.o"
|
|
srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx512-linux.o i386-mpx-linux.o i386-mmx-linux.o"
|
|
srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx512.o amd64-mpx.o x32.o x32-avx.o x32-avx512.o"
|
|
srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx512-linux.o amd64-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx512-linux.o"
|
|
|
|
ipa_i386_linux_regobj=i386-linux-ipa.o
|
|
ipa_amd64_linux_regobj=amd64-linux-ipa.o
|
|
|
|
srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml i386/32bit-avx512.xml i386/32bit-mpx.xml"
|
|
srv_i386_64bit_xmlfiles="i386/64bit-core.xml i386/64bit-sse.xml i386/64bit-avx.xml i386/64bit-avx512.xml i386/x32-core.xml i386/64bit-mpx.xml"
|
|
srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx512.xml i386/i386-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
|
|
srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx512.xml i386/amd64-mpx.xml $srv_i386_64bit_xmlfiles"
|
|
srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml $srv_i386_32bit_xmlfiles"
|
|
srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx512-linux.xml $srv_i386_64bit_xmlfiles"
|
|
|
|
|
|
# Linux object files. This is so we don't have to repeat
|
|
# these files over and over again.
|
|
srv_linux_obj="linux-low.o linux-osdata.o linux-procfs.o linux-ptrace.o linux-waitpid.o"
|
|
|
|
# Input is taken from the "${target}" variable.
|
|
|
|
case "${target}" in
|
|
aarch64*-*-linux*)
|
|
srv_regobj="aarch64.o"
|
|
srv_tgtobj="linux-aarch64-low.o"
|
|
srv_tgtobj="${srv_tgtobj} $srv_linux_obj"
|
|
srv_xmlfiles="aarch64.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} aarch64-core.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} aarch64-fpu.xml"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
arm*-*-linux*) srv_regobj="reg-arm.o arm-with-iwmmxt.o"
|
|
srv_regobj="${srv_regobj} arm-with-vfpv2.o"
|
|
srv_regobj="${srv_regobj} arm-with-vfpv3.o"
|
|
srv_regobj="${srv_regobj} arm-with-neon.o"
|
|
srv_tgtobj="$srv_linux_obj linux-arm-low.o"
|
|
srv_xmlfiles="arm-with-iwmmxt.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} arm-with-vfpv2.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} arm-with-vfpv3.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} arm-with-neon.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} arm-core.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} xscale-iwmmxt.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} arm-vfpv2.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} arm-vfpv3.xml"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
arm*-*-mingw32ce*) srv_regobj=reg-arm.o
|
|
srv_tgtobj="win32-low.o win32-arm-low.o"
|
|
srv_tgtobj="${srv_tgtobj} safe-ctype.o lbasename.o"
|
|
srv_tgtobj="${srv_tgtobj} wincecompat.o"
|
|
# hostio_last_error implementation is in win32-low.c
|
|
srv_hostio_err_objs=""
|
|
srv_mingw=yes
|
|
srv_mingwce=yes
|
|
;;
|
|
bfin-*-*linux*) srv_regobj=reg-bfin.o
|
|
srv_tgtobj="$srv_linux_obj linux-bfin-low.o"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
crisv32-*-linux*) srv_regobj=reg-crisv32.o
|
|
srv_tgtobj="$srv_linux_obj linux-crisv32-low.o"
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
cris-*-linux*) srv_regobj=reg-cris.o
|
|
srv_tgtobj="$srv_linux_obj linux-cris-low.o"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
i[34567]86-*-cygwin*) srv_regobj="$srv_i386_regobj"
|
|
srv_tgtobj="i386-low.o win32-low.o win32-i386-low.o"
|
|
srv_tgtobj="${srv_tgtobj} safe-ctype.o lbasename.o"
|
|
srv_xmlfiles="$srv_i386_xmlfiles"
|
|
;;
|
|
i[34567]86-*-linux*) srv_regobj="$srv_i386_linux_regobj"
|
|
srv_xmlfiles="$srv_i386_linux_xmlfiles"
|
|
if test "$gdb_cv_i386_is_x86_64" = yes ; then
|
|
srv_regobj="$srv_regobj $srv_amd64_linux_regobj"
|
|
srv_xmlfiles="${srv_xmlfiles} $srv_amd64_linux_xmlfiles"
|
|
fi
|
|
srv_tgtobj="$srv_linux_obj linux-x86-low.o i386-low.o i387-fp.o"
|
|
srv_tgtobj="${srv_tgtobj} linux-btrace.o"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
srv_linux_btrace=yes
|
|
ipa_obj="${ipa_i386_linux_regobj} linux-i386-ipa.o"
|
|
;;
|
|
i[34567]86-*-lynxos*) srv_regobj="i386.o"
|
|
srv_tgtobj="lynx-low.o lynx-i386-low.o"
|
|
srv_xmlfiles="i386/i386.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} i386/32bit-core.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} i386/32bit-sse.xml"
|
|
srv_lynxos=yes
|
|
;;
|
|
i[34567]86-*-mingw32ce*)
|
|
srv_regobj="$srv_i386_regobj"
|
|
srv_tgtobj="i386-low.o win32-low.o win32-i386-low.o"
|
|
srv_tgtobj="${srv_tgtobj} safe-ctype.o lbasename.o"
|
|
srv_tgtobj="${srv_tgtobj} wincecompat.o"
|
|
srv_xmlfiles="$srv_i386_xmlfiles"
|
|
# hostio_last_error implementation is in win32-low.c
|
|
srv_hostio_err_objs=""
|
|
srv_mingw=yes
|
|
srv_mingwce=yes
|
|
;;
|
|
i[34567]86-*-mingw*) srv_regobj="$srv_i386_regobj"
|
|
srv_tgtobj="i386-low.o win32-low.o win32-i386-low.o"
|
|
srv_tgtobj="${srv_tgtobj} safe-ctype.o lbasename.o"
|
|
srv_xmlfiles="$srv_i386_xmlfiles"
|
|
srv_mingw=yes
|
|
;;
|
|
i[34567]86-*-nto*) srv_regobj="$srv_i386_regobj"
|
|
srv_tgtobj="nto-low.o nto-x86-low.o"
|
|
srv_xmlfiles="$srv_i386_xmlfiles"
|
|
srv_qnx="yes"
|
|
;;
|
|
ia64-*-linux*) srv_regobj=reg-ia64.o
|
|
srv_tgtobj="$srv_linux_obj linux-ia64-low.o"
|
|
srv_linux_usrregs=yes
|
|
;;
|
|
m32r*-*-linux*) srv_regobj=reg-m32r.o
|
|
srv_tgtobj="$srv_linux_obj linux-m32r-low.o"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
m68*-*-linux*) if test "$gdb_cv_m68k_is_coldfire" = yes; then
|
|
srv_regobj=reg-cf.o
|
|
else
|
|
srv_regobj=reg-m68k.o
|
|
fi
|
|
srv_tgtobj="$srv_linux_obj linux-m68k-low.o"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
m68*-*-uclinux*) if test "$gdb_cv_m68k_is_coldfire" = yes; then
|
|
srv_regobj=reg-cf.o
|
|
else
|
|
srv_regobj=reg-m68k.o
|
|
fi
|
|
srv_tgtobj="$srv_linux_obj linux-m68k-low.o"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
mips*-*-linux*) srv_regobj="mips-linux.o"
|
|
srv_regobj="${srv_regobj} mips-dsp-linux.o"
|
|
srv_regobj="${srv_regobj} mips64-linux.o"
|
|
srv_regobj="${srv_regobj} mips64-dsp-linux.o"
|
|
srv_tgtobj="$srv_linux_obj linux-mips-low.o"
|
|
srv_tgtobj="${srv_tgtobj} mips-linux-watch.o"
|
|
srv_xmlfiles="mips-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips-dsp-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips-cpu.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips-cp0.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips-fpu.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips-dsp.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips64-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips64-dsp-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips64-cpu.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips64-cp0.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips64-fpu.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} mips64-dsp.xml"
|
|
srv_linux_regsets=yes
|
|
srv_linux_usrregs=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
nios2*-*-linux*) srv_regobj="nios2-linux.o"
|
|
srv_tgtobj="$srv_linux_obj linux-nios2-low.o"
|
|
srv_xmlfiles="nios2-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} nios2-cpu.xml"
|
|
srv_linux_regsets=yes
|
|
srv_linux_usrregs=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
powerpc*-*-linux*) srv_regobj="powerpc-32l.o"
|
|
srv_regobj="${srv_regobj} powerpc-altivec32l.o"
|
|
srv_regobj="${srv_regobj} powerpc-cell32l.o"
|
|
srv_regobj="${srv_regobj} powerpc-vsx32l.o"
|
|
srv_regobj="${srv_regobj} powerpc-isa205-32l.o"
|
|
srv_regobj="${srv_regobj} powerpc-isa205-altivec32l.o"
|
|
srv_regobj="${srv_regobj} powerpc-isa205-vsx32l.o"
|
|
srv_regobj="${srv_regobj} powerpc-e500l.o"
|
|
srv_regobj="${srv_regobj} powerpc-64l.o"
|
|
srv_regobj="${srv_regobj} powerpc-altivec64l.o"
|
|
srv_regobj="${srv_regobj} powerpc-cell64l.o"
|
|
srv_regobj="${srv_regobj} powerpc-vsx64l.o"
|
|
srv_regobj="${srv_regobj} powerpc-isa205-64l.o"
|
|
srv_regobj="${srv_regobj} powerpc-isa205-altivec64l.o"
|
|
srv_regobj="${srv_regobj} powerpc-isa205-vsx64l.o"
|
|
srv_tgtobj="$srv_linux_obj linux-ppc-low.o"
|
|
srv_xmlfiles="rs6000/powerpc-32l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec32l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell32l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx32l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-32l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec32l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-vsx32l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-altivec.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-vsx.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-core.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu-isa205.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-e500l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-spe.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-64l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec64l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-cell64l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx64l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-64l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec64l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-vsx64l.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power64-core.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power64-linux.xml"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
powerpc-*-lynxos*) srv_regobj="powerpc-32.o"
|
|
srv_tgtobj="lynx-low.o lynx-ppc-low.o"
|
|
srv_xmlfiles="rs6000/powerpc-32.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-core.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu.xml"
|
|
srv_lynxos=yes
|
|
;;
|
|
s390*-*-linux*) srv_regobj="s390-linux32.o"
|
|
srv_regobj="${srv_regobj} s390-linux32v1.o"
|
|
srv_regobj="${srv_regobj} s390-linux32v2.o"
|
|
srv_regobj="${srv_regobj} s390-linux64.o"
|
|
srv_regobj="${srv_regobj} s390-linux64v1.o"
|
|
srv_regobj="${srv_regobj} s390-linux64v2.o"
|
|
srv_regobj="${srv_regobj} s390-te-linux64.o"
|
|
srv_regobj="${srv_regobj} s390x-linux64.o"
|
|
srv_regobj="${srv_regobj} s390x-linux64v1.o"
|
|
srv_regobj="${srv_regobj} s390x-linux64v2.o"
|
|
srv_regobj="${srv_regobj} s390x-te-linux64.o"
|
|
srv_tgtobj="$srv_linux_obj linux-s390-low.o"
|
|
srv_xmlfiles="s390-linux32.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-linux32v1.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-linux32v2.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-linux64.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-linux64v1.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-linux64v2.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-te-linux64.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390x-linux64.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390x-linux64v1.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390x-linux64v2.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390x-te-linux64.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-core32.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-core64.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390x-core64.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-acr.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-fpr.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} s390-tdb.xml"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
sh*-*-linux*) srv_regobj=reg-sh.o
|
|
srv_tgtobj="$srv_linux_obj linux-sh-low.o"
|
|
srv_linux_usrregs=yes
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
sparc*-*-linux*) srv_regobj=reg-sparc64.o
|
|
srv_tgtobj="$srv_linux_obj linux-sparc-low.o"
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
spu*-*-*) srv_regobj=reg-spu.o
|
|
srv_tgtobj="spu-low.o"
|
|
;;
|
|
tic6x-*-uclinux) srv_regobj="tic6x-c64xp-linux.o"
|
|
srv_regobj="${srv_regobj} tic6x-c64x-linux.o"
|
|
srv_regobj="${srv_regobj} tic6x-c62x-linux.o"
|
|
srv_xmlfiles="tic6x-c64xp-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} tic6x-c64x-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} tic6x-c62x-linux.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} tic6x-core.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} tic6x-gp.xml"
|
|
srv_xmlfiles="${srv_xmlfiles} tic6x-c6xp.xml"
|
|
srv_tgtobj="$srv_linux_obj linux-tic6x-low.o"
|
|
srv_linux_regsets=yes
|
|
srv_linux_usrregs=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
x86_64-*-linux*) srv_regobj="$srv_amd64_linux_regobj $srv_i386_linux_regobj"
|
|
srv_tgtobj="$srv_linux_obj linux-x86-low.o i386-low.o i387-fp.o"
|
|
srv_tgtobj="${srv_tgtobj} linux-btrace.o"
|
|
srv_xmlfiles="$srv_i386_linux_xmlfiles $srv_amd64_linux_xmlfiles"
|
|
srv_linux_usrregs=yes # This is for i386 progs.
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
srv_linux_btrace=yes
|
|
ipa_obj="${ipa_amd64_linux_regobj} linux-amd64-ipa.o"
|
|
;;
|
|
x86_64-*-mingw*) srv_regobj="$srv_amd64_regobj"
|
|
srv_tgtobj="i386-low.o i387-fp.o win32-low.o win32-i386-low.o"
|
|
srv_tgtobj="${srv_tgtobj} safe-ctype.o lbasename.o"
|
|
srv_xmlfiles="$srv_i386_xmlfiles $srv_amd64_xmlfiles"
|
|
srv_mingw=yes
|
|
;;
|
|
x86_64-*-cygwin*) srv_regobj="$srv_amd64_regobj"
|
|
srv_tgtobj="i386-low.o i387-fp.o win32-low.o win32-i386-low.o"
|
|
srv_tgtobj="${srv_tgtobj} safe-ctype.o lbasename.o"
|
|
srv_xmlfiles="$srv_i386_xmlfiles"
|
|
;;
|
|
|
|
xtensa*-*-linux*) srv_regobj=reg-xtensa.o
|
|
srv_tgtobj="$srv_linux_obj linux-xtensa-low.o"
|
|
srv_linux_regsets=yes
|
|
;;
|
|
tilegx-*-linux*) srv_regobj=reg-tilegx.o
|
|
srv_regobj="${srv_regobj} reg-tilegx32.o"
|
|
srv_tgtobj="$srv_linux_obj linux-tile-low.o"
|
|
srv_linux_regsets=yes
|
|
srv_linux_thread_db=yes
|
|
;;
|
|
*) echo "Error: target not supported by gdbserver."
|
|
exit 1
|
|
;;
|
|
esac
|