aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2019-02-20 19:49:12 -0800
committerH. Peter Anvin <hpa@zytor.com>2019-02-20 19:49:12 -0800
commit05ac953c23f90b2328d393f7eecde96e41aed067 (patch)
tree759fe3d75276aac5c7f9dd7dcbfb56323a85fff1 /core
parent090ba3a2aa9bc3f6b5491b09f51b76836c014fee (diff)
downloadsyslinux-05ac953c23f90b2328d393f7eecde96e41aed067.tar.gz
syslinux-05ac953c23f90b2328d393f7eecde96e41aed067.tar.xz
syslinux-05ac953c23f90b2328d393f7eecde96e41aed067.zip
dmi: check both the AC and ID flags at the same timeHEADmaster
There is no reason to do the fairly complex flag-test sequence twice, when we might as well check for both flags at the same time. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core')
-rw-r--r--core/dmi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/dmi.c b/core/dmi.c
index 550b63e2..9a108341 100644
--- a/core/dmi.c
+++ b/core/dmi.c
@@ -317,6 +317,7 @@ struct cpuflag {
static void sysappend_set_cpu(void)
{
+ unsigned long have_eflags;
static char cpu_str[6+6] = "CPU=";
char *p = cpu_str + 4;
static const struct cpuflag cpuflags[] = {
@@ -331,10 +332,11 @@ static void sysappend_set_cpu(void)
const struct cpuflag *cf;
/* Not technically from DMI, but it fit here... */
+ have_eflags = cpu_has_eflags(EFLAGS_ID|EFLAGS_AC);
- if (!cpu_has_eflag(EFLAGS_ID)) {
+ if (!(have_eflags & EFLAGS_ID)) {
/* No CPUID */
- *p++ = cpu_has_eflag(EFLAGS_AC) ? '4' : '3';
+ *p++ = (have_eflags & EFLAGS_AC) ? '4' : '3';
} else {
uint32_t flags[4], eax, ebx, family;
uint32_t ext_level;