[2/4] x86: StaticRounding implies SAE

Message ID 5D147628020000780023B6ED@prv1-mh.provo.novell.com
State New
Headers show
Series
  • x86: further optimizations
Related show

Commit Message

Jan Beulich June 27, 2019, 7:54 a.m.
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/
2019-06-27  Jan Beulich  <jbeulich@suse.com>

	* config/tc-i386.c (is_evex_encoding): Don't check for SAE.
	(check_VecOperands): Simplify static rounding / SAE checking.

Patch

--- 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 *
   /* 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;