re PR target/55195 (shorten_branches generates incorrect forward branch distances)
commitab11fb42c35513a796626d9ddb70c8eaf4d4b037
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>
Tue, 13 Nov 2012 00:36:54 +0000 (13 00:36 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Tue, 13 Nov 2012 00:36:54 +0000 (13 00:36 +0000)
tree3527527cc5944a442f28078158e0c39af0202580
parent769b084b1a8e7e14a51249c9791776327dae869d
re PR target/55195 (shorten_branches generates incorrect forward branch distances)

PR target/55195
* config/pa/pa.md (type): Add sibcall and sh_func_adrs insn types.
(in_branch_delay): Don't allow sibcall or sh_func_adrs insns.
(in_nullified_branch_delay): Likewise.
(in_call_delay): Likewise.
Define delay for sibcall insns.  Adjust Z3 and Z4 insn reservations for
new types.  Add opaque cond to mark all calls, sibcalls, dyncalls and
the $$sh_func_adrs call as variable.  Update type of sibcalls and
$$sh_func_adrs call.
* config/pa/pa.c (pa_adjust_insn_length): Revise to return updated
length instead of adjustment.  Handle negative and undefined call
adjustments for insn_default_length.  Remove adjustment for millicode
insn with unfilled delay slot.
(pa_output_millicode_call): Update for revised millicode length.
* config/pa/pa.h (ADJUST_INSN_LENGTH): Revise to set LENGTH.

From-SVN: r193464
gcc/ChangeLog
gcc/config/pa/pa.c
gcc/config/pa/pa.h
gcc/config/pa/pa.md