MIPS16/GAS: Disallow EXTEND delay-slot scheduling
authorMaciej W. Rozycki <macro@imgtec.com>
Fri, 23 Dec 2016 12:37:40 +0000 (12:37 +0000)
committerMaciej W. Rozycki <macro@imgtec.com>
Fri, 23 Dec 2016 19:25:44 +0000 (19:25 +0000)
commit645c455650ed35460afdacb078c7c58308607fbe
treed66a2dabbdab362351439a0c92503d0b01543d54
parent9e76c212e6311abaee4d02473473f7d6dcad972f
MIPS16/GAS: Disallow EXTEND delay-slot scheduling

Do not allow any explicitly coded EXTEND instruction to be automatically
scheduled into a jump delay slot, as an EXTEND prefix is coupled with
the next regular MIPS16 instruction and therefore swapping it with a
jump would change program's semantics; EXTEND is not architecturally
allowed to be present in a jump delay slot anyway.

opcodes/
* mips16-opc.c (mips16_opcodes): Set NODS in `pinfo' for
"extend".

gas/
* testsuite/gas/mips/mips16-extend-swap.d: New test.
* testsuite/gas/mips/mips16-extend-swap.s: New test source.
* testsuite/gas/mips/mips.exp: Run the new test.
gas/ChangeLog
gas/testsuite/gas/mips/mips.exp
gas/testsuite/gas/mips/mips16-extend-swap.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16-extend-swap.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/mips16-opc.c