[binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline
authorSudakshina Das <sudi.das@arm.com>
Tue, 21 May 2019 17:15:13 +0000 (18:15 +0100)
committerSudakshina Das <sudi.das@arm.com>
Tue, 21 May 2019 17:15:13 +0000 (18:15 +0100)
commite39c1607a2df3a97bf7b70bef6de5b7a2db55eea
tree4fbd7358df529b544ef84d586e471fd9a574eaa5
parent23d00a419fe67801afc02a87f7ab9c5374b0238e
[binutils, Arm] Add support for conditional instructions in Armv8.1-M Mainline

This patch adds the following instructions which are part of the
Armv8.1-M Mainline:
CINC
CINV
CNEG
CSINC
CSINV
CSNEG
CSET
CSETM
CSEL

gas/ChangeLog:

2019-05-21  Sudakshina Das  <sudi.das@arm.com>

* config/tc-arm.c (TOGGLE_BIT): New.
(T16_32_TAB): New entries for cinc, cinv, cneg, csinc,
csinv, csneg, cset, csetm and csel.
(operand_parse_code): New OP_RR_ZR.
(parse_operand): Handle case for OP_RR_ZR.
(do_t_cond): New.
(insns): New instructions for cinc, cinv, cneg, csinc,
csinv, csneg, cset, csetm, csel.
* testsuite/gas/arm/armv8_1-m-cond-bad.d: New test.
* testsuite/gas/arm/armv8_1-m-cond-bad.l: New test.
* testsuite/gas/arm/armv8_1-m-cond-bad.s: New test.
* testsuite/gas/arm/armv8_1-m-cond.d: New test.
* testsuite/gas/arm/armv8_1-m-cond.s: New test.

opcodes/ChangeLog:

2019-05-21  Sudakshina Das  <sudi.das@arm.com>

* arm-dis.c (enum mve_instructions): New enum
for csinc, csinv, csneg, csel, cset, csetm, cinv, cinv
and cneg.
(mve_opcodes): New instructions as above.
(is_mve_encoding_conflict): Add cases for csinc, csinv,
csneg and csel.
(print_insn_mve): Accept new %<bitfield>c and %<bitfield>C.
gas/ChangeLog
gas/config/tc-arm.c
gas/testsuite/gas/arm/armv8_1-m-cond-bad.d [new file with mode: 0644]
gas/testsuite/gas/arm/armv8_1-m-cond-bad.l [new file with mode: 0644]
gas/testsuite/gas/arm/armv8_1-m-cond-bad.s [new file with mode: 0644]
gas/testsuite/gas/arm/armv8_1-m-cond.d [new file with mode: 0644]
gas/testsuite/gas/arm/armv8_1-m-cond.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/arm-dis.c