mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 23:39:35 +08:00
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:
@ -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>
|
2019-07-01 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
* config/tc-i386.c (optimize_encoding): Make j unsigned. Handle
|
* 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
|
return t->opcode_modifier.evex || t->opcode_modifier.disp8memshift
|
||||||
|| t->opcode_modifier.broadcast || t->opcode_modifier.masking
|
|| t->opcode_modifier.broadcast || t->opcode_modifier.masking
|
||||||
|| t->opcode_modifier.staticrounding || t->opcode_modifier.sae;
|
|| t->opcode_modifier.sae;
|
||||||
}
|
}
|
||||||
|
|
||||||
static INLINE bfd_boolean
|
static INLINE bfd_boolean
|
||||||
@ -5469,11 +5469,8 @@ check_VecOperands (const insn_template *t)
|
|||||||
/* Check RC/SAE. */
|
/* Check RC/SAE. */
|
||||||
if (i.rounding)
|
if (i.rounding)
|
||||||
{
|
{
|
||||||
if ((i.rounding->type != saeonly
|
if (!t->opcode_modifier.sae
|
||||||
&& !t->opcode_modifier.staticrounding)
|
|| (i.rounding->type != saeonly && !t->opcode_modifier.staticrounding))
|
||||||
|| (i.rounding->type == saeonly
|
|
||||||
&& (t->opcode_modifier.staticrounding
|
|
||||||
|| !t->opcode_modifier.sae)))
|
|
||||||
{
|
{
|
||||||
i.error = unsupported_rc_sae;
|
i.error = unsupported_rc_sae;
|
||||||
return 1;
|
return 1;
|
||||||
|
Reference in New Issue
Block a user