From: krebbel Date: Fri, 18 Mar 2011 17:31:39 +0000 (+0000) Subject: 2011-03-18 Andreas Krebbel X-Git-Tag: upstream/4.9.2~22221 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7ba1ff793d93fe5a5698cbe1180aa3563a785d26;p=platform%2Fupstream%2Flinaro-gcc.git 2011-03-18 Andreas Krebbel * config/s390/s390.c (s390_chunkify_start): Prevent literal pool splitting between a call and its corresponding CALL_ARG_LOCATION note. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171156 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 74b3464..519ba5d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-03-18 Andreas Krebbel + + * config/s390/s390.c (s390_chunkify_start): Prevent literal pool + splitting between a call and its corresponding CALL_ARG_LOCATION + note. + 2011-03-18 Maxim Kuvyrkov PR rtl-optimization/48170 diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 4a056d5..dcbd4ac 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -6651,7 +6651,7 @@ s390_chunkify_start (void) s390_add_execute (curr_pool, insn); s390_add_pool_insn (curr_pool, insn); } - else if (GET_CODE (insn) == INSN || GET_CODE (insn) == CALL_INSN) + else if (GET_CODE (insn) == INSN || CALL_P (insn)) { rtx pool_ref = NULL_RTX; find_constant_pool_ref (PATTERN (insn), &pool_ref); @@ -6676,6 +6676,15 @@ s390_chunkify_start (void) pending_ltrel = pool_ref; } } + /* Make sure we do not split between a call and its + corresponding CALL_ARG_LOCATION note. */ + if (CALL_P (insn)) + { + rtx next = NEXT_INSN (insn); + if (next && NOTE_P (next) + && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION) + continue; + } } if (GET_CODE (insn) == JUMP_INSN || GET_CODE (insn) == CODE_LABEL)