From: rsandifo Date: Tue, 6 Mar 2007 09:04:09 +0000 (+0000) Subject: gcc/ X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d68ee78f8928de76dee6b8c926ceeb1cae59cb23;p=thirdparty%2Fgcc.git gcc/ * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in functions that need a constant pool. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122610 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 69978a316861..249d3e85dbd6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-03-06 Richard Sandiford + + * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in + functions that need a constant pool. + 2007-03-06 Richard Sandiford PR target/28181 diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index b702f85e47f4..1d7b44864c14 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -749,6 +749,13 @@ m68k_save_reg (unsigned int regno, bool interrupt_handler) { if (current_function_uses_pic_offset_table) return true; + /* Reload may introduce constant pool references into a function + that thitherto didn't need a PIC register. Note that the test + above will not catch that case because we will only set + current_function_uses_pic_offset_table when emitting + the address reloads. */ + if (current_function_uses_const_pool) + return true; } if (current_function_calls_eh_return)