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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mips.c

?? linux下的gcc編譯器
?? C
?? 第 1 頁 / 共 5 頁
字號:
intconsttable_operand (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return CONSTANT_P (op);}/* Coprocessor operand; return true if rtx is a REG and refers to a   coprocessor.  */intcoprocessor_operand (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return (GET_CODE (op) == REG	  && COP0_REG_FIRST <= REGNO (op)	  && REGNO (op) <= COP3_REG_LAST);}intcoprocessor2_operand (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return (GET_CODE (op) == REG	  && COP2_REG_FIRST <= REGNO (op)	  && REGNO (op) <= COP2_REG_LAST);}/* Returns 1 if OP is a symbolic operand, i.e. a symbol_ref or a label_ref,   possibly with an offset.  */intsymbolic_operand (op, mode)      register rtx op;      enum machine_mode mode;{  if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op))    return 0;  if (GET_CODE (op) == SYMBOL_REF || GET_CODE (op) == LABEL_REF)    return 1;  if (GET_CODE (op) == CONST      && GET_CODE (XEXP (op,0)) == PLUS      && GET_CODE (XEXP (XEXP (op,0), 0)) == SYMBOL_REF      && GET_CODE (XEXP (XEXP (op,0), 1)) == CONST_INT)    return 1;  return 0;}/* Return nonzero if we split the address into high and low parts.  *//* ??? We should also handle reg+array somewhere.  We get four   instructions currently, lui %hi/addui %lo/addui reg/lw.  Better is   lui %hi/addui reg/lw %lo.  Fixing GO_IF_LEGITIMATE_ADDRESS to accept   (plus (reg) (symbol_ref)) doesn't work because the SYMBOL_REF is broken   out of the address, then we have 4 instructions to combine.  Perhaps   add a 3->2 define_split for combine.  *//* ??? We could also split a CONST_INT here if it is a large_int().   However, it doesn't seem to be very useful to have %hi(constant).   We would be better off by doing the masking ourselves and then putting   the explicit high part of the constant in the RTL.  This will give better   optimization.  Also, %hi(constant) needs assembler changes to work.   There is already a define_split that does this.  */intmips_check_split (address, mode)     rtx address;     enum machine_mode mode;{  /* ??? This is the same check used in simple_memory_operand.     We use it here because LO_SUM is not offsettable.  */  if (GET_MODE_SIZE (mode) > (unsigned) UNITS_PER_WORD)    return 0;  if ((GET_CODE (address) == SYMBOL_REF && ! SYMBOL_REF_FLAG (address))      || (GET_CODE (address) == CONST	  && GET_CODE (XEXP (XEXP (address, 0), 0)) == SYMBOL_REF	  && ! SYMBOL_REF_FLAG (XEXP (XEXP (address, 0), 0)))      || GET_CODE (address) == LABEL_REF)    return 1;  return 0;}/* This function is used to implement REG_MODE_OK_FOR_BASE_P.  */intmips_reg_mode_ok_for_base_p (reg, mode, strict)     rtx reg;     enum machine_mode mode;     int strict;{  return (strict	  ? REGNO_MODE_OK_FOR_BASE_P (REGNO (reg), mode)	  : GP_REG_OR_PSEUDO_NONSTRICT_P (REGNO (reg), mode));}/* This function is used to implement GO_IF_LEGITIMATE_ADDRESS.  It   returns a nonzero value if XINSN is a legitimate address for a   memory operand of the indicated MODE.  STRICT is nonzero if this   function is called during reload.  */intmips_legitimate_address_p (mode, xinsn, strict)     enum machine_mode mode;     rtx xinsn;     int strict;{  if (TARGET_DEBUG_B_MODE)    {      GO_PRINTF2 ("\n========== GO_IF_LEGITIMATE_ADDRESS, %sstrict\n",		  strict ? "" : "not ");      GO_DEBUG_RTX (xinsn);    }  /* Check for constant before stripping off SUBREG, so that we don't     accept (subreg (const_int)) which will fail to reload.  */  if (CONSTANT_ADDRESS_P (xinsn)      && ! (mips_split_addresses && mips_check_split (xinsn, mode))      && (! TARGET_MIPS16 || mips16_constant (xinsn, mode, 1, 0)))    return 1;  while (GET_CODE (xinsn) == SUBREG)    xinsn = SUBREG_REG (xinsn);  /* The mips16 can only use the stack pointer as a base register when     loading SImode or DImode values.  */  if (GET_CODE (xinsn) == REG      && mips_reg_mode_ok_for_base_p (xinsn, mode, strict))    return 1;  if (GET_CODE (xinsn) == LO_SUM && mips_split_addresses)    {      register rtx xlow0 = XEXP (xinsn, 0);      register rtx xlow1 = XEXP (xinsn, 1);      while (GET_CODE (xlow0) == SUBREG)	xlow0 = SUBREG_REG (xlow0);      if (GET_CODE (xlow0) == REG	  && mips_reg_mode_ok_for_base_p (xlow0, mode, strict)	  && mips_check_split (xlow1, mode))	return 1;    }  if (GET_CODE (xinsn) == PLUS)    {      register rtx xplus0 = XEXP (xinsn, 0);      register rtx xplus1 = XEXP (xinsn, 1);      register enum rtx_code code0;      register enum rtx_code code1;      while (GET_CODE (xplus0) == SUBREG)	xplus0 = SUBREG_REG (xplus0);      code0 = GET_CODE (xplus0);      while (GET_CODE (xplus1) == SUBREG)	xplus1 = SUBREG_REG (xplus1);      code1 = GET_CODE (xplus1);      /* The mips16 can only use the stack pointer as a base register         when loading SImode or DImode values.  */      if (code0 == REG	  && mips_reg_mode_ok_for_base_p (xplus0, mode, strict))	{	  if (code1 == CONST_INT && SMALL_INT (xplus1))	    return 1;	  /* On the mips16, we represent GP relative offsets in RTL.             These are 16 bit signed values, and can serve as register             offsets.  */	  if (TARGET_MIPS16	      && mips16_gp_offset_p (xplus1))	    return 1;	  /* For some code sequences, you actually get better code by	     pretending that the MIPS supports an address mode of a	     constant address + a register, even though the real	     machine doesn't support it.  This is because the	     assembler can use $r1 to load just the high 16 bits, add	     in the register, and fold the low 16 bits into the memory	     reference, whereas the compiler generates a 4 instruction	     sequence.  On the other hand, CSE is not as effective.	     It would be a win to generate the lui directly, but the	     MIPS assembler does not have syntax to generate the	     appropriate relocation.  */	  /* Also accept CONST_INT addresses here, so no else.  */	  /* Reject combining an embedded PIC text segment reference	     with a register.  That requires an additional	     instruction.  */          /* ??? Reject combining an address with a register for the MIPS	     64 bit ABI, because the SGI assembler can not handle this.  */	  if (!TARGET_DEBUG_A_MODE	      && (mips_abi == ABI_32		  || mips_abi == ABI_O64		  || mips_abi == ABI_EABI)	      && CONSTANT_ADDRESS_P (xplus1)	      && ! mips_split_addresses	      && (!TARGET_EMBEDDED_PIC		  || code1 != CONST		  || GET_CODE (XEXP (xplus1, 0)) != MINUS)	      /* When assembling for machines with 64 bit registers,	         the assembler will sign-extend the constant "foo"		 in "la x, foo(x)" yielding the wrong result for:	         (set (blah:DI) (plus x y)).  */	      && (!TARGET_64BIT		  || (code1 == CONST_INT		      && trunc_int_for_mode (INTVAL (xplus1),					     SImode) == INTVAL (xplus1)))	      && !TARGET_MIPS16)	    return 1;	}    }  if (TARGET_DEBUG_B_MODE)    GO_PRINTF ("Not a legitimate address\n");  /* The address was not legitimate.  */  return 0;}/* We need a lot of little routines to check constant values on the   mips16.  These are used to figure out how long the instruction will   be.  It would be much better to do this using constraints, but   there aren't nearly enough letters available.  */static intm16_check_op (op, low, high, mask)     rtx op;     int low;     int high;     int mask;{  return (GET_CODE (op) == CONST_INT	  && INTVAL (op) >= low	  && INTVAL (op) <= high	  && (INTVAL (op) & mask) == 0);}intm16_uimm3_b (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, 0x1, 0x8, 0);}intm16_simm4_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, - 0x8, 0x7, 0);}intm16_nsimm4_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, - 0x7, 0x8, 0);}intm16_simm5_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, - 0x10, 0xf, 0);}intm16_nsimm5_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, - 0xf, 0x10, 0);}intm16_uimm5_4 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, (- 0x10) << 2, 0xf << 2, 3);}intm16_nuimm5_4 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, (- 0xf) << 2, 0x10 << 2, 3);}intm16_simm8_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, - 0x80, 0x7f, 0);}intm16_nsimm8_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, - 0x7f, 0x80, 0);}intm16_uimm8_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, 0x0, 0xff, 0);}intm16_nuimm8_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, - 0xff, 0x0, 0);}intm16_uimm8_m1_1 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, - 0x1, 0xfe, 0);}intm16_uimm8_4 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, 0x0, 0xff << 2, 3);}intm16_nuimm8_4 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, (- 0xff) << 2, 0x0, 3);}intm16_simm8_8 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, (- 0x80) << 3, 0x7f << 3, 7);}intm16_nsimm8_8 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  return m16_check_op (op, (- 0x7f) << 3, 0x80 << 3, 7);}/* References to the string table on the mips16 only use a small   offset if the function is small.  See the comment in the SYMBOL_REF   case in simple_memory_operand.  We can't check for LABEL_REF here,   because the offset is always large if the label is before the   referencing instruction.  */intm16_usym8_4 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  if (GET_CODE (op) == SYMBOL_REF      && SYMBOL_REF_FLAG (op)      && cfun->machine->insns_len > 0      && XSTR (op, 0)[0] == '*'      && strncmp (XSTR (op, 0) + 1, LOCAL_LABEL_PREFIX,		  sizeof LOCAL_LABEL_PREFIX - 1) == 0      && (cfun->machine->insns_len + get_pool_size () + mips_string_length	  < 4 * 0x100))    {      struct string_constant *l;      /* Make sure this symbol is on thelist of string constants to be         output for this function.  It is possible that it has already         been output, in which case this requires a large offset.  */      for (l = string_constants; l != NULL; l = l->next)	if (strcmp (l->label, XSTR (op, 0)) == 0)	  return 1;    }  return 0;}intm16_usym5_4 (op, mode)     rtx op;     enum machine_mode mode ATTRIBUTE_UNUSED;{  if (GET_CODE (op) == SYMBOL_REF      && SYMBOL_REF_FLAG (op)      && cfun->machine->insns_len > 0      && XSTR (op, 0)[0] == '*'      && strncmp (XSTR (op, 0) + 1, LOCAL_LABEL_PREFIX,		  sizeof LOCAL_LABEL_PREFIX - 1) == 0      && (cfun->machine->insns_len + get_pool_size () + mips_string_length	  < 4 * 0x20))    {      struct string_constant *l;      /* Make sure this symbol is on thelist of string constants to be         output for this function.  It is possible that it has already         been output, in which case this requires a large offset.  */      for (l = string_constants; l != NULL; l = l->next)	if (strcmp (l->label, XSTR (op, 0)) == 0)	  return 1;    }  return 0;}/* Returns an operand string for the given instruction's delay slot,   after updating filled delay slot statistics.   We assume that operands[0] is the target register that is set.   In order to check the next insn, most of this functionality is moved   to FINAL_PRESCAN_INSN, and we just set the global variables that   it needs.  *//* ??? This function no longer does anything useful, because final_prescan_insn   now will never emit a nop.  */const char *mips_fill_delay_slot (ret, type, operands, cur_insn)     const char *ret;		/* normal string to return */     enum delay_type type;	/* type of delay */     rtx operands[];		/* operands to use */     rtx cur_insn;		/* current insn */{  register rtx set_reg;  register enum machine_mode mode;  register rtx next_insn = cur_insn ? NEXT_INSN (cur_insn) : NULL_RTX;  register int num_nops;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久88久久88久久久| 在线播放/欧美激情| 国产欧美日韩三区| 成人自拍视频在线| 欧美激情一区二区三区| 成人的网站免费观看| 国产精品不卡一区| 在线观看视频一区二区欧美日韩| 综合婷婷亚洲小说| 欧美性生活久久| 视频一区在线播放| 久久久久久久综合| 91丨九色丨国产丨porny| 亚洲一区中文在线| 91精品国产91久久综合桃花 | 91麻豆视频网站| 亚洲国产精品综合小说图片区| 欧美日本在线一区| 国产在线精品视频| 亚洲欧洲美洲综合色网| 欧美日韩在线播放一区| 免费精品视频最新在线| 欧美激情一区二区三区不卡| 色狠狠色噜噜噜综合网| 免费一级片91| 国产精品天美传媒| 欧美精品自拍偷拍| 高清国产一区二区三区| 亚洲亚洲人成综合网络| 久久众筹精品私拍模特| 色婷婷亚洲一区二区三区| 毛片不卡一区二区| 亚洲欧美在线观看| 日韩精品一区在线| 91在线无精精品入口| 久久精品国产亚洲高清剧情介绍| 国产色爱av资源综合区| 欧美日韩亚洲综合| 国产馆精品极品| 视频一区视频二区中文| 国产精品毛片久久久久久久| 欧美一区二区成人6969| 99久久国产综合精品麻豆| 久久99精品国产麻豆婷婷 | 色婷婷综合激情| 国产精品99久久久久久有的能看| 亚洲小少妇裸体bbw| 日本一区免费视频| 日韩女优毛片在线| 欧美熟乱第一页| 成人av综合一区| 韩国一区二区在线观看| 午夜欧美在线一二页| 亚洲色图视频网站| 国产视频一区二区三区在线观看| 欧美高清激情brazzers| 一本到不卡精品视频在线观看| 国产精品综合在线视频| 青青草97国产精品免费观看无弹窗版| 亚洲欧美激情小说另类| 国产精品女人毛片| 久久久99久久精品欧美| 精品国精品国产| 欧美一区二区三区四区视频| 欧美色男人天堂| 色婷婷久久久亚洲一区二区三区| 国产成人精品免费| 国产精品18久久久久久久久久久久| 日韩二区在线观看| 午夜激情久久久| 亚洲国产视频一区二区| 亚洲美女屁股眼交3| 亚洲三级理论片| 国产精品成人午夜| 亚洲视频免费观看| 伊人婷婷欧美激情| 一区二区日韩电影| 亚洲综合网站在线观看| 一区二区三区四区蜜桃| 亚洲乱码国产乱码精品精98午夜 | 久久精品久久99精品久久| 天天综合网天天综合色| 日本aⅴ亚洲精品中文乱码| 婷婷开心久久网| 日韩中文字幕亚洲一区二区va在线 | av资源站一区| 成人av在线网站| 97久久精品人人爽人人爽蜜臀| 99精品热视频| 在线亚洲一区观看| 欧美日韩在线播| 欧美一级欧美三级在线观看| 精品免费日韩av| 国产人妖乱国产精品人妖| 国产精品久久看| 一区二区三区在线免费视频| 亚洲成av人影院| 麻豆91精品91久久久的内涵| 国产一区二区按摩在线观看| 成人永久aaa| 在线精品视频免费播放| 在线不卡中文字幕| 久久久国际精品| 亚洲另类中文字| 老汉av免费一区二区三区| 国产麻豆成人精品| 色一区在线观看| 欧美久久久一区| 国产日本欧洲亚洲| 亚洲一级片在线观看| 麻豆成人在线观看| 91在线视频官网| 日韩一级免费观看| 日本一区二区免费在线| 亚洲一区二区三区美女| 激情综合色综合久久| 99视频超级精品| 欧美一级理论片| 亚洲欧美日韩国产手机在线| 日本va欧美va瓶| 色综合天天狠狠| 欧美zozozo| 一区二区三区在线不卡| 国产一区二区在线视频| 91福利在线免费观看| 精品国产一区二区三区久久影院| 亚洲日本免费电影| 狠狠色狠狠色综合| 欧美在线观看视频在线| 久久久久久久综合狠狠综合| 亚洲第一会所有码转帖| 成人免费看视频| 欧美一区二区三区视频免费 | 久久成人免费日本黄色| 色噜噜狠狠色综合中国| 久久久国产午夜精品| 日本欧美大码aⅴ在线播放| 91片在线免费观看| 2020国产精品自拍| 日产欧产美韩系列久久99| 色悠悠亚洲一区二区| 久久久欧美精品sm网站| 日韩成人一区二区| 91九色02白丝porn| 中国av一区二区三区| 久草精品在线观看| 日韩一区二区电影在线| 亚洲午夜激情av| 91在线视频官网| 中文字幕亚洲综合久久菠萝蜜| 精品一区中文字幕| 67194成人在线观看| 亚洲国产日韩a在线播放性色| av电影在线观看一区| 国产亚洲一区二区三区四区| 美腿丝袜亚洲三区| 欧美一区二区三区的| 亚洲成av人影院| 欧美人与z0zoxxxx视频| 一区二区三区美女| 91精品福利视频| 亚洲乱码中文字幕| 在线免费观看日本一区| 亚洲欧美视频一区| 91麻豆文化传媒在线观看| 中文字幕中文乱码欧美一区二区 | 91福利社在线观看| 亚洲色图.com| 色乱码一区二区三区88| 亚洲女人****多毛耸耸8| 99国产精品一区| 亚洲视频 欧洲视频| 91国偷自产一区二区三区成为亚洲经典 | 欧美色男人天堂| 午夜成人免费视频| 日韩亚洲欧美高清| 国产美女视频一区| 亚洲国产成人午夜在线一区| 成人精品在线视频观看| 国产精品久久久久久久久图文区 | 99精品视频一区| 亚洲日穴在线视频| 欧美亚洲另类激情小说| 性感美女极品91精品| 日韩一区二区三区视频在线| 国产制服丝袜一区| 中文无字幕一区二区三区| 97精品久久久午夜一区二区三区 | 日本不卡高清视频| 精品久久久久久久人人人人传媒 | 国产午夜精品一区二区三区四区| 国产999精品久久久久久绿帽| 自拍偷在线精品自拍偷无码专区| 91成人看片片| 免费观看成人av| 久久久久国产精品免费免费搜索| 国产91精品一区二区麻豆网站| 亚洲男同性视频| 日韩精品中文字幕在线不卡尤物| 国产剧情av麻豆香蕉精品|