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

📄 ia64.c

📁 linux下的gcc编译器
💻 C
📖 第 1 页 / 共 5 页
字号:
  name = XSTR (op, 0);  /* The following code is borrowed from special_function_p in calls.c.  */  /* Disregard prefix _, __ or __x.  */  if (name[0] == '_')    {      if (name[1] == '_' && name[2] == 'x')	name += 3;      else if (name[1] == '_')	name += 2;      else	name += 1;    }  if (name[0] == 's')    {      retval	= ((name[1] == 'e'	    && (! strcmp (name, "setjmp")		|| ! strcmp (name, "setjmp_syscall")))	   || (name[1] == 'i'	       && ! strcmp (name, "sigsetjmp"))	   || (name[1] == 'a'	       && ! strcmp (name, "savectx")));    }  else if ((name[0] == 'q' && name[1] == 's'	    && ! strcmp (name, "qsetjmp"))	   || (name[0] == 'v' && name[1] == 'f'	       && ! strcmp (name, "vfork")))    retval = 1;  return retval;}/* Return 1 if OP is a general operand, but when pic exclude symbolic   operands.  *//* ??? If we drop no-pic support, can delete SYMBOL_REF, CONST, and LABEL_REF   from PREDICATE_CODES.  */intmove_operand (op, mode)     rtx op;     enum machine_mode mode;{  if (! TARGET_NO_PIC && symbolic_operand (op, mode))    return 0;  return general_operand (op, mode);}/* Return 1 if OP is a register operand that is (or could be) a GR reg.  */intgr_register_operand (op, mode)     rtx op;     enum machine_mode mode;{  if (! register_operand (op, mode))    return 0;  if (GET_CODE (op) == SUBREG)    op = SUBREG_REG (op);  if (GET_CODE (op) == REG)    {      unsigned int regno = REGNO (op);      if (regno < FIRST_PSEUDO_REGISTER)	return GENERAL_REGNO_P (regno);    }  return 1;}/* Return 1 if OP is a register operand that is (or could be) an FR reg.  */intfr_register_operand (op, mode)     rtx op;     enum machine_mode mode;{  if (! register_operand (op, mode))    return 0;  if (GET_CODE (op) == SUBREG)    op = SUBREG_REG (op);  if (GET_CODE (op) == REG)    {      unsigned int regno = REGNO (op);      if (regno < FIRST_PSEUDO_REGISTER)	return FR_REGNO_P (regno);    }  return 1;}/* Return 1 if OP is a register operand that is (or could be) a GR/FR reg.  */intgrfr_register_operand (op, mode)     rtx op;     enum machine_mode mode;{  if (! register_operand (op, mode))    return 0;  if (GET_CODE (op) == SUBREG)    op = SUBREG_REG (op);  if (GET_CODE (op) == REG)    {      unsigned int regno = REGNO (op);      if (regno < FIRST_PSEUDO_REGISTER)	return GENERAL_REGNO_P (regno) || FR_REGNO_P (regno);    }  return 1;}/* Return 1 if OP is a nonimmediate operand that is (or could be) a GR reg.  */intgr_nonimmediate_operand (op, mode)     rtx op;     enum machine_mode mode;{  if (! nonimmediate_operand (op, mode))    return 0;  if (GET_CODE (op) == SUBREG)    op = SUBREG_REG (op);  if (GET_CODE (op) == REG)    {      unsigned int regno = REGNO (op);      if (regno < FIRST_PSEUDO_REGISTER)	return GENERAL_REGNO_P (regno);    }  return 1;}/* Return 1 if OP is a nonimmediate operand that is (or could be) a FR reg.  */intfr_nonimmediate_operand (op, mode)     rtx op;     enum machine_mode mode;{  if (! nonimmediate_operand (op, mode))    return 0;  if (GET_CODE (op) == SUBREG)    op = SUBREG_REG (op);  if (GET_CODE (op) == REG)    {      unsigned int regno = REGNO (op);      if (regno < FIRST_PSEUDO_REGISTER)	return FR_REGNO_P (regno);    }  return 1;}/* Return 1 if OP is a nonimmediate operand that is a GR/FR reg.  */intgrfr_nonimmediate_operand (op, mode)     rtx op;     enum machine_mode mode;{  if (! nonimmediate_operand (op, mode))    return 0;  if (GET_CODE (op) == SUBREG)    op = SUBREG_REG (op);  if (GET_CODE (op) == REG)    {      unsigned int regno = REGNO (op);      if (regno < FIRST_PSEUDO_REGISTER)	return GENERAL_REGNO_P (regno) || FR_REGNO_P (regno);    }  return 1;}/* Return 1 if OP is a GR register operand, or zero.  */intgr_reg_or_0_operand (op, mode)     rtx op;     enum machine_mode mode;{  return (op == const0_rtx || gr_register_operand (op, mode));}/* Return 1 if OP is a GR register operand, or a 5 bit immediate operand.  */intgr_reg_or_5bit_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_INT && INTVAL (op) >= 0 && INTVAL (op) < 32)	  || GET_CODE (op) == CONSTANT_P_RTX	  || gr_register_operand (op, mode));}/* Return 1 if OP is a GR register operand, or a 6 bit immediate operand.  */intgr_reg_or_6bit_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op)))	  || GET_CODE (op) == CONSTANT_P_RTX	  || gr_register_operand (op, mode));}/* Return 1 if OP is a GR register operand, or an 8 bit immediate operand.  */intgr_reg_or_8bit_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op)))	  || GET_CODE (op) == CONSTANT_P_RTX	  || gr_register_operand (op, mode));}/* Return 1 if OP is a GR/FR register operand, or an 8 bit immediate.  */intgrfr_reg_or_8bit_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op)))	  || GET_CODE (op) == CONSTANT_P_RTX	  || grfr_register_operand (op, mode));}/* Return 1 if OP is a register operand, or an 8 bit adjusted immediate   operand.  */intgr_reg_or_8bit_adjusted_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_L (INTVAL (op)))	  || GET_CODE (op) == CONSTANT_P_RTX	  || gr_register_operand (op, mode));}/* Return 1 if OP is a register operand, or is valid for both an 8 bit   immediate and an 8 bit adjusted immediate operand.  This is necessary   because when we emit a compare, we don't know what the condition will be,   so we need the union of the immediates accepted by GT and LT.  */intgr_reg_or_8bit_and_adjusted_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op))	   && CONST_OK_FOR_L (INTVAL (op)))	  || GET_CODE (op) == CONSTANT_P_RTX	  || gr_register_operand (op, mode));}/* Return 1 if OP is a register operand, or a 14 bit immediate operand.  */intgr_reg_or_14bit_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_I (INTVAL (op)))	  || GET_CODE (op) == CONSTANT_P_RTX	  || gr_register_operand (op, mode));}/* Return 1 if OP is a register operand, or a 22 bit immediate operand.  */intgr_reg_or_22bit_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_J (INTVAL (op)))	  || GET_CODE (op) == CONSTANT_P_RTX	  || gr_register_operand (op, mode));}/* Return 1 if OP is a 6 bit immediate operand.  */intshift_count_operand (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op)))	  || GET_CODE (op) == CONSTANT_P_RTX);}/* Return 1 if OP is a 5 bit immediate operand.  */intshift_32bit_count_operand (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return ((GET_CODE (op) == CONST_INT	   && (INTVAL (op) >= 0 && INTVAL (op) < 32))	  || GET_CODE (op) == CONSTANT_P_RTX);}/* Return 1 if OP is a 2, 4, 8, or 16 immediate operand.  */intshladd_operand (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return (GET_CODE (op) == CONST_INT	  && (INTVAL (op) == 2 || INTVAL (op) == 4	      || INTVAL (op) == 8 || INTVAL (op) == 16));}/* Return 1 if OP is a -16, -8, -4, -1, 1, 4, 8, or 16 immediate operand.  */intfetchadd_operand (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return (GET_CODE (op) == CONST_INT          && (INTVAL (op) == -16 || INTVAL (op) == -8 ||              INTVAL (op) == -4  || INTVAL (op) == -1 ||              INTVAL (op) == 1   || INTVAL (op) == 4  ||              INTVAL (op) == 8   || INTVAL (op) == 16));}/* Return 1 if OP is a floating-point constant zero, one, or a register.  */intfr_reg_or_fp01_operand (op, mode)     rtx op;     enum machine_mode mode;{  return ((GET_CODE (op) == CONST_DOUBLE && CONST_DOUBLE_OK_FOR_G (op))	  || fr_register_operand (op, mode));}/* Like nonimmediate_operand, but don't allow MEMs that try to use a   POST_MODIFY with a REG as displacement.  */intdestination_operand (op, mode)     rtx op;     enum machine_mode mode;{  if (! nonimmediate_operand (op, mode))    return 0;  if (GET_CODE (op) == MEM      && GET_CODE (XEXP (op, 0)) == POST_MODIFY      && GET_CODE (XEXP (XEXP (XEXP (op, 0), 1), 1)) == REG)    return 0;  return 1;}/* Like memory_operand, but don't allow post-increments.  */intnot_postinc_memory_operand (op, mode)     rtx op;     enum machine_mode mode;{  return (memory_operand (op, mode)	  && GET_RTX_CLASS (GET_CODE (XEXP (op, 0))) != 'a');}/* Return 1 if this is a comparison operator, which accepts an normal 8-bit   signed immediate operand.  */intnormal_comparison_operator (op, mode)    register rtx op;    enum machine_mode mode;{  enum rtx_code code = GET_CODE (op);  return ((mode == VOIDmode || GET_MODE (op) == mode)	  && (code == EQ || code == NE	      || code == GT || code == LE || code == GTU || code == LEU));}/* Return 1 if this is a comparison operator, which accepts an adjusted 8-bit   signed immediate operand.  */intadjusted_comparison_operator (op, mode)    register rtx op;    enum machine_mode mode;{  enum rtx_code code = GET_CODE (op);  return ((mode == VOIDmode || GET_MODE (op) == mode)	  && (code == LT || code == GE || code == LTU || code == GEU));}/* Return 1 if this is a signed inequality operator.  */intsigned_inequality_operator (op, mode)    register rtx op;    enum machine_mode mode;{  enum rtx_code code = GET_CODE (op);  return ((mode == VOIDmode || GET_MODE (op) == mode)	  && (code == GE || code == GT	      || code == LE || code == LT));}/* Return 1 if this operator is valid for predication.  */intpredicate_operator (op, mode)    register rtx op;    enum machine_mode mode;{  enum rtx_code code = GET_CODE (op);  return ((GET_MODE (op) == mode || mode == VOIDmode)	  && (code == EQ || code == NE));}/* Return 1 if this operator can be used in a conditional operation.  */intcondop_operator (op, mode)    register rtx op;    enum machine_mode mode;{  enum rtx_code code = GET_CODE (op);  return ((GET_MODE (op) == mode || mode == VOIDmode)	  && (code == PLUS || code == MINUS || code == AND	      || code == IOR || code == XOR));}/* Return 1 if this is the ar.lc register.  */intar_lc_reg_operand (op, mode)     register rtx op;     enum machine_mode mode;{  return (GET_MODE (op) == DImode	  && (mode == DImode || mode == VOIDmode)	  && GET_CODE (op) == REG	  && REGNO (op) == AR_LC_REGNUM);}/* Return 1 if this is the ar.ccv register.  */intar_ccv_reg_operand (op, mode)     register rtx op;     enum machine_mode mode;

⌨️ 快捷键说明

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