2006-08-19 23:15:18 +08:00
|
|
|
/* Target-dependent code for GNU/Linux AMD64.
|
|
|
|
|
2017-01-01 14:50:51 +08:00
|
|
|
Copyright (C) 2006-2017 Free Software Foundation, Inc.
|
2006-08-19 23:15:18 +08:00
|
|
|
|
|
|
|
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
|
2007-08-24 02:08:50 +08:00
|
|
|
the Free Software Foundation; either version 3 of the License, or
|
2006-08-19 23:15:18 +08:00
|
|
|
(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
|
2007-08-24 02:08:50 +08:00
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
2006-08-19 23:15:18 +08:00
|
|
|
|
|
|
|
#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 support for Intel PKRU register to GDB and GDBserver.
This patch adds support for the registers added by the
Memory Protection Keys for Userspace (PKU aka PKEYs) feature.
Native and remote debugging are covered by this patch.
The XSAVE area is extended with a new state containing
the 32-bit wide PKRU register. The new register is added to
amd64-avx-mpx_avx512-* tdesc, thus it is renamed accordingly. Also,
respective xstate mask X86_XSTATE_AVX_MPX_AVX512_MASK is renamed to
X86_XSTATE_AVX_MPX_AVX512_PKU_MASK to reflect the new feature set
it supports.
For more information, please refer to the
Intel(R) 64 and IA-32 Architectures Software Developer's
Manual - Septemper 2015
http://www.intel.com/content/dam/www/public/us/en/documents/
manuals/64-ia-32-architectures-software-developer-manual-325462.pdf
gdb/Changelog:
2015-12-08 Michael Sturm <michael.sturm@intel.com>
* NEWS: Mention addition of PKU feature.
* amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add PKRU register.
* amd64-linux-tdep.c (features/i386/amd64-avx-mpx-avx512-linux.c): Rename
to...
(features/i386/amd64-avx-mpx-avx512-pku-linux.c): ...this.
(amd64_linux_gregset_reg_offset): Add PKRU register.
(amd64_linux_core_read_description): Rename
X86_XSTATE_AVX_MPX_AVX512_MASK,
rename tdesc_amd64_avx_mpx_avx512_pku_linux.
(_initialize_amd64_linux_tdep): Rename
initialize_tdesc_amd64_avx_mpx_avx512_linux.
* amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum
calculation.
(tdesc_amd64_avx_mpx_avx512_linux): Rename to...
(tdesc_amd64_avx_mpx_avx512_pku_linux): ...this.
* amd64-tdep.c (features/i386/amd64-avx-mpx-avx512-pku.c): Rename to...
(features/i386/amd64-avx-mpx-avx512-pku.c): ...this.
(amd64_pkeys_names): New register name for raw register PKRU.
(amd64_init_abi): Add code to initialize PKRU tdep variables if feature
is present.
(amd64_target_description): Rename X86_XSTATE_AVX_MPX_AVX512_MASK,
rename tdesc_amd64_avx_mpx_avx512.
(_initialize_amd64_tdep): Rename initialize_tdesc_amd64_avx_mpx_avx512.
* amd64-tdep.h (enum amd64_regnum): Add PKRU register.
(AMD64_NUM_REGS): Adjust regnum calculation.
* i386-linux.nat.c (GETXSTATEREGS_SUPPLIES): Extend range of
registers supplied via XSTATE by PKRU register.
* common/x86-xstate.h (X86_XSTATE_PKRU): New macro.
(X86_XSTATE_AVX_MPX_AVX512_MASK): Add PKRU and renamed mask.
(X86_XSTATE_ALL_MASK): Rename X86_XSTATE_AVX_MPX_AVX512_MASK.
(X86_XSTATE_PKRU_SIZE): New macro.
(X86_XSTATE_MAX_SIZE): Adjust size.
(HAS_PKRU(XCR0)): New macro.
(X86_XSTATE_SIZE): Add checkfor PKRU.
* features/Makefile (WHICH): Rename i386/i386-avx-mpx-avx512,
i386/i386-avx-mpx-avx512-linux, i386/amd64-avx-mpx-avx512,
i386/amd64-avx-mpx-avx512-linux.
(i386/i386-avx-mpx-avx512-expedite): Rename expedite.
(i386/i386-avx-mpx-avx512-linux-expedite): Likewise.
(i386/amd64-avx-mpx-avx512-expedite): Likewise.
(i386/amd64-avx-mpx-avx512-linux-expedite): Likewise.
(XMLTOC): Rename i386/amd64-avx-mpx-avx512-linux.xml,
i386/amd64-avx-mpx-avx512.xml, i386/i386-avx-mpx-avx512-linux.xml,
i386/i386-avx-mpx-avx512.xml.
((outdir)/i386/i386-avx-mpx-avx512.dat): Rename rule, add
i386/32bit-pkeys.xml.
((outdir)/i386/i386-avx-mpx-avx512-pku-linux.dat): Likewise.
((outdir)/i386/amd64-avx-mpx-avx512.dat): Rename rule, add
i386/64bit-pkeys.xml.
((outdir)/i386/amd64-avx-mpx-avx512-linux.dat): Likewise.
* features/i386/32bit-pkeys.xml: New file.
* features/i386/64bit-pkeys.xml: Likewise.
* features/i386/amd64-avx-mpx-avx512-linux-pku.c: Regenerate from
renamed XML file.
* features/i386/amd64-avx-mpx-avx512-linux.xml: Rename to
amd64-avx-mpx-avx512-pku-linux.xml, add 64bit-pkeys.xml
* features/i386/amd64-avx-mpx-avx512.c: Regenerate from
renamed XML file.
* features/i386/amd64-avx-mpx-avx512.xml: Rename to
amd64-avx-mpx-avx512-pku.xml, add 64bit-pkeys.xml.
* features/i386/i386-avx-mpx-avx512-linux.c: Regenerate from
renamed XML file.
* features/i386/i386-avx-mpx-avx512-linux.xml: Rename to
i386-avx-mpx-avx512-pku-linux.xml, add 32bit-pkeys.xml.
* features/i386/i386-avx-mpx-avx512.c: Regenerate from
renamed XML file.
* features/i386/i386-avx-mpx-avx512.xml: Rename to
i386-avx-mpx-avx512-pku.xml, add 32bit-pkeys.xml.
* i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Change to use
I386_PKEYS_NUM_REGS.
* i386-linux-tdep.c (features/i386/i386-avx-mpx-avx512-linux.c): Rename
include.
(i386_linux_gregset_reg_offset): Add PKRU register.
(i386_linux_core_read_description): Rename xstate mask and returned
tdesc for X86_XSTATE_AVX_MPX_AVX512_PKU_MASK.
(_initialize_i386_linux_tdep): Rename
initialize_tdesc_i386_avx_mpx_avx512_linux.
* i386-linux-tdep.h (I386_LINUX_ORIG_EAX_REGNUM): Adjuste regnum
calculation.
(tdesc_i386_avx_mpx_avx512_linux): Rename prototype.
(/* Format of XSAVE...): Add pkru register.
* i386-tdep.c (i386-avx-mpx-avx512.c): Rename include.
(i386_pkeys_names): New register name for raw register PKRU.
(i386_pkru_regnum_p): Add function to look up register number of
PKRU raw register.
(i386_register_reggroup_p): Add code to exclude PKRU from general
register group.
(i386_validate_tdesc_p): Add code to handle PKRU feature, add PKRU
registers if feature is present in xcr0.
(i386_gdbarch_init): Adjust number of registers in architecture. Add code
to initialize PKRU feature variables in tdep structure.
(i386_target_description): Rename xstate mask and returned
tdesc for X86_XSTATE_AVX_MPX_AVX512_PKU_MASK.
(_initialize_i386_tdep): Rename initialize_tdesc_i386_avx_mpx_avx512.
* i386-tdep.h (struct gdbarch_tdep): Add feature variables to tdep
structure.
(enum i386_regnum): Add PKRU register.
(I386_PKEYS_NUM_REGS): New define for number of registers in PKRU feature.
(i386_pkru_regnum_p): New prototype.
* i387-tdep.c (xsave_pkeys_offset): New table for PKRU offsets in
XSAVE buffer.
(XSAVE_PKEYS_ADDR): New macro.
(i387_supply_xsave): Add code to handle PKRU register.
(i387_collect_xsave): Likewise.
* i387-tdep.h (I387_NUM_PKEYS_REGS): New define for number of registers
in PKRU feature.
(I387_PKRU_REGNUM): New macro.
(I387_PKEYSEND_REGNUM): Likewise.
* regformats/i386/amd64_avx_mpx_avx512_pku_linux.dat: Regenerate from
renamed XML file.
* regformats/i386/amd64_avx_mpx_avx512_pku.dat: Likewise.
* regformats/i386/i386/amd64-avx-mpx-avx512-pku.dat: Likewise.
* regformats/i386/i386_avx_mpx_avx512_pku_linux.dat: Likewise.
testsuite/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* gdb.arch/i386-pkru.c: New file.
* gdb.arch/i386-pkru.exp: Likewise.
gdbserver/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* Makefile.in (clean): Rename i386-avx-mpx-avx512.c,
i386-avx-mpx-avx512-linux.c, amd64-avx-mpx-avx512.c,
amd64-avx-mpx-avx512-linux.c.
(i386-avx-mpx-avx512-linux-ipa.o:): Rename rule and source file.
(amd64-avx-mpx-avx512-linux-ipa.o:): Likewise.
(i386-avx-mpx-avx512.c :): Rename rule, source files and dat files.
(i386-avx-mpx-avx512-linux.c :): Likewise.
(amd64-avx-mpx-avx512.c :): Likewise.
(amd64-avx-mpx-avx512-linux.c :): Likewise.
* configure.srv (srv_i386_regobj): Rename i386-avx-mpx-avx512.o.
(srv_i386_linux_regobj): Rename i386-avx-mpx-avx512-linux.o.
(srv_amd64_regobj): Rename amd64-avx-mpx-avx512.o.
(srv_amd64_linux_regobj): Rename amd64-avx-mpx-avx512-linux.o.
(ipa_i386_linux_regobj): Rename i386-avx-mpx-avx512-linux-ipa.o.
(ipa_amd64_linux_regobj): Rename amd64-avx-mpx-avx512-pku-linux-ipa.o.
(srv_i386_32bit_xmlfiles): Add 32bit-pkeys.xml.
(srv_i386_64bit_xmlfiles): Add 64bit-pkeys.xml.
(srv_i386_xmlfiles): Rename i386/i386-avx-mpx-avx512.xml.
(srv_amd64_xmlfiles): Rename i386/amd64-avx-mpx-avx512.xml.
(srv_i386_linux_xmlfiles): Rename i386/i386-avx-mpx-avx512-linux.xml.
(srv_amd64_linux_xmlfiles): Rename di386/amd64-avx-mpx-avx512-linux.xml.
* i387-fp.c (num_pkeys_registers): New variable.
(struct i387_xsave): Add space for pkru values.
(i387_cache_to_fsave): Add code to handle PKRU register.
(i387_xsave_to_cache): Likewise.
* linux-amd64-ipa.c (get_ipa_tdesc): Rename
tdesc_amd64_avx_mpx_avx512_linux.
(initialize_low_tracepoint): Rename
init_registers_amd64_avx_mpx_avx512_linux.
* linux-i386-ipa.c (get_ipa_desc): Rename
tdesc_i386_avx_mpx_avx512_linux.
(initialize_low_tracepoint): Rename
init_registers_i386_avx_mpx_avx512_linux.
* linux-x86-low.c (x86_64_regmap[]): Add PKRU register.
(x86_linux_read_description): Rename X86_XSTATE_AVX_MPX_AVX512_MASK,
rename tdesc_amd64_avx_mpx_avx512_linux, rename
tdesc_i386_avx_mpx_avx512_linux.
(x86_get_ipa_tdesc_idx): Rename tdesc_amd64_avx_mpx_avx512_linux,
rename tdesc_i386_avx_mpx_avx512_linux.
(initialize_low_arch): Rename init_registers_amd64_avx_mpx_avx512_linux,
rename init_registers_i386_avx_mpx_avx512_linux.
* linux-x86-tdesc.h (init_registers_amd64_avx_mpx_avx512_linux): Renamed
prototype.
(tdesc_amd64_avx_mpx_avx512_linux): Likewise.
(init_registers_i386_avx_mpx_avx512_linux): Likewise.
(tdesc_i386_avx_mpx_avx512_linux): Likewise.
doc/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* gdb.texinfo (i386 Features): Add description of PKRU register.
Change-Id: If75ce5aba7dfd33fdbe3d8b47f04ef3f550c52be
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2017-02-01 19:22:27 +08:00
|
|
|
#define AMD64_LINUX_ORIG_RAX_REGNUM (AMD64_GSBASE_REGNUM + 1)
|
2006-08-19 23:15:18 +08:00
|
|
|
|
|
|
|
/* Total number of registers for GNU/Linux. */
|
|
|
|
#define AMD64_LINUX_NUM_REGS (AMD64_LINUX_ORIG_RAX_REGNUM + 1)
|
|
|
|
|
2010-03-01 23:33:32 +08:00
|
|
|
/* Linux target description. */
|
|
|
|
extern struct target_desc *tdesc_amd64_linux;
|
2010-04-08 02:46:50 +08:00
|
|
|
extern struct target_desc *tdesc_amd64_avx_linux;
|
2013-11-20 20:02:37 +08:00
|
|
|
extern struct target_desc *tdesc_amd64_mpx_linux;
|
Add target descriptions for AVX + MPX
The current MPX target descriptions assume that MPX is always combined
with AVX, however that's not correct. We can have machines with MPX
and without AVX; or machines with AVX and without MPX.
This patch adds new target descriptions for machines that support
both MPX and AVX, as duplicates of the existing MPX descriptions.
The following commit will remove AVX from the MPX-only descriptions.
2016-04-16 Walfred Tedeschi <walfred.tedeschi@intel.com>
gdb/ChangeLog:
* amd64-linux-tdep.c (features/i386/amd64-avx-mpx-linux.c):
New include.
(amd64_linux_core_read_description): Add case for
X86_XSTATE_AVX_MPX_MASK.
(_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_avx_mpx_linux.
* amd64-linux-tdep.h (tdesc_amd64_avx_mpx_linux): New definition.
* amd64-tdep.c (features/i386/amd64-avx-mpx.c): New include.
(amd64_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
(_initialize_amd64_tdep): Call initialize_tdesc_amd64_avx_mpx.
* common/x86-xstate.h (X86_XSTATE_MPX_MASK): Remove AVX bits.
(X86_XSTATE_AVX_MPX_MASK): New case.
* features/Makefile (i386/i386-avx-mpx, i386/i386-avx-mpx-linux)
(i386/amd64-avx-mpx, i386/amd64-avx-mpx-linux): New rules.
(i386/i386-avx-mpx-expedite, i386/i386-avx-mpx-linux-expedite)
(i386/amd64-avx-mpx-expedite, i386/amd64-avx-mpx-linux-expedite):
New expedites.
* i386-linux-tdep.c (features/i386/i386-avx-mpx-linux.c): New
include.
(i386_linux_core_read_description): Add case
X86_XSTATE_AVX_MPX_MASK.
(_initialize_i386_linux_tdep): Call
initialize_tdesc_i386_avx_mpx_linux.
* i386-linux-tdep.h (tdesc_i386_avx_mpx_linux): New include.
* i386-tdep.c (features/i386/i386-avx-mpx.c): New include.
(i386_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.
* x86-linux-nat.c (x86_linux_read_description): Add case for
X86_XSTATE_AVX_MPX_MASK.
* features/i386/amd64-avx-mpx-linux.xml: New file.
* features/i386/i386-avx-mpx-linux.xml: New file.
* features/i386/i386-avx-mpx.xml: New file.
* features/i386/amd64-avx-mpx.xml: New file.
* features/i386/amd64-avx-mpx-linux.c: Generated.
* features/i386/amd64-avx-mpx.c: Generated.
* features/i386/i386-avx-mpx-linux.c: Generated.
* features/i386/i386-avx-mpx.c: Generated.
* regformats/i386/amd64-avx-mpx-linux.dat: Generated.
* regformats/i386/amd64-avx-mpx.dat: Generated.
* regformats/i386/i386-avx-mpx-linux.dat: Generated.
* regformats/i386/i386-avx-mpx.dat: Generated.
gdb/gdbserver/ChangeLog:
* Makefile.in (clean): Add removal for i386-avx-mpx.c,
i386-avx-mpx-linux.c, amd64-avx-mpx.c and amd64-avx-mpx-linux.c.
(i386-avx-mpx.c, i386-avx-mpx-linux.c, amd64-avx-mpx.c)
(amd64-avx-mpx-linux.c): New rules.
(amd64-avx-mpx-linux-ipa.o, i386-avx-mpx-linux-ipa.o): New rule.
* configure.srv (srv_i386_regobj): Add i386-avx-mpx.o.
(srv_i386_linux_regobj): Add i386-avx-mpx-linux.o.
(srv_amd64_regobj): Add amd64-avx-mpx.o.
(srv_amd64_linux_regobj): Add amd64-avx-mpx-linux.o.
(srv_i386_xmlfiles): Add i386/i386-avx-mpx.xml.
(srv_amd64_xmlfiles): Add i386/amd64-avx-mpx.xml.
(srv_i386_linux_xmlfiles): Add i386/i386-avx-mpx-linux.xml.
(srv_amd64_linux_xmlfiles): Add i386/amd64-avx-mpx-linux.xml.
(ipa_i386_linux_regobj): Add i386-avx-mpx-linux-ipa.o.
(ipa_amd64_linux_regobj): Add amd64-avx-mpx-linux-ipa.o.
* linux-x86-low.c (x86_linux_read_description): Add case for
X86_XSTATE_AVX_MPX_MASK.
(x86_get_ipa_tdesc_idx): Add cases for avx_mpx.
(initialize_low_arch): Call init_registers_amd64_avx_mpx_linux and
init_registers_i386_avx_mpx_linux.
* linux-i386-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
(initialize_low_tracepoint): Call
init_registers_i386_avx_mpx_linux.
* linux-amd64-ipa.c (get_ipa_tdesc): Add case for avx_mpx.
(initialize_low_tracepoint): Call
init_registers_amd64_avx_mpx_linux.
* linux-x86-tdesc.h (X86_TDESC_AVX_MPX): New enum value.
(init_registers_amd64_avx_mpx_linux, tdesc_amd64_avx_mpx_linux)
(init_registers_i386_avx_mpx_linux, tdesc_i386_avx_mpx_linux): New
declarations.
2016-04-19 21:44:32 +08:00
|
|
|
extern struct target_desc *tdesc_amd64_avx_mpx_linux;
|
Add target description for avx-avx512.
Add a dedicated target description for the feature combination
avx-avx512 as implemented by certain IA CPU models.
The corresponding X86_XSTATE_AVX_AVX512_MASK already exists, but shared
the tdesc with X86_XSTATE_AVX_MPX_AVX512_MASK. This caused MPX registers
displayed as undefined on CPUs that only implemented
X86_XSTATE_AVX_AVX512_MASK, which is undesired. This patch solves this issue.
This patch also corrects the wrong usage of x32-avx-mpx-avx512, which is
replaced by x32-avx-avx512. The MPX feature is not implemented in x32 mode.
gdb/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* amd64-linux-tdep.c (features/i386/amd64-avx-avx512-linux.c):
New include.
(features/i386/x32-avx-mpx-avx512-linux.c): Rename to...
(features/i386/x32-avx-avx512-linux.c): ...this.
(amd64_linux_core_read_description): Add dedicated cases for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(_initialize_amd64_linux_tdep): Add calls to
initialize_tdesc_amd64_avx_avx512_linux and
initialize_tdesc_x32_avx_avx512_linux.
* amd64-linux.tdep.h (tdesc_amd64_avx_avx512_linux): New prototype.
(tdesc_x32_avx_mpx_avx512_linux): Rename to...
(tdesc_x32_avx_avx512_linu): ...this.
* amd64-tdep.c (features/i386/amd64-avx-avx512.c): New include.
(features/i386/x32-avx-mpx-avx512.c): Rename to...
(features/i386/x32-avx-avx512.c): ...this.
(amd64_target_description): Add dedicated case for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(_initialize_amd64_tdep): Add call to
initialize_tdesc_amd64_avx_avx512.
(initialize_tdesc_x32_avx_mpx_avx512): Rename to...
(initialize_tdesc_x32_avx_avx512): ...this.
* features/Makefile (WHICH): New tdescs i386/i386-avx-avx512,
i386/i386-avx-avx512-linux, i386/amd64-avx-avx512,
i386/amd64-avx-avx512-linux.
(i386/x32-avx-mpx-avx512): Rename to...
(i386/x32-avx-avx512): ...this.
(i386/x32-avx-mpx-avx512-linux): Rename to...
(i386/x32-avx-avx512-linux): ...this.
(i386/i386-avx-avx512-expedite, i386/i386-avx-avx512-linux-expedite,
i386/amd64-avx-avx512-expedite, i386/amd64-avx-avx512-linux-expedite):
New expedites.
(i386/x32-avx-mpx-avx512-expedite): Rename to...
(i386/x32-avx-avx512-expedite): ...this.
(i386/x32-avx-mpx-avx512-linux-expedite): Rename to...
(i386/x32-avx-avx512-linux-expedite): ...this.
(XMLTOC): New XML files i386/amd64-avx-avx512-linux.xml,
i386/amd64-avx-avx512.xml, i386/i386-avx-avx512-linux.xml,
i386/i386-avx-avx512.xml.
(i386/x32-avx-mpx-avx512-linux.xml): Rename to...
(i386/x32-avx-avx512-linux.xml): ...this.
(i386/x32-avx-mpx-avx512.xml): Rename to...
(i386/x32-avx-avx512.xml): ...this.
($(outdir)/i386/i386-avx-avx512.dat): New rule.
($(outdir)/i386/i386-avx-avx512-linux.dat): Likewise.
($(outdir)/i386/amd64-avx-avx512.dat): Likewise.
($(outdir)/i386/amd64-avx-avx512-linux.dat): Likewise.
($(outdir)/i386/x32-avx-mpx-avx512.dat): Rename to...
($(outdir)/i386/x32-avx-avx512.dat): ...this.
($(outdir)/i386/x32-avx-mpx-avx512-linux.dat): Rename to...
($(outdir)/i386/x32-avx-avx512-linux.dat): ...this.
* features/i386/amd64-avx-avx512-linux.c: New file.
* features/i386/amd64-avx-avx512-linux.xml: Likewise.
* features/i386/amd64-avx-avx512.c: Likewise.
* features/i386/amd64-avx-avx512.xml: Likewise.
* features/i386/i386-avx-avx512-linux.c: Likewise.
* features/i386/i386-avx-avx512-linux.xml: Likewise.
* features/i386/i386-avx-avx512.c: Likewise.
* features/i386/i386-avx-avx512.xml: Likewise.
* features/i386/x32-avx-mpx-avx512-linux.c: Deleted.
* features/i386/x32-avx-avx512-linux.c: New file.
* features/i386/x32-avx-mpx-avx512-linux.xml: Deleted.
* features/i386/x32-avx-avx512-linux.xml: New file.
* features/i386/x32-avx-mpx-avx512.c: Deleted.
* features/i386/x32-avx-avx512.c: New file.
* features/i386/x32-avx-mpx-avx512.xml: Deleted.
* features/i386/x32-avx-avx512.xml: New file.
* i386-linux-tdep.c (features/i386/i386-avx-avx512-linux.c): New include.
(i386_linux_core_read_description): Add dedicated case for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(_initialize_i386_linux_tdep): Add call to
initialize_tdesc_i386_avx_avx512_linux.
* i386-linux-tdep.h (tdesc_i386_avx_avx512_linux): New prototype.
* i386-tdep.c (features/i386/i386-avx-avx512.c): New include.
(i386_validate_tdesc_p): Correct XSTATE mask used for feature_avx512.
(i386_target_description): Add dedicated case for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(_initialize_i386_tdep): Add call to initialize_tdesc_i386_avx_avx512.
* regformats/i386/amd64-avx-avx512-linux.dat: New file
* regformats/i386/amd64-avx-avx512.dat: Likewise.
* regformats/i386/i386-avx-avx512-linux.dat: Likewise.
* regformats/i386/i386-avx-avx512.dat: Likewise.
* regformats/i386/x32-avx-mpx-avx512-linux.dat: Deleted.
* regformats/i386/x32-avx-avx512-linux.dat: New file.
* regformats/i386/x32-avx-mpx-avx512.dat: Deleted.
* regformats/i386/x32-avx-avx512.dat: New file.
* x86-linux-nat.c (x86_linux_read_description): Add dedidated case for
X86_XSTATE_AVX_AVX512_MASK and return appropriate description.
gdbserver/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* Makefile.in (clean): Add handling of new source files
i386-avx-avx512.c, i386-avx-avx512-linux.c, amd64-avx-avx512.c,
amd64-avx-avx512-linux.c.
(x32-avx-mpx-avx512.c): Rename to...
(x32-avx-avx512.c): ...this.
(x32-avx-mpx-avx512-linux.c): Rename to...
(x32-avx-avx512-linux.c): ...this.
(i386-avx-avx512-linux-ipa.o): New rule.
(amd64-avx-avx512-linux-ipa.o): Likewise.
(i386-avx-avx512.c): Likewise.
(i386-avx-avx512-linux.c): Likewise.
(amd64-avx-avx512.c): Likewise.
(amd64-avx-avx512-linux.c): Likewise.
(x32-avx-avx512.c): Rename rule, source files, dat files from
x32-avx-mpx-avx512.*) to this.
(x32-avx-avx512-linux.c): Rename rule, source files, dat files from
x32-avx-mpx-avx512-linux.*) to this.
* configure.srv (srv_i386_regobj): Add i386-avx-avx512.o.
(srv_i386_linux_regobj): Add i386-avx-avx512-linux.o.
(srv_amd64_regobj): Add amd64-avx-avx512.o, rename
x32-avx-mpx-avx512.o to x32-avx-avx512.o.
(srv_amd64_linux_regobj): Add amd64-avx-avx512-linux.o, rename
x32-avx-mpx-avx512-linux.o to x32-avx-avx512-linux.o.
(ipa_i386_linux_regobj): Add i386-avx-avx512-linux-ipa.o.
(ipa_amd64_linux_regobj): Add amd64-avx-avx512-linux-ipa.o.
(srv_i386_xmlfiles): Add i386/i386-avx-avx512.xml.
(srv_amd64_xmlfiles): Add i386/amd64-avx-avx512.xml, rename
x32-avx-mpx-avx512.xml to x32-avx-avx512.xml.
(srv_i386_linux_xmlfiles): Add i386/i386-avx-avx512-linux.xml.
(srv_amd64_linux_xmlfiles): Add i386/amd64-avx-avx512-linux.xml,
rename x32-avx-mpx-avx512-linux.xml to x32-avx-avx512-linux.xml.
* linux-amd64-ipa.c (get_ipa_tdesc): Add dedicated case for
X86_TDESC_AVX_AVX512 and return appropriate tdesc.
(initialize_low_tracepoint): Add init_registers_amd64_avx_avx512_linux.
* linux-i386-ipa.c (get_ipa_tdesc): Add dedicated case for
X86_TDESC_AVX_AVX512 and return appropriate tdesc.
(initialize_low_tracepoint): Add init_registers_i386_avx_avx512_linux.
* linux-x86-low.c (x86_linux_read_description): Add dedicated cases for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(x86_get_ipa_tdesc_idx): Rename tdesc_x32_avx_mpx_avx512_linux to
tdesc_x32_avx_avx512_linux, add dedicated if-clause for
tdesc_amd64_avx_avx512_linux and return appropriate mask.
Add dedicated clause for tdesc_i386_avx_avx512_linux
and return appropriate mask.
(initialize_low_arch): Add init_registers_amd64_avx_avx512_linux,
rename init_registers_x32_avx_mpx_avx512_linux, add
init_registers_i386_avx_avx512_linux.
* linux-x86-tdesc.h (enum x86_linux_tdesc): Add new value for
X86_TDESC_AVX_AVX512.
(init_registers_amd64_avx_avx512_linux): New prototype.
(tdesc_amd64_avx_avx512_linux): Likewise.
(init_registers_x32_avx_mpx_avx512_linux): Rename to...
(init_registers_x32_avx_avx512_linux): ...this.
(tdesc_x32_avx_mpx_avx512_linux): Rename to...
(tdesc_x32_avx_avx512_linux): ...this.
(init_registers_i386_avx_avx512_linux): New prototype.
(tdesc_i386_avx_avx512_linux): Likewise.
Change-Id: I01359fab56c961a39568df50af39714ec7b31706
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2016-03-22 23:26:09 +08:00
|
|
|
extern struct target_desc *tdesc_amd64_avx_avx512_linux;
|
Add support for Intel PKRU register to GDB and GDBserver.
This patch adds support for the registers added by the
Memory Protection Keys for Userspace (PKU aka PKEYs) feature.
Native and remote debugging are covered by this patch.
The XSAVE area is extended with a new state containing
the 32-bit wide PKRU register. The new register is added to
amd64-avx-mpx_avx512-* tdesc, thus it is renamed accordingly. Also,
respective xstate mask X86_XSTATE_AVX_MPX_AVX512_MASK is renamed to
X86_XSTATE_AVX_MPX_AVX512_PKU_MASK to reflect the new feature set
it supports.
For more information, please refer to the
Intel(R) 64 and IA-32 Architectures Software Developer's
Manual - Septemper 2015
http://www.intel.com/content/dam/www/public/us/en/documents/
manuals/64-ia-32-architectures-software-developer-manual-325462.pdf
gdb/Changelog:
2015-12-08 Michael Sturm <michael.sturm@intel.com>
* NEWS: Mention addition of PKU feature.
* amd64-linux-nat.c (amd64_linux_gregset32_reg_offset): Add PKRU register.
* amd64-linux-tdep.c (features/i386/amd64-avx-mpx-avx512-linux.c): Rename
to...
(features/i386/amd64-avx-mpx-avx512-pku-linux.c): ...this.
(amd64_linux_gregset_reg_offset): Add PKRU register.
(amd64_linux_core_read_description): Rename
X86_XSTATE_AVX_MPX_AVX512_MASK,
rename tdesc_amd64_avx_mpx_avx512_pku_linux.
(_initialize_amd64_linux_tdep): Rename
initialize_tdesc_amd64_avx_mpx_avx512_linux.
* amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): Adjust regnum
calculation.
(tdesc_amd64_avx_mpx_avx512_linux): Rename to...
(tdesc_amd64_avx_mpx_avx512_pku_linux): ...this.
* amd64-tdep.c (features/i386/amd64-avx-mpx-avx512-pku.c): Rename to...
(features/i386/amd64-avx-mpx-avx512-pku.c): ...this.
(amd64_pkeys_names): New register name for raw register PKRU.
(amd64_init_abi): Add code to initialize PKRU tdep variables if feature
is present.
(amd64_target_description): Rename X86_XSTATE_AVX_MPX_AVX512_MASK,
rename tdesc_amd64_avx_mpx_avx512.
(_initialize_amd64_tdep): Rename initialize_tdesc_amd64_avx_mpx_avx512.
* amd64-tdep.h (enum amd64_regnum): Add PKRU register.
(AMD64_NUM_REGS): Adjust regnum calculation.
* i386-linux.nat.c (GETXSTATEREGS_SUPPLIES): Extend range of
registers supplied via XSTATE by PKRU register.
* common/x86-xstate.h (X86_XSTATE_PKRU): New macro.
(X86_XSTATE_AVX_MPX_AVX512_MASK): Add PKRU and renamed mask.
(X86_XSTATE_ALL_MASK): Rename X86_XSTATE_AVX_MPX_AVX512_MASK.
(X86_XSTATE_PKRU_SIZE): New macro.
(X86_XSTATE_MAX_SIZE): Adjust size.
(HAS_PKRU(XCR0)): New macro.
(X86_XSTATE_SIZE): Add checkfor PKRU.
* features/Makefile (WHICH): Rename i386/i386-avx-mpx-avx512,
i386/i386-avx-mpx-avx512-linux, i386/amd64-avx-mpx-avx512,
i386/amd64-avx-mpx-avx512-linux.
(i386/i386-avx-mpx-avx512-expedite): Rename expedite.
(i386/i386-avx-mpx-avx512-linux-expedite): Likewise.
(i386/amd64-avx-mpx-avx512-expedite): Likewise.
(i386/amd64-avx-mpx-avx512-linux-expedite): Likewise.
(XMLTOC): Rename i386/amd64-avx-mpx-avx512-linux.xml,
i386/amd64-avx-mpx-avx512.xml, i386/i386-avx-mpx-avx512-linux.xml,
i386/i386-avx-mpx-avx512.xml.
((outdir)/i386/i386-avx-mpx-avx512.dat): Rename rule, add
i386/32bit-pkeys.xml.
((outdir)/i386/i386-avx-mpx-avx512-pku-linux.dat): Likewise.
((outdir)/i386/amd64-avx-mpx-avx512.dat): Rename rule, add
i386/64bit-pkeys.xml.
((outdir)/i386/amd64-avx-mpx-avx512-linux.dat): Likewise.
* features/i386/32bit-pkeys.xml: New file.
* features/i386/64bit-pkeys.xml: Likewise.
* features/i386/amd64-avx-mpx-avx512-linux-pku.c: Regenerate from
renamed XML file.
* features/i386/amd64-avx-mpx-avx512-linux.xml: Rename to
amd64-avx-mpx-avx512-pku-linux.xml, add 64bit-pkeys.xml
* features/i386/amd64-avx-mpx-avx512.c: Regenerate from
renamed XML file.
* features/i386/amd64-avx-mpx-avx512.xml: Rename to
amd64-avx-mpx-avx512-pku.xml, add 64bit-pkeys.xml.
* features/i386/i386-avx-mpx-avx512-linux.c: Regenerate from
renamed XML file.
* features/i386/i386-avx-mpx-avx512-linux.xml: Rename to
i386-avx-mpx-avx512-pku-linux.xml, add 32bit-pkeys.xml.
* features/i386/i386-avx-mpx-avx512.c: Regenerate from
renamed XML file.
* features/i386/i386-avx-mpx-avx512.xml: Rename to
i386-avx-mpx-avx512-pku.xml, add 32bit-pkeys.xml.
* i386-linux-nat.c (GETXSTATEREGS_SUPPLIES): Change to use
I386_PKEYS_NUM_REGS.
* i386-linux-tdep.c (features/i386/i386-avx-mpx-avx512-linux.c): Rename
include.
(i386_linux_gregset_reg_offset): Add PKRU register.
(i386_linux_core_read_description): Rename xstate mask and returned
tdesc for X86_XSTATE_AVX_MPX_AVX512_PKU_MASK.
(_initialize_i386_linux_tdep): Rename
initialize_tdesc_i386_avx_mpx_avx512_linux.
* i386-linux-tdep.h (I386_LINUX_ORIG_EAX_REGNUM): Adjuste regnum
calculation.
(tdesc_i386_avx_mpx_avx512_linux): Rename prototype.
(/* Format of XSAVE...): Add pkru register.
* i386-tdep.c (i386-avx-mpx-avx512.c): Rename include.
(i386_pkeys_names): New register name for raw register PKRU.
(i386_pkru_regnum_p): Add function to look up register number of
PKRU raw register.
(i386_register_reggroup_p): Add code to exclude PKRU from general
register group.
(i386_validate_tdesc_p): Add code to handle PKRU feature, add PKRU
registers if feature is present in xcr0.
(i386_gdbarch_init): Adjust number of registers in architecture. Add code
to initialize PKRU feature variables in tdep structure.
(i386_target_description): Rename xstate mask and returned
tdesc for X86_XSTATE_AVX_MPX_AVX512_PKU_MASK.
(_initialize_i386_tdep): Rename initialize_tdesc_i386_avx_mpx_avx512.
* i386-tdep.h (struct gdbarch_tdep): Add feature variables to tdep
structure.
(enum i386_regnum): Add PKRU register.
(I386_PKEYS_NUM_REGS): New define for number of registers in PKRU feature.
(i386_pkru_regnum_p): New prototype.
* i387-tdep.c (xsave_pkeys_offset): New table for PKRU offsets in
XSAVE buffer.
(XSAVE_PKEYS_ADDR): New macro.
(i387_supply_xsave): Add code to handle PKRU register.
(i387_collect_xsave): Likewise.
* i387-tdep.h (I387_NUM_PKEYS_REGS): New define for number of registers
in PKRU feature.
(I387_PKRU_REGNUM): New macro.
(I387_PKEYSEND_REGNUM): Likewise.
* regformats/i386/amd64_avx_mpx_avx512_pku_linux.dat: Regenerate from
renamed XML file.
* regformats/i386/amd64_avx_mpx_avx512_pku.dat: Likewise.
* regformats/i386/i386/amd64-avx-mpx-avx512-pku.dat: Likewise.
* regformats/i386/i386_avx_mpx_avx512_pku_linux.dat: Likewise.
testsuite/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* gdb.arch/i386-pkru.c: New file.
* gdb.arch/i386-pkru.exp: Likewise.
gdbserver/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* Makefile.in (clean): Rename i386-avx-mpx-avx512.c,
i386-avx-mpx-avx512-linux.c, amd64-avx-mpx-avx512.c,
amd64-avx-mpx-avx512-linux.c.
(i386-avx-mpx-avx512-linux-ipa.o:): Rename rule and source file.
(amd64-avx-mpx-avx512-linux-ipa.o:): Likewise.
(i386-avx-mpx-avx512.c :): Rename rule, source files and dat files.
(i386-avx-mpx-avx512-linux.c :): Likewise.
(amd64-avx-mpx-avx512.c :): Likewise.
(amd64-avx-mpx-avx512-linux.c :): Likewise.
* configure.srv (srv_i386_regobj): Rename i386-avx-mpx-avx512.o.
(srv_i386_linux_regobj): Rename i386-avx-mpx-avx512-linux.o.
(srv_amd64_regobj): Rename amd64-avx-mpx-avx512.o.
(srv_amd64_linux_regobj): Rename amd64-avx-mpx-avx512-linux.o.
(ipa_i386_linux_regobj): Rename i386-avx-mpx-avx512-linux-ipa.o.
(ipa_amd64_linux_regobj): Rename amd64-avx-mpx-avx512-pku-linux-ipa.o.
(srv_i386_32bit_xmlfiles): Add 32bit-pkeys.xml.
(srv_i386_64bit_xmlfiles): Add 64bit-pkeys.xml.
(srv_i386_xmlfiles): Rename i386/i386-avx-mpx-avx512.xml.
(srv_amd64_xmlfiles): Rename i386/amd64-avx-mpx-avx512.xml.
(srv_i386_linux_xmlfiles): Rename i386/i386-avx-mpx-avx512-linux.xml.
(srv_amd64_linux_xmlfiles): Rename di386/amd64-avx-mpx-avx512-linux.xml.
* i387-fp.c (num_pkeys_registers): New variable.
(struct i387_xsave): Add space for pkru values.
(i387_cache_to_fsave): Add code to handle PKRU register.
(i387_xsave_to_cache): Likewise.
* linux-amd64-ipa.c (get_ipa_tdesc): Rename
tdesc_amd64_avx_mpx_avx512_linux.
(initialize_low_tracepoint): Rename
init_registers_amd64_avx_mpx_avx512_linux.
* linux-i386-ipa.c (get_ipa_desc): Rename
tdesc_i386_avx_mpx_avx512_linux.
(initialize_low_tracepoint): Rename
init_registers_i386_avx_mpx_avx512_linux.
* linux-x86-low.c (x86_64_regmap[]): Add PKRU register.
(x86_linux_read_description): Rename X86_XSTATE_AVX_MPX_AVX512_MASK,
rename tdesc_amd64_avx_mpx_avx512_linux, rename
tdesc_i386_avx_mpx_avx512_linux.
(x86_get_ipa_tdesc_idx): Rename tdesc_amd64_avx_mpx_avx512_linux,
rename tdesc_i386_avx_mpx_avx512_linux.
(initialize_low_arch): Rename init_registers_amd64_avx_mpx_avx512_linux,
rename init_registers_i386_avx_mpx_avx512_linux.
* linux-x86-tdesc.h (init_registers_amd64_avx_mpx_avx512_linux): Renamed
prototype.
(tdesc_amd64_avx_mpx_avx512_linux): Likewise.
(init_registers_i386_avx_mpx_avx512_linux): Likewise.
(tdesc_i386_avx_mpx_avx512_linux): Likewise.
doc/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* gdb.texinfo (i386 Features): Add description of PKRU register.
Change-Id: If75ce5aba7dfd33fdbe3d8b47f04ef3f550c52be
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2017-02-01 19:22:27 +08:00
|
|
|
extern struct target_desc *tdesc_amd64_avx_mpx_avx512_pku_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
|
|
|
|
2012-05-12 06:02:29 +08:00
|
|
|
extern struct target_desc *tdesc_x32_linux;
|
|
|
|
extern struct target_desc *tdesc_x32_avx_linux;
|
Add target description for avx-avx512.
Add a dedicated target description for the feature combination
avx-avx512 as implemented by certain IA CPU models.
The corresponding X86_XSTATE_AVX_AVX512_MASK already exists, but shared
the tdesc with X86_XSTATE_AVX_MPX_AVX512_MASK. This caused MPX registers
displayed as undefined on CPUs that only implemented
X86_XSTATE_AVX_AVX512_MASK, which is undesired. This patch solves this issue.
This patch also corrects the wrong usage of x32-avx-mpx-avx512, which is
replaced by x32-avx-avx512. The MPX feature is not implemented in x32 mode.
gdb/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* amd64-linux-tdep.c (features/i386/amd64-avx-avx512-linux.c):
New include.
(features/i386/x32-avx-mpx-avx512-linux.c): Rename to...
(features/i386/x32-avx-avx512-linux.c): ...this.
(amd64_linux_core_read_description): Add dedicated cases for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(_initialize_amd64_linux_tdep): Add calls to
initialize_tdesc_amd64_avx_avx512_linux and
initialize_tdesc_x32_avx_avx512_linux.
* amd64-linux.tdep.h (tdesc_amd64_avx_avx512_linux): New prototype.
(tdesc_x32_avx_mpx_avx512_linux): Rename to...
(tdesc_x32_avx_avx512_linu): ...this.
* amd64-tdep.c (features/i386/amd64-avx-avx512.c): New include.
(features/i386/x32-avx-mpx-avx512.c): Rename to...
(features/i386/x32-avx-avx512.c): ...this.
(amd64_target_description): Add dedicated case for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(_initialize_amd64_tdep): Add call to
initialize_tdesc_amd64_avx_avx512.
(initialize_tdesc_x32_avx_mpx_avx512): Rename to...
(initialize_tdesc_x32_avx_avx512): ...this.
* features/Makefile (WHICH): New tdescs i386/i386-avx-avx512,
i386/i386-avx-avx512-linux, i386/amd64-avx-avx512,
i386/amd64-avx-avx512-linux.
(i386/x32-avx-mpx-avx512): Rename to...
(i386/x32-avx-avx512): ...this.
(i386/x32-avx-mpx-avx512-linux): Rename to...
(i386/x32-avx-avx512-linux): ...this.
(i386/i386-avx-avx512-expedite, i386/i386-avx-avx512-linux-expedite,
i386/amd64-avx-avx512-expedite, i386/amd64-avx-avx512-linux-expedite):
New expedites.
(i386/x32-avx-mpx-avx512-expedite): Rename to...
(i386/x32-avx-avx512-expedite): ...this.
(i386/x32-avx-mpx-avx512-linux-expedite): Rename to...
(i386/x32-avx-avx512-linux-expedite): ...this.
(XMLTOC): New XML files i386/amd64-avx-avx512-linux.xml,
i386/amd64-avx-avx512.xml, i386/i386-avx-avx512-linux.xml,
i386/i386-avx-avx512.xml.
(i386/x32-avx-mpx-avx512-linux.xml): Rename to...
(i386/x32-avx-avx512-linux.xml): ...this.
(i386/x32-avx-mpx-avx512.xml): Rename to...
(i386/x32-avx-avx512.xml): ...this.
($(outdir)/i386/i386-avx-avx512.dat): New rule.
($(outdir)/i386/i386-avx-avx512-linux.dat): Likewise.
($(outdir)/i386/amd64-avx-avx512.dat): Likewise.
($(outdir)/i386/amd64-avx-avx512-linux.dat): Likewise.
($(outdir)/i386/x32-avx-mpx-avx512.dat): Rename to...
($(outdir)/i386/x32-avx-avx512.dat): ...this.
($(outdir)/i386/x32-avx-mpx-avx512-linux.dat): Rename to...
($(outdir)/i386/x32-avx-avx512-linux.dat): ...this.
* features/i386/amd64-avx-avx512-linux.c: New file.
* features/i386/amd64-avx-avx512-linux.xml: Likewise.
* features/i386/amd64-avx-avx512.c: Likewise.
* features/i386/amd64-avx-avx512.xml: Likewise.
* features/i386/i386-avx-avx512-linux.c: Likewise.
* features/i386/i386-avx-avx512-linux.xml: Likewise.
* features/i386/i386-avx-avx512.c: Likewise.
* features/i386/i386-avx-avx512.xml: Likewise.
* features/i386/x32-avx-mpx-avx512-linux.c: Deleted.
* features/i386/x32-avx-avx512-linux.c: New file.
* features/i386/x32-avx-mpx-avx512-linux.xml: Deleted.
* features/i386/x32-avx-avx512-linux.xml: New file.
* features/i386/x32-avx-mpx-avx512.c: Deleted.
* features/i386/x32-avx-avx512.c: New file.
* features/i386/x32-avx-mpx-avx512.xml: Deleted.
* features/i386/x32-avx-avx512.xml: New file.
* i386-linux-tdep.c (features/i386/i386-avx-avx512-linux.c): New include.
(i386_linux_core_read_description): Add dedicated case for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(_initialize_i386_linux_tdep): Add call to
initialize_tdesc_i386_avx_avx512_linux.
* i386-linux-tdep.h (tdesc_i386_avx_avx512_linux): New prototype.
* i386-tdep.c (features/i386/i386-avx-avx512.c): New include.
(i386_validate_tdesc_p): Correct XSTATE mask used for feature_avx512.
(i386_target_description): Add dedicated case for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(_initialize_i386_tdep): Add call to initialize_tdesc_i386_avx_avx512.
* regformats/i386/amd64-avx-avx512-linux.dat: New file
* regformats/i386/amd64-avx-avx512.dat: Likewise.
* regformats/i386/i386-avx-avx512-linux.dat: Likewise.
* regformats/i386/i386-avx-avx512.dat: Likewise.
* regformats/i386/x32-avx-mpx-avx512-linux.dat: Deleted.
* regformats/i386/x32-avx-avx512-linux.dat: New file.
* regformats/i386/x32-avx-mpx-avx512.dat: Deleted.
* regformats/i386/x32-avx-avx512.dat: New file.
* x86-linux-nat.c (x86_linux_read_description): Add dedidated case for
X86_XSTATE_AVX_AVX512_MASK and return appropriate description.
gdbserver/Changelog:
2016-04-18 Michael Sturm <michael.sturm@intel.com>
* Makefile.in (clean): Add handling of new source files
i386-avx-avx512.c, i386-avx-avx512-linux.c, amd64-avx-avx512.c,
amd64-avx-avx512-linux.c.
(x32-avx-mpx-avx512.c): Rename to...
(x32-avx-avx512.c): ...this.
(x32-avx-mpx-avx512-linux.c): Rename to...
(x32-avx-avx512-linux.c): ...this.
(i386-avx-avx512-linux-ipa.o): New rule.
(amd64-avx-avx512-linux-ipa.o): Likewise.
(i386-avx-avx512.c): Likewise.
(i386-avx-avx512-linux.c): Likewise.
(amd64-avx-avx512.c): Likewise.
(amd64-avx-avx512-linux.c): Likewise.
(x32-avx-avx512.c): Rename rule, source files, dat files from
x32-avx-mpx-avx512.*) to this.
(x32-avx-avx512-linux.c): Rename rule, source files, dat files from
x32-avx-mpx-avx512-linux.*) to this.
* configure.srv (srv_i386_regobj): Add i386-avx-avx512.o.
(srv_i386_linux_regobj): Add i386-avx-avx512-linux.o.
(srv_amd64_regobj): Add amd64-avx-avx512.o, rename
x32-avx-mpx-avx512.o to x32-avx-avx512.o.
(srv_amd64_linux_regobj): Add amd64-avx-avx512-linux.o, rename
x32-avx-mpx-avx512-linux.o to x32-avx-avx512-linux.o.
(ipa_i386_linux_regobj): Add i386-avx-avx512-linux-ipa.o.
(ipa_amd64_linux_regobj): Add amd64-avx-avx512-linux-ipa.o.
(srv_i386_xmlfiles): Add i386/i386-avx-avx512.xml.
(srv_amd64_xmlfiles): Add i386/amd64-avx-avx512.xml, rename
x32-avx-mpx-avx512.xml to x32-avx-avx512.xml.
(srv_i386_linux_xmlfiles): Add i386/i386-avx-avx512-linux.xml.
(srv_amd64_linux_xmlfiles): Add i386/amd64-avx-avx512-linux.xml,
rename x32-avx-mpx-avx512-linux.xml to x32-avx-avx512-linux.xml.
* linux-amd64-ipa.c (get_ipa_tdesc): Add dedicated case for
X86_TDESC_AVX_AVX512 and return appropriate tdesc.
(initialize_low_tracepoint): Add init_registers_amd64_avx_avx512_linux.
* linux-i386-ipa.c (get_ipa_tdesc): Add dedicated case for
X86_TDESC_AVX_AVX512 and return appropriate tdesc.
(initialize_low_tracepoint): Add init_registers_i386_avx_avx512_linux.
* linux-x86-low.c (x86_linux_read_description): Add dedicated cases for
X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
(x86_get_ipa_tdesc_idx): Rename tdesc_x32_avx_mpx_avx512_linux to
tdesc_x32_avx_avx512_linux, add dedicated if-clause for
tdesc_amd64_avx_avx512_linux and return appropriate mask.
Add dedicated clause for tdesc_i386_avx_avx512_linux
and return appropriate mask.
(initialize_low_arch): Add init_registers_amd64_avx_avx512_linux,
rename init_registers_x32_avx_mpx_avx512_linux, add
init_registers_i386_avx_avx512_linux.
* linux-x86-tdesc.h (enum x86_linux_tdesc): Add new value for
X86_TDESC_AVX_AVX512.
(init_registers_amd64_avx_avx512_linux): New prototype.
(tdesc_amd64_avx_avx512_linux): Likewise.
(init_registers_x32_avx_mpx_avx512_linux): Rename to...
(init_registers_x32_avx_avx512_linux): ...this.
(tdesc_x32_avx_mpx_avx512_linux): Rename to...
(tdesc_x32_avx_avx512_linux): ...this.
(init_registers_i386_avx_avx512_linux): New prototype.
(tdesc_i386_avx_avx512_linux): Likewise.
Change-Id: I01359fab56c961a39568df50af39714ec7b31706
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
2016-03-22 23:26:09 +08:00
|
|
|
extern struct target_desc *tdesc_x32_avx_avx512_linux;
|
2010-03-01 23:33:32 +08:00
|
|
|
|
2017-09-05 16:54:53 +08:00
|
|
|
/* Return the right amd64-linux target descriptions according to
|
|
|
|
XCR0_FEATURES_BIT and IS_X32. */
|
|
|
|
|
|
|
|
const target_desc *amd64_linux_read_description (uint64_t xcr0_features_bit,
|
|
|
|
bool is_x32);
|
|
|
|
|
2009-09-09 06:50:59 +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,
|
|
|
|
};
|
|
|
|
|
2013-12-20 06:17:48 +08:00
|
|
|
/* 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),
|
|
|
|
};
|
|
|
|
|
2006-08-19 23:15:18 +08:00
|
|
|
#endif /* amd64-linux-tdep.h */
|