aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-arm.c
diff options
context:
space:
mode:
authorBarnaby Wilks <barnaby.wilks@arm.com>2019-08-05 12:43:38 +0100
committerNick Clifton <nickc@redhat.com>2019-08-05 12:43:38 +0100
commit23d188c74e7481bb0af3c42b84fc9cb0c94267e5 (patch)
tree4d88f17e87bc76e01a6924381ac4d1bfb9db37c0 /gas/config/tc-arm.c
parenta80cf5d88e028fa6a72b37fe50795e70bb6e3559 (diff)
downloadgdb-23d188c74e7481bb0af3c42b84fc9cb0c94267e5.zip
gdb-23d188c74e7481bb0af3c42b84fc9cb0c94267e5.tar.gz
gdb-23d188c74e7481bb0af3c42b84fc9cb0c94267e5.tar.bz2
Removes support in the ARM assembler for the unsigned variants of the VQ(R)DMLAH and VQ(R)DMLASH MVE instructions.
Previously GAS would accept .u32, .u16 and .u8 suffixes to the VQ(R)DMLAH and VQ(R)DMLASH instructions, however the Armv8.1-M Mainline specification states that these functions only have signed variations (.s32, .s16 and .s8 suffixes). This is documented here: https://static.docs.arm.com/ddi0553/bh/DDI0553B_h_armv8m_arm.pdf?_ga=2.143079093.1892401233.1563295591-999473562.1560847439#page=1183 gas * config/tc-arm.c (do_mve_vqdmlah): Use N_S_32 macro. (do_neon_qrdmlah): Use N_S_32 macro. * testsuite/gas/arm/mve-vqdmlah-bad.d: New test. * testsuite/gas/arm/mve-vqdmlah-bad.l: New test. * testsuite/gas/arm/mve-vqdmlah-bad.s: New test. * testsuite/gas/arm/mve-vqdmlah.d: Remove unsigned instruction tests. * testsuite/gas/arm/mve-vqdmlah.s: Remove unsigned instruction tests. * testsuite/gas/arm/mve-vqdmlash-bad.d: New test. * testsuite/gas/arm/mve-vqdmlash-bad.l: New test. * testsuite/gas/arm/mve-vqdmlash-bad.s: New test. * testsuite/gas/arm/mve-vqdmlash.d: Remove unsigned instruction tests. * testsuite/gas/arm/mve-vqdmlash.s: Remove unsigned instruction tests. opcodes * arm-dis.c: Only accept signed variants of VQ(R)DMLAH and VQ(R)DMLASH instructions.
Diffstat (limited to 'gas/config/tc-arm.c')
-rw-r--r--gas/config/tc-arm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index aa082a6..f7bebc1 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -17900,7 +17900,7 @@ do_mve_vqdmlah (void)
{
enum neon_shape rs = neon_select_shape (NS_QQR, NS_NULL);
struct neon_type_el et
- = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_MVE | N_KEY);
+ = neon_check_type (3, rs, N_EQK, N_EQK, N_S_32 | N_KEY);
if (inst.cond > COND_ALWAYS)
inst.pred_insn_type = INSIDE_VPT_INSN;
@@ -18190,7 +18190,7 @@ do_neon_qrdmlah (void)
{
enum neon_shape rs = neon_select_shape (NS_QQR, NS_NULL);
struct neon_type_el et
- = neon_check_type (3, rs, N_EQK, N_EQK, N_SU_MVE | N_KEY);
+ = neon_check_type (3, rs, N_EQK, N_EQK, N_S_32 | N_KEY);
NEON_ENCODE (INTEGER, inst);
mve_encode_qqr (et.size, et.type == NT_unsigned, 0);