summaryrefslogtreecommitdiff
path: root/gcc/config/s390
diff options
context:
space:
mode:
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2008-02-14 08:40:40 +0000
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2008-02-14 08:40:40 +0000
commit7338c72850945531801f7ef10379c5ff16358005 (patch)
tree487383f49dcf5db7bbfccdcbea74d4cd01b3fbbf /gcc/config/s390
parent49a55c95870a9acd342f901ea91850122b1c90f9 (diff)
downloadgcc-7338c72850945531801f7ef10379c5ff16358005.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132315 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/s390')
-rw-r--r--gcc/config/s390/s390.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 2d90eef88cf..280358c0c3f 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;