Fix fallout from: [ARM] PR target/70830: Avoid POP-{reglist}^ when returning from interrupt handlers

PR target/70830
	* config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.

From-SVN: r237027
This commit is contained in:
Kyrylo Tkachov 2016-06-02 08:54:15 +00:00 committed by Kyrylo Tkachov
parent 521466e5cc
commit 114e816e3f
2 changed files with 7 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR target/70830
* config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.

View File

@ -17781,10 +17781,8 @@ arm_output_multireg_pop (rtx *operands, bool return_pc, rtx cond, bool reverse,
conditional = reverse ? "%?%D0" : "%?%d0";
/* Can't use POP if returning from an interrupt. */
if ((regno_base == SP_REGNUM) && !(interrupt_p && return_pc))
{
sprintf (pattern, "pop%s\t{", conditional);
}
if ((regno_base == SP_REGNUM) && update && !(interrupt_p && return_pc))
sprintf (pattern, "pop%s\t{", conditional);
else
{
/* Output ldmfd when the base register is SP, otherwise output ldmia.