mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
gdb: Consolidate 32bit-pkeys.xml and 64bit-pkeys.xml
1. Since 32bit-pkeys.xml and 64bit-pkeys.xml are identical, consolidate them into a single keys.xml. 2. Enable PKU for x32 to fix: $ gdbserver :123456 x32-program ... .../gdbserver/regcache.cc:255: A problem internal to GDBserver has been detected . Unknown register pkru requested on Tiger Lake.
This commit is contained in:
parent
5a0c4a06eb
commit
0653f01479
@ -1578,14 +1578,16 @@ amd64_linux_read_description (uint64_t xcr0_features_bit, bool is_x32)
|
||||
{
|
||||
static target_desc *amd64_linux_tdescs \
|
||||
[2/*AVX*/][2/*MPX*/][2/*AVX512*/][2/*PKRU*/] = {};
|
||||
static target_desc *x32_linux_tdescs[2/*AVX*/][2/*AVX512*/] = {};
|
||||
static target_desc *x32_linux_tdescs \
|
||||
[2/*AVX*/][2/*AVX512*/][2/*PKRU*/] = {};
|
||||
|
||||
target_desc **tdesc;
|
||||
|
||||
if (is_x32)
|
||||
{
|
||||
tdesc = &x32_linux_tdescs[(xcr0_features_bit & X86_XSTATE_AVX) ? 1 : 0 ]
|
||||
[(xcr0_features_bit & X86_XSTATE_AVX512) ? 1 : 0];
|
||||
[(xcr0_features_bit & X86_XSTATE_AVX512) ? 1 : 0]
|
||||
[(xcr0_features_bit & X86_XSTATE_PKRU) ? 1 : 0];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -25,9 +25,9 @@
|
||||
#include "../features/i386/64bit-core.c"
|
||||
#include "../features/i386/64bit-linux.c"
|
||||
#include "../features/i386/64bit-mpx.c"
|
||||
#include "../features/i386/64bit-pkeys.c"
|
||||
#include "../features/i386/64bit-segments.c"
|
||||
#include "../features/i386/64bit-sse.c"
|
||||
#include "../features/i386/pkeys.c"
|
||||
|
||||
#include "../features/i386/x32-core.c"
|
||||
|
||||
@ -72,8 +72,8 @@ amd64_create_target_description (uint64_t xcr0, bool is_x32, bool is_linux,
|
||||
if (xcr0 & X86_XSTATE_AVX512)
|
||||
regnum = create_feature_i386_64bit_avx512 (tdesc.get (), regnum);
|
||||
|
||||
if ((xcr0 & X86_XSTATE_PKRU) && !is_x32)
|
||||
regnum = create_feature_i386_64bit_pkeys (tdesc.get (), regnum);
|
||||
if (xcr0 & X86_XSTATE_PKRU)
|
||||
regnum = create_feature_i386_pkeys (tdesc.get (), regnum);
|
||||
|
||||
return tdesc.release ();
|
||||
}
|
||||
|
@ -27,8 +27,8 @@
|
||||
#include "../features/i386/32bit-avx.c"
|
||||
#include "../features/i386/32bit-avx512.c"
|
||||
#include "../features/i386/32bit-mpx.c"
|
||||
#include "../features/i386/32bit-pkeys.c"
|
||||
#include "../features/i386/32bit-segments.c"
|
||||
#include "../features/i386/pkeys.c"
|
||||
|
||||
/* Create i386 target descriptions according to XCR0. */
|
||||
|
||||
@ -67,7 +67,7 @@ i386_create_target_description (uint64_t xcr0, bool is_linux, bool segments)
|
||||
regnum = create_feature_i386_32bit_avx512 (tdesc.get (), regnum);
|
||||
|
||||
if (xcr0 & X86_XSTATE_PKRU)
|
||||
regnum = create_feature_i386_32bit_pkeys (tdesc.get (), regnum);
|
||||
regnum = create_feature_i386_pkeys (tdesc.get (), regnum);
|
||||
|
||||
return tdesc.release ();
|
||||
}
|
||||
|
@ -216,7 +216,6 @@ FEATURE_XMLFILES = aarch64-core.xml \
|
||||
i386/32bit-avx.xml \
|
||||
i386/32bit-mpx.xml \
|
||||
i386/32bit-avx512.xml \
|
||||
i386/32bit-pkeys.xml \
|
||||
i386/32bit-segments.xml \
|
||||
i386/64bit-avx512.xml \
|
||||
i386/64bit-core.xml \
|
||||
@ -224,8 +223,8 @@ FEATURE_XMLFILES = aarch64-core.xml \
|
||||
i386/64bit-segments.xml \
|
||||
i386/64bit-avx.xml \
|
||||
i386/64bit-linux.xml \
|
||||
i386/64bit-pkeys.xml \
|
||||
i386/64bit-sse.xml \
|
||||
i386/pkeys.xml \
|
||||
i386/x32-core.xml \
|
||||
loongarch/base32.xml \
|
||||
loongarch/base64.xml \
|
||||
|
@ -1,14 +0,0 @@
|
||||
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
|
||||
Original: 64bit-pkeys.xml */
|
||||
|
||||
#include "gdbsupport/tdesc.h"
|
||||
|
||||
static int
|
||||
create_feature_i386_64bit_pkeys (struct target_desc *result, long regnum)
|
||||
{
|
||||
struct tdesc_feature *feature;
|
||||
|
||||
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pkeys");
|
||||
tdesc_create_reg (feature, "pkru", regnum++, 1, NULL, 32, "uint32");
|
||||
return regnum;
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- Copyright (C) 2016-2022 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. -->
|
||||
|
||||
<!DOCTYPE feature SYSTEM "gdb-target.dtd">
|
||||
<feature name="org.gnu.gdb.i386.pkeys">
|
||||
|
||||
<reg name="pkru" bitsize="32" type="uint32"/>
|
||||
|
||||
</feature>
|
@ -1,10 +1,10 @@
|
||||
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
|
||||
Original: 32bit-pkeys.xml */
|
||||
Original: pkeys.xml */
|
||||
|
||||
#include "gdbsupport/tdesc.h"
|
||||
|
||||
static int
|
||||
create_feature_i386_32bit_pkeys (struct target_desc *result, long regnum)
|
||||
create_feature_i386_pkeys (struct target_desc *result, long regnum)
|
||||
{
|
||||
struct tdesc_feature *feature;
|
||||
|
Loading…
Reference in New Issue
Block a user