OSDN Git Service

* pa.md (call expanders): For indirect calls, load %r22 with the
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Nov 1995 07:55:04 +0000 (07:55 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Nov 1995 07:55:04 +0000 (07:55 +0000)
commitc7a4e71283494aebcc2504792c0eb006a889116b
treee7d6b12bbeabc350bbd62f81748c128c8f5b3b96
parent42819d4ec684f96edd30db3f344e2f3556a26a4b
* pa.md (call expanders): For indirect calls, load %r22 with the
function's address.
(indirect call patterns): No need to copy the call address into
%r22 anymore.

* pa.c (output_cbranch): Fix buglet in length handling of
backwards branches with unfilled delay slots.
(output_bb, output_bvb, output_dbra, output_movb): Likewise.

* pa.md: Fix off-by-one error in length computations for all
conditional branch patterns.

* pa.h (output_bvb): Declare.
* pa.c (output_bvb): New function to output branch on variable
bit insns.
* pa.md (branch-on-variable-bit): New patterns.

* pa.h (TARGET_MILLICODE_LONG_CALLS): Delete swtich and all
references.
(output_millicode_call): Declare new function
* pa.md (millicode calls): Update length computation to handle
variable length millicode calls.
(call pattners): Likewise.
(indirect call patterns): Update length compuations and output
templates to handle variable length millicode calls.
(plabel_dereference): Likewise.
* pa.c (override_options): Give warnings when incompatable
options are used.
(output_mul_insn): Call output_millicode_call instead of
output_call, eliminate last argument to output_millicode_call.
(output_div_insn): Likewise.
(output_mod_insn): Likewise.
(output_call): Rewrite long call code to handle variable length
millicode calls.  Eliminate support for calling mul, div and mod
millicode routines.
(output_millicode_call): New function for calling mul, div and mod
millicode routines.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10610 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/config/pa/pa.c
gcc/config/pa/pa.h
gcc/config/pa/pa.md