From: Andreas Krebbel Date: Thu, 14 Feb 2008 08:40:40 +0000 (+0000) Subject: s390.c (s390_mainpool_start): Emit the pool before the first section switch note. X-Git-Tag: releases/gcc-4.3.0~164 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b49326f1ca9f1e9ec206d431643cf1996008fdcf;p=thirdparty%2Fgcc.git s390.c (s390_mainpool_start): Emit the pool before the first section switch note. 2008-02-14 Andreas Krebbel * config/s390/s390.c (s390_mainpool_start): Emit the pool before the first section switch note. From-SVN: r132315 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c0c6b6ea4c5e..23d2bec85a74 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-02-14 Andreas Krebbel + + * config/s390/s390.c (s390_mainpool_start): Emit the pool + before the first section switch note. + 2008-02-14 Ralf Wildenhues * doc/bugreport.texi: Update copyright years. diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 2d90eef88cfd..280358c0c3f6 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;