From a80195f1224aced64392b452d55980b6bbd2a8b9 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 1 Jul 2019 08:31:50 +0200 Subject: [PATCH] x86: StaticRounding implies SAE This implication allows to simplify some conditionals, thus slightly improving performance. This change also paves the way for re-using StaticRounding for non-EVEX insns. --- gas/ChangeLog | 5 +++++ gas/config/tc-i386.c | 9 +++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index b9691770598..c6fcecb2668 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2019-07-01 Jan Beulich + + * config/tc-i386.c (is_evex_encoding): Don't check for SAE. + (check_VecOperands): Simplify static rounding / SAE checking. + 2019-07-01 Jan Beulich * config/tc-i386.c (optimize_encoding): Make j unsigned. Handle diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index bc7d55611a1..fe50566d86b 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3557,7 +3557,7 @@ is_evex_encoding (const insn_template *t) { return t->opcode_modifier.evex || t->opcode_modifier.disp8memshift || t->opcode_modifier.broadcast || t->opcode_modifier.masking - || t->opcode_modifier.staticrounding || t->opcode_modifier.sae; + || t->opcode_modifier.sae; } static INLINE bfd_boolean @@ -5469,11 +5469,8 @@ check_VecOperands (const insn_template *t) /* Check RC/SAE. */ if (i.rounding) { - if ((i.rounding->type != saeonly - && !t->opcode_modifier.staticrounding) - || (i.rounding->type == saeonly - && (t->opcode_modifier.staticrounding - || !t->opcode_modifier.sae))) + if (!t->opcode_modifier.sae + || (i.rounding->type != saeonly && !t->opcode_modifier.staticrounding)) { i.error = unsupported_rc_sae; return 1; -- 2.30.2