From b86ba8a3efa78849fb43c627aa61764b642e14d1 Mon Sep 17 00:00:00 2001 From: Andrea Tarani Date: Thu, 24 Feb 2005 01:51:30 +0000 Subject: [PATCH] m68k.c (m68k_save_reg): Also save A5 for non-leaf functions when -mid-shared-library is being used. * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf functions when -mid-shared-library is being used. From-SVN: r95487 --- gcc/ChangeLog | 5 +++++ gcc/config/m68k/m68k.c | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a7fb0dfed53..d2321110ade 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-02-24 Andrea Tarani + + * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf + functions when -mid-shared-library is being used. + 2005-02-23 Daniel Jacobowitz * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove. diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 1db78d93d21..e3ac6fada85 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -371,9 +371,13 @@ m68k_initial_elimination_offset (int from, int to) static bool m68k_save_reg (unsigned int regno, bool interrupt_handler) { - if (flag_pic && current_function_uses_pic_offset_table - && regno == PIC_OFFSET_TABLE_REGNUM) - return true; + if (flag_pic && regno == PIC_OFFSET_TABLE_REGNUM) + { + if (current_function_uses_pic_offset_table) + return true; + if (!current_function_is_leaf && TARGET_ID_SHARED_LIBRARY) + return true; + } if (current_function_calls_eh_return) { -- 2.30.2