[ARM] PR target/70830: Avoid POP-{reglist}^ when returning from interrupt handlers
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Thu, 12 May 2016 09:56:46 +0000 (09:56 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Thu, 12 May 2016 09:56:46 +0000 (09:56 +0000)
commit5acc47a40d13af51cd1709f0238c798a666bcd7b
tree43c42f7af9755f290377e17a4c95ed428514cfc4
parent3cd638421e2d9639f68313a6b18522b31f702b04
[ARM] PR target/70830: Avoid POP-{reglist}^ when returning from interrupt handlers

PR target/70830
* config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
when popping the PC and within an interrupt handler routine.
Add missing tab to output of "ldmfd".
(output_return_instruction): Output LDMFD with SP update rather
than POP when returning from interrupt handler.

* gcc.target/arm/interrupt-1.c: Change dg-compile to dg-assemble.
Add -save-temps to dg-options.
Scan for ldmfd rather than pop instruction.
* gcc.target/arm/interrupt-2.c: Likewise.
* gcc.target/arm/pr70830.c: New test.

From-SVN: r236169
gcc/ChangeLog
gcc/config/arm/arm.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/interrupt-1.c
gcc/testsuite/gcc.target/arm/interrupt-2.c
gcc/testsuite/gcc.target/arm/pr70830.c [new file with mode: 0644]