diff options
| author | bernie <bernie@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-24 01:51:30 +0000 |
|---|---|---|
| committer | bernie <bernie@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-24 01:51:30 +0000 |
| commit | 7284415e0cbf86256a058c966fcf22da96afe299 (patch) | |
| tree | e7e17b5ea8ccac9d9725917baa317cd3ef175156 | |
| parent | 79a953462b7e44a1dea03c80d34261cb2c4416a5 (diff) | |
| download | ppe42-gcc-7284415e0cbf86256a058c966fcf22da96afe299.tar.gz ppe42-gcc-7284415e0cbf86256a058c966fcf22da96afe299.zip | |
* config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
functions when -mid-shared-library is being used.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95487 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | 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 <andrea.tarani@gilbarco.com> + + * 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 <dan@codesourcery.com> * 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) { |

