aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-gen.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2023-02-24 13:58:35 +0100
committerJan Beulich <jbeulich@suse.com>2023-02-24 13:58:35 +0100
commitc3bb24f5663f3e423f313bc16f27e32ef5e1dc0a (patch)
tree0a8f85558ebcb713353cd74ef1d2224313c88d3e /opcodes/i386-gen.c
parent5eeeafe0a6884eaf1c5a21160e78e53842fa7cba (diff)
downloadfsf-binutils-gdb-c3bb24f5663f3e423f313bc16f27e32ef5e1dc0a.zip
fsf-binutils-gdb-c3bb24f5663f3e423f313bc16f27e32ef5e1dc0a.tar.gz
fsf-binutils-gdb-c3bb24f5663f3e423f313bc16f27e32ef5e1dc0a.tar.bz2
x86-64: don't permit LAHF/SAHF with "generic64"
The feature isn't universally available on 64-bit CPUs. Note that in i386-gen.c:isa_dependencies[] I'm only adding it to models where I'm certain the functionality exists. For Nocona and Core I'm uncertain in particular.
Diffstat (limited to 'opcodes/i386-gen.c')
-rw-r--r--opcodes/i386-gen.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 8b31ac8..945d52f 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -67,7 +67,7 @@ static const dependency isa_dependencies[] =
{ "CORE2",
"NOCONA|SSSE3" },
{ "COREI7",
- "CORE2|SSE4_2|Rdtscp" },
+ "CORE2|SSE4_2|Rdtscp|LAHF_SAHF" },
{ "K6",
"186|286|386|486|586|SYSCALL|387|MMX" },
{ "K6_2",
@@ -79,7 +79,7 @@ static const dependency isa_dependencies[] =
{ "AMDFAM10",
"K8|FISTTP|SSE4A|ABM" },
{ "BDVER1",
- "GENERIC64|FISTTP|Rdtscp|CX16|XOP|ABM|LWP|SVME|AES|PCLMUL|PRFCHW" },
+ "GENERIC64|FISTTP|Rdtscp|CX16|LAHF_SAHF|XOP|ABM|LWP|SVME|AES|PCLMUL|PRFCHW" },
{ "BDVER2",
"BDVER1|FMA|BMI|TBM|F16C" },
{ "BDVER3",
@@ -87,7 +87,7 @@ static const dependency isa_dependencies[] =
{ "BDVER4",
"BDVER3|AVX2|Movbe|BMI2|RdRnd|MWAITX" },
{ "ZNVER1",
- "GENERIC64|FISTTP|Rdtscp|CX16|AVX2|SSE4A|ABM|SVME|AES|PCLMUL|PRFCHW|FMA|BMI|F16C|Xsaveopt|FSGSBase|Movbe|BMI2|RdRnd|ADX|RdSeed|SMAP|SHA|XSAVEC|XSAVES|ClflushOpt|CLZERO|MWAITX" },
+ "GENERIC64|FISTTP|Rdtscp|CX16|LAHF_SAHF|AVX2|SSE4A|ABM|SVME|AES|PCLMUL|PRFCHW|FMA|BMI|F16C|Xsaveopt|FSGSBase|Movbe|BMI2|RdRnd|ADX|RdSeed|SMAP|SHA|XSAVEC|XSAVES|ClflushOpt|CLZERO|MWAITX" },
{ "ZNVER2",
"ZNVER1|CLWB|RDPID|RDPRU|MCOMMIT|WBNOINVD" },
{ "ZNVER3",
@@ -95,7 +95,7 @@ static const dependency isa_dependencies[] =
{ "ZNVER4",
"ZNVER3|AVX512F|AVX512DQ|AVX512IFMA|AVX512CD|AVX512BW|AVX512VL|AVX512_BF16|AVX512VBMI|AVX512_VBMI2|AVX512_VNNI|AVX512_BITALG|AVX512_VPOPCNTDQ|GFNI|RMPQUERY" },
{ "BTVER1",
- "GENERIC64|FISTTP|CX16|Rdtscp|SSSE3|SSE4A|ABM|PRFCHW|CX16|Clflush|FISTTP|SVME" },
+ "GENERIC64|FISTTP|CX16|LAHF_SAHF|Rdtscp|SSSE3|SSE4A|ABM|PRFCHW|Clflush|FISTTP|SVME" },
{ "BTVER2",
"BTVER1|AVX|BMI|F16C|AES|PCLMUL|Movbe|Xsaveopt|PRFCHW" },
{ "286",
@@ -313,6 +313,7 @@ static bitfield cpu_flags[] =
BITFIELD (LM),
BITFIELD (Movbe),
BITFIELD (CX16),
+ BITFIELD (LAHF_SAHF),
BITFIELD (EPT),
BITFIELD (Rdtscp),
BITFIELD (FSGSBase),