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

📄 expr.h

📁 gcc库的原代码,对编程有很大帮助.
💻 H
📖 第 1 页 / 共 3 页
字号:
extern optab udivmod_optab;extern optab smod_optab;	/* Signed remainder */extern optab umod_optab;extern optab flodiv_optab;	/* Optab for floating divide. */extern optab ftrunc_optab;	/* Convert float to integer in float fmt */extern optab and_optab;		/* Logical and */extern optab ior_optab;		/* Logical or */extern optab xor_optab;		/* Logical xor */extern optab ashl_optab;	/* Arithmetic shift left */extern optab ashr_optab;	/* Arithmetic shift right */extern optab lshr_optab;	/* Logical shift right */extern optab rotl_optab;	/* Rotate left */extern optab rotr_optab;	/* Rotate right */extern optab smin_optab;	/* Signed and floating-point minimum value */extern optab smax_optab;	/* Signed and floating-point maximum value */extern optab umin_optab;	/* Unsigned minimum value */extern optab umax_optab;	/* Unsigned maximum value */extern optab mov_optab;		/* Move instruction.  */extern optab movstrict_optab;	/* Move, preserving high part of register.  */extern optab cmp_optab;		/* Compare insn; two operands.  */extern optab tst_optab;		/* tst insn; compare one operand against 0 *//* Unary operations */extern optab neg_optab;		/* Negation */extern optab abs_optab;		/* Abs value */extern optab one_cmpl_optab;	/* Bitwise not */extern optab ffs_optab;		/* Find first bit set */extern optab sqrt_optab;	/* Square root */extern optab sin_optab;		/* Sine */extern optab cos_optab;		/* Cosine */extern optab strlen_optab;	/* String length *//* Tables of patterns for extending one integer mode to another.  */extern enum insn_code extendtab[MAX_MACHINE_MODE][MAX_MACHINE_MODE][2];/* Tables of patterns for converting between fixed and floating point. */extern enum insn_code fixtab[NUM_MACHINE_MODES][NUM_MACHINE_MODES][2];extern enum insn_code fixtrunctab[NUM_MACHINE_MODES][NUM_MACHINE_MODES][2];extern enum insn_code floattab[NUM_MACHINE_MODES][NUM_MACHINE_MODES][2];/* Contains the optab used for each rtx code.  */extern optab code_to_optab[NUM_RTX_CODE + 1];/* Passed to expand_binop and expand_unop to say which options to try to use   if the requested operation can't be open-coded on the requisite mode.   Either OPTAB_LIB or OPTAB_LIB_WIDEN says try using a library call.   Either OPTAB_WIDEN or OPTAB_LIB_WIDEN says try using a wider mode.   OPTAB_MUST_WIDEN says try widening and don't try anything else.  */enum optab_methods{  OPTAB_DIRECT,  OPTAB_LIB,  OPTAB_WIDEN,  OPTAB_LIB_WIDEN,  OPTAB_MUST_WIDEN};/* SYMBOL_REF rtx's for the library functions that are called   implicitly and not via optabs.  */extern rtx extendsfdf2_libfunc;extern rtx extendsfxf2_libfunc;extern rtx extendsftf2_libfunc;extern rtx extenddfxf2_libfunc;extern rtx extenddftf2_libfunc;extern rtx truncdfsf2_libfunc;extern rtx truncxfsf2_libfunc;extern rtx trunctfsf2_libfunc;extern rtx truncxfdf2_libfunc;extern rtx trunctfdf2_libfunc;extern rtx memcpy_libfunc;extern rtx bcopy_libfunc;extern rtx memcmp_libfunc;extern rtx bcmp_libfunc;extern rtx memset_libfunc;extern rtx bzero_libfunc;extern rtx eqhf2_libfunc;extern rtx nehf2_libfunc;extern rtx gthf2_libfunc;extern rtx gehf2_libfunc;extern rtx lthf2_libfunc;extern rtx lehf2_libfunc;extern rtx eqsf2_libfunc;extern rtx nesf2_libfunc;extern rtx gtsf2_libfunc;extern rtx gesf2_libfunc;extern rtx ltsf2_libfunc;extern rtx lesf2_libfunc;extern rtx eqdf2_libfunc;extern rtx nedf2_libfunc;extern rtx gtdf2_libfunc;extern rtx gedf2_libfunc;extern rtx ltdf2_libfunc;extern rtx ledf2_libfunc;extern rtx eqxf2_libfunc;extern rtx nexf2_libfunc;extern rtx gtxf2_libfunc;extern rtx gexf2_libfunc;extern rtx ltxf2_libfunc;extern rtx lexf2_libfunc;extern rtx eqtf2_libfunc;extern rtx netf2_libfunc;extern rtx gttf2_libfunc;extern rtx getf2_libfunc;extern rtx lttf2_libfunc;extern rtx letf2_libfunc;extern rtx floatsisf_libfunc;extern rtx floatdisf_libfunc;extern rtx floattisf_libfunc;extern rtx floatsidf_libfunc;extern rtx floatdidf_libfunc;extern rtx floattidf_libfunc;extern rtx floatsixf_libfunc;extern rtx floatdixf_libfunc;extern rtx floattixf_libfunc;extern rtx floatsitf_libfunc;extern rtx floatditf_libfunc;extern rtx floattitf_libfunc;extern rtx fixsfsi_libfunc;extern rtx fixsfdi_libfunc;extern rtx fixsfti_libfunc;extern rtx fixdfsi_libfunc;extern rtx fixdfdi_libfunc;extern rtx fixdfti_libfunc;extern rtx fixxfsi_libfunc;extern rtx fixxfdi_libfunc;extern rtx fixxfti_libfunc;extern rtx fixtfsi_libfunc;extern rtx fixtfdi_libfunc;extern rtx fixtfti_libfunc;extern rtx fixunssfsi_libfunc;extern rtx fixunssfdi_libfunc;extern rtx fixunssfti_libfunc;extern rtx fixunsdfsi_libfunc;extern rtx fixunsdfdi_libfunc;extern rtx fixunsdfti_libfunc;extern rtx fixunsxfsi_libfunc;extern rtx fixunsxfdi_libfunc;extern rtx fixunsxfti_libfunc;extern rtx fixunstfsi_libfunc;extern rtx fixunstfdi_libfunc;extern rtx fixunstfti_libfunc;typedef rtx (*rtxfun) ();/* Indexed by the rtx-code for a conditional (eg. EQ, LT,...)   gives the gen_function to make a branch to test that condition.  */extern rtxfun bcc_gen_fctn[NUM_RTX_CODE];/* Indexed by the rtx-code for a conditional (eg. EQ, LT,...)   gives the insn code to make a store-condition insn   to test that condition.  */extern enum insn_code setcc_gen_code[NUM_RTX_CODE];#ifdef HAVE_conditional_move/* Indexed by the the machine mode, gives the insn code to make a conditional   move insn.  */extern enum insn_code movcc_gen_code[NUM_MACHINE_MODES];#endif/* This array records the insn_code of insns to perform block moves.  */extern enum insn_code movstr_optab[NUM_MACHINE_MODES];/* Define functions given in optabs.c.  *//* Expand a binary operation given optab and rtx operands.  */extern rtx expand_binop PROTO((enum machine_mode, optab, rtx, rtx, rtx,			       int, enum optab_methods));/* Expand a binary operation with both signed and unsigned forms.  */extern rtx sign_expand_binop PROTO((enum machine_mode, optab, optab, rtx,				    rtx, rtx, int, enum optab_methods));/* Generate code to perform an operation on two operands with two results.  */extern int expand_twoval_binop PROTO((optab, rtx, rtx, rtx, rtx, int));/* Expand a unary arithmetic operation given optab rtx operand.  */extern rtx expand_unop PROTO((enum machine_mode, optab, rtx, rtx, int));/* Expand the absolute value operation.  */extern rtx expand_abs PROTO((enum machine_mode, rtx, rtx, int, int));/* Expand the complex absolute value operation.  */extern rtx expand_complex_abs PROTO((enum machine_mode, rtx, rtx, int));/* Generate an instruction with a given INSN_CODE with an output and   an input.  */extern void emit_unop_insn PROTO((int, rtx, rtx, enum rtx_code));/* Emit code to perform a series of operations on a multi-word quantity, one   word at a time.  */extern rtx emit_no_conflict_block PROTO((rtx, rtx, rtx, rtx, rtx));/* Emit code to make a call to a constant function or a library call. */extern void emit_libcall_block PROTO((rtx, rtx, rtx, rtx));/* Emit one rtl instruction to store zero in specified rtx.  */extern void emit_clr_insn PROTO((rtx));/* Emit one rtl insn to store 1 in specified rtx assuming it contains 0.  */extern void emit_0_to_1_insn PROTO((rtx));/* Emit one rtl insn to compare two rtx's.  */extern void emit_cmp_insn PROTO((rtx, rtx, enum rtx_code, rtx,				 enum machine_mode, int, int));/* Nonzero if a compare of mode MODE can be done straightforwardly   (without splitting it into pieces).  */extern int can_compare_p PROTO((enum machine_mode));/* Emit a library call comparison between floating point X and Y.   COMPARISON is the rtl operator to compare with (EQ, NE, GT, etc.).  */extern void emit_float_lib_cmp PROTO((rtx, rtx, enum rtx_code));/* Generate code to indirectly jump to a location given in the rtx LOC.  */extern void emit_indirect_jump PROTO((rtx));#ifdef HAVE_conditional_move/* Emit a conditional move operation.  */rtx emit_conditional_move PROTO((rtx, enum rtx_code, rtx, rtx,				 enum machine_mode, rtx, rtx,				 enum machine_mode, int));/* Return non-zero if the conditional move is supported.  */int can_conditionally_move_p PROTO((enum machine_mode mode));#endif/* Create but don't emit one rtl instruction to add one rtx into another.   Modes must match; operands must meet the operation's predicates.   Likewise for subtraction and for just copying.   These do not call protect_from_queue; caller must do so.  */extern rtx gen_add2_insn PROTO((rtx, rtx));extern rtx gen_sub2_insn PROTO((rtx, rtx));extern rtx gen_move_insn PROTO((rtx, rtx));extern int have_add2_insn PROTO((enum machine_mode));extern int have_sub2_insn PROTO((enum machine_mode));/* Return the INSN_CODE to use for an extend operation.  */extern enum insn_code can_extend_p PROTO((enum machine_mode,					  enum machine_mode, int));/* Generate the body of an insn to extend Y (with mode MFROM)   into X (with mode MTO).  Do zero-extension if UNSIGNEDP is nonzero.  */extern rtx gen_extend_insn PROTO((rtx, rtx, enum machine_mode,				  enum machine_mode, int));/* Initialize the tables that control conversion between fixed and   floating values.  */extern void init_fixtab PROTO((void));extern void init_floattab PROTO((void));/* Generate code for a FLOAT_EXPR.  */extern void expand_float PROTO((rtx, rtx, int));/* Generate code for a FIX_EXPR.  */extern void expand_fix PROTO((rtx, rtx, int));/* Call this once to initialize the contents of the optabs   appropriately for the current target machine.  */extern void init_optabs	PROTO((void));

⌨️ 快捷键说明

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