Tighten the constraints for warning about NOPs for the MSP 430 ISA, so NOPs are only...
authorJozef Lawrynowicz <jozef.l@mittosystems.com>
Tue, 27 Nov 2018 12:25:09 +0000 (12:25 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 27 Nov 2018 12:25:09 +0000 (12:25 +0000)
commit35ba4bc019ba75eca36363164eeaae3f011b32c9
treeb94f140c150374beca2e00b435277a3237cd7ad3
parent4207142d6a5d2359170c5f9a140fc1a2351fbda9
Tighten the constraints for warning about NOPs for the MSP 430 ISA, so NOPs are only inserted/warned about when needed.  Specifically: 430 and 430x ISA require a NOP after DINT.  Only the 430x ISA requires NOP before EINT.  Only the 430x ISA requires NOP after every EINT. CPU42 errata.

* config/tc-msp430.c (is_dint): New.
(is_eint): New.
(gen_nop): New.
(warn_eint_nop): New.
(warn_unsure_interrupt): New.
(msp430_operands): Determine the effect MOV #N,SR insns have on
interrupt state.
Only emit NOP warnings for 430 ISA in certain situations.
(msp430_md_end): Only warn about an EINT at the end of the file
if NOP warnings are enabled.
* testsuite/gas/msp430/bad.l: Adjust expected output for new warnings.
* testsuite/gas/msp430/msp430.exp: Run new tests.
* testsuite/gas/msp430/nop-dint-430.d: New.
* testsuite/gas/msp430/nop-dint-430.l: New.
* testsuite/gas/msp430/nop-dint-430x-ignore.d: New.
* testsuite/gas/msp430/nop-dint-430x-silent.d: New.
* testsuite/gas/msp430/nop-dint-430x.d: New.
* testsuite/gas/msp430/nop-dint-430x.l: New.
* testsuite/gas/msp430/nop-dint.s: New.
* testsuite/gas/msp430/nop-eint-430.d: New.
* testsuite/gas/msp430/nop-eint-430.l: New.
* testsuite/gas/msp430/nop-eint-430x-ignore.d: New.
* testsuite/gas/msp430/nop-eint-430x-silent.d: New.
* testsuite/gas/msp430/nop-eint-430x.d: New.
* testsuite/gas/msp430/nop-eint-430x.l: New.
* testsuite/gas/msp430/nop-eint.s: New.
* testsuite/gas/msp430/nop-int-430.d: New.
* testsuite/gas/msp430/nop-int-430.l: New.
* testsuite/gas/msp430/nop-int-430x-silent.d: New.
* testsuite/gas/msp430/nop-int-430x.d: New.
* testsuite/gas/msp430/nop-int-430x.l: New.
* testsuite/gas/msp430/nop-int.s: New.
24 files changed:
gas/ChangeLog
gas/config/tc-msp430.c
gas/testsuite/gas/msp430/bad.l
gas/testsuite/gas/msp430/msp430.exp
gas/testsuite/gas/msp430/nop-dint-430.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-dint-430.l [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-dint-430x-ignore.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-dint-430x-silent.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-dint-430x.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-dint-430x.l [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-dint.s [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-eint-430.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-eint-430.l [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-eint-430x-ignore.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-eint-430x-silent.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-eint-430x.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-eint-430x.l [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-eint.s [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-int-430.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-int-430.l [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-int-430x-silent.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-int-430x.d [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-int-430x.l [new file with mode: 0644]
gas/testsuite/gas/msp430/nop-int.s [new file with mode: 0644]