]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
s390.c (s390_mainpool_start): Emit the pool before the first section switch note.
authorAndreas Krebbel <krebbel1@de.ibm.com>
Thu, 14 Feb 2008 08:40:40 +0000 (08:40 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Thu, 14 Feb 2008 08:40:40 +0000 (08:40 +0000)
2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>

* config/s390/s390.c (s390_mainpool_start): Emit the pool
before the first section switch note.

From-SVN: r132315

gcc/ChangeLog
gcc/config/s390/s390.c

index c0c6b6ea4c5e2ab91b2b1574449cd91b1813caa5..23d2bec85a74024761cf79fd0118b25f4502c051 100644 (file)
@@ -1,3 +1,8 @@
+2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.c (s390_mainpool_start): Emit the pool
+       before the first section switch note.
+
 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
 
        * doc/bugreport.texi: Update copyright years.
index 2d90eef88cfdc0a678b0870a6fe0a5f5385a0ba6..280358c0c3f6d2d2a51778691241a9db10cd50a8 100644 (file)
@@ -5683,7 +5683,6 @@ s390_mainpool_start (void)
 {
   struct constant_pool *pool;
   rtx insn;
-  bool in_pool_section_p = false;
 
   pool = s390_alloc_pool ();
 
@@ -5696,7 +5695,6 @@ s390_mainpool_start (void)
        {
          gcc_assert (!pool->pool_insn);
          pool->pool_insn = insn;
-         in_pool_section_p = true;
        }
 
       if (!TARGET_CPU_ZARCH && s390_execute_label (insn))
@@ -5722,12 +5720,9 @@ s390_mainpool_start (void)
         Z cpus where we can emit the literal pool at the end of the
         function body within the text section.  */
       if (NOTE_P (insn)
-         && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS)
-       {
-         if (in_pool_section_p)
-           pool->emit_pool_after = PREV_INSN (insn);
-         in_pool_section_p = !in_pool_section_p;
-       }
+         && NOTE_KIND (insn) == NOTE_INSN_SWITCH_TEXT_SECTIONS
+         && !pool->emit_pool_after)
+       pool->emit_pool_after = PREV_INSN (insn);
     }
 
   gcc_assert (pool->pool_insn || pool->size == 0);
@@ -5744,7 +5739,7 @@ s390_mainpool_start (void)
 
   /* If the functions ends with the section where the literal pool
      should be emitted set the marker to its end.  */
-  if (pool && in_pool_section_p)
+  if (pool && !pool->emit_pool_after)
     pool->emit_pool_after = get_last_insn ();
 
   return pool;