From 367075fe242c10042024b5866dc2934f5f9b9c37 Mon Sep 17 00:00:00 2001 From: Greta Yorsh Date: Wed, 17 Apr 2013 16:17:10 +0100 Subject: [PATCH] 2013-04-17 Greta Yorsh * config/arm/arm.c (use_return_insn): Return 0 for targets that can benefit from using a sequence of LDRD instructions in epilogue instead of a single LDM instruction. From-SVN: r198029 --- gcc/ChangeLog | 6 ++++++ gcc/config/arm/arm.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e6f3f134d2..41c9a33c21e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-04-17 Greta Yorsh + + * config/arm/arm.c (use_return_insn): Return 0 for targets that + can benefit from using a sequence of LDRD instructions in epilogue + instead of a single LDM instruction. + 2013-04-17 Manuel López-Ibáñez PR 45688 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index bac709f1fa3..9088d1a64ab 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -2412,6 +2412,10 @@ use_return_insn (int iscond, rtx sibling) if (IS_INTERRUPT (func_type) && (frame_pointer_needed || TARGET_THUMB)) return 0; + if (TARGET_LDRD && current_tune->prefer_ldrd_strd + && !optimize_function_for_size_p (cfun)) + return 0; + offsets = arm_get_frame_offsets (); stack_adjust = offsets->outgoing_args - offsets->saved_regs; -- 2.30.2