mips.c (machine_function): Add new fields: ignore_hazard_length_p and all_noreorder_p.
authorRichard Sandiford <rsandifo@redhat.com>
Wed, 2 Jul 2003 07:34:27 +0000 (07:34 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 2 Jul 2003 07:34:27 +0000 (07:34 +0000)
commit6f2993e58b90605ec7e0e9dea61c6ad141bf2188
treef10bcd538a2db743ce56ebc162ce8aa7c9a60ef2
parent0184bd46b030b4024e07d8e93e87c4b9b7b9f7e6
mips.c (machine_function): Add new fields: ignore_hazard_length_p and all_noreorder_p.

* config/mips/mips.c (machine_function): Add new fields:
ignore_hazard_length_p and all_noreorder_p.
(mips_flag_delayed_branch): New variable.
(override_options): Treat '/' as an operand punctuation character.
Set up mips_flag_delayed_branch.
(print_operand): Handle '/'.
(mips_output_function_prologue): Put the whole function in
.set noreorder and .set nomacro if all_noreorder_p is true.
(mips_output_function_epilogue): End the noreorder/nomacro sequence.
(mips16_optimize_gp): Remove "first insn" parameter.
(mips16_lay_out_constants): New function, split out from mips_reorg.
(mips_avoid_hazard, mips_avoid_hazards): New functions.
(mips_reorg): For mips16 code, call mips16_lay_out_constant
and (optionally) mips16_optimize.  If TARGET_EXPLICIT_RELOCS,
do delayed-branch scheduling followed by hazard detection.
(mips_adjust_insn_length): Only account for hazards if
!ignore_hazard_length_p.
(mips_output_load_label): Add a nop to the o32 sequence if
the target suffers from load delays.
(mips_output_conditional_branch): Add %/ to the end of branches.
(mips_output_division): Fill the branch delay slot with %#.
* config/mips/mips.md: Remove redundant '%*' from mips16 branch
instructions.  End all other %* branches with %/.
(ffssi2, ffsdi2): Fix lengths.
(truncdisi2, truncdihi2, truncdiqi2): Add store attributes.
(fix_truncdfsi2_macro): Turn off .set nomacro if appropriate.
(fix_truncsfsi2_macro): Likewise.
(mov_lwl): Set hazard to "none".
(ashldi3_internal): Fill the branch delay slot with %#.
(ashrdi3_internal, lshrdi3_internal): Likewise.
(exception_receiver): Explicitly set $28.
(hazard_nop): New pattern.

From-SVN: r68821
gcc/ChangeLog
gcc/config/mips/mips.c
gcc/config/mips/mips.md