summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-18 08:59:46 +0000
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>2013-06-18 08:59:46 +0000
commitf5cf1225bb37f43fa5bfca32cddadb9ee61aaa63 (patch)
tree395ff7af5aa6d34483998e0bd101b28a1b67d380
parent01e6cdb4521ff18a9eecca30cccf37f02df98b05 (diff)
downloadgcc-f5cf1225bb37f43fa5bfca32cddadb9ee61aaa63.tar.gz
2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR target/57609 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn with next_active_insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200164 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/s390/s390.c13
2 files changed, 17 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 649d9b98731..f356c4d75de 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ PR target/57609
+ * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
+ with next_active_insn.
+
2013-06-18 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.h (enum data_align): New.
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 358345a4437..837308b4d3f 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -7023,7 +7023,7 @@ s390_chunkify_start (void)
if (LABEL_P (insn)
&& (LABEL_PRESERVE_P (insn) || LABEL_NAME (insn)))
{
- rtx vec_insn = next_real_insn (insn);
+ rtx vec_insn = next_active_insn (insn);
if (! vec_insn || ! JUMP_TABLE_DATA_P (vec_insn))
bitmap_set_bit (far_labels, CODE_LABEL_NUMBER (insn));
}
@@ -7054,7 +7054,7 @@ s390_chunkify_start (void)
{
/* Find the jump table used by this casesi jump. */
rtx vec_label = XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0);
- rtx vec_insn = next_real_insn (vec_label);
+ rtx vec_insn = next_active_insn (vec_label);
if (vec_insn && JUMP_TABLE_DATA_P (vec_insn))
{
rtx vec_pat = PATTERN (vec_insn);
@@ -7085,11 +7085,20 @@ s390_chunkify_start (void)
/* Insert base register reload insns at every far label. */
+ if (dump_file)
+ {
+ fprintf (dump_file, "Function: %s\n", current_function_name ());
+ fprintf (dump_file, "far labels:\n");
+ }
+
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
if (LABEL_P (insn)
&& bitmap_bit_p (far_labels, CODE_LABEL_NUMBER (insn)))
{
struct constant_pool *pool = s390_find_pool (pool_list, insn);
+ if (dump_file)
+ print_rtx (insn);
+
if (pool)
{
rtx new_insn = gen_reload_base (cfun->machine->base_reg,