diff options
author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-30 18:31:08 +0000 |
---|---|---|
committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-30 18:31:08 +0000 |
commit | dc71d935955475169e3b9db42b4ad1feb724f3f3 (patch) | |
tree | cc89a215dfda405e347fcdcea39c6811775bfff5 /gcc/config/mips/mips.md | |
parent | f449817f78a4cd87079ac3ff2bc7e91074194f03 (diff) | |
download | gcc-dc71d935955475169e3b9db42b4ad1feb724f3f3.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86791 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/mips/mips.md')
-rw-r--r-- | gcc/config/mips/mips.md | 55 |
1 files changed, 12 insertions, 43 deletions
diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 4256a5bb788..037ee042e9b 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -53,54 +53,23 @@ ;; For MIPS Paired-Singled Floating Point Instructions. (UNSPEC_MOVE_TF_PS 200) - (UNSPEC_C_F 201) - (UNSPEC_C_UN 202) - (UNSPEC_C_EQ 203) - (UNSPEC_C_UEQ 204) - (UNSPEC_C_OLT 205) - (UNSPEC_C_ULT 206) - (UNSPEC_C_OLE 207) - (UNSPEC_C_ULE 208) - (UNSPEC_C_SF 209) - (UNSPEC_C_NGLE 210) - (UNSPEC_C_SEQ 211) - (UNSPEC_C_NGL 212) - (UNSPEC_C_LT 213) - (UNSPEC_C_NGE 214) - (UNSPEC_C_LE 215) - (UNSPEC_C_NGT 216) + (UNSPEC_C 201) ;; MIPS64/MIPS32R2 alnv.ps - (UNSPEC_ALNV_PS 217) + (UNSPEC_ALNV_PS 202) ;; MIPS-3D instructions + (UNSPEC_CABS 203) - (UNSPEC_CABS_F 218) - (UNSPEC_CABS_UN 219) - (UNSPEC_CABS_EQ 220) - (UNSPEC_CABS_UEQ 221) - (UNSPEC_CABS_OLT 222) - (UNSPEC_CABS_ULT 223) - (UNSPEC_CABS_OLE 224) - (UNSPEC_CABS_ULE 225) - (UNSPEC_CABS_SF 226) - (UNSPEC_CABS_NGLE 227) - (UNSPEC_CABS_SEQ 228) - (UNSPEC_CABS_NGL 229) - (UNSPEC_CABS_LT 230) - (UNSPEC_CABS_NGE 231) - (UNSPEC_CABS_LE 232) - (UNSPEC_CABS_NGT 233) - - (UNSPEC_ADDR_PS 234) - (UNSPEC_CVT_PW_PS 235) - (UNSPEC_CVT_PS_PW 236) - (UNSPEC_MULR_PS 237) - - (UNSPEC_RSQRT1 238) - (UNSPEC_RSQRT2 239) - (UNSPEC_RECIP1 240) - (UNSPEC_RECIP2 241) + (UNSPEC_ADDR_PS 204) + (UNSPEC_CVT_PW_PS 205) + (UNSPEC_CVT_PS_PW 206) + (UNSPEC_MULR_PS 207) + + (UNSPEC_RSQRT1 208) + (UNSPEC_RSQRT2 209) + (UNSPEC_RECIP1 210) + (UNSPEC_RECIP2 211) ] ) |