亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mcore.h

?? 俄羅斯高人Mamaich的Pocket gcc編譯器(運(yùn)行在PocketPC上)的全部源代碼。
?? H
?? 第 1 頁 / 共 4 頁
字號(hào):
/* Value is the number of byte of arguments automatically   popped when returning from a subroutine call.   FUNTYPE is the data type of the function (as a tree),   or for a library call it is an identifier node for the subroutine name.   SIZE is the number of bytes of arguments passed on the stack.   On the MCore, the callee does not pop any of its arguments that were passed   on the stack.  */#define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE) 0/* Define how to find the value returned by a function.   VALTYPE is the data type of the value (as a tree).   If the precise function being called is known, FUNC is its FUNCTION_DECL;   otherwise, FUNC is 0.  */#define FUNCTION_VALUE(VALTYPE, FUNC)  mcore_function_value (VALTYPE, FUNC)/* Don't default to pcc-struct-return, because gcc is the only compiler, and   we want to retain compatibility with older gcc versions.  */#define DEFAULT_PCC_STRUCT_RETURN 0/* how we are going to return big values *//* * #define RETURN_IN_MEMORY(TYPE) \ *   (TYPE_MODE (TYPE) == BLKmode \ *    || ((TREE_CODE (TYPE) == RECORD_TYPE || TREE_CODE(TYPE) == UNION_TYPE) \ *        && !(TYPE_MODE (TYPE) == SImode \ * 	    || (TYPE_MODE (TYPE) == BLKmode \ * 		&& TYPE_ALIGN (TYPE) == BITS_PER_WORD \ * 		&& int_size_in_bytes (TYPE) == UNITS_PER_WORD)))) */ /* How many registers to use for struct return.  */#define	RETURN_IN_MEMORY(TYPE) (int_size_in_bytes (TYPE) > 2 * UNITS_PER_WORD)/* Define how to find the value returned by a library function   assuming the value has mode MODE.  */#define LIBCALL_VALUE(MODE)  gen_rtx (REG, MODE, FIRST_RET_REG)/* 1 if N is a possible register number for a function value.   On the MCore, only r4 can return results.  */#define FUNCTION_VALUE_REGNO_P(REGNO)  ((REGNO) == FIRST_RET_REG)#define	MUST_PASS_IN_STACK(MODE,TYPE)  \  mcore_must_pass_on_stack (MODE, TYPE)/* 1 if N is a possible register number for function argument passing.  */#define FUNCTION_ARG_REGNO_P(REGNO)  \  ((REGNO) >= FIRST_PARM_REG && (REGNO) < (NPARM_REGS + FIRST_PARM_REG))/* Define a data type for recording info about an argument list   during the scan of that argument list.  This data type should   hold all necessary information about the function itself   and about the args processed so far, enough to enable macros   such as FUNCTION_ARG to determine where the next arg should go.   On MCore, this is a single integer, which is a number of words   of arguments scanned so far (including the invisible argument,   if any, which holds the structure-value-address).   Thus NARGREGS or more means all following args should go on the stack.  */#define CUMULATIVE_ARGS  int#define ROUND_ADVANCE(SIZE)	\  ((SIZE + UNITS_PER_WORD - 1) / UNITS_PER_WORD)/* Round a register number up to a proper boundary for an arg of mode    MODE.       We round to an even reg for things larger than a word.  */#define ROUND_REG(X, MODE) 				\  ((TARGET_8ALIGN 					\   && GET_MODE_UNIT_SIZE ((MODE)) > UNITS_PER_WORD) 	\   ? ((X) + ((X) & 1)) : (X))/* Initialize a variable CUM of type CUMULATIVE_ARGS   for a call to a function whose data type is FNTYPE.   For a library call, FNTYPE is 0.   On MCore, the offset always starts at 0: the first parm reg is always   the same reg.  */#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT)  \  ((CUM) = 0)/* Update the data in CUM to advance over an argument   of mode MODE and data type TYPE.   (TYPE is null for libcalls where that information may not be   available.)  */#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED)	   \ ((CUM) = (ROUND_REG ((CUM), (MODE))			   \	   + ((NAMED) * mcore_num_arg_regs (MODE, TYPE)))) \/* Define where to put the arguments to a function.  */#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \  mcore_function_arg (CUM, MODE, TYPE, NAMED)/* A C expression that indicates when an argument must be passed by   reference.  If nonzero for an argument, a copy of that argument is   made in memory and a pointer to the argument is passed instead of   the argument itself.  The pointer is passed in whatever way is   appropriate for passing a pointer to that type.  */#define FUNCTION_ARG_PASS_BY_REFERENCE(CUM, MODE, TYPE, NAMED) \  MUST_PASS_IN_STACK (MODE, TYPE)/* For an arg passed partly in registers and partly in memory,   this is the number of registers used.   For args passed entirely in registers or entirely in memory, zero.   Any arg that starts in the first NPARM_REGS regs but won't entirely   fit in them needs partial registers on the MCore.  */#define FUNCTION_ARG_PARTIAL_NREGS(CUM, MODE, TYPE, NAMED) \  mcore_function_arg_partial_nregs (CUM, MODE, TYPE, NAMED)/* Perform any needed actions needed for a function that is receiving a   variable number of arguments.  */#define SETUP_INCOMING_VARARGS(ASF, MODE, TYPE, PAS, ST) \  mcore_setup_incoming_varargs (ASF, MODE, TYPE, & PAS)/* Call the function profiler with a given profile label.  */#define FUNCTION_PROFILER(STREAM,LABELNO)		\{							\  fprintf (STREAM, "	trap	1\n");			\  fprintf (STREAM, "	.align	2\n");			\  fprintf (STREAM, "	.long	LP%d\n", (LABELNO));	\}/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,   the stack pointer does not matter.  The value is tested only in   functions that have frame pointers.   No definition is equivalent to always zero.  */#define EXIT_IGNORE_STACK 0/* Output assembler code for a block containing the constant parts   of a trampoline, leaving space for the variable parts.   On the MCore, the trapoline looks like:   	lrw	r1,  function     	lrw	r13, area   	jmp	r13   	or	r0, r0    .literals                                                */#define TRAMPOLINE_TEMPLATE(FILE)  		\{						\  fprintf ((FILE), "	.short	0x7102\n");	\  fprintf ((FILE), "	.short	0x7d02\n");	\  fprintf ((FILE), "	.short	0x00cd\n");     \  fprintf ((FILE), "	.short	0x1e00\n");	\  fprintf ((FILE), "	.long	0\n");		\  fprintf ((FILE), "	.long	0\n");		\}/* Length in units of the trampoline for entering a nested function.  */#define TRAMPOLINE_SIZE  12/* Alignment required for a trampoline in bits.  */#define TRAMPOLINE_ALIGNMENT  32/* Emit RTL insns to initialize the variable parts of a trampoline.   FNADDR is an RTX for the address of the function's pure code.   CXT is an RTX for the static chain value for the function.  */#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT)  \{									\  emit_move_insn (gen_rtx (MEM, SImode, plus_constant ((TRAMP), 8)),	\		  (CXT));						\  emit_move_insn (gen_rtx (MEM, SImode, plus_constant ((TRAMP), 12)),	\		  (FNADDR));						\}/* Macros to check register numbers against specific register classes.  *//* These assume that REGNO is a hard or pseudo reg number.   They give nonzero only if REGNO is a hard reg of the suitable class   or a pseudo reg currently allocated to a suitable hard reg.   Since they use reg_renumber, they are safe only once reg_renumber   has been allocated, which happens in local-alloc.c.  */#define REGNO_OK_FOR_BASE_P(REGNO)  \  ((REGNO) < AP_REG || (unsigned) reg_renumber[(REGNO)] < AP_REG)#define REGNO_OK_FOR_INDEX_P(REGNO)   0/* Maximum number of registers that can appear in a valid memory    address.  */#define MAX_REGS_PER_ADDRESS 1/* Recognize any constant value that is a valid address.  */#define CONSTANT_ADDRESS_P(X) 	 (GET_CODE (X) == LABEL_REF)/* Nonzero if the constant value X is a legitimate general operand.   It is given that X satisfies CONSTANT_P or is a CONST_DOUBLE.   On the MCore, allow anything but a double.  */#define LEGITIMATE_CONSTANT_P(X) (GET_CODE(X) != CONST_DOUBLE)#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN)/* The macros REG_OK_FOR..._P assume that the arg is a REG rtx   and check its validity for a certain class.   We have two alternate definitions for each of them.   The usual definition accepts all pseudo regs; the other rejects   them unless they have been allocated suitable hard regs.   The symbol REG_OK_STRICT causes the latter definition to be used.  */#ifndef REG_OK_STRICT/* Nonzero if X is a hard reg that can be used as a base reg   or if it is a pseudo reg.  */#define REG_OK_FOR_BASE_P(X) \    	(REGNO (X) <= 16 || REGNO (X) >= FIRST_PSEUDO_REGISTER)/* Nonzero if X is a hard reg that can be used as an index   or if it is a pseudo reg.  */#define REG_OK_FOR_INDEX_P(X)	0#else/* Nonzero if X is a hard reg that can be used as a base reg.  */#define REG_OK_FOR_BASE_P(X)	\	REGNO_OK_FOR_BASE_P (REGNO (X))/* Nonzero if X is a hard reg that can be used as an index.  */#define REG_OK_FOR_INDEX_P(X)	0#endif/* GO_IF_LEGITIMATE_ADDRESS recognizes an RTL expression   that is a valid memory address for an instruction.   The MODE argument is the machine mode for the MEM expression   that wants to use this address.   The other macros defined here are used only in GO_IF_LEGITIMATE_ADDRESS.  */#define BASE_REGISTER_RTX_P(X)  \  (GET_CODE (X) == REG && REG_OK_FOR_BASE_P (X))#define INDEX_REGISTER_RTX_P(X)  \  (GET_CODE (X) == REG && REG_OK_FOR_INDEX_P (X))/* Jump to LABEL if X is a valid address RTX.  This must also take   REG_OK_STRICT into account when deciding about valid registers, but it uses   the above macros so we are in luck.      Allow  REG	  REG+disp    A legitimate index for a QI is 0..15, for HI is 0..30, for SI is 0..60,   and for DI is 0..56 because we use two SI loads, etc.  */#define GO_IF_LEGITIMATE_INDEX(MODE, REGNO, OP, LABEL)			\  do									\    {									\      if (GET_CODE (OP) == CONST_INT) 					\        {								\	  if (GET_MODE_SIZE (MODE) >= 4					\	      && (((unsigned)INTVAL (OP)) % 4) == 0			\	      &&  ((unsigned)INTVAL (OP)) <= 64 - GET_MODE_SIZE (MODE))	\	    goto LABEL;							\	  if (GET_MODE_SIZE (MODE) == 2 				\	      && (((unsigned)INTVAL (OP)) % 2) == 0			\	      &&  ((unsigned)INTVAL (OP)) <= 30)			\	    goto LABEL;							\	  if (GET_MODE_SIZE (MODE) == 1 				\	      && ((unsigned)INTVAL (OP)) <= 15)				\	    goto LABEL;							\        }								\    }									\  while (0)#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, LABEL)                  \{ 								  \  if (BASE_REGISTER_RTX_P (X))					  \    goto LABEL;							  \  else if (GET_CODE (X) == PLUS || GET_CODE (X) == LO_SUM) 	  \    {								  \      rtx xop0 = XEXP (X,0);					  \      rtx xop1 = XEXP (X,1);					  \      if (BASE_REGISTER_RTX_P (xop0))				  \	GO_IF_LEGITIMATE_INDEX (MODE, REGNO (xop0), xop1, LABEL); \      if (BASE_REGISTER_RTX_P (xop1))				  \	GO_IF_LEGITIMATE_INDEX (MODE, REGNO (xop1), xop0, LABEL); \    }								  \}								   								   /* Go to LABEL if ADDR (a legitimate address expression)   has an effect that depends on the machine mode it is used for.  */#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR,LABEL)  \{									\  if (   GET_CODE (ADDR) == PRE_DEC || GET_CODE (ADDR) == POST_DEC	\      || GET_CODE (ADDR) == PRE_INC || GET_CODE (ADDR) == POST_INC)	\    goto LABEL;								\}/* Specify the machine mode that this machine uses   for the index in the tablejump instruction.  */#define CASE_VECTOR_MODE SImode/* Define this if the tablejump instruction expects the table   to contain offsets from the address of the table.   Do not define this if the table should contain absolute addresses.  *//* #define CASE_VECTOR_PC_RELATIVE *//* 'char' is signed by default.  */#define DEFAULT_SIGNED_CHAR  0/* The type of size_t unsigned int.  */#define SIZE_TYPE "unsigned int"/* Don't cse the address of the function being compiled.  */#define NO_RECURSIVE_FUNCTION_CSE 1/* Max number of bytes we can move from memory to memory   in one reasonably fast instruction.  */#define MOVE_MAX 4/* Define if operations between registers always perform the operation   on the full register even if a narrower mode is specified.  */#define WORD_REGISTER_OPERATIONS/* Define if loading in MODE, an integral mode narrower than BITS_PER_WORD   will either zero-extend or sign-extend.  The value of this macro should   be the code that says which one of the two operations is implicitly   done, NIL if none.  */#define LOAD_EXTEND_OP(MODE) ZERO_EXTEND/* Nonzero if access to memory by bytes is slow and undesirable.  */#define SLOW_BYTE_ACCESS TARGET_SLOW_BYTES/* We assume that the store-condition-codes instructions store 0 for false   and some other value for true.  This is the value stored for true.  */#define STORE_FLAG_VALUE 1/* Immediate shift counts are truncated by the output routines (or was it   the assembler?).  Shift counts in a register are truncated by ARM.  Note   that the native compiler puts too large (> 32) immediate shift counts   into a register and shifts by the register, letting the ARM decide what

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产一区在线| 日韩高清电影一区| 国产精品国产三级国产三级人妇 | 欧美一区二区视频在线观看2022| 欧美影院一区二区| 欧美中文字幕不卡| 欧美性猛交一区二区三区精品| 欧美伊人久久久久久久久影院| 91黄色免费看| 欧美精品自拍偷拍动漫精品| 欧美片在线播放| 日本不卡123| 美女视频免费一区| 紧缚捆绑精品一区二区| 国产一区视频在线看| 国产成人免费在线观看不卡| 床上的激情91.| 91视频xxxx| 欧美日韩国产成人在线免费| 91精品国产综合久久国产大片| 欧美一级精品大片| 精品乱人伦小说| 久久精品欧美一区二区三区不卡 | 成人免费视频播放| 成人国产免费视频| 国产成人综合视频| 99久久免费视频.com| 欧美性色aⅴ视频一区日韩精品| 在线91免费看| 国产肉丝袜一区二区| 亚洲乱码中文字幕| 男男成人高潮片免费网站| 国产美女一区二区| 色综合一个色综合亚洲| 91精品国产综合久久久久| 久久婷婷久久一区二区三区| 欧美极品美女视频| 一区二区三区丝袜| 日韩不卡一区二区三区| 国产麻豆9l精品三级站| av中文一区二区三区| 欧美日韩国产一区| 日韩精品一区二区在线| xvideos.蜜桃一区二区| 椎名由奈av一区二区三区| 日本vs亚洲vs韩国一区三区 | 日韩欧美中文一区| 欧美激情中文字幕| 亚洲香肠在线观看| 国产电影一区在线| 欧美美女直播网站| 国产精品亲子乱子伦xxxx裸| 日韩黄色小视频| 成人夜色视频网站在线观看| 欧美精品日日鲁夜夜添| 国产精品素人视频| 日本欧美一区二区在线观看| 99久久综合国产精品| 91麻豆精品国产综合久久久久久| 国产精品色在线观看| 秋霞影院一区二区| 色综合久久综合| 久久久精品综合| 日本中文字幕一区二区视频 | 国产日韩亚洲欧美综合| 日韩国产一区二| 99re这里都是精品| 精品乱人伦一区二区三区| 亚洲国产精品久久人人爱| 国产成人免费视频网站| 欧美一区日韩一区| 亚洲国产精品人人做人人爽| av电影在线观看一区| 久久久久高清精品| 青青草97国产精品免费观看 | 日韩美女在线视频| 亚洲一区二区三区视频在线| 成人免费视频一区| 欧美精品一区二区三区在线播放| 亚洲成人在线观看视频| 色婷婷av一区| 最新不卡av在线| 成人爱爱电影网址| 国产亚洲综合在线| 久久99国产乱子伦精品免费| 7878成人国产在线观看| 亚洲一区二区三区爽爽爽爽爽| 99久久国产免费看| 国产精品入口麻豆九色| 国产老妇另类xxxxx| 欧美成人一区二区三区| 奇米精品一区二区三区在线观看| 欧美日韩美少妇| 亚洲一区二区三区四区在线| 在线看一区二区| 亚洲精品高清视频在线观看| 97久久精品人人做人人爽| 中文字幕亚洲一区二区va在线| 成人久久视频在线观看| 国产精品美女久久久久久久久久久| 国产传媒一区在线| 亚洲国产精品国自产拍av| 国产mv日韩mv欧美| 国产精品伦理一区二区| 99re成人在线| 午夜av一区二区| 国产精品久久久久久久久快鸭| 极品销魂美女一区二区三区| 欧美大片一区二区| 国产一区二区三区国产| 久久综合视频网| 国产激情视频一区二区在线观看| 国产午夜亚洲精品羞羞网站| 成人国产视频在线观看| 亚洲欧美区自拍先锋| 欧美丝袜丝交足nylons| 日日摸夜夜添夜夜添亚洲女人| 91精品婷婷国产综合久久性色| 偷拍日韩校园综合在线| 日韩欧美在线观看一区二区三区| 久久99国产精品免费网站| 久久亚洲精精品中文字幕早川悠里| 国产成人免费xxxxxxxx| 中文字幕一区日韩精品欧美| 色综合 综合色| 日韩精品一二三| 久久一二三国产| 99国产欧美久久久精品| 婷婷丁香久久五月婷婷| 精品久久久久久久人人人人传媒| 国产高清在线观看免费不卡| 亚洲色图视频网站| 欧美精品丝袜中出| 国产一区二区三区在线观看精品 | 欧美一级在线观看| 国产精品小仙女| 亚洲精品成人a在线观看| 欧美人体做爰大胆视频| 激情av综合网| 亚洲欧美另类小说视频| 91精品国产综合久久香蕉的特点| 国产精品12区| 亚洲国产一区二区三区| 精品捆绑美女sm三区| av在线综合网| 麻豆精品在线视频| 亚洲手机成人高清视频| 日韩片之四级片| 色综合 综合色| 极品少妇一区二区| 亚洲最大的成人av| 久久亚洲影视婷婷| 欧美视频在线不卡| 国产精品一区二区久激情瑜伽| 亚洲自拍偷拍av| 国产欧美日韩亚州综合| 69久久99精品久久久久婷婷| 成人黄色一级视频| 日本午夜精品视频在线观看| 1区2区3区国产精品| 日韩精品一区二区三区中文不卡| 一本色道**综合亚洲精品蜜桃冫| 久久精品国产色蜜蜜麻豆| 一区二区三区在线不卡| 国产视频视频一区| 欧美日韩激情在线| 97se亚洲国产综合在线| 国产最新精品精品你懂的| 亚洲成a天堂v人片| 国产精品久久二区二区| 精品欧美一区二区久久| 欧美日韩视频在线第一区| 99久久久免费精品国产一区二区| 久久av老司机精品网站导航| 亚洲美女免费视频| 午夜视频久久久久久| 久久久亚洲高清| 欧美日韩国产高清一区二区| av电影天堂一区二区在线| 精品一区二区三区在线观看国产| 亚洲成人资源在线| 亚洲男人天堂一区| 不卡一区二区三区四区| 国产精品一二三四五| 免费欧美在线视频| 天堂影院一区二区| 亚洲第四色夜色| 亚洲日穴在线视频| 亚洲欧洲日产国产综合网| 国产午夜亚洲精品午夜鲁丝片| 91精品国产91热久久久做人人| 欧美日韩日本视频| 在线视频欧美区| www.欧美亚洲| 成人av免费在线播放| 国产·精品毛片| 国产成人av电影免费在线观看| 国内成+人亚洲+欧美+综合在线| 美国十次了思思久久精品导航| 午夜av区久久|