mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 04:00:07 +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 (!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;
|
||||
return 1;
|
||||
|
@ -220,6 +220,8 @@
|
||||
.*:319: Error: .*unsupported broadcast for `vcvtneps2bf16'
|
||||
.*:321: Error: .*vaddps.*
|
||||
.*:322: Error: .*vcmpss.*
|
||||
.*:324: Error: .*vaddss.*
|
||||
.*:325: Error: .*vcmpps.*
|
||||
GAS LISTING .*
|
||||
|
||||
|
||||
@ -574,4 +576,9 @@ GAS LISTING .*
|
||||
[ ]*320[ ]*
|
||||
[ ]*321[ ]+vaddps \$0xcc, %zmm0, %zmm0, %zmm0
|
||||
[ ]*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
|
||||
|
@ -321,4 +321,7 @@ _start:
|
||||
vaddps $0xcc, %zmm0, %zmm0, %zmm0
|
||||
vcmpss $0, $0xcc, %xmm0, %xmm0, %k0
|
||||
|
||||
vaddss {sae}, %xmm0, %xmm0, %xmm0
|
||||
vcmpps $0, {rn-sae}, %zmm0, %zmm0, %k0
|
||||
|
||||
.p2align 4
|
||||
|
Reference in New Issue
Block a user