⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mips.h

📁 linux下的gcc编译器
💻 H
📖 第 1 页 / 共 5 页
字号:
#define TARGET_MIPS4000             (mips_arch == PROCESSOR_R4000)#define TARGET_MIPS4100             (mips_arch == PROCESSOR_R4100)#define TARGET_MIPS4120             (mips_arch == PROCESSOR_R4120)#define TARGET_MIPS4300             (mips_arch == PROCESSOR_R4300)#define TARGET_MIPS4KC              (mips_arch == PROCESSOR_R4KC)#define TARGET_MIPS5KC              (mips_arch == PROCESSOR_R5KC)#define TARGET_MIPS5400             (mips_arch == PROCESSOR_R5400)#define TARGET_MIPS5500             (mips_arch == PROCESSOR_R5500)#define TARGET_SB1                  (mips_arch == PROCESSOR_SB1)#define TARGET_SR71K                (mips_arch == PROCESSOR_SR71000)/* Scheduling target defines.  */#define TUNE_MIPS3000               (mips_tune == PROCESSOR_R3000)#define TUNE_MIPS3900               (mips_tune == PROCESSOR_R3900)#define TUNE_MIPS4000               (mips_tune == PROCESSOR_R4000)#define TUNE_MIPS5000               (mips_tune == PROCESSOR_R5000)#define TUNE_MIPS5400               (mips_tune == PROCESSOR_R5400)#define TUNE_MIPS5500               (mips_tune == PROCESSOR_R5500)#define TUNE_MIPS6000               (mips_tune == PROCESSOR_R6000)#define TUNE_SB1                    (mips_tune == PROCESSOR_SB1)#define TUNE_SR71K                  (mips_tune == PROCESSOR_SR71000)/* Define preprocessor macros for the -march and -mtune options.   PREFIX is either _MIPS_ARCH or _MIPS_TUNE, INFO is the selected   processor.  If INFO's canonical name is "foo", define PREFIX to   be "foo", and define an additional macro PREFIX_FOO.  */#define MIPS_CPP_SET_PROCESSOR(PREFIX, INFO)			\  do								\    {								\      char *macro, *p;						\								\      macro = concat ((PREFIX), "_", (INFO)->name, NULL);	\      for (p = macro; *p != 0; p++)				\	*p = TOUPPER (*p);					\								\      builtin_define (macro);					\      builtin_define_with_value ((PREFIX), (INFO)->name, 1);	\      free (macro);						\    }								\  while (0)/* Target CPU builtins.  */#define TARGET_CPU_CPP_BUILTINS()				\  do								\    {								\      builtin_assert ("cpu=mips");				\      builtin_define ("__mips__");     				\      builtin_define ("_mips");					\								\      /* We do this here because __mips is defined below	\	 and so we can't use builtin_define_std.  */		\      if (!flag_iso)						\	  builtin_define ("mips");				\								\      /* Treat _R3000 and _R4000 like register-size defines,	\	 which is how they've historically been used.  */	\      if (TARGET_64BIT)						\	{							\	  builtin_define ("__mips64");     			\	  builtin_define_std ("R4000");				\	  builtin_define ("_R4000");				\	}							\      else							\	{							\	  builtin_define_std ("R3000");				\	  builtin_define ("_R3000");				\	}							\      if (TARGET_FLOAT64)					\	  builtin_define ("__mips_fpr=64");			\      else							\	  builtin_define ("__mips_fpr=32");			\								\      if (TARGET_MIPS16)					\	  builtin_define ("__mips16");				\								\      MIPS_CPP_SET_PROCESSOR ("_MIPS_ARCH", mips_arch_info);	\      MIPS_CPP_SET_PROCESSOR ("_MIPS_TUNE", mips_tune_info);	\								\      if (ISA_MIPS1)						\	{							\	  builtin_define ("__mips=1");				\	  builtin_define ("_MIPS_ISA=_MIPS_ISA_MIPS1");		\	}							\      else if (ISA_MIPS2)					\	{							\	  builtin_define ("__mips=2");				\	  builtin_define ("_MIPS_ISA=_MIPS_ISA_MIPS2");		\	}							\      else if (ISA_MIPS3)					\	{							\	  builtin_define ("__mips=3");				\	  builtin_define ("_MIPS_ISA=_MIPS_ISA_MIPS3");		\	}							\      else if (ISA_MIPS4)					\	{							\	  builtin_define ("__mips=4");				\	  builtin_define ("_MIPS_ISA=_MIPS_ISA_MIPS4");		\	}							\      else if (ISA_MIPS32)					\	{							\	  builtin_define ("__mips=32");				\	  builtin_define ("_MIPS_ISA=_MIPS_ISA_MIPS32");	\	}							\      else if (ISA_MIPS64)					\	{							\	  builtin_define ("__mips=64");				\	  builtin_define ("_MIPS_ISA=_MIPS_ISA_MIPS64");	\	}							\								\      if (TARGET_HARD_FLOAT)					\	  builtin_define ("__mips_hard_float");			\      else if (TARGET_SOFT_FLOAT)				\	  builtin_define ("__mips_soft_float");			\								\      if (TARGET_SINGLE_FLOAT)					\	  builtin_define ("__mips_single_float");		\								\      if (TARGET_BIG_ENDIAN)					\	{							\	  builtin_define_std ("MIPSEB");			\	  builtin_define ("_MIPSEB");				\	}							\      else							\	{							\	  builtin_define_std ("MIPSEL");			\	  builtin_define ("_MIPSEL");				\	}							\								\        /* Macros dependent on the C dialect.  */		\      if (preprocessing_asm_p ())				\	{							\          builtin_define_std ("LANGUAGE_ASSEMBLY");		\	  builtin_define ("_LANGUAGE_ASSEMBLY");		\	}							\      else if (c_language == clk_c)				\	{							\          builtin_define_std ("LANGUAGE_C");			\	  builtin_define ("_LANGUAGE_C");			\	}							\      else if (c_language == clk_cplusplus)			\        {							\	  builtin_define ("_LANGUAGE_C_PLUS_PLUS");		\          builtin_define ("__LANGUAGE_C_PLUS_PLUS");		\          builtin_define ("__LANGUAGE_C_PLUS_PLUS__");		\        }							\      if (flag_objc)						\        {							\	  builtin_define ("_LANGUAGE_OBJECTIVE_C");		\          builtin_define ("__LANGUAGE_OBJECTIVE_C");		\	  /* Bizzare, but needed at least for Irix.  */		\	  builtin_define_std ("LANGUAGE_C");			\	  builtin_define ("_LANGUAGE_C");			\        }							\								\      if (mips_abi == ABI_EABI)					\	builtin_define ("__mips_eabi");				\								\} while (0)/* Macro to define tables used to set the flags.   This is a list in braces of pairs in braces,   each pair being { "NAME", VALUE }   where VALUE is the bits to set or minus the bits to clear.   An empty string NAME is used to identify the default VALUE.  */#define TARGET_SWITCHES							\{									\  {"no-crt0",          0,                                               \     N_("No default crt0.o") },					 	\  {"int64",		  MASK_INT64 | MASK_LONG64,			\     N_("Use 64-bit int type")},					\  {"long64",		  MASK_LONG64,					\     N_("Use 64-bit long type")},					\  {"long32",		 -(MASK_LONG64 | MASK_INT64),			\     N_("Use 32-bit long type")},					\  {"split-addresses",	  MASK_SPLIT_ADDR,				\     N_("Optimize lui/addiu address loads")},				\  {"no-split-addresses", -MASK_SPLIT_ADDR,				\     N_("Don't optimize lui/addiu address loads")},			\  {"mips-as",		 -MASK_GAS,					\     N_("Use MIPS as")},						\  {"gas",		  MASK_GAS,					\     N_("Use GNU as")},							\  {"rnames",		  MASK_NAME_REGS,				\     N_("Use symbolic register names")},				\  {"no-rnames",		 -MASK_NAME_REGS,				\     N_("Don't use symbolic register names")},				\  {"gpOPT",		  MASK_GPOPT,					\     N_("Use GP relative sdata/sbss sections")},			\  {"gpopt",		  MASK_GPOPT,					\     N_("Use GP relative sdata/sbss sections")},			\  {"no-gpOPT",		 -MASK_GPOPT,					\     N_("Don't use GP relative sdata/sbss sections")},			\  {"no-gpopt",		 -MASK_GPOPT,					\     N_("Don't use GP relative sdata/sbss sections")},			\  {"stats",		  MASK_STATS,					\     N_("Output compiler statistics")},					\  {"no-stats",		 -MASK_STATS,					\     N_("Don't output compiler statistics")},				\  {"memcpy",		  MASK_MEMCPY,					\     N_("Don't optimize block moves")},					\  {"no-memcpy",		 -MASK_MEMCPY,					\     N_("Optimize block moves")},					\  {"mips-tfile",	  MASK_MIPS_TFILE,				\     N_("Use mips-tfile asm postpass")},				\  {"no-mips-tfile",	 -MASK_MIPS_TFILE,				\     N_("Don't use mips-tfile asm postpass")},				\  {"soft-float",	  MASK_SOFT_FLOAT,				\     N_("Use software floating point")},				\  {"hard-float",	 -MASK_SOFT_FLOAT,				\     N_("Use hardware floating point")},				\  {"fp64",		  MASK_FLOAT64,					\     N_("Use 64-bit FP registers")},					\  {"fp32",		 -MASK_FLOAT64,					\     N_("Use 32-bit FP registers")},					\  {"gp64",		  MASK_64BIT,					\     N_("Use 64-bit general registers")},				\  {"gp32",		 -MASK_64BIT,					\     N_("Use 32-bit general registers")},				\  {"abicalls",		  MASK_ABICALLS,				\     N_("Use Irix PIC")},						\  {"no-abicalls",	 -MASK_ABICALLS,				\     N_("Don't use Irix PIC")},						\  {"long-calls",	  MASK_LONG_CALLS,				\     N_("Use indirect calls")},						\  {"no-long-calls",	 -MASK_LONG_CALLS,				\     N_("Don't use indirect calls")},					\  {"embedded-pic",	  MASK_EMBEDDED_PIC,				\     N_("Use embedded PIC")},						\  {"no-embedded-pic",	 -MASK_EMBEDDED_PIC,				\     N_("Don't use embedded PIC")},					\  {"embedded-data",	  MASK_EMBEDDED_DATA,				\     N_("Use ROM instead of RAM")},					\  {"no-embedded-data",	 -MASK_EMBEDDED_DATA,				\     N_("Don't use ROM instead of RAM")},				\  {"uninit-const-in-rodata", MASK_UNINIT_CONST_IN_RODATA,		\     N_("Put uninitialized constants in ROM (needs -membedded-data)")},	\  {"no-uninit-const-in-rodata", -MASK_UNINIT_CONST_IN_RODATA,		\     N_("Don't put uninitialized constants in ROM")},			\  {"eb",		  MASK_BIG_ENDIAN,				\     N_("Use big-endian byte order")},					\  {"el",		 -MASK_BIG_ENDIAN,				\     N_("Use little-endian byte order")},				\  {"single-float",	  MASK_SINGLE_FLOAT,				\     N_("Use single (32-bit) FP only")},				\  {"double-float",	 -MASK_SINGLE_FLOAT,				\     N_("Don't use single (32-bit) FP only")},				\  {"mad",		  MASK_MAD,					\     N_("Use multiply accumulate")},					\  {"no-mad",		 -MASK_MAD,					\     N_("Don't use multiply accumulate")},				\  {"no-fused-madd",       MASK_NO_FUSED_MADD,                           \     N_("Don't generate fused multiply/add instructions")},		\  {"fused-madd",         -MASK_NO_FUSED_MADD,                           \     N_("Generate fused multiply/add instructions")},			\  {"fix4300",             MASK_4300_MUL_FIX,				\     N_("Work around early 4300 hardware bug")},			\  {"no-fix4300",         -MASK_4300_MUL_FIX,				\     N_("Don't work around early 4300 hardware bug")},			\  {"check-zero-division",-MASK_NO_CHECK_ZERO_DIV,			\     N_("Trap on integer divide by zero")},				\  {"no-check-zero-division", MASK_NO_CHECK_ZERO_DIV,			\     N_("Don't trap on integer divide by zero")},			\  {"check-range-division",MASK_CHECK_RANGE_DIV,				\     N_("Trap on integer divide overflow")},				\  {"no-check-range-division",-MASK_CHECK_RANGE_DIV,			\     N_("Don't trap on integer divide overflow")},			\  { "branch-likely",      MASK_BRANCHLIKELY,				\      N_("Use Branch Likely instructions, overriding default for arch")}, \  { "no-branch-likely",  -MASK_BRANCHLIKELY,				\      N_("Don't use Branch Likely instructions, overriding default for arch")}, \  {"debug",		  MASK_DEBUG,					\     NULL},								\  {"debuga",		  MASK_DEBUG_A,					\     NULL},								\  {"debugb",		  MASK_DEBUG_B,					\     NULL},								\  {"debugc",		  MASK_DEBUG_C,					\     NULL},								\  {"debugd",		  MASK_DEBUG_D,					\     NULL},								\  {"debuge",		  MASK_DEBUG_E,					\     NULL},								\  {"debugf",		  MASK_DEBUG_F,					\     NULL},								\  {"debugg",		  MASK_DEBUG_G,					\     NULL},								\  {"debugi",		  MASK_DEBUG_I,					\     NULL},								\  {"",			  (TARGET_DEFAULT				\			   | TARGET_CPU_DEFAULT				\			   | TARGET_ENDIAN_DEFAULT),			\     NULL},								\}/* Default target_flags if no switches are specified  */#ifndef TARGET_DEFAULT#define TARGET_DEFAULT 0#endif#ifndef TARGET_CPU_DEFAULT#define TARGET_CPU_DEFAULT 0#endif#ifndef TARGET_ENDIAN_DEFAULT#define TARGET_ENDIAN_DEFAULT MASK_BIG_ENDIAN#endif/* 'from-abi' makes a good default: you get whatever the ABI requires.  */#ifndef MIPS_ISA_DEFAULT#ifndef MIPS_CPU_STRING_DEFAULT#define MIPS_CPU_STRING_DEFAULT "from-abi"#endif#endif#ifdef IN_LIBGCC2#undef TARGET_64BIT/* Make this compile time constant for libgcc2 */#ifdef __mips64#define TARGET_64BIT		1#else#define TARGET_64BIT		0#endif#endif /* IN_LIBGCC2 */#ifndef MULTILIB_ENDIAN_DEFAULT#if TARGET_ENDIAN_DEFAULT == 0#define MULTILIB_ENDIAN_DEFAULT "EL"#else#define MULTILIB_ENDIAN_DEFAULT "EB"#endif#endif#ifndef MULTILIB_ISA_DEFAULT#  if MIPS_ISA_DEFAULT == 1#    define MULTILIB_ISA_DEFAULT "mips1"#  else#    if MIPS_ISA_DEFAULT == 2#      define MULTILIB_ISA_DEFAULT "mips2"#    else#      if MIPS_ISA_DEFAULT == 3#        define MULTILIB_ISA_DEFAULT "mips3"#      else#        if MIPS_ISA_DEFAULT == 4#          define MULTILIB_ISA_DEFAULT "mips4"#        else#          if MIPS_ISA_DEFAULT == 32#            define MULTILIB_ISA_DEFAULT "mips32"#          else#            if MIPS_ISA_DEFAULT == 64#              define MULTILIB_ISA_DEFAULT "mips64"#            else#          define MULTILIB_ISA_DEFAULT "mips1"#         endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -