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.
This commit is contained in:
parent
a0a1771e89
commit
a80195f122
|
@ -1,3 +1,8 @@
|
|||
2019-07-01 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (is_evex_encoding): Don't check for SAE.
|
||||
(check_VecOperands): Simplify static rounding / SAE checking.
|
||||
|
||||
2019-07-01 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (optimize_encoding): Make j unsigned. Handle
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue