diff options
author | krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-18 08:59:46 +0000 |
---|---|---|
committer | krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-18 08:59:46 +0000 |
commit | f5cf1225bb37f43fa5bfca32cddadb9ee61aaa63 (patch) | |
tree | 395ff7af5aa6d34483998e0bd101b28a1b67d380 | |
parent | 01e6cdb4521ff18a9eecca30cccf37f02df98b05 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/s390/s390.c | 13 |
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, |