aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndreas Krebbel <krebbel1@de.ibm.com>2008-02-14 08:40:40 +0000
committerAndreas Krebbel <krebbel@gcc.gnu.org>2008-02-14 08:40:40 +0000
commitb49326f1ca9f1e9ec206d431643cf1996008fdcf (patch)
tree487383f49dcf5db7bbfccdcbea74d4cd01b3fbbf /gcc
parent346341a4e2cbb8fd5b94dc5b883c79cca3856861 (diff)
downloadgcc-b49326f1ca9f1e9ec206d431643cf1996008fdcf.zip
gcc-b49326f1ca9f1e9ec206d431643cf1996008fdcf.tar.gz
gcc-b49326f1ca9f1e9ec206d431643cf1996008fdcf.tar.bz2
s390.c (s390_mainpool_start): Emit the pool before the first section switch note.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/s390/s390.c13
2 files changed, 9 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c0c6b6e..23d2bec8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 2d90eef..280358c 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -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;