mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 12:23:31 +08:00
x86: reject all invalid SAE variants
So far an SAE-only specifier was accepted for static-rounding insns, while SAE-only insns didn't accept static rounding specifiers. If anything it would make sense the other way around, allowing SAE-only insns to have the (ignored) rounding mode specified individually rather than globally via -mevexrcig=. But for now make things match the SDM.
This commit is contained in:
@ -6272,7 +6272,7 @@ check_VecOperands (const insn_template *t)
|
|||||||
if (i.rounding.type != rc_none)
|
if (i.rounding.type != rc_none)
|
||||||
{
|
{
|
||||||
if (!t->opcode_modifier.sae
|
if (!t->opcode_modifier.sae
|
||||||
|| (i.rounding.type != saeonly && !t->opcode_modifier.staticrounding))
|
|| ((i.rounding.type != saeonly) != t->opcode_modifier.staticrounding))
|
||||||
{
|
{
|
||||||
i.error = unsupported_rc_sae;
|
i.error = unsupported_rc_sae;
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -220,6 +220,8 @@
|
|||||||
.*:319: Error: .*unsupported broadcast for `vcvtneps2bf16'
|
.*:319: Error: .*unsupported broadcast for `vcvtneps2bf16'
|
||||||
.*:321: Error: .*vaddps.*
|
.*:321: Error: .*vaddps.*
|
||||||
.*:322: Error: .*vcmpss.*
|
.*:322: Error: .*vcmpss.*
|
||||||
|
.*:324: Error: .*vaddss.*
|
||||||
|
.*:325: Error: .*vcmpps.*
|
||||||
GAS LISTING .*
|
GAS LISTING .*
|
||||||
|
|
||||||
|
|
||||||
@ -574,4 +576,9 @@ GAS LISTING .*
|
|||||||
[ ]*320[ ]*
|
[ ]*320[ ]*
|
||||||
[ ]*321[ ]+vaddps \$0xcc, %zmm0, %zmm0, %zmm0
|
[ ]*321[ ]+vaddps \$0xcc, %zmm0, %zmm0, %zmm0
|
||||||
[ ]*322[ ]+vcmpss \$0, \$0xcc, %xmm0, %xmm0, %k0
|
[ ]*322[ ]+vcmpss \$0, \$0xcc, %xmm0, %xmm0, %k0
|
||||||
|
[ ]*323[ ]*
|
||||||
|
GAS LISTING .*
|
||||||
|
#...
|
||||||
|
[ ]*324[ ]+vaddss \{sae\}, %xmm0, %xmm0, %xmm0
|
||||||
|
[ ]*325[ ]+vcmpps \$0, \{rn-sae\}, %zmm0, %zmm0, %k0
|
||||||
#pass
|
#pass
|
||||||
|
@ -321,4 +321,7 @@ _start:
|
|||||||
vaddps $0xcc, %zmm0, %zmm0, %zmm0
|
vaddps $0xcc, %zmm0, %zmm0, %zmm0
|
||||||
vcmpss $0, $0xcc, %xmm0, %xmm0, %k0
|
vcmpss $0, $0xcc, %xmm0, %xmm0, %k0
|
||||||
|
|
||||||
|
vaddss {sae}, %xmm0, %xmm0, %xmm0
|
||||||
|
vcmpps $0, {rn-sae}, %zmm0, %zmm0, %k0
|
||||||
|
|
||||||
.p2align 4
|
.p2align 4
|
||||||
|
Reference in New Issue
Block a user