diff options
author | Andreas Krebbel <krebbel1@de.ibm.com> | 2008-02-14 08:40:40 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2008-02-14 08:40:40 +0000 |
commit | b49326f1ca9f1e9ec206d431643cf1996008fdcf (patch) | |
tree | 487383f49dcf5db7bbfccdcbea74d4cd01b3fbbf | |
parent | 346341a4e2cbb8fd5b94dc5b883c79cca3856861 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/s390/s390.c | 13 |
2 files changed, 9 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c0c6b6e..23d2bec 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; |