OSDN Git Service

More MIPS vector cleanup work.
[pf3gnuchains/gcc-fork.git] / gcc / config / mips / mips.h
index b8a6844..8862e58 100644 (file)
@@ -411,6 +411,9 @@ extern const struct mips_cpu_info *mips_tune_info;
       if (TARGET_MIPS16)                                       \
        builtin_define ("__mips16");                            \
                                                                \
+      if (TARGET_MIPS3D)                                       \
+       builtin_define ("__mips3d");                            \
+                                                               \
       MIPS_CPP_SET_PROCESSOR ("_MIPS_ARCH", mips_arch_info);   \
       MIPS_CPP_SET_PROCESSOR ("_MIPS_TUNE", mips_tune_info);   \
                                                                \
@@ -3020,370 +3023,3 @@ while (0)
        " TEXT_SECTION_ASM_OP);
 #endif
 #endif
-
-/* MIPS Paired-Single Floating Point Instruction & MIPS-3D Support.  */
-
-/* Builtin functions for MIPS.  */
-/* NOTE: The order of mips_bdesc[] in mips.c must be the same as the order of
-   enum mips_builtins{}.  */
-
-enum mips_builtins
-{
-  MIPS_BUILTIN_PLL_PS,
-  MIPS_BUILTIN_PUL_PS,
-  MIPS_BUILTIN_PLU_PS,
-  MIPS_BUILTIN_PUU_PS,
-  MIPS_BUILTIN_CVT_PS_S,
-  MIPS_BUILTIN_CVT_S_PL,
-  MIPS_BUILTIN_CVT_S_PU,
-  MIPS_BUILTIN_ABS_PS,
-  MIPS_BUILTIN_ALNV_PS,
-  MIPS_BUILTIN_ADDR_PS,
-  MIPS_BUILTIN_MULR_PS,
-  MIPS_BUILTIN_CVT_PW_PS,
-  MIPS_BUILTIN_CVT_PS_PW,
-
-  MIPS_BUILTIN_RECIP1_S,
-  MIPS_BUILTIN_RECIP1_D,
-  MIPS_BUILTIN_RECIP1_PS,
-  MIPS_BUILTIN_RECIP2_S,
-  MIPS_BUILTIN_RECIP2_D,
-  MIPS_BUILTIN_RECIP2_PS,
-
-  MIPS_BUILTIN_RSQRT1_S,
-  MIPS_BUILTIN_RSQRT1_D,
-  MIPS_BUILTIN_RSQRT1_PS,
-  MIPS_BUILTIN_RSQRT2_S,
-  MIPS_BUILTIN_RSQRT2_D,
-  MIPS_BUILTIN_RSQRT2_PS,
-
-  MIPS_BUILTIN_ANY_C_F_PS,
-  MIPS_BUILTIN_UPPER_C_F_PS,
-  MIPS_BUILTIN_LOWER_C_F_PS,
-  MIPS_BUILTIN_ALL_C_F_PS,
-  MIPS_BUILTIN_ANY_C_UN_PS,
-  MIPS_BUILTIN_UPPER_C_UN_PS,
-  MIPS_BUILTIN_LOWER_C_UN_PS,
-  MIPS_BUILTIN_ALL_C_UN_PS,
-  MIPS_BUILTIN_ANY_C_EQ_PS,
-  MIPS_BUILTIN_UPPER_C_EQ_PS,
-  MIPS_BUILTIN_LOWER_C_EQ_PS,
-  MIPS_BUILTIN_ALL_C_EQ_PS,
-  MIPS_BUILTIN_ANY_C_UEQ_PS,
-  MIPS_BUILTIN_UPPER_C_UEQ_PS,
-  MIPS_BUILTIN_LOWER_C_UEQ_PS,
-  MIPS_BUILTIN_ALL_C_UEQ_PS,
-  MIPS_BUILTIN_ANY_C_OLT_PS,
-  MIPS_BUILTIN_UPPER_C_OLT_PS,
-  MIPS_BUILTIN_LOWER_C_OLT_PS,
-  MIPS_BUILTIN_ALL_C_OLT_PS,
-  MIPS_BUILTIN_ANY_C_ULT_PS,
-  MIPS_BUILTIN_UPPER_C_ULT_PS,
-  MIPS_BUILTIN_LOWER_C_ULT_PS,
-  MIPS_BUILTIN_ALL_C_ULT_PS,
-  MIPS_BUILTIN_ANY_C_OLE_PS,
-  MIPS_BUILTIN_UPPER_C_OLE_PS,
-  MIPS_BUILTIN_LOWER_C_OLE_PS,
-  MIPS_BUILTIN_ALL_C_OLE_PS,
-  MIPS_BUILTIN_ANY_C_ULE_PS,
-  MIPS_BUILTIN_UPPER_C_ULE_PS,
-  MIPS_BUILTIN_LOWER_C_ULE_PS,
-  MIPS_BUILTIN_ALL_C_ULE_PS,
-  MIPS_BUILTIN_ANY_C_SF_PS,
-  MIPS_BUILTIN_UPPER_C_SF_PS,
-  MIPS_BUILTIN_LOWER_C_SF_PS,
-  MIPS_BUILTIN_ALL_C_SF_PS,
-  MIPS_BUILTIN_ANY_C_NGLE_PS,
-  MIPS_BUILTIN_UPPER_C_NGLE_PS,
-  MIPS_BUILTIN_LOWER_C_NGLE_PS,
-  MIPS_BUILTIN_ALL_C_NGLE_PS,
-  MIPS_BUILTIN_ANY_C_SEQ_PS,
-  MIPS_BUILTIN_UPPER_C_SEQ_PS,
-  MIPS_BUILTIN_LOWER_C_SEQ_PS,
-  MIPS_BUILTIN_ALL_C_SEQ_PS,
-  MIPS_BUILTIN_ANY_C_NGL_PS,
-  MIPS_BUILTIN_UPPER_C_NGL_PS,
-  MIPS_BUILTIN_LOWER_C_NGL_PS,
-  MIPS_BUILTIN_ALL_C_NGL_PS,
-  MIPS_BUILTIN_ANY_C_LT_PS,
-  MIPS_BUILTIN_UPPER_C_LT_PS,
-  MIPS_BUILTIN_LOWER_C_LT_PS,
-  MIPS_BUILTIN_ALL_C_LT_PS,
-  MIPS_BUILTIN_ANY_C_NGE_PS,
-  MIPS_BUILTIN_UPPER_C_NGE_PS,
-  MIPS_BUILTIN_LOWER_C_NGE_PS,
-  MIPS_BUILTIN_ALL_C_NGE_PS,
-  MIPS_BUILTIN_ANY_C_LE_PS,
-  MIPS_BUILTIN_UPPER_C_LE_PS,
-  MIPS_BUILTIN_LOWER_C_LE_PS,
-  MIPS_BUILTIN_ALL_C_LE_PS,
-  MIPS_BUILTIN_ANY_C_NGT_PS,
-  MIPS_BUILTIN_UPPER_C_NGT_PS,
-  MIPS_BUILTIN_LOWER_C_NGT_PS,
-  MIPS_BUILTIN_ALL_C_NGT_PS,
-  MIPS_BUILTIN_ANY_CABS_F_PS,
-  MIPS_BUILTIN_UPPER_CABS_F_PS,
-  MIPS_BUILTIN_LOWER_CABS_F_PS,
-  MIPS_BUILTIN_ALL_CABS_F_PS,
-  MIPS_BUILTIN_ANY_CABS_UN_PS,
-  MIPS_BUILTIN_UPPER_CABS_UN_PS,
-  MIPS_BUILTIN_LOWER_CABS_UN_PS,
-  MIPS_BUILTIN_ALL_CABS_UN_PS,
-  MIPS_BUILTIN_ANY_CABS_EQ_PS,
-  MIPS_BUILTIN_UPPER_CABS_EQ_PS,
-  MIPS_BUILTIN_LOWER_CABS_EQ_PS,
-  MIPS_BUILTIN_ALL_CABS_EQ_PS,
-  MIPS_BUILTIN_ANY_CABS_UEQ_PS,
-  MIPS_BUILTIN_UPPER_CABS_UEQ_PS,
-  MIPS_BUILTIN_LOWER_CABS_UEQ_PS,
-  MIPS_BUILTIN_ALL_CABS_UEQ_PS,
-  MIPS_BUILTIN_ANY_CABS_OLT_PS,
-  MIPS_BUILTIN_UPPER_CABS_OLT_PS,
-  MIPS_BUILTIN_LOWER_CABS_OLT_PS,
-  MIPS_BUILTIN_ALL_CABS_OLT_PS,
-  MIPS_BUILTIN_ANY_CABS_ULT_PS,
-  MIPS_BUILTIN_UPPER_CABS_ULT_PS,
-  MIPS_BUILTIN_LOWER_CABS_ULT_PS,
-  MIPS_BUILTIN_ALL_CABS_ULT_PS,
-  MIPS_BUILTIN_ANY_CABS_OLE_PS,
-  MIPS_BUILTIN_UPPER_CABS_OLE_PS,
-  MIPS_BUILTIN_LOWER_CABS_OLE_PS,
-  MIPS_BUILTIN_ALL_CABS_OLE_PS,
-  MIPS_BUILTIN_ANY_CABS_ULE_PS,
-  MIPS_BUILTIN_UPPER_CABS_ULE_PS,
-  MIPS_BUILTIN_LOWER_CABS_ULE_PS,
-  MIPS_BUILTIN_ALL_CABS_ULE_PS,
-  MIPS_BUILTIN_ANY_CABS_SF_PS,
-  MIPS_BUILTIN_UPPER_CABS_SF_PS,
-  MIPS_BUILTIN_LOWER_CABS_SF_PS,
-  MIPS_BUILTIN_ALL_CABS_SF_PS,
-  MIPS_BUILTIN_ANY_CABS_NGLE_PS,
-  MIPS_BUILTIN_UPPER_CABS_NGLE_PS,
-  MIPS_BUILTIN_LOWER_CABS_NGLE_PS,
-  MIPS_BUILTIN_ALL_CABS_NGLE_PS,
-  MIPS_BUILTIN_ANY_CABS_SEQ_PS,
-  MIPS_BUILTIN_UPPER_CABS_SEQ_PS,
-  MIPS_BUILTIN_LOWER_CABS_SEQ_PS,
-  MIPS_BUILTIN_ALL_CABS_SEQ_PS,
-  MIPS_BUILTIN_ANY_CABS_NGL_PS,
-  MIPS_BUILTIN_UPPER_CABS_NGL_PS,
-  MIPS_BUILTIN_LOWER_CABS_NGL_PS,
-  MIPS_BUILTIN_ALL_CABS_NGL_PS,
-  MIPS_BUILTIN_ANY_CABS_LT_PS,
-  MIPS_BUILTIN_UPPER_CABS_LT_PS,
-  MIPS_BUILTIN_LOWER_CABS_LT_PS,
-  MIPS_BUILTIN_ALL_CABS_LT_PS,
-  MIPS_BUILTIN_ANY_CABS_NGE_PS,
-  MIPS_BUILTIN_UPPER_CABS_NGE_PS,
-  MIPS_BUILTIN_LOWER_CABS_NGE_PS,
-  MIPS_BUILTIN_ALL_CABS_NGE_PS,
-  MIPS_BUILTIN_ANY_CABS_LE_PS,
-  MIPS_BUILTIN_UPPER_CABS_LE_PS,
-  MIPS_BUILTIN_LOWER_CABS_LE_PS,
-  MIPS_BUILTIN_ALL_CABS_LE_PS,
-  MIPS_BUILTIN_ANY_CABS_NGT_PS,
-  MIPS_BUILTIN_UPPER_CABS_NGT_PS,
-  MIPS_BUILTIN_LOWER_CABS_NGT_PS,
-  MIPS_BUILTIN_ALL_CABS_NGT_PS,
-
-  MIPS_BUILTIN_ANY_C_F_4S,
-  MIPS_BUILTIN_ALL_C_F_4S,
-  MIPS_BUILTIN_ANY_C_UN_4S,
-  MIPS_BUILTIN_ALL_C_UN_4S,
-  MIPS_BUILTIN_ANY_C_EQ_4S,
-  MIPS_BUILTIN_ALL_C_EQ_4S,
-  MIPS_BUILTIN_ANY_C_UEQ_4S,
-  MIPS_BUILTIN_ALL_C_UEQ_4S,
-  MIPS_BUILTIN_ANY_C_OLT_4S,
-  MIPS_BUILTIN_ALL_C_OLT_4S,
-  MIPS_BUILTIN_ANY_C_ULT_4S,
-  MIPS_BUILTIN_ALL_C_ULT_4S,
-  MIPS_BUILTIN_ANY_C_OLE_4S,
-  MIPS_BUILTIN_ALL_C_OLE_4S,
-  MIPS_BUILTIN_ANY_C_ULE_4S,
-  MIPS_BUILTIN_ALL_C_ULE_4S,
-  MIPS_BUILTIN_ANY_C_SF_4S,
-  MIPS_BUILTIN_ALL_C_SF_4S,
-  MIPS_BUILTIN_ANY_C_NGLE_4S,
-  MIPS_BUILTIN_ALL_C_NGLE_4S,
-  MIPS_BUILTIN_ANY_C_SEQ_4S,
-  MIPS_BUILTIN_ALL_C_SEQ_4S,
-  MIPS_BUILTIN_ANY_C_NGL_4S,
-  MIPS_BUILTIN_ALL_C_NGL_4S,
-  MIPS_BUILTIN_ANY_C_LT_4S,
-  MIPS_BUILTIN_ALL_C_LT_4S,
-  MIPS_BUILTIN_ANY_C_NGE_4S,
-  MIPS_BUILTIN_ALL_C_NGE_4S,
-  MIPS_BUILTIN_ANY_C_LE_4S,
-  MIPS_BUILTIN_ALL_C_LE_4S,
-  MIPS_BUILTIN_ANY_C_NGT_4S,
-  MIPS_BUILTIN_ALL_C_NGT_4S,
-  MIPS_BUILTIN_ANY_CABS_F_4S,
-  MIPS_BUILTIN_ALL_CABS_F_4S,
-  MIPS_BUILTIN_ANY_CABS_UN_4S,
-  MIPS_BUILTIN_ALL_CABS_UN_4S,
-  MIPS_BUILTIN_ANY_CABS_EQ_4S,
-  MIPS_BUILTIN_ALL_CABS_EQ_4S,
-  MIPS_BUILTIN_ANY_CABS_UEQ_4S,
-  MIPS_BUILTIN_ALL_CABS_UEQ_4S,
-  MIPS_BUILTIN_ANY_CABS_OLT_4S,
-  MIPS_BUILTIN_ALL_CABS_OLT_4S,
-  MIPS_BUILTIN_ANY_CABS_ULT_4S,
-  MIPS_BUILTIN_ALL_CABS_ULT_4S,
-  MIPS_BUILTIN_ANY_CABS_OLE_4S,
-  MIPS_BUILTIN_ALL_CABS_OLE_4S,
-  MIPS_BUILTIN_ANY_CABS_ULE_4S,
-  MIPS_BUILTIN_ALL_CABS_ULE_4S,
-  MIPS_BUILTIN_ANY_CABS_SF_4S,
-  MIPS_BUILTIN_ALL_CABS_SF_4S,
-  MIPS_BUILTIN_ANY_CABS_NGLE_4S,
-  MIPS_BUILTIN_ALL_CABS_NGLE_4S,
-  MIPS_BUILTIN_ANY_CABS_SEQ_4S,
-  MIPS_BUILTIN_ALL_CABS_SEQ_4S,
-  MIPS_BUILTIN_ANY_CABS_NGL_4S,
-  MIPS_BUILTIN_ALL_CABS_NGL_4S,
-  MIPS_BUILTIN_ANY_CABS_LT_4S,
-  MIPS_BUILTIN_ALL_CABS_LT_4S,
-  MIPS_BUILTIN_ANY_CABS_NGE_4S,
-  MIPS_BUILTIN_ALL_CABS_NGE_4S,
-  MIPS_BUILTIN_ANY_CABS_LE_4S,
-  MIPS_BUILTIN_ALL_CABS_LE_4S,
-  MIPS_BUILTIN_ANY_CABS_NGT_4S,
-  MIPS_BUILTIN_ALL_CABS_NGT_4S,
-
-  MIPS_BUILTIN_CABS_F_S,
-  MIPS_BUILTIN_CABS_UN_S,
-  MIPS_BUILTIN_CABS_EQ_S,
-  MIPS_BUILTIN_CABS_UEQ_S,
-  MIPS_BUILTIN_CABS_OLT_S,
-  MIPS_BUILTIN_CABS_ULT_S,
-  MIPS_BUILTIN_CABS_OLE_S,
-  MIPS_BUILTIN_CABS_ULE_S,
-  MIPS_BUILTIN_CABS_SF_S,
-  MIPS_BUILTIN_CABS_NGLE_S,
-  MIPS_BUILTIN_CABS_SEQ_S,
-  MIPS_BUILTIN_CABS_NGL_S,
-  MIPS_BUILTIN_CABS_LT_S,
-  MIPS_BUILTIN_CABS_NGE_S,
-  MIPS_BUILTIN_CABS_LE_S,
-  MIPS_BUILTIN_CABS_NGT_S,
-  MIPS_BUILTIN_CABS_F_D,
-  MIPS_BUILTIN_CABS_UN_D,
-  MIPS_BUILTIN_CABS_EQ_D,
-  MIPS_BUILTIN_CABS_UEQ_D,
-  MIPS_BUILTIN_CABS_OLT_D,
-  MIPS_BUILTIN_CABS_ULT_D,
-  MIPS_BUILTIN_CABS_OLE_D,
-  MIPS_BUILTIN_CABS_ULE_D,
-  MIPS_BUILTIN_CABS_SF_D,
-  MIPS_BUILTIN_CABS_NGLE_D,
-  MIPS_BUILTIN_CABS_SEQ_D,
-  MIPS_BUILTIN_CABS_NGL_D,
-  MIPS_BUILTIN_CABS_LT_D,
-  MIPS_BUILTIN_CABS_NGE_D,
-  MIPS_BUILTIN_CABS_LE_D,
-  MIPS_BUILTIN_CABS_NGT_D,
-
-  MIPS_BUILTIN_MOVT_C_F_PS,
-  MIPS_BUILTIN_MOVT_C_UN_PS,
-  MIPS_BUILTIN_MOVT_C_EQ_PS,
-  MIPS_BUILTIN_MOVT_C_UEQ_PS,
-  MIPS_BUILTIN_MOVT_C_OLT_PS,
-  MIPS_BUILTIN_MOVT_C_ULT_PS,
-  MIPS_BUILTIN_MOVT_C_OLE_PS,
-  MIPS_BUILTIN_MOVT_C_ULE_PS,
-  MIPS_BUILTIN_MOVT_C_SF_PS,
-  MIPS_BUILTIN_MOVT_C_NGLE_PS,
-  MIPS_BUILTIN_MOVT_C_SEQ_PS,
-  MIPS_BUILTIN_MOVT_C_NGL_PS,
-  MIPS_BUILTIN_MOVT_C_LT_PS,
-  MIPS_BUILTIN_MOVT_C_NGE_PS,
-  MIPS_BUILTIN_MOVT_C_LE_PS,
-  MIPS_BUILTIN_MOVT_C_NGT_PS,
-  MIPS_BUILTIN_MOVT_CABS_F_PS,
-  MIPS_BUILTIN_MOVT_CABS_UN_PS,
-  MIPS_BUILTIN_MOVT_CABS_EQ_PS,
-  MIPS_BUILTIN_MOVT_CABS_UEQ_PS,
-  MIPS_BUILTIN_MOVT_CABS_OLT_PS,
-  MIPS_BUILTIN_MOVT_CABS_ULT_PS,
-  MIPS_BUILTIN_MOVT_CABS_OLE_PS,
-  MIPS_BUILTIN_MOVT_CABS_ULE_PS,
-  MIPS_BUILTIN_MOVT_CABS_SF_PS,
-  MIPS_BUILTIN_MOVT_CABS_NGLE_PS,
-  MIPS_BUILTIN_MOVT_CABS_SEQ_PS,
-  MIPS_BUILTIN_MOVT_CABS_NGL_PS,
-  MIPS_BUILTIN_MOVT_CABS_LT_PS,
-  MIPS_BUILTIN_MOVT_CABS_NGE_PS,
-  MIPS_BUILTIN_MOVT_CABS_LE_PS,
-  MIPS_BUILTIN_MOVT_CABS_NGT_PS,
-  MIPS_BUILTIN_MOVF_C_F_PS,
-  MIPS_BUILTIN_MOVF_C_UN_PS,
-  MIPS_BUILTIN_MOVF_C_EQ_PS,
-  MIPS_BUILTIN_MOVF_C_UEQ_PS,
-  MIPS_BUILTIN_MOVF_C_OLT_PS,
-  MIPS_BUILTIN_MOVF_C_ULT_PS,
-  MIPS_BUILTIN_MOVF_C_OLE_PS,
-  MIPS_BUILTIN_MOVF_C_ULE_PS,
-  MIPS_BUILTIN_MOVF_C_SF_PS,
-  MIPS_BUILTIN_MOVF_C_NGLE_PS,
-  MIPS_BUILTIN_MOVF_C_SEQ_PS,
-  MIPS_BUILTIN_MOVF_C_NGL_PS,
-  MIPS_BUILTIN_MOVF_C_LT_PS,
-  MIPS_BUILTIN_MOVF_C_NGE_PS,
-  MIPS_BUILTIN_MOVF_C_LE_PS,
-  MIPS_BUILTIN_MOVF_C_NGT_PS,
-  MIPS_BUILTIN_MOVF_CABS_F_PS,
-  MIPS_BUILTIN_MOVF_CABS_UN_PS,
-  MIPS_BUILTIN_MOVF_CABS_EQ_PS,
-  MIPS_BUILTIN_MOVF_CABS_UEQ_PS,
-  MIPS_BUILTIN_MOVF_CABS_OLT_PS,
-  MIPS_BUILTIN_MOVF_CABS_ULT_PS,
-  MIPS_BUILTIN_MOVF_CABS_OLE_PS,
-  MIPS_BUILTIN_MOVF_CABS_ULE_PS,
-  MIPS_BUILTIN_MOVF_CABS_SF_PS,
-  MIPS_BUILTIN_MOVF_CABS_NGLE_PS,
-  MIPS_BUILTIN_MOVF_CABS_SEQ_PS,
-  MIPS_BUILTIN_MOVF_CABS_NGL_PS,
-  MIPS_BUILTIN_MOVF_CABS_LT_PS,
-  MIPS_BUILTIN_MOVF_CABS_NGE_PS,
-  MIPS_BUILTIN_MOVF_CABS_LE_PS,
-  MIPS_BUILTIN_MOVF_CABS_NGT_PS,
-
-  /* THE LAST BUILTIN.  */
-  MIPS_BUILTIN_MAX_BUILTIN
-};
-
-/* MIPS builtin function types.  */
-
-enum mips_function_type
-{
-  MIPS_V2SF_FTYPE_V2SF,
-  MIPS_V2SF_FTYPE_V2SF_V2SF,
-  MIPS_V2SF_FTYPE_V2SF_V2SF_INT,
-  MIPS_V2SF_FTYPE_V2SF_V2SF_V2SF_V2SF,
-  MIPS_V2SF_FTYPE_SF_SF,
-  MIPS_INT_FTYPE_V2SF_V2SF,
-  MIPS_INT_FTYPE_V2SF_V2SF_V2SF_V2SF,
-  MIPS_INT_FTYPE_SF_SF,
-  MIPS_INT_FTYPE_DF_DF,
-  MIPS_SF_FTYPE_V2SF,
-  MIPS_SF_FTYPE_SF,
-  MIPS_SF_FTYPE_SF_SF,
-  MIPS_DF_FTYPE_DF,
-  MIPS_DF_FTYPE_DF_DF,
-
-  /* The last type.  */
-  MIPS_MAX_FTYPE_MAX
-};
-
-/* MIPS compare choices used for MIPS builtin functions.  */
-
-enum mips_cmp_choice
-{
-  MIPS_CMP_ANY,    /* Check if any result is true.  */
-  MIPS_CMP_UPPER,  /* Check if the upper one of two results is true.  */
-  MIPS_CMP_LOWER,  /* Check if the lower one of two results is true.  */
-  MIPS_CMP_ALL,    /* Check if all results are true.  */
-
-  MIPS_CMP_MAX
-};