mips.c (MIPS_FP_CONDITIONS): New macro.
authorRichard Sandiford <rsandifo@redhat.com>
Mon, 30 Aug 2004 18:31:08 +0000 (18:31 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 30 Aug 2004 18:31:08 +0000 (18:31 +0000)
commit308cd611711b0cd8924c2a6081e7a50c75cc2d5a
treecc89a215dfda405e347fcdcea39c6811775bfff5
parentfa016245146b1217d617ea2f7555e00945a48f84
mips.c (MIPS_FP_CONDITIONS): New macro.

* config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
(mips_fp_condition): New enum.
(mips_fp_conditions): New array.
(print_fcc_operand): Delete.
(print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
(builtin_description): Add "cond" field.
(DIRECT_BUILTIN): Initialize it.
(CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
into INSN and CODE.  Initialize the "cond" field.
(CMP_BUILTINS): Update accordingly.
(mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
(mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
mips_fp_condition as argument.  Make it the final operand of the
comparison instruction.
(mips_expand_builtin): Update accordingly.
* config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
(UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
the gaps.
* config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
Don't use the 'Q' operand prefix; just print the operand normally.
(mips_cabs_*, mips_c_*): Delete, replacing with...
(mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
patterns.  Split the 4s versions into 2 ps patterns after reload.

From-SVN: r86791
gcc/ChangeLog
gcc/config/mips/mips-ps-3d.md
gcc/config/mips/mips.c
gcc/config/mips/mips.md