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); \
\
" 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
-};