binutils-gdb/gdb/amd64-linux-tdep.h

598 lines
25 KiB
C
Raw Normal View History

/* Target-dependent code for GNU/Linux AMD64.
Copyright (C) 2006-2016 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef AMD64_LINUX_TDEP_H
#define AMD64_LINUX_TDEP_H
/* Like for i386 GNU/Linux, there is an extra "register"
used to control syscall restarting. */
/* Register number for the "orig_rax" register. If this register
contains a value >= 0 it is interpreted as the system call number
that the kernel is supposed to restart. */
Add AVX512 registers support to GDB and GDBserver. This patch adds support for the Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) registers. Native and remote debugging are covered by this patch. Intel(R) AVX-512 is an extension to AVX to support 512-bit wide SIMD registers in 64-bit mode (XMM0-XMM31, YMM0-YMM31, ZMM0-ZMM31). The number of available registers in 32-bit mode is still 8 (XMM0-7, YMM0-7, ZMM0-7). The lower 256-bits of the ZMM registers are aliased to the respective 256-bit YMM registers. The lower 128-bits are aliased to the respective 128-bit XMM registers. There are also 8 new, dedicated mask registers (K0-K7) in both 32-bit mode and 64-bit mode. For more information please see Intel(R) Developer Zone: Intel(R) AVX http://software.intel.com/en-us/intel-isa-extensions#pid-16007-1495 Intel(R) Architecture Instruction Set Extensions Programming Reference: http://software.intel.com/en-us/file/319433-017pdf 2014-04-24 Michael Sturm <michael.sturm@mintel.com> Walfred Tedeschi <walfred.tedeschi@intel.com> * amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add AVX512 registers. (amd64_linux_read_description): Add code to handle AVX512 xstate mask and return respective tdesc. * amd64-linux-tdep.c: Include features/i386/amd64-avx512-linux.c and features/i386/x32-avx512-linux.c. (amd64_linux_gregset_reg_offset): Add AVX512 registers. (amd64_linux_core_read_description): Add code to handle AVX512 xstate mask and return respective tdesc. (_initialize_amd64_linux_tdep): Initialize AVX512 tdesc. * amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum calculation. (AMD64_LINUX_NUM_REGS): Adjust to new number of registers. (tdesc_amd64_avx512_linux): New prototype. (tdesc_x32_avx512_linux): Likewise. * amd64-tdep.c: Include features/i386/amd64-avx512.c and features/i386/x32-avx512.c. (amd64_ymm_avx512_names): New register names for pseudo registers YMM16-31. (amd64_ymmh_avx512_names): New register names for raw registers YMMH16-31. (amd64_k_names): New register names for K registers. (amd64_zmmh_names): New register names for ZMM raw registers. (amd64_zmm_names): New registers names for ZMM pseudo registers. (amd64_xmm_avx512_names): New register names for XMM16-31 registers. (amd64_pseudo_register_name): Add code to return AVX512 pseudo registers. (amd64_init_abi): Add code to intitialize AVX512 tdep variables if feature is present. (_initialize_amd64_tdep): Call AVX512 tdesc initializers. * amd64-tdep.h (enum amd64_regnum): Add AVX512 registers. (AMD64_NUM_REGS): Adjust to new number of registers. * i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Extend range of registers supplied via XSTATE by AVX512 registers. (i386_linux_read_description): Add case for AVX512. * i386-linux-tdep.c: Include i386-avx512-linux.c. (i386_linux_gregset_reg_offset): Add AVX512 registers. (i386_linux_core_read_description): Add case for AVX512. (i386_linux_init_abi): Install supported register note section for AVX512. (_initialize_i386_linux_tdep): Add call to tdesc init function for AVX512. * i386-linux-tdep.h (I386_LINUX_NUM_REGS): Set number of registers to be number of zmm7h + 1. (tdesc_i386_avx512_linux): Add tdesc for AVX512 registers. * i386-tdep.c: Include features/i386/i386-avx512.c. (i386_zmm_names): Add ZMM pseudo register names array. (i386_zmmh_names): Add ZMM raw register names array. (i386_k_names): Add K raw register names array. (num_lower_zmm_regs): Add constant for the number of lower ZMM registers. AVX512 has 16 more ZMM registers than there are YMM registers. (i386_zmmh_regnum_p): Add function to look up register number of ZMM raw registers. (i386_zmm_regnum_p): Likewise for ZMM pseudo registers. (i386_k_regnum_p): Likewise for K raw registers. (i386_ymmh_avx512_regnum_p): Likewise for additional YMM raw registers added by AVX512. (i386_ymm_avx512_regnum_p): Likewise for additional YMM pseudo registers added by AVX512. (i386_xmm_avx512_regnum_p): Likewise for additional XMM registers added by AVX512. (i386_register_name): Add code to hide YMMH16-31 and ZMMH0-31. (i386_pseudo_register_name): Add ZMM pseudo registers. (i386_zmm_type): Construct and return vector registers type for ZMM registers. (i386_pseudo_register_type): Return appropriate type for YMM16-31, ZMM0-31 pseudo registers and K registers. (i386_pseudo_register_read_into_value): Add code to read K, ZMM and YMM16-31 registers from register cache. (i386_pseudo_register_write): Add code to write K, ZMM and YMM16-31 registers. (i386_register_reggroup_p): Add code to include/exclude AVX512 registers in/from respective register groups. (i386_validate_tdesc_p): Handle AVX512 feature, add AVX512 registers if feature is present in xcr0. (i386_gdbarch_init): Add code to initialize AVX512 feature variables in tdep structure, wire in pseudo registers and call initialize_tdesc_i386_avx512. * i386-tdep.h (struct gdbarch_tdep): Add AVX512 related variables. (i386_regnum): Add AVX512 registers. (I386_SSE_NUM_REGS): New define for number of SSE registers. (I386_AVX_NUM_REGS): Likewise for AVX registers. (I386_AVX512_NUM_REGS): Likewise for AVX512 registers. (I386_MAX_REGISTER_SIZE): Change to 64 bytes, ZMM registers are 512 bits wide. (i386_xmm_avx512_regnum_p): New prototype for register look up. (i386_ymm_avx512_regnum_p): Likewise. (i386_k_regnum_p): Likewise. (i386_zmm_regnum_p): Likewise. (i386_zmmh_regnum_p): Likewise. * i387-tdep.c : Update year in copyright notice. (xsave_ymm_avx512_offset): New table for YMM16-31 offsets in XSAVE buffer. (XSAVE_YMM_AVX512_ADDR): New macro. (xsave_xmm_avx512_offset): New table for XMM16-31 offsets in XSAVE buffer. (XSAVE_XMM_AVX512_ADDR): New macro. (xsave_avx512_k_offset): New table for K register offsets in XSAVE buffer. (XSAVE_AVX512_K_ADDR): New macro. (xsave_avx512_zmm_h_offset): New table for ZMM register offsets in XSAVE buffer. (XSAVE_AVX512_ZMM_H_ADDR): New macro. (i387_supply_xsave): Add code to supply AVX512 registers to XSAVE buffer. (i387_collect_xsave): Add code to collect AVX512 registers from XSAVE buffer. * i387-tdep.h (I387_NUM_XMM_AVX512_REGS): New define for number of XMM16-31 registers. (I387_NUM_K_REGS): New define for number of K registers. (I387_K0_REGNUM): New define for K0 register number. (I387_NUM_ZMMH_REGS): New define for number of ZMMH registers. (I387_ZMM0H_REGNUM): New define for ZMM0H register number. (I387_NUM_YMM_AVX512_REGS): New define for number of YMM16-31 registers. (I387_YMM16H_REGNUM): New define for YMM16H register number. (I387_XMM16_REGNUM): New define for XMM16 register number. (I387_YMM0_REGNUM): New define for YMM0 register number. (I387_KEND_REGNUM): New define for last K register number. (I387_ZMMENDH_REGNUM): New define for last ZMMH register number. (I387_YMMH_AVX512_END_REGNUM): New define for YMM31 register number. (I387_XMM_AVX512_END_REGNUM): New define for XMM31 register number. * common/i386-xstate.h: Add AVX 3.1 feature bits, mask and XSTATE size. * features/Makefile: Add AVX512 related files. * features/i386/32bit-avx512.xml: New file. * features/i386/64bit-avx512.xml: Likewise. * features/i386/amd64-avx512-linux.c: Likewise. * features/i386/amd64-avx512-linux.xml: Likewise. * features/i386/amd64-avx512.c: Likewise. * features/i386/amd64-avx512.xml: Likewise. * features/i386/i386-avx512-linux.c: Likewise. * features/i386/i386-avx512-linux.xml: Likewise. * features/i386/i386-avx512.c: Likewise. * features/i386/i386-avx512.xml: Likewise. * features/i386/x32-avx512-linux.c: Likewise. * features/i386/x32-avx512-linux.xml: Likewise. * features/i386/x32-avx512.c: Likewise. * features/i386/x32-avx512.xml: Likewise. * regformats/i386/amd64-avx512-linux.dat: New file. * regformats/i386/amd64-avx512.dat: Likewise. * regformats/i386/i386-avx512-linux.dat: Likewise. * regformats/i386/i386-avx512.dat: Likewise. * regformats/i386/x32-avx512-linux.dat: Likewise. * regformats/i386/x32-avx512.dat: Likewise. * NEWS: Add note about new support for AVX512. testsuite/ * Makefile.in (EXECUTABLES): Added i386-avx512. * gdb.arch/i386-avx512.c: New file. * gdb.arch/i386-avx512.exp: Likewise. gdbserver/ * Makefile.in: Added rules to handle new files i386-avx512.c i386-avx512-linux.c amd64-avx512.c amd64-avx512-linux.c x32-avx512.c x32-avx512-linux.c. * configure.srv (srv_i386_regobj): Add i386-avx512.o. (srv_i386_linux_regobj): Add i386-avx512-linux.o. (srv_amd64_regobj): Add amd64-avx512.o and x32-avx512.o. (srv_amd64_linux_regobj): Add amd64-avx512-linux.o and x32-avx512-linux.o. (srv_i386_32bit_xmlfiles): Add i386/32bit-avx512.xml. (srv_i386_64bit_xmlfiles): Add i386/64bit-avx512.xml. (srv_amd64_xmlfiles): Add i386/amd64-avx512.xml and i386/x32-avx512.xml. (srv_i386_linux_xmlfiles): Add i386/i386-avx512-linux.xml. (srv_amd64_linux_xmlfiles): Add i386/amd64-avx512-linux.xml and i386/x32-avx512-linux.xml. * i387-fp.c (num_avx512_k_registers): New constant for number of K registers. (num_avx512_zmmh_low_registers): New constant for number of lower ZMM registers (0-15). (num_avx512_zmmh_high_registers): New constant for number of higher ZMM registers (16-31). (num_avx512_ymmh_registers): New contant for number of higher YMM registers (ymm16-31 added by avx521 on x86_64). (num_avx512_xmm_registers): New constant for number of higher XMM registers (xmm16-31 added by AVX512 on x86_64). (struct i387_xsave): Add space for AVX512 registers. (i387_cache_to_xsave): Change raw buffer size to 64 characters. Add code to handle AVX512 registers. (i387_xsave_to_cache): Add code to handle AVX512 registers. * linux-x86-low.c (init_registers_amd64_avx512_linux): New prototypei from generated file. (tdesc_amd64_avx512_linux): Likewise. (init_registers_x32_avx512_linux): Likewise. (tdesc_x32_avx512_linux): Likewise. (init_registers_i386_avx512_linux): Likewise. (tdesc_i386_avx512_linux): Likewise. (x86_64_regmap): Add AVX512 registers. (x86_linux_read_description): Add code to handle AVX512 XSTATE mask. (initialize_low_arch): Add code to initialize AVX512 registers. doc/ * gdb.texinfo (i386 Features): Add description of AVX512 registers. Change-Id: Ifc4c08c76b85dbec18d02efdbe6182e851584438 Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2013-12-16 23:43:05 +08:00
#define AMD64_LINUX_ORIG_RAX_REGNUM (AMD64_ZMM31H_REGNUM + 1)
/* Total number of registers for GNU/Linux. */
#define AMD64_LINUX_NUM_REGS (AMD64_LINUX_ORIG_RAX_REGNUM + 1)
Enable XML target descriptions for x86. gdb/ 2010-03-01 H.J. Lu <hongjiu.lu@intel.com> * amd64-linux-nat.c (AMD64_LINUX_USER64_CS): New. (amd64_linux_read_description): Likewise. (_initialize_amd64_linux_nat): Set to_read_description to amd64_linux_read_description. * amd64-linux-tdep.c: Include "features/i386/amd64-linux.c". (amd64_linux_register_name): Removed. (amd64_linux_register_type): Likewise. (amd64_linux_core_read_description): New. (amd64_linux_init_abi): Set target description to tdesc_amd64_linux if needed. Support orig_rax in target description. Don't call set_gdbarch_register_name nor set_gdbarch_register_type. Call set_gdbarch_core_read_description. (_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_linux. * amd64-linux-tdep.h (tdesc_amd64_linux): New. * amd64-tdep.c: Include "features/i386/amd64.c". (amd64_register_names): Removed. (amd64_register_name): Likewise. (amd64_register_type): Likewise. (amd64_init_abi): Set num_core_regs and register_names. Set target description to tdesc_amd64 if needed. Don't call set_gdbarch_register_name nor set_gdbarch_register_type. (_initialize_amd64_tdep): New. * i386-linux-nat.c (i386_linux_read_description): New. (_initialize_i386_linux_nat): Set to_read_description to i386_linux_read_description. * i386-linux-tdep.c: Include "features/i386/i386-linux.c". (i386_linux_register_name): Removed. (i386_linux_core_read_description): New. (i386_linux_read_description): Likewise. (i386_linux_init_abi): Don't call set_gdbarch_register_name. Set target description to tdesc_i386_linux if needed. Support orig_eax. Set register_reggroup_p. Call set_gdbarch_core_read_description. (_initialize_i386_linux_tdep): Call initialize_tdesc_i386_linux. * i386-linux-tdep.h (tdesc_i386_linux): New. * i386-nto-tdep.c (i386nto_regset_id): Replace I386_NUM_FREGS with I387_NUM_REGS. * i386-tdep.c: Include "features/i386/i386.c". (i386_register_names): Make it const. (i386_mmx_names): Likewise. (i386_num_register_names): Removed. (i386_register_name): Likewise. (i386_eflags_type): Likewise. (i386_mxcsr_type): Likewise. (i386_sse_type): Likewise. (i386_register_type): Likewise. (i387_ext_type): Call tdesc_find_type instead of arch_float_type. (i386_pseudo_register_name): New. (i386_pseudo_register_type): Likewise. (i386_mmx_type): Make it static. (i386_gdbarch_init): Check arch. Replace I386_NUM_FREGS with I387_NUM_REGS. Set num_core_regs and register_names. Don't call set_gdbarch_register_name nor set_gdbarch_register_type. Set register_reggroup_p. Set target description to tdesc_i386 if needed. Call set_tdesc_pseudo_register_type, set_tdesc_pseudo_register_name and tdesc_use_registers. (_initialize_i386_tdep): Call initialize_tdesc_i386. initialize_tdesc_x86_64. * i386-tdep.h (gdbarch_tdep): Remove i386_eflags_type, i386_mxcsr_type and i386_sse_type. Add num_core_regs, register_names, tdesc and register_reggroup_p. (I386_NUM_FREGS): Removed. (i386_eflags_type): Likewise. (i386_mxcsr_type): Likewise. (i386_mmx_type): Likewise. (i386_sse_type): Likewise. (i386_register_name): Likewise. (i386_regnum): Add I386_MXCSR_REGNUM. (I386_SSE_NUM_REGS): Defined with I386_MXCSR_REGNUM. * i387-tdep.h (I387_NUM_REGS): New. * regformats/i386/i386-linux.dat: Generated. * regformats/i386/i386.dat: Likewise. * regformats/i386/amd64-linux.dat: Likewise. * regformats/i386/amd64.dat: Likewise. * regformats/reg-i386-linux.dat: Removed. * regformats/reg-i386.dat: Likewise. * regformats/reg-x86-64-linux.dat: Likewise. * regformats/reg-x86-64.dat: Likewise. gdb/gdbserver/ 2010-03-01 H.J. Lu <hongjiu.lu@intel.com> * Makefile.in (clean): Replace reg-i386.c, reg-x86-64.c, reg-i386-linux.c and reg-x86-64-linux.c with i386.c, amd64.c, i386-linux.c and amd64-linux.c. (reg-i386.o): Removed. (reg-i386.c): Likewise. (reg-i386-linux.o): Likewise. (reg-i386-linux.c): Likewise. (reg-x86-64.o): Likewise. (reg-x86-64.c): Likewise. (reg-x86-64-linux.o): Likewise. (reg-x86-64-linux.c): Likewise. (i386.o): New. (i386.c): Likewise. (i386-linux.o): Likewise. (i386-linux.c): Likewise. (amd64.o): Likewise. (amd64.c): Likewise. (amd64-linux.o): Likewise. (amd64-linux.c): Likewise. * configure.srv (srv_i386_regobj): New. (srv_i386_linux_regobj): Likewise. (srv_amd64_regobj): Likewise. (srv_amd64_linux_regobj): Likewise. (srv_i386_32bit_xmlfiles): Likewise. (srv_i386_64bit_xmlfiles): Likewise. (srv_i386_xmlfiles): Likewise. (srv_amd64_xmlfiles): Likewise. (srv_i386_linux_xmlfiles): Likewise. (srv_amd64_linux_xmlfiles): Likewise. (i[34567]86-*-cygwin*): Set srv_regobj to $srv_i386_regobj. Set srv_xmlfiles to $srv_i386_xmlfiles. (i[34567]86-*-mingw32ce*): Likewise. (i[34567]86-*-mingw*): Likewise. (i[34567]86-*-nto*): Likewise. (i[34567]86-*-linux*): Set srv_regobj to $srv_i386_linux_regobj and $srv_amd64_linux_regobj. Set srv_xmlfiles to $srv_i386_linux_xmlfiles and $srv_amd64_linux_xmlfiles. (x86_64-*-linux*): Likewise. * linux-x86-low.c (init_registers_x86_64_linux): Removed. (init_registers_amd64_linux): New. (x86_arch_setup): Replace init_registers_x86_64_linux with init_registers_amd64_linux. gdb/testsuite/ 2010-03-01 H.J. Lu <hongjiu.lu@intel.com> * gdb.xml/tdesc-regs.exp (architecture): New. Set it for x86. (load_description): Set architecture if defined.
2010-03-01 23:33:32 +08:00
/* Linux target description. */
extern struct target_desc *tdesc_amd64_linux;
Support amd64 AVX. gdb/ 2010-04-07 H.J. Lu <hongjiu.lu@intel.com> * amd64-linux-nat.c: Include "regset.h", "elf/common.h", <sys/uio.h> and "i386-xstate.h". (PTRACE_GETREGSET): New. (PTRACE_SETREGSET): Likewise. (have_ptrace_getregset): Likewise. (amd64_linux_gregset64_reg_offset): Include 16 upper YMM registers. (amd64_linux_gregset32_reg_offset): Include 8 upper YMM registers. (amd64_linux_fetch_inferior_registers): Support PTRACE_GETFPREGS. (amd64_linux_store_inferior_registers): Likewise. (amd64_linux_read_description): Check and enable AVX target descriptions. * amd64-linux-tdep.c: Include "regset.h", "i386-linux-tdep.h" and "features/i386/amd64-avx-linux.c". (amd64_linux_regset_sections): New. (amd64_linux_core_read_description): Check and enable AVX target description. (amd64_linux_init_abi): Set xsave_xcr0_offset. Call set_gdbarch_core_regset_sections. (_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_avx_linux. * amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Replace AMD64_MXCSR_REGNUM with AMD64_YMM15H_REGNUM. (tdesc_amd64_avx_linux): New. (amd64_linux_update_xstateregset): Likewise. * amd64-tdep.c: Include "features/i386/amd64-avx.c". (amd64_ymm_names): New. (amd64_ymmh_names): Likewise. (amd64_register_name): Likewise. (amd64_supply_xstateregset): Likewise. (amd64_collect_xstateregset): Likewise. (amd64_supply_xsave): Likewise. (amd64_collect_xsave): Likewise. (AMD64_NUM_REGS): Removed. (amd64_dwarf_reg_to_regnum): Return %ymmN register number for %xmmN if AVX is available. (amd64_pseudo_register_name): Support pseudo YMM registers. (amd64_regset_from_core_section): Support .reg-xstate section. (amd64_init_abi): Set ymmh_register_names, num_ymm_regs and ymm0h_regnum. Call set_gdbarch_register_name. (amd64_init_abi): Call initialize_tdesc_amd64_avx. * amd64-tdep.h (amd64_regnum): Add AMD64_YMM0H_REGNUM and AMD64_YMM15H_REGNUM. (AMD64_NUM_REGS): New. (amd64_supply_xsave): Likewise. (amd64_collect_xsave): Likewise. (amd64_register_name): Removed. (amd64_register_type): Likewise. gdb/testsuite/ 2010-04-07 H.J. Lu <hongjiu.lu@intel.com> * gdb.arch/i386-avx.c: New. * gdb.arch/i386-avx.exp: Likewise. * gdb.arch/i386-cpuid.h: Updated from gcc 4.4.
2010-04-08 02:46:50 +08:00
extern struct target_desc *tdesc_amd64_avx_linux;
extern struct target_desc *tdesc_amd64_mpx_linux;
Add AVX512 registers support to GDB and GDBserver. This patch adds support for the Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) registers. Native and remote debugging are covered by this patch. Intel(R) AVX-512 is an extension to AVX to support 512-bit wide SIMD registers in 64-bit mode (XMM0-XMM31, YMM0-YMM31, ZMM0-ZMM31). The number of available registers in 32-bit mode is still 8 (XMM0-7, YMM0-7, ZMM0-7). The lower 256-bits of the ZMM registers are aliased to the respective 256-bit YMM registers. The lower 128-bits are aliased to the respective 128-bit XMM registers. There are also 8 new, dedicated mask registers (K0-K7) in both 32-bit mode and 64-bit mode. For more information please see Intel(R) Developer Zone: Intel(R) AVX http://software.intel.com/en-us/intel-isa-extensions#pid-16007-1495 Intel(R) Architecture Instruction Set Extensions Programming Reference: http://software.intel.com/en-us/file/319433-017pdf 2014-04-24 Michael Sturm <michael.sturm@mintel.com> Walfred Tedeschi <walfred.tedeschi@intel.com> * amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add AVX512 registers. (amd64_linux_read_description): Add code to handle AVX512 xstate mask and return respective tdesc. * amd64-linux-tdep.c: Include features/i386/amd64-avx512-linux.c and features/i386/x32-avx512-linux.c. (amd64_linux_gregset_reg_offset): Add AVX512 registers. (amd64_linux_core_read_description): Add code to handle AVX512 xstate mask and return respective tdesc. (_initialize_amd64_linux_tdep): Initialize AVX512 tdesc. * amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum calculation. (AMD64_LINUX_NUM_REGS): Adjust to new number of registers. (tdesc_amd64_avx512_linux): New prototype. (tdesc_x32_avx512_linux): Likewise. * amd64-tdep.c: Include features/i386/amd64-avx512.c and features/i386/x32-avx512.c. (amd64_ymm_avx512_names): New register names for pseudo registers YMM16-31. (amd64_ymmh_avx512_names): New register names for raw registers YMMH16-31. (amd64_k_names): New register names for K registers. (amd64_zmmh_names): New register names for ZMM raw registers. (amd64_zmm_names): New registers names for ZMM pseudo registers. (amd64_xmm_avx512_names): New register names for XMM16-31 registers. (amd64_pseudo_register_name): Add code to return AVX512 pseudo registers. (amd64_init_abi): Add code to intitialize AVX512 tdep variables if feature is present. (_initialize_amd64_tdep): Call AVX512 tdesc initializers. * amd64-tdep.h (enum amd64_regnum): Add AVX512 registers. (AMD64_NUM_REGS): Adjust to new number of registers. * i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Extend range of registers supplied via XSTATE by AVX512 registers. (i386_linux_read_description): Add case for AVX512. * i386-linux-tdep.c: Include i386-avx512-linux.c. (i386_linux_gregset_reg_offset): Add AVX512 registers. (i386_linux_core_read_description): Add case for AVX512. (i386_linux_init_abi): Install supported register note section for AVX512. (_initialize_i386_linux_tdep): Add call to tdesc init function for AVX512. * i386-linux-tdep.h (I386_LINUX_NUM_REGS): Set number of registers to be number of zmm7h + 1. (tdesc_i386_avx512_linux): Add tdesc for AVX512 registers. * i386-tdep.c: Include features/i386/i386-avx512.c. (i386_zmm_names): Add ZMM pseudo register names array. (i386_zmmh_names): Add ZMM raw register names array. (i386_k_names): Add K raw register names array. (num_lower_zmm_regs): Add constant for the number of lower ZMM registers. AVX512 has 16 more ZMM registers than there are YMM registers. (i386_zmmh_regnum_p): Add function to look up register number of ZMM raw registers. (i386_zmm_regnum_p): Likewise for ZMM pseudo registers. (i386_k_regnum_p): Likewise for K raw registers. (i386_ymmh_avx512_regnum_p): Likewise for additional YMM raw registers added by AVX512. (i386_ymm_avx512_regnum_p): Likewise for additional YMM pseudo registers added by AVX512. (i386_xmm_avx512_regnum_p): Likewise for additional XMM registers added by AVX512. (i386_register_name): Add code to hide YMMH16-31 and ZMMH0-31. (i386_pseudo_register_name): Add ZMM pseudo registers. (i386_zmm_type): Construct and return vector registers type for ZMM registers. (i386_pseudo_register_type): Return appropriate type for YMM16-31, ZMM0-31 pseudo registers and K registers. (i386_pseudo_register_read_into_value): Add code to read K, ZMM and YMM16-31 registers from register cache. (i386_pseudo_register_write): Add code to write K, ZMM and YMM16-31 registers. (i386_register_reggroup_p): Add code to include/exclude AVX512 registers in/from respective register groups. (i386_validate_tdesc_p): Handle AVX512 feature, add AVX512 registers if feature is present in xcr0. (i386_gdbarch_init): Add code to initialize AVX512 feature variables in tdep structure, wire in pseudo registers and call initialize_tdesc_i386_avx512. * i386-tdep.h (struct gdbarch_tdep): Add AVX512 related variables. (i386_regnum): Add AVX512 registers. (I386_SSE_NUM_REGS): New define for number of SSE registers. (I386_AVX_NUM_REGS): Likewise for AVX registers. (I386_AVX512_NUM_REGS): Likewise for AVX512 registers. (I386_MAX_REGISTER_SIZE): Change to 64 bytes, ZMM registers are 512 bits wide. (i386_xmm_avx512_regnum_p): New prototype for register look up. (i386_ymm_avx512_regnum_p): Likewise. (i386_k_regnum_p): Likewise. (i386_zmm_regnum_p): Likewise. (i386_zmmh_regnum_p): Likewise. * i387-tdep.c : Update year in copyright notice. (xsave_ymm_avx512_offset): New table for YMM16-31 offsets in XSAVE buffer. (XSAVE_YMM_AVX512_ADDR): New macro. (xsave_xmm_avx512_offset): New table for XMM16-31 offsets in XSAVE buffer. (XSAVE_XMM_AVX512_ADDR): New macro. (xsave_avx512_k_offset): New table for K register offsets in XSAVE buffer. (XSAVE_AVX512_K_ADDR): New macro. (xsave_avx512_zmm_h_offset): New table for ZMM register offsets in XSAVE buffer. (XSAVE_AVX512_ZMM_H_ADDR): New macro. (i387_supply_xsave): Add code to supply AVX512 registers to XSAVE buffer. (i387_collect_xsave): Add code to collect AVX512 registers from XSAVE buffer. * i387-tdep.h (I387_NUM_XMM_AVX512_REGS): New define for number of XMM16-31 registers. (I387_NUM_K_REGS): New define for number of K registers. (I387_K0_REGNUM): New define for K0 register number. (I387_NUM_ZMMH_REGS): New define for number of ZMMH registers. (I387_ZMM0H_REGNUM): New define for ZMM0H register number. (I387_NUM_YMM_AVX512_REGS): New define for number of YMM16-31 registers. (I387_YMM16H_REGNUM): New define for YMM16H register number. (I387_XMM16_REGNUM): New define for XMM16 register number. (I387_YMM0_REGNUM): New define for YMM0 register number. (I387_KEND_REGNUM): New define for last K register number. (I387_ZMMENDH_REGNUM): New define for last ZMMH register number. (I387_YMMH_AVX512_END_REGNUM): New define for YMM31 register number. (I387_XMM_AVX512_END_REGNUM): New define for XMM31 register number. * common/i386-xstate.h: Add AVX 3.1 feature bits, mask and XSTATE size. * features/Makefile: Add AVX512 related files. * features/i386/32bit-avx512.xml: New file. * features/i386/64bit-avx512.xml: Likewise. * features/i386/amd64-avx512-linux.c: Likewise. * features/i386/amd64-avx512-linux.xml: Likewise. * features/i386/amd64-avx512.c: Likewise. * features/i386/amd64-avx512.xml: Likewise. * features/i386/i386-avx512-linux.c: Likewise. * features/i386/i386-avx512-linux.xml: Likewise. * features/i386/i386-avx512.c: Likewise. * features/i386/i386-avx512.xml: Likewise. * features/i386/x32-avx512-linux.c: Likewise. * features/i386/x32-avx512-linux.xml: Likewise. * features/i386/x32-avx512.c: Likewise. * features/i386/x32-avx512.xml: Likewise. * regformats/i386/amd64-avx512-linux.dat: New file. * regformats/i386/amd64-avx512.dat: Likewise. * regformats/i386/i386-avx512-linux.dat: Likewise. * regformats/i386/i386-avx512.dat: Likewise. * regformats/i386/x32-avx512-linux.dat: Likewise. * regformats/i386/x32-avx512.dat: Likewise. * NEWS: Add note about new support for AVX512. testsuite/ * Makefile.in (EXECUTABLES): Added i386-avx512. * gdb.arch/i386-avx512.c: New file. * gdb.arch/i386-avx512.exp: Likewise. gdbserver/ * Makefile.in: Added rules to handle new files i386-avx512.c i386-avx512-linux.c amd64-avx512.c amd64-avx512-linux.c x32-avx512.c x32-avx512-linux.c. * configure.srv (srv_i386_regobj): Add i386-avx512.o. (srv_i386_linux_regobj): Add i386-avx512-linux.o. (srv_amd64_regobj): Add amd64-avx512.o and x32-avx512.o. (srv_amd64_linux_regobj): Add amd64-avx512-linux.o and x32-avx512-linux.o. (srv_i386_32bit_xmlfiles): Add i386/32bit-avx512.xml. (srv_i386_64bit_xmlfiles): Add i386/64bit-avx512.xml. (srv_amd64_xmlfiles): Add i386/amd64-avx512.xml and i386/x32-avx512.xml. (srv_i386_linux_xmlfiles): Add i386/i386-avx512-linux.xml. (srv_amd64_linux_xmlfiles): Add i386/amd64-avx512-linux.xml and i386/x32-avx512-linux.xml. * i387-fp.c (num_avx512_k_registers): New constant for number of K registers. (num_avx512_zmmh_low_registers): New constant for number of lower ZMM registers (0-15). (num_avx512_zmmh_high_registers): New constant for number of higher ZMM registers (16-31). (num_avx512_ymmh_registers): New contant for number of higher YMM registers (ymm16-31 added by avx521 on x86_64). (num_avx512_xmm_registers): New constant for number of higher XMM registers (xmm16-31 added by AVX512 on x86_64). (struct i387_xsave): Add space for AVX512 registers. (i387_cache_to_xsave): Change raw buffer size to 64 characters. Add code to handle AVX512 registers. (i387_xsave_to_cache): Add code to handle AVX512 registers. * linux-x86-low.c (init_registers_amd64_avx512_linux): New prototypei from generated file. (tdesc_amd64_avx512_linux): Likewise. (init_registers_x32_avx512_linux): Likewise. (tdesc_x32_avx512_linux): Likewise. (init_registers_i386_avx512_linux): Likewise. (tdesc_i386_avx512_linux): Likewise. (x86_64_regmap): Add AVX512 registers. (x86_linux_read_description): Add code to handle AVX512 XSTATE mask. (initialize_low_arch): Add code to initialize AVX512 registers. doc/ * gdb.texinfo (i386 Features): Add description of AVX512 registers. Change-Id: Ifc4c08c76b85dbec18d02efdbe6182e851584438 Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2013-12-16 23:43:05 +08:00
extern struct target_desc *tdesc_amd64_avx512_linux;
extern struct target_desc *tdesc_x32_linux;
extern struct target_desc *tdesc_x32_avx_linux;
Add AVX512 registers support to GDB and GDBserver. This patch adds support for the Intel(R) Advanced Vector Extensions 512 (Intel(R) AVX-512) registers. Native and remote debugging are covered by this patch. Intel(R) AVX-512 is an extension to AVX to support 512-bit wide SIMD registers in 64-bit mode (XMM0-XMM31, YMM0-YMM31, ZMM0-ZMM31). The number of available registers in 32-bit mode is still 8 (XMM0-7, YMM0-7, ZMM0-7). The lower 256-bits of the ZMM registers are aliased to the respective 256-bit YMM registers. The lower 128-bits are aliased to the respective 128-bit XMM registers. There are also 8 new, dedicated mask registers (K0-K7) in both 32-bit mode and 64-bit mode. For more information please see Intel(R) Developer Zone: Intel(R) AVX http://software.intel.com/en-us/intel-isa-extensions#pid-16007-1495 Intel(R) Architecture Instruction Set Extensions Programming Reference: http://software.intel.com/en-us/file/319433-017pdf 2014-04-24 Michael Sturm <michael.sturm@mintel.com> Walfred Tedeschi <walfred.tedeschi@intel.com> * amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add AVX512 registers. (amd64_linux_read_description): Add code to handle AVX512 xstate mask and return respective tdesc. * amd64-linux-tdep.c: Include features/i386/amd64-avx512-linux.c and features/i386/x32-avx512-linux.c. (amd64_linux_gregset_reg_offset): Add AVX512 registers. (amd64_linux_core_read_description): Add code to handle AVX512 xstate mask and return respective tdesc. (_initialize_amd64_linux_tdep): Initialize AVX512 tdesc. * amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum calculation. (AMD64_LINUX_NUM_REGS): Adjust to new number of registers. (tdesc_amd64_avx512_linux): New prototype. (tdesc_x32_avx512_linux): Likewise. * amd64-tdep.c: Include features/i386/amd64-avx512.c and features/i386/x32-avx512.c. (amd64_ymm_avx512_names): New register names for pseudo registers YMM16-31. (amd64_ymmh_avx512_names): New register names for raw registers YMMH16-31. (amd64_k_names): New register names for K registers. (amd64_zmmh_names): New register names for ZMM raw registers. (amd64_zmm_names): New registers names for ZMM pseudo registers. (amd64_xmm_avx512_names): New register names for XMM16-31 registers. (amd64_pseudo_register_name): Add code to return AVX512 pseudo registers. (amd64_init_abi): Add code to intitialize AVX512 tdep variables if feature is present. (_initialize_amd64_tdep): Call AVX512 tdesc initializers. * amd64-tdep.h (enum amd64_regnum): Add AVX512 registers. (AMD64_NUM_REGS): Adjust to new number of registers. * i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Extend range of registers supplied via XSTATE by AVX512 registers. (i386_linux_read_description): Add case for AVX512. * i386-linux-tdep.c: Include i386-avx512-linux.c. (i386_linux_gregset_reg_offset): Add AVX512 registers. (i386_linux_core_read_description): Add case for AVX512. (i386_linux_init_abi): Install supported register note section for AVX512. (_initialize_i386_linux_tdep): Add call to tdesc init function for AVX512. * i386-linux-tdep.h (I386_LINUX_NUM_REGS): Set number of registers to be number of zmm7h + 1. (tdesc_i386_avx512_linux): Add tdesc for AVX512 registers. * i386-tdep.c: Include features/i386/i386-avx512.c. (i386_zmm_names): Add ZMM pseudo register names array. (i386_zmmh_names): Add ZMM raw register names array. (i386_k_names): Add K raw register names array. (num_lower_zmm_regs): Add constant for the number of lower ZMM registers. AVX512 has 16 more ZMM registers than there are YMM registers. (i386_zmmh_regnum_p): Add function to look up register number of ZMM raw registers. (i386_zmm_regnum_p): Likewise for ZMM pseudo registers. (i386_k_regnum_p): Likewise for K raw registers. (i386_ymmh_avx512_regnum_p): Likewise for additional YMM raw registers added by AVX512. (i386_ymm_avx512_regnum_p): Likewise for additional YMM pseudo registers added by AVX512. (i386_xmm_avx512_regnum_p): Likewise for additional XMM registers added by AVX512. (i386_register_name): Add code to hide YMMH16-31 and ZMMH0-31. (i386_pseudo_register_name): Add ZMM pseudo registers. (i386_zmm_type): Construct and return vector registers type for ZMM registers. (i386_pseudo_register_type): Return appropriate type for YMM16-31, ZMM0-31 pseudo registers and K registers. (i386_pseudo_register_read_into_value): Add code to read K, ZMM and YMM16-31 registers from register cache. (i386_pseudo_register_write): Add code to write K, ZMM and YMM16-31 registers. (i386_register_reggroup_p): Add code to include/exclude AVX512 registers in/from respective register groups. (i386_validate_tdesc_p): Handle AVX512 feature, add AVX512 registers if feature is present in xcr0. (i386_gdbarch_init): Add code to initialize AVX512 feature variables in tdep structure, wire in pseudo registers and call initialize_tdesc_i386_avx512. * i386-tdep.h (struct gdbarch_tdep): Add AVX512 related variables. (i386_regnum): Add AVX512 registers. (I386_SSE_NUM_REGS): New define for number of SSE registers. (I386_AVX_NUM_REGS): Likewise for AVX registers. (I386_AVX512_NUM_REGS): Likewise for AVX512 registers. (I386_MAX_REGISTER_SIZE): Change to 64 bytes, ZMM registers are 512 bits wide. (i386_xmm_avx512_regnum_p): New prototype for register look up. (i386_ymm_avx512_regnum_p): Likewise. (i386_k_regnum_p): Likewise. (i386_zmm_regnum_p): Likewise. (i386_zmmh_regnum_p): Likewise. * i387-tdep.c : Update year in copyright notice. (xsave_ymm_avx512_offset): New table for YMM16-31 offsets in XSAVE buffer. (XSAVE_YMM_AVX512_ADDR): New macro. (xsave_xmm_avx512_offset): New table for XMM16-31 offsets in XSAVE buffer. (XSAVE_XMM_AVX512_ADDR): New macro. (xsave_avx512_k_offset): New table for K register offsets in XSAVE buffer. (XSAVE_AVX512_K_ADDR): New macro. (xsave_avx512_zmm_h_offset): New table for ZMM register offsets in XSAVE buffer. (XSAVE_AVX512_ZMM_H_ADDR): New macro. (i387_supply_xsave): Add code to supply AVX512 registers to XSAVE buffer. (i387_collect_xsave): Add code to collect AVX512 registers from XSAVE buffer. * i387-tdep.h (I387_NUM_XMM_AVX512_REGS): New define for number of XMM16-31 registers. (I387_NUM_K_REGS): New define for number of K registers. (I387_K0_REGNUM): New define for K0 register number. (I387_NUM_ZMMH_REGS): New define for number of ZMMH registers. (I387_ZMM0H_REGNUM): New define for ZMM0H register number. (I387_NUM_YMM_AVX512_REGS): New define for number of YMM16-31 registers. (I387_YMM16H_REGNUM): New define for YMM16H register number. (I387_XMM16_REGNUM): New define for XMM16 register number. (I387_YMM0_REGNUM): New define for YMM0 register number. (I387_KEND_REGNUM): New define for last K register number. (I387_ZMMENDH_REGNUM): New define for last ZMMH register number. (I387_YMMH_AVX512_END_REGNUM): New define for YMM31 register number. (I387_XMM_AVX512_END_REGNUM): New define for XMM31 register number. * common/i386-xstate.h: Add AVX 3.1 feature bits, mask and XSTATE size. * features/Makefile: Add AVX512 related files. * features/i386/32bit-avx512.xml: New file. * features/i386/64bit-avx512.xml: Likewise. * features/i386/amd64-avx512-linux.c: Likewise. * features/i386/amd64-avx512-linux.xml: Likewise. * features/i386/amd64-avx512.c: Likewise. * features/i386/amd64-avx512.xml: Likewise. * features/i386/i386-avx512-linux.c: Likewise. * features/i386/i386-avx512-linux.xml: Likewise. * features/i386/i386-avx512.c: Likewise. * features/i386/i386-avx512.xml: Likewise. * features/i386/x32-avx512-linux.c: Likewise. * features/i386/x32-avx512-linux.xml: Likewise. * features/i386/x32-avx512.c: Likewise. * features/i386/x32-avx512.xml: Likewise. * regformats/i386/amd64-avx512-linux.dat: New file. * regformats/i386/amd64-avx512.dat: Likewise. * regformats/i386/i386-avx512-linux.dat: Likewise. * regformats/i386/i386-avx512.dat: Likewise. * regformats/i386/x32-avx512-linux.dat: Likewise. * regformats/i386/x32-avx512.dat: Likewise. * NEWS: Add note about new support for AVX512. testsuite/ * Makefile.in (EXECUTABLES): Added i386-avx512. * gdb.arch/i386-avx512.c: New file. * gdb.arch/i386-avx512.exp: Likewise. gdbserver/ * Makefile.in: Added rules to handle new files i386-avx512.c i386-avx512-linux.c amd64-avx512.c amd64-avx512-linux.c x32-avx512.c x32-avx512-linux.c. * configure.srv (srv_i386_regobj): Add i386-avx512.o. (srv_i386_linux_regobj): Add i386-avx512-linux.o. (srv_amd64_regobj): Add amd64-avx512.o and x32-avx512.o. (srv_amd64_linux_regobj): Add amd64-avx512-linux.o and x32-avx512-linux.o. (srv_i386_32bit_xmlfiles): Add i386/32bit-avx512.xml. (srv_i386_64bit_xmlfiles): Add i386/64bit-avx512.xml. (srv_amd64_xmlfiles): Add i386/amd64-avx512.xml and i386/x32-avx512.xml. (srv_i386_linux_xmlfiles): Add i386/i386-avx512-linux.xml. (srv_amd64_linux_xmlfiles): Add i386/amd64-avx512-linux.xml and i386/x32-avx512-linux.xml. * i387-fp.c (num_avx512_k_registers): New constant for number of K registers. (num_avx512_zmmh_low_registers): New constant for number of lower ZMM registers (0-15). (num_avx512_zmmh_high_registers): New constant for number of higher ZMM registers (16-31). (num_avx512_ymmh_registers): New contant for number of higher YMM registers (ymm16-31 added by avx521 on x86_64). (num_avx512_xmm_registers): New constant for number of higher XMM registers (xmm16-31 added by AVX512 on x86_64). (struct i387_xsave): Add space for AVX512 registers. (i387_cache_to_xsave): Change raw buffer size to 64 characters. Add code to handle AVX512 registers. (i387_xsave_to_cache): Add code to handle AVX512 registers. * linux-x86-low.c (init_registers_amd64_avx512_linux): New prototypei from generated file. (tdesc_amd64_avx512_linux): Likewise. (init_registers_x32_avx512_linux): Likewise. (tdesc_x32_avx512_linux): Likewise. (init_registers_i386_avx512_linux): Likewise. (tdesc_i386_avx512_linux): Likewise. (x86_64_regmap): Add AVX512 registers. (x86_linux_read_description): Add code to handle AVX512 XSTATE mask. (initialize_low_arch): Add code to initialize AVX512 registers. doc/ * gdb.texinfo (i386 Features): Add description of AVX512 registers. Change-Id: Ifc4c08c76b85dbec18d02efdbe6182e851584438 Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2013-12-16 23:43:05 +08:00
extern struct target_desc *tdesc_x32_avx512_linux;
Enable XML target descriptions for x86. gdb/ 2010-03-01 H.J. Lu <hongjiu.lu@intel.com> * amd64-linux-nat.c (AMD64_LINUX_USER64_CS): New. (amd64_linux_read_description): Likewise. (_initialize_amd64_linux_nat): Set to_read_description to amd64_linux_read_description. * amd64-linux-tdep.c: Include "features/i386/amd64-linux.c". (amd64_linux_register_name): Removed. (amd64_linux_register_type): Likewise. (amd64_linux_core_read_description): New. (amd64_linux_init_abi): Set target description to tdesc_amd64_linux if needed. Support orig_rax in target description. Don't call set_gdbarch_register_name nor set_gdbarch_register_type. Call set_gdbarch_core_read_description. (_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_linux. * amd64-linux-tdep.h (tdesc_amd64_linux): New. * amd64-tdep.c: Include "features/i386/amd64.c". (amd64_register_names): Removed. (amd64_register_name): Likewise. (amd64_register_type): Likewise. (amd64_init_abi): Set num_core_regs and register_names. Set target description to tdesc_amd64 if needed. Don't call set_gdbarch_register_name nor set_gdbarch_register_type. (_initialize_amd64_tdep): New. * i386-linux-nat.c (i386_linux_read_description): New. (_initialize_i386_linux_nat): Set to_read_description to i386_linux_read_description. * i386-linux-tdep.c: Include "features/i386/i386-linux.c". (i386_linux_register_name): Removed. (i386_linux_core_read_description): New. (i386_linux_read_description): Likewise. (i386_linux_init_abi): Don't call set_gdbarch_register_name. Set target description to tdesc_i386_linux if needed. Support orig_eax. Set register_reggroup_p. Call set_gdbarch_core_read_description. (_initialize_i386_linux_tdep): Call initialize_tdesc_i386_linux. * i386-linux-tdep.h (tdesc_i386_linux): New. * i386-nto-tdep.c (i386nto_regset_id): Replace I386_NUM_FREGS with I387_NUM_REGS. * i386-tdep.c: Include "features/i386/i386.c". (i386_register_names): Make it const. (i386_mmx_names): Likewise. (i386_num_register_names): Removed. (i386_register_name): Likewise. (i386_eflags_type): Likewise. (i386_mxcsr_type): Likewise. (i386_sse_type): Likewise. (i386_register_type): Likewise. (i387_ext_type): Call tdesc_find_type instead of arch_float_type. (i386_pseudo_register_name): New. (i386_pseudo_register_type): Likewise. (i386_mmx_type): Make it static. (i386_gdbarch_init): Check arch. Replace I386_NUM_FREGS with I387_NUM_REGS. Set num_core_regs and register_names. Don't call set_gdbarch_register_name nor set_gdbarch_register_type. Set register_reggroup_p. Set target description to tdesc_i386 if needed. Call set_tdesc_pseudo_register_type, set_tdesc_pseudo_register_name and tdesc_use_registers. (_initialize_i386_tdep): Call initialize_tdesc_i386. initialize_tdesc_x86_64. * i386-tdep.h (gdbarch_tdep): Remove i386_eflags_type, i386_mxcsr_type and i386_sse_type. Add num_core_regs, register_names, tdesc and register_reggroup_p. (I386_NUM_FREGS): Removed. (i386_eflags_type): Likewise. (i386_mxcsr_type): Likewise. (i386_mmx_type): Likewise. (i386_sse_type): Likewise. (i386_register_name): Likewise. (i386_regnum): Add I386_MXCSR_REGNUM. (I386_SSE_NUM_REGS): Defined with I386_MXCSR_REGNUM. * i387-tdep.h (I387_NUM_REGS): New. * regformats/i386/i386-linux.dat: Generated. * regformats/i386/i386.dat: Likewise. * regformats/i386/amd64-linux.dat: Likewise. * regformats/i386/amd64.dat: Likewise. * regformats/reg-i386-linux.dat: Removed. * regformats/reg-i386.dat: Likewise. * regformats/reg-x86-64-linux.dat: Likewise. * regformats/reg-x86-64.dat: Likewise. gdb/gdbserver/ 2010-03-01 H.J. Lu <hongjiu.lu@intel.com> * Makefile.in (clean): Replace reg-i386.c, reg-x86-64.c, reg-i386-linux.c and reg-x86-64-linux.c with i386.c, amd64.c, i386-linux.c and amd64-linux.c. (reg-i386.o): Removed. (reg-i386.c): Likewise. (reg-i386-linux.o): Likewise. (reg-i386-linux.c): Likewise. (reg-x86-64.o): Likewise. (reg-x86-64.c): Likewise. (reg-x86-64-linux.o): Likewise. (reg-x86-64-linux.c): Likewise. (i386.o): New. (i386.c): Likewise. (i386-linux.o): Likewise. (i386-linux.c): Likewise. (amd64.o): Likewise. (amd64.c): Likewise. (amd64-linux.o): Likewise. (amd64-linux.c): Likewise. * configure.srv (srv_i386_regobj): New. (srv_i386_linux_regobj): Likewise. (srv_amd64_regobj): Likewise. (srv_amd64_linux_regobj): Likewise. (srv_i386_32bit_xmlfiles): Likewise. (srv_i386_64bit_xmlfiles): Likewise. (srv_i386_xmlfiles): Likewise. (srv_amd64_xmlfiles): Likewise. (srv_i386_linux_xmlfiles): Likewise. (srv_amd64_linux_xmlfiles): Likewise. (i[34567]86-*-cygwin*): Set srv_regobj to $srv_i386_regobj. Set srv_xmlfiles to $srv_i386_xmlfiles. (i[34567]86-*-mingw32ce*): Likewise. (i[34567]86-*-mingw*): Likewise. (i[34567]86-*-nto*): Likewise. (i[34567]86-*-linux*): Set srv_regobj to $srv_i386_linux_regobj and $srv_amd64_linux_regobj. Set srv_xmlfiles to $srv_i386_linux_xmlfiles and $srv_amd64_linux_xmlfiles. (x86_64-*-linux*): Likewise. * linux-x86-low.c (init_registers_x86_64_linux): Removed. (init_registers_amd64_linux): New. (x86_arch_setup): Replace init_registers_x86_64_linux with init_registers_amd64_linux. gdb/testsuite/ 2010-03-01 H.J. Lu <hongjiu.lu@intel.com> * gdb.xml/tdesc-regs.exp (architecture): New. Set it for x86. (load_description): Set architecture if defined.
2010-03-01 23:33:32 +08:00
/* Enum that defines the syscall identifiers for amd64 linux.
Used for process record/replay, these will be translated into
a gdb-canonical set of syscall ids in linux-record.c. */
enum amd64_syscall {
amd64_sys_read = 0,
amd64_sys_write = 1,
amd64_sys_open = 2,
amd64_sys_close = 3,
amd64_sys_newstat = 4,
amd64_sys_newfstat = 5,
amd64_sys_newlstat = 6,
amd64_sys_poll = 7,
amd64_sys_lseek = 8,
amd64_sys_mmap = 9,
amd64_sys_mprotect = 10,
amd64_sys_munmap = 11,
amd64_sys_brk = 12,
amd64_sys_rt_sigaction = 13,
amd64_sys_rt_sigprocmask = 14,
amd64_sys_rt_sigreturn = 15,
amd64_sys_ioctl = 16,
amd64_sys_pread64 = 17,
amd64_sys_pwrite64 = 18,
amd64_sys_readv = 19,
amd64_sys_writev = 20,
amd64_sys_access = 21,
amd64_sys_pipe = 22,
amd64_sys_select = 23,
amd64_sys_sched_yield = 24,
amd64_sys_mremap = 25,
amd64_sys_msync = 26,
amd64_sys_mincore = 27,
amd64_sys_madvise = 28,
amd64_sys_shmget = 29,
amd64_sys_shmat = 30,
amd64_sys_shmctl = 31,
amd64_sys_dup = 32,
amd64_sys_dup2 = 33,
amd64_sys_pause = 34,
amd64_sys_nanosleep = 35,
amd64_sys_getitimer = 36,
amd64_sys_alarm = 37,
amd64_sys_setitimer = 38,
amd64_sys_getpid = 39,
amd64_sys_sendfile64 = 40,
amd64_sys_socket = 41,
amd64_sys_connect = 42,
amd64_sys_accept = 43,
amd64_sys_sendto = 44,
amd64_sys_recvfrom = 45,
amd64_sys_sendmsg = 46,
amd64_sys_recvmsg = 47,
amd64_sys_shutdown = 48,
amd64_sys_bind = 49,
amd64_sys_listen = 50,
amd64_sys_getsockname = 51,
amd64_sys_getpeername = 52,
amd64_sys_socketpair = 53,
amd64_sys_setsockopt = 54,
amd64_sys_getsockopt = 55,
amd64_sys_clone = 56,
amd64_sys_fork = 57,
amd64_sys_vfork = 58,
amd64_sys_execve = 59,
amd64_sys_exit = 60,
amd64_sys_wait4 = 61,
amd64_sys_kill = 62,
amd64_sys_uname = 63,
amd64_sys_semget = 64,
amd64_sys_semop = 65,
amd64_sys_semctl = 66,
amd64_sys_shmdt = 67,
amd64_sys_msgget = 68,
amd64_sys_msgsnd = 69,
amd64_sys_msgrcv = 70,
amd64_sys_msgctl = 71,
amd64_sys_fcntl = 72,
amd64_sys_flock = 73,
amd64_sys_fsync = 74,
amd64_sys_fdatasync = 75,
amd64_sys_truncate = 76,
amd64_sys_ftruncate = 77,
amd64_sys_getdents = 78,
amd64_sys_getcwd = 79,
amd64_sys_chdir = 80,
amd64_sys_fchdir = 81,
amd64_sys_rename = 82,
amd64_sys_mkdir = 83,
amd64_sys_rmdir = 84,
amd64_sys_creat = 85,
amd64_sys_link = 86,
amd64_sys_unlink = 87,
amd64_sys_symlink = 88,
amd64_sys_readlink = 89,
amd64_sys_chmod = 90,
amd64_sys_fchmod = 91,
amd64_sys_chown = 92,
amd64_sys_fchown = 93,
amd64_sys_lchown = 94,
amd64_sys_umask = 95,
amd64_sys_gettimeofday = 96,
amd64_sys_getrlimit = 97,
amd64_sys_getrusage = 98,
amd64_sys_sysinfo = 99,
amd64_sys_times = 100,
amd64_sys_ptrace = 101,
amd64_sys_getuid = 102,
amd64_sys_syslog = 103,
amd64_sys_getgid = 104,
amd64_sys_setuid = 105,
amd64_sys_setgid = 106,
amd64_sys_geteuid = 107,
amd64_sys_getegid = 108,
amd64_sys_setpgid = 109,
amd64_sys_getppid = 110,
amd64_sys_getpgrp = 111,
amd64_sys_setsid = 112,
amd64_sys_setreuid = 113,
amd64_sys_setregid = 114,
amd64_sys_getgroups = 115,
amd64_sys_setgroups = 116,
amd64_sys_setresuid = 117,
amd64_sys_getresuid = 118,
amd64_sys_setresgid = 119,
amd64_sys_getresgid = 120,
amd64_sys_getpgid = 121,
amd64_sys_setfsuid = 122,
amd64_sys_setfsgid = 123,
amd64_sys_getsid = 124,
amd64_sys_capget = 125,
amd64_sys_capset = 126,
amd64_sys_rt_sigpending = 127,
amd64_sys_rt_sigtimedwait = 128,
amd64_sys_rt_sigqueueinfo = 129,
amd64_sys_rt_sigsuspend = 130,
amd64_sys_sigaltstack = 131,
amd64_sys_utime = 132,
amd64_sys_mknod = 133,
amd64_sys_personality = 135,
amd64_sys_ustat = 136,
amd64_sys_statfs = 137,
amd64_sys_fstatfs = 138,
amd64_sys_sysfs = 139,
amd64_sys_getpriority = 140,
amd64_sys_setpriority = 141,
amd64_sys_sched_setparam = 142,
amd64_sys_sched_getparam = 143,
amd64_sys_sched_setscheduler = 144,
amd64_sys_sched_getscheduler = 145,
amd64_sys_sched_get_priority_max = 146,
amd64_sys_sched_get_priority_min = 147,
amd64_sys_sched_rr_get_interval = 148,
amd64_sys_mlock = 149,
amd64_sys_munlock = 150,
amd64_sys_mlockall = 151,
amd64_sys_munlockall = 152,
amd64_sys_vhangup = 153,
amd64_sys_modify_ldt = 154,
amd64_sys_pivot_root = 155,
amd64_sys_sysctl = 156,
amd64_sys_prctl = 157,
amd64_sys_arch_prctl = 158,
amd64_sys_adjtimex = 159,
amd64_sys_setrlimit = 160,
amd64_sys_chroot = 161,
amd64_sys_sync = 162,
amd64_sys_acct = 163,
amd64_sys_settimeofday = 164,
amd64_sys_mount = 165,
amd64_sys_umount = 166,
amd64_sys_swapon = 167,
amd64_sys_swapoff = 168,
amd64_sys_reboot = 169,
amd64_sys_sethostname = 170,
amd64_sys_setdomainname = 171,
amd64_sys_iopl = 172,
amd64_sys_ioperm = 173,
amd64_sys_init_module = 175,
amd64_sys_delete_module = 176,
amd64_sys_quotactl = 179,
amd64_sys_nfsservctl = 180,
amd64_sys_gettid = 186,
amd64_sys_readahead = 187,
amd64_sys_setxattr = 188,
amd64_sys_lsetxattr = 189,
amd64_sys_fsetxattr = 190,
amd64_sys_getxattr = 191,
amd64_sys_lgetxattr = 192,
amd64_sys_fgetxattr = 193,
amd64_sys_listxattr = 194,
amd64_sys_llistxattr = 195,
amd64_sys_flistxattr = 196,
amd64_sys_removexattr = 197,
amd64_sys_lremovexattr = 198,
amd64_sys_fremovexattr = 199,
amd64_sys_tkill = 200,
amd64_sys_time = 201,
amd64_sys_futex = 202,
amd64_sys_sched_setaffinity = 203,
amd64_sys_sched_getaffinity = 204,
amd64_sys_io_setup = 206,
amd64_sys_io_destroy = 207,
amd64_sys_io_getevents = 208,
amd64_sys_io_submit = 209,
amd64_sys_io_cancel = 210,
amd64_sys_lookup_dcookie = 212,
amd64_sys_epoll_create = 213,
amd64_sys_remap_file_pages = 216,
amd64_sys_getdents64 = 217,
amd64_sys_set_tid_address = 218,
amd64_sys_restart_syscall = 219,
amd64_sys_semtimedop = 220,
amd64_sys_fadvise64 = 221,
amd64_sys_timer_create = 222,
amd64_sys_timer_settime = 223,
amd64_sys_timer_gettime = 224,
amd64_sys_timer_getoverrun = 225,
amd64_sys_timer_delete = 226,
amd64_sys_clock_settime = 227,
amd64_sys_clock_gettime = 228,
amd64_sys_clock_getres = 229,
amd64_sys_clock_nanosleep = 230,
amd64_sys_exit_group = 231,
amd64_sys_epoll_wait = 232,
amd64_sys_epoll_ctl = 233,
amd64_sys_tgkill = 234,
amd64_sys_utimes = 235,
amd64_sys_mbind = 237,
amd64_sys_set_mempolicy = 238,
amd64_sys_get_mempolicy = 239,
amd64_sys_mq_open = 240,
amd64_sys_mq_unlink = 241,
amd64_sys_mq_timedsend = 242,
amd64_sys_mq_timedreceive = 243,
amd64_sys_mq_notify = 244,
amd64_sys_mq_getsetattr = 245,
amd64_sys_kexec_load = 246,
amd64_sys_waitid = 247,
amd64_sys_add_key = 248,
amd64_sys_request_key = 249,
amd64_sys_keyctl = 250,
amd64_sys_ioprio_set = 251,
amd64_sys_ioprio_get = 252,
amd64_sys_inotify_init = 253,
amd64_sys_inotify_add_watch = 254,
amd64_sys_inotify_rm_watch = 255,
amd64_sys_migrate_pages = 256,
amd64_sys_openat = 257,
amd64_sys_mkdirat = 258,
amd64_sys_mknodat = 259,
amd64_sys_fchownat = 260,
amd64_sys_futimesat = 261,
amd64_sys_newfstatat = 262,
amd64_sys_unlinkat = 263,
amd64_sys_renameat = 264,
amd64_sys_linkat = 265,
amd64_sys_symlinkat = 266,
amd64_sys_readlinkat = 267,
amd64_sys_fchmodat = 268,
amd64_sys_faccessat = 269,
amd64_sys_pselect6 = 270,
amd64_sys_ppoll = 271,
amd64_sys_unshare = 272,
amd64_sys_set_robust_list = 273,
amd64_sys_get_robust_list = 274,
amd64_sys_splice = 275,
amd64_sys_tee = 276,
amd64_sys_sync_file_range = 277,
amd64_sys_vmsplice = 278,
amd64_sys_move_pages = 279,
};
/* Enum that defines the syscall identifiers for x32 linux.
Used for process record/replay, these will be translated into
a gdb-canonical set of syscall ids in linux-record.c. */
enum amd64_x32_syscall {
amd64_x32_syscall_bit = 0x40000000,
amd64_x32_sys_read = (amd64_x32_syscall_bit + 0),
amd64_x32_sys_write = (amd64_x32_syscall_bit + 1),
amd64_x32_sys_open = (amd64_x32_syscall_bit + 2),
amd64_x32_sys_close = (amd64_x32_syscall_bit + 3),
amd64_x32_sys_newstat = (amd64_x32_syscall_bit + 4),
amd64_x32_sys_newfstat = (amd64_x32_syscall_bit + 5),
amd64_x32_sys_newlstat = (amd64_x32_syscall_bit + 6),
amd64_x32_sys_poll = (amd64_x32_syscall_bit + 7),
amd64_x32_sys_lseek = (amd64_x32_syscall_bit + 8),
amd64_x32_sys_mmap = (amd64_x32_syscall_bit + 9),
amd64_x32_sys_mprotect = (amd64_x32_syscall_bit + 10),
amd64_x32_sys_munmap = (amd64_x32_syscall_bit + 11),
amd64_x32_sys_brk = (amd64_x32_syscall_bit + 12),
amd64_x32_sys_rt_sigprocmask = (amd64_x32_syscall_bit + 14),
amd64_x32_sys_pread64 = (amd64_x32_syscall_bit + 17),
amd64_x32_sys_pwrite64 = (amd64_x32_syscall_bit + 18),
amd64_x32_sys_access = (amd64_x32_syscall_bit + 21),
amd64_x32_sys_pipe = (amd64_x32_syscall_bit + 22),
amd64_x32_sys_select = (amd64_x32_syscall_bit + 23),
amd64_x32_sys_sched_yield = (amd64_x32_syscall_bit + 24),
amd64_x32_sys_mremap = (amd64_x32_syscall_bit + 25),
amd64_x32_sys_msync = (amd64_x32_syscall_bit + 26),
amd64_x32_sys_mincore = (amd64_x32_syscall_bit + 27),
amd64_x32_sys_madvise = (amd64_x32_syscall_bit + 28),
amd64_x32_sys_shmget = (amd64_x32_syscall_bit + 29),
amd64_x32_sys_shmat = (amd64_x32_syscall_bit + 30),
amd64_x32_sys_shmctl = (amd64_x32_syscall_bit + 31),
amd64_x32_sys_dup = (amd64_x32_syscall_bit + 32),
amd64_x32_sys_dup2 = (amd64_x32_syscall_bit + 33),
amd64_x32_sys_pause = (amd64_x32_syscall_bit + 34),
amd64_x32_sys_nanosleep = (amd64_x32_syscall_bit + 35),
amd64_x32_sys_getitimer = (amd64_x32_syscall_bit + 36),
amd64_x32_sys_alarm = (amd64_x32_syscall_bit + 37),
amd64_x32_sys_setitimer = (amd64_x32_syscall_bit + 38),
amd64_x32_sys_getpid = (amd64_x32_syscall_bit + 39),
amd64_x32_sys_sendfile64 = (amd64_x32_syscall_bit + 40),
amd64_x32_sys_socket = (amd64_x32_syscall_bit + 41),
amd64_x32_sys_connect = (amd64_x32_syscall_bit + 42),
amd64_x32_sys_accept = (amd64_x32_syscall_bit + 43),
amd64_x32_sys_sendto = (amd64_x32_syscall_bit + 44),
amd64_x32_sys_shutdown = (amd64_x32_syscall_bit + 48),
amd64_x32_sys_bind = (amd64_x32_syscall_bit + 49),
amd64_x32_sys_listen = (amd64_x32_syscall_bit + 50),
amd64_x32_sys_getsockname = (amd64_x32_syscall_bit + 51),
amd64_x32_sys_getpeername = (amd64_x32_syscall_bit + 52),
amd64_x32_sys_socketpair = (amd64_x32_syscall_bit + 53),
amd64_x32_sys_clone = (amd64_x32_syscall_bit + 56),
amd64_x32_sys_fork = (amd64_x32_syscall_bit + 57),
amd64_x32_sys_vfork = (amd64_x32_syscall_bit + 58),
amd64_x32_sys_exit = (amd64_x32_syscall_bit + 60),
amd64_x32_sys_wait4 = (amd64_x32_syscall_bit + 61),
amd64_x32_sys_kill = (amd64_x32_syscall_bit + 62),
amd64_x32_sys_uname = (amd64_x32_syscall_bit + 63),
amd64_x32_sys_semget = (amd64_x32_syscall_bit + 64),
amd64_x32_sys_semop = (amd64_x32_syscall_bit + 65),
amd64_x32_sys_semctl = (amd64_x32_syscall_bit + 66),
amd64_x32_sys_shmdt = (amd64_x32_syscall_bit + 67),
amd64_x32_sys_msgget = (amd64_x32_syscall_bit + 68),
amd64_x32_sys_msgsnd = (amd64_x32_syscall_bit + 69),
amd64_x32_sys_msgrcv = (amd64_x32_syscall_bit + 70),
amd64_x32_sys_msgctl = (amd64_x32_syscall_bit + 71),
amd64_x32_sys_fcntl = (amd64_x32_syscall_bit + 72),
amd64_x32_sys_flock = (amd64_x32_syscall_bit + 73),
amd64_x32_sys_fsync = (amd64_x32_syscall_bit + 74),
amd64_x32_sys_fdatasync = (amd64_x32_syscall_bit + 75),
amd64_x32_sys_truncate = (amd64_x32_syscall_bit + 76),
amd64_x32_sys_ftruncate = (amd64_x32_syscall_bit + 77),
amd64_x32_sys_getdents = (amd64_x32_syscall_bit + 78),
amd64_x32_sys_getcwd = (amd64_x32_syscall_bit + 79),
amd64_x32_sys_chdir = (amd64_x32_syscall_bit + 80),
amd64_x32_sys_fchdir = (amd64_x32_syscall_bit + 81),
amd64_x32_sys_rename = (amd64_x32_syscall_bit + 82),
amd64_x32_sys_mkdir = (amd64_x32_syscall_bit + 83),
amd64_x32_sys_rmdir = (amd64_x32_syscall_bit + 84),
amd64_x32_sys_creat = (amd64_x32_syscall_bit + 85),
amd64_x32_sys_link = (amd64_x32_syscall_bit + 86),
amd64_x32_sys_unlink = (amd64_x32_syscall_bit + 87),
amd64_x32_sys_symlink = (amd64_x32_syscall_bit + 88),
amd64_x32_sys_readlink = (amd64_x32_syscall_bit + 89),
amd64_x32_sys_chmod = (amd64_x32_syscall_bit + 90),
amd64_x32_sys_fchmod = (amd64_x32_syscall_bit + 91),
amd64_x32_sys_chown = (amd64_x32_syscall_bit + 92),
amd64_x32_sys_fchown = (amd64_x32_syscall_bit + 93),
amd64_x32_sys_lchown = (amd64_x32_syscall_bit + 94),
amd64_x32_sys_umask = (amd64_x32_syscall_bit + 95),
amd64_x32_sys_gettimeofday = (amd64_x32_syscall_bit + 96),
amd64_x32_sys_getrlimit = (amd64_x32_syscall_bit + 97),
amd64_x32_sys_getrusage = (amd64_x32_syscall_bit + 98),
amd64_x32_sys_sysinfo = (amd64_x32_syscall_bit + 99),
amd64_x32_sys_times = (amd64_x32_syscall_bit + 100),
amd64_x32_sys_getuid = (amd64_x32_syscall_bit + 102),
amd64_x32_sys_syslog = (amd64_x32_syscall_bit + 103),
amd64_x32_sys_getgid = (amd64_x32_syscall_bit + 104),
amd64_x32_sys_setuid = (amd64_x32_syscall_bit + 105),
amd64_x32_sys_setgid = (amd64_x32_syscall_bit + 106),
amd64_x32_sys_geteuid = (amd64_x32_syscall_bit + 107),
amd64_x32_sys_getegid = (amd64_x32_syscall_bit + 108),
amd64_x32_sys_setpgid = (amd64_x32_syscall_bit + 109),
amd64_x32_sys_getppid = (amd64_x32_syscall_bit + 110),
amd64_x32_sys_getpgrp = (amd64_x32_syscall_bit + 111),
amd64_x32_sys_setsid = (amd64_x32_syscall_bit + 112),
amd64_x32_sys_setreuid = (amd64_x32_syscall_bit + 113),
amd64_x32_sys_setregid = (amd64_x32_syscall_bit + 114),
amd64_x32_sys_getgroups = (amd64_x32_syscall_bit + 115),
amd64_x32_sys_setgroups = (amd64_x32_syscall_bit + 116),
amd64_x32_sys_setresuid = (amd64_x32_syscall_bit + 117),
amd64_x32_sys_getresuid = (amd64_x32_syscall_bit + 118),
amd64_x32_sys_setresgid = (amd64_x32_syscall_bit + 119),
amd64_x32_sys_getresgid = (amd64_x32_syscall_bit + 120),
amd64_x32_sys_getpgid = (amd64_x32_syscall_bit + 121),
amd64_x32_sys_setfsuid = (amd64_x32_syscall_bit + 122),
amd64_x32_sys_setfsgid = (amd64_x32_syscall_bit + 123),
amd64_x32_sys_getsid = (amd64_x32_syscall_bit + 124),
amd64_x32_sys_capget = (amd64_x32_syscall_bit + 125),
amd64_x32_sys_capset = (amd64_x32_syscall_bit + 126),
amd64_x32_sys_rt_sigsuspend = (amd64_x32_syscall_bit + 130),
amd64_x32_sys_utime = (amd64_x32_syscall_bit + 132),
amd64_x32_sys_mknod = (amd64_x32_syscall_bit + 133),
amd64_x32_sys_personality = (amd64_x32_syscall_bit + 135),
amd64_x32_sys_ustat = (amd64_x32_syscall_bit + 136),
amd64_x32_sys_statfs = (amd64_x32_syscall_bit + 137),
amd64_x32_sys_fstatfs = (amd64_x32_syscall_bit + 138),
amd64_x32_sys_sysfs = (amd64_x32_syscall_bit + 139),
amd64_x32_sys_getpriority = (amd64_x32_syscall_bit + 140),
amd64_x32_sys_setpriority = (amd64_x32_syscall_bit + 141),
amd64_x32_sys_sched_setparam = (amd64_x32_syscall_bit + 142),
amd64_x32_sys_sched_getparam = (amd64_x32_syscall_bit + 143),
amd64_x32_sys_sched_setscheduler = (amd64_x32_syscall_bit + 144),
amd64_x32_sys_sched_getscheduler = (amd64_x32_syscall_bit + 145),
amd64_x32_sys_sched_get_priority_max = (amd64_x32_syscall_bit + 146),
amd64_x32_sys_sched_get_priority_min = (amd64_x32_syscall_bit + 147),
amd64_x32_sys_sched_rr_get_interval = (amd64_x32_syscall_bit + 148),
amd64_x32_sys_mlock = (amd64_x32_syscall_bit + 149),
amd64_x32_sys_munlock = (amd64_x32_syscall_bit + 150),
amd64_x32_sys_mlockall = (amd64_x32_syscall_bit + 151),
amd64_x32_sys_munlockall = (amd64_x32_syscall_bit + 152),
amd64_x32_sys_vhangup = (amd64_x32_syscall_bit + 153),
amd64_x32_sys_modify_ldt = (amd64_x32_syscall_bit + 154),
amd64_x32_sys_pivot_root = (amd64_x32_syscall_bit + 155),
amd64_x32_sys_sysctl = (amd64_x32_syscall_bit + 156),
amd64_x32_sys_prctl = (amd64_x32_syscall_bit + 157),
amd64_x32_sys_arch_prctl = (amd64_x32_syscall_bit + 158),
amd64_x32_sys_adjtimex = (amd64_x32_syscall_bit + 159),
amd64_x32_sys_setrlimit = (amd64_x32_syscall_bit + 160),
amd64_x32_sys_chroot = (amd64_x32_syscall_bit + 161),
amd64_x32_sys_sync = (amd64_x32_syscall_bit + 162),
amd64_x32_sys_acct = (amd64_x32_syscall_bit + 163),
amd64_x32_sys_settimeofday = (amd64_x32_syscall_bit + 164),
amd64_x32_sys_mount = (amd64_x32_syscall_bit + 165),
amd64_x32_sys_umount = (amd64_x32_syscall_bit + 166),
amd64_x32_sys_swapon = (amd64_x32_syscall_bit + 167),
amd64_x32_sys_swapoff = (amd64_x32_syscall_bit + 168),
amd64_x32_sys_reboot = (amd64_x32_syscall_bit + 169),
amd64_x32_sys_sethostname = (amd64_x32_syscall_bit + 170),
amd64_x32_sys_setdomainname = (amd64_x32_syscall_bit + 171),
amd64_x32_sys_iopl = (amd64_x32_syscall_bit + 172),
amd64_x32_sys_ioperm = (amd64_x32_syscall_bit + 173),
amd64_x32_sys_init_module = (amd64_x32_syscall_bit + 175),
amd64_x32_sys_delete_module = (amd64_x32_syscall_bit + 176),
amd64_x32_sys_quotactl = (amd64_x32_syscall_bit + 179),
amd64_x32_sys_gettid = (amd64_x32_syscall_bit + 186),
amd64_x32_sys_readahead = (amd64_x32_syscall_bit + 187),
amd64_x32_sys_setxattr = (amd64_x32_syscall_bit + 188),
amd64_x32_sys_lsetxattr = (amd64_x32_syscall_bit + 189),
amd64_x32_sys_fsetxattr = (amd64_x32_syscall_bit + 190),
amd64_x32_sys_getxattr = (amd64_x32_syscall_bit + 191),
amd64_x32_sys_lgetxattr = (amd64_x32_syscall_bit + 192),
amd64_x32_sys_fgetxattr = (amd64_x32_syscall_bit + 193),
amd64_x32_sys_listxattr = (amd64_x32_syscall_bit + 194),
amd64_x32_sys_llistxattr = (amd64_x32_syscall_bit + 195),
amd64_x32_sys_flistxattr = (amd64_x32_syscall_bit + 196),
amd64_x32_sys_removexattr = (amd64_x32_syscall_bit + 197),
amd64_x32_sys_lremovexattr = (amd64_x32_syscall_bit + 198),
amd64_x32_sys_fremovexattr = (amd64_x32_syscall_bit + 199),
amd64_x32_sys_tkill = (amd64_x32_syscall_bit + 200),
amd64_x32_sys_time = (amd64_x32_syscall_bit + 201),
amd64_x32_sys_futex = (amd64_x32_syscall_bit + 202),
amd64_x32_sys_sched_setaffinity = (amd64_x32_syscall_bit + 203),
amd64_x32_sys_sched_getaffinity = (amd64_x32_syscall_bit + 204),
amd64_x32_sys_io_setup = (amd64_x32_syscall_bit + 206),
amd64_x32_sys_io_destroy = (amd64_x32_syscall_bit + 207),
amd64_x32_sys_io_getevents = (amd64_x32_syscall_bit + 208),
amd64_x32_sys_io_submit = (amd64_x32_syscall_bit + 209),
amd64_x32_sys_io_cancel = (amd64_x32_syscall_bit + 210),
amd64_x32_sys_lookup_dcookie = (amd64_x32_syscall_bit + 212),
amd64_x32_sys_epoll_create = (amd64_x32_syscall_bit + 213),
amd64_x32_sys_remap_file_pages = (amd64_x32_syscall_bit + 216),
amd64_x32_sys_getdents64 = (amd64_x32_syscall_bit + 217),
amd64_x32_sys_set_tid_address = (amd64_x32_syscall_bit + 218),
amd64_x32_sys_restart_syscall = (amd64_x32_syscall_bit + 219),
amd64_x32_sys_semtimedop = (amd64_x32_syscall_bit + 220),
amd64_x32_sys_fadvise64 = (amd64_x32_syscall_bit + 221),
amd64_x32_sys_timer_settime = (amd64_x32_syscall_bit + 223),
amd64_x32_sys_timer_gettime = (amd64_x32_syscall_bit + 224),
amd64_x32_sys_timer_getoverrun = (amd64_x32_syscall_bit + 225),
amd64_x32_sys_timer_delete = (amd64_x32_syscall_bit + 226),
amd64_x32_sys_clock_settime = (amd64_x32_syscall_bit + 227),
amd64_x32_sys_clock_gettime = (amd64_x32_syscall_bit + 228),
amd64_x32_sys_clock_getres = (amd64_x32_syscall_bit + 229),
amd64_x32_sys_clock_nanosleep = (amd64_x32_syscall_bit + 230),
amd64_x32_sys_exit_group = (amd64_x32_syscall_bit + 231),
amd64_x32_sys_epoll_wait = (amd64_x32_syscall_bit + 232),
amd64_x32_sys_epoll_ctl = (amd64_x32_syscall_bit + 233),
amd64_x32_sys_tgkill = (amd64_x32_syscall_bit + 234),
amd64_x32_sys_utimes = (amd64_x32_syscall_bit + 235),
amd64_x32_sys_mbind = (amd64_x32_syscall_bit + 237),
amd64_x32_sys_set_mempolicy = (amd64_x32_syscall_bit + 238),
amd64_x32_sys_get_mempolicy = (amd64_x32_syscall_bit + 239),
amd64_x32_sys_mq_open = (amd64_x32_syscall_bit + 240),
amd64_x32_sys_mq_unlink = (amd64_x32_syscall_bit + 241),
amd64_x32_sys_mq_timedsend = (amd64_x32_syscall_bit + 242),
amd64_x32_sys_mq_timedreceive = (amd64_x32_syscall_bit + 243),
amd64_x32_sys_mq_getsetattr = (amd64_x32_syscall_bit + 245),
amd64_x32_sys_add_key = (amd64_x32_syscall_bit + 248),
amd64_x32_sys_request_key = (amd64_x32_syscall_bit + 249),
amd64_x32_sys_keyctl = (amd64_x32_syscall_bit + 250),
amd64_x32_sys_ioprio_set = (amd64_x32_syscall_bit + 251),
amd64_x32_sys_ioprio_get = (amd64_x32_syscall_bit + 252),
amd64_x32_sys_inotify_init = (amd64_x32_syscall_bit + 253),
amd64_x32_sys_inotify_add_watch = (amd64_x32_syscall_bit + 254),
amd64_x32_sys_inotify_rm_watch = (amd64_x32_syscall_bit + 255),
amd64_x32_sys_migrate_pages = (amd64_x32_syscall_bit + 256),
amd64_x32_sys_openat = (amd64_x32_syscall_bit + 257),
amd64_x32_sys_mkdirat = (amd64_x32_syscall_bit + 258),
amd64_x32_sys_mknodat = (amd64_x32_syscall_bit + 259),
amd64_x32_sys_fchownat = (amd64_x32_syscall_bit + 260),
amd64_x32_sys_futimesat = (amd64_x32_syscall_bit + 261),
amd64_x32_sys_newfstatat = (amd64_x32_syscall_bit + 262),
amd64_x32_sys_unlinkat = (amd64_x32_syscall_bit + 263),
amd64_x32_sys_renameat = (amd64_x32_syscall_bit + 264),
amd64_x32_sys_linkat = (amd64_x32_syscall_bit + 265),
amd64_x32_sys_symlinkat = (amd64_x32_syscall_bit + 266),
amd64_x32_sys_readlinkat = (amd64_x32_syscall_bit + 267),
amd64_x32_sys_fchmodat = (amd64_x32_syscall_bit + 268),
amd64_x32_sys_faccessat = (amd64_x32_syscall_bit + 269),
amd64_x32_sys_pselect6 = (amd64_x32_syscall_bit + 270),
amd64_x32_sys_ppoll = (amd64_x32_syscall_bit + 271),
amd64_x32_sys_unshare = (amd64_x32_syscall_bit + 272),
amd64_x32_sys_splice = (amd64_x32_syscall_bit + 275),
amd64_x32_sys_tee = (amd64_x32_syscall_bit + 276),
amd64_x32_sys_sync_file_range = (amd64_x32_syscall_bit + 277),
amd64_x32_sys_rt_sigaction = (amd64_x32_syscall_bit + 512),
amd64_x32_sys_rt_sigreturn = (amd64_x32_syscall_bit + 513),
amd64_x32_sys_ioctl = (amd64_x32_syscall_bit + 514),
amd64_x32_sys_readv = (amd64_x32_syscall_bit + 515),
amd64_x32_sys_writev = (amd64_x32_syscall_bit + 516),
amd64_x32_sys_recvfrom = (amd64_x32_syscall_bit + 517),
amd64_x32_sys_sendmsg = (amd64_x32_syscall_bit + 518),
amd64_x32_sys_recvmsg = (amd64_x32_syscall_bit + 519),
amd64_x32_sys_execve = (amd64_x32_syscall_bit + 520),
amd64_x32_sys_ptrace = (amd64_x32_syscall_bit + 521),
amd64_x32_sys_rt_sigpending = (amd64_x32_syscall_bit + 522),
amd64_x32_sys_rt_sigtimedwait = (amd64_x32_syscall_bit + 523),
amd64_x32_sys_rt_sigqueueinfo = (amd64_x32_syscall_bit + 524),
amd64_x32_sys_sigaltstack = (amd64_x32_syscall_bit + 525),
amd64_x32_sys_timer_create = (amd64_x32_syscall_bit + 526),
amd64_x32_sys_mq_notify = (amd64_x32_syscall_bit + 527),
amd64_x32_sys_kexec_load = (amd64_x32_syscall_bit + 528),
amd64_x32_sys_waitid = (amd64_x32_syscall_bit + 529),
amd64_x32_sys_set_robust_list = (amd64_x32_syscall_bit + 530),
amd64_x32_sys_get_robust_list = (amd64_x32_syscall_bit + 531),
amd64_x32_sys_vmsplice = (amd64_x32_syscall_bit + 532),
amd64_x32_sys_move_pages = (amd64_x32_syscall_bit + 533),
amd64_x32_sys_preadv = (amd64_x32_syscall_bit + 534),
amd64_x32_sys_pwritev = (amd64_x32_syscall_bit + 535),
amd64_x32_sys_rt_tgsigqueueinfo = (amd64_x32_syscall_bit + 536),
amd64_x32_sys_recvmmsg = (amd64_x32_syscall_bit + 537),
amd64_x32_sys_sendmmsg = (amd64_x32_syscall_bit + 538),
amd64_x32_sys_process_vm_readv = (amd64_x32_syscall_bit + 539),
amd64_x32_sys_process_vm_writev = (amd64_x32_syscall_bit + 540),
amd64_x32_sys_setsockopt = (amd64_x32_syscall_bit + 541),
amd64_x32_sys_getsockopt = (amd64_x32_syscall_bit + 542),
};
#endif /* amd64-linux-tdep.h */