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

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

?? tc-avr.c

?? 基于4個mips核的noc設計
?? C
?? 第 1 頁 / 共 3 頁
字號:
    {      /* Fetch the instruction, insert the fully resolved operand	 value, and stuff the instruction back again.  */      where = fixp->fx_frag->fr_literal + fixp->fx_where;      insn = bfd_getl16 (where);      switch (fixp->fx_r_type)	{	case BFD_RELOC_AVR_7_PCREL:	  if (value & 1)	    as_bad_where (fixp->fx_file, fixp->fx_line,			  _("odd address operand: %ld"), value);	  /* Instruction addresses are always right-shifted by 1.  */	  value >>= 1;	  --value;			/* Correct PC.  */	  if (value < -64 || value > 63)	    as_bad_where (fixp->fx_file, fixp->fx_line,			  _("operand out of range: %ld"), value);	  value = (value << 3) & 0x3f8;	  bfd_putl16 ((bfd_vma) (value | insn), where);	  break;	case BFD_RELOC_AVR_13_PCREL:	  if (value & 1)	    as_bad_where (fixp->fx_file, fixp->fx_line,			  _("odd address operand: %ld"), value);	  /* Instruction addresses are always right-shifted by 1.  */	  value >>= 1;	  --value;			/* Correct PC.  */	  if (value < -2048 || value > 2047)	    {	      /* No wrap for devices with >8K of program memory.  */	      if ((avr_mcu->isa & AVR_ISA_MEGA) || avr_opt.no_wrap)		as_bad_where (fixp->fx_file, fixp->fx_line,			      _("operand out of range: %ld"), value);	    }	  value &= 0xfff;	  bfd_putl16 ((bfd_vma) (value | insn), where);	  break;	case BFD_RELOC_32:	  bfd_putl16 ((bfd_vma) value, where);	  break;	case BFD_RELOC_16:	  bfd_putl16 ((bfd_vma) value, where);	  break;	case BFD_RELOC_AVR_16_PM:	  bfd_putl16 ((bfd_vma) (value >> 1), where);	  break;	case BFD_RELOC_AVR_LO8_LDI:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value), where);	  break;	case -BFD_RELOC_AVR_LO8_LDI:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 16), where);	  break;	case BFD_RELOC_AVR_HI8_LDI:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 8), where);	  break;	case -BFD_RELOC_AVR_HI8_LDI:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 24), where);	  break;	case BFD_RELOC_AVR_HH8_LDI:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 16), where);	  break;	case BFD_RELOC_AVR_LO8_LDI_NEG:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value), where);	  break;	case -BFD_RELOC_AVR_LO8_LDI_NEG:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 16), where);	  break;	case BFD_RELOC_AVR_HI8_LDI_NEG:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 8), where);	  break;	case -BFD_RELOC_AVR_HI8_LDI_NEG:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 24), where);	  break;	case BFD_RELOC_AVR_HH8_LDI_NEG:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 16), where);	  break;	case BFD_RELOC_AVR_LO8_LDI_PM:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 1), where);	  break;	case BFD_RELOC_AVR_HI8_LDI_PM:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 9), where);	  break;	case BFD_RELOC_AVR_HH8_LDI_PM:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 17), where);	  break;	case BFD_RELOC_AVR_LO8_LDI_PM_NEG:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 1), where);	  break;	case BFD_RELOC_AVR_HI8_LDI_PM_NEG:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 9), where);	  break;	case BFD_RELOC_AVR_HH8_LDI_PM_NEG:	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 17), where);	  break;	case BFD_RELOC_AVR_CALL:	  {	    unsigned long x;	    x = bfd_getl16 (where);	    if (value & 1)	      as_bad_where (fixp->fx_file, fixp->fx_line,			    _("odd address operand: %ld"), value);	    value >>= 1;	    x |= ((value & 0x10000) | ((value << 3) & 0x1f00000)) >> 16;	    bfd_putl16 ((bfd_vma) x, where);	    bfd_putl16 ((bfd_vma) (value & 0xffff), where + 2);	  }	  break;	default:	  as_fatal (_("line %d: unknown relocation type: 0x%x"),		    fixp->fx_line, fixp->fx_r_type);	  break;	}    }  else    {      switch (fixp->fx_r_type)	{	case -BFD_RELOC_AVR_HI8_LDI_NEG:	case -BFD_RELOC_AVR_HI8_LDI:	case -BFD_RELOC_AVR_LO8_LDI_NEG:	case -BFD_RELOC_AVR_LO8_LDI:	  as_bad_where (fixp->fx_file, fixp->fx_line,			_("only constant expression allowed"));	  fixp->fx_done = 1;	  break;	default:	  break;	}      fixp->fx_addnumber = value;    }  return 0;}/* A `BFD_ASSEMBLER' GAS will call this to generate a reloc.  GAS   will pass the resulting reloc to `bfd_install_relocation'.  This   currently works poorly, as `bfd_install_relocation' often does the   wrong thing, and instances of `tc_gen_reloc' have been written to   work around the problems, which in turns makes it difficult to fix   `bfd_install_relocation'.  *//* If while processing a fixup, a reloc really needs to be created   then it is done here.  */arelent *tc_gen_reloc (seg, fixp)     asection *seg ATTRIBUTE_UNUSED;     fixS *fixp;{  arelent *reloc;  reloc = (arelent *) xmalloc (sizeof (arelent));  reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));  *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);  reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;  reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);  if (reloc->howto == (reloc_howto_type *) NULL)    {      as_bad_where (fixp->fx_file, fixp->fx_line,		    _("reloc %d not supported by object file format"),		    (int) fixp->fx_r_type);      return NULL;    }  if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT      || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY)    reloc->address = fixp->fx_offset;  reloc->addend = fixp->fx_offset;  return reloc;}voidmd_assemble (str)     char *str;{  struct avr_opcodes_s *opcode;  char op[11];  str = skip_space (extract_word (str, op, sizeof (op)));  if (!op[0])    as_bad (_("can't find opcode "));  opcode = (struct avr_opcodes_s *) hash_find (avr_hash, op);  if (opcode == NULL)    {      as_bad (_("unknown opcode `%s'"), op);      return;    }  /* Special case for opcodes with optional operands (lpm, elpm) -     version with operands exists in avr_opcodes[] in the next entry.  */  if (*str && *opcode->constraints == '?')    ++opcode;  if (!avr_opt.all_opcodes && (opcode->isa & avr_mcu->isa) != opcode->isa)    as_bad (_("illegal opcode %s for mcu %s"), opcode->name, avr_mcu->name);  /* We used to set input_line_pointer to the result of get_operands,     but that is wrong.  Our caller assumes we don't change it.  */  {    char *t = input_line_pointer;    avr_operands (opcode, &str);    if (*skip_space (str))      as_bad (_("garbage at end of line"));    input_line_pointer = t;  }}/* Parse ordinary expression.  */static char *parse_exp (s, op)     char *s;     expressionS *op;{  input_line_pointer = s;  expression (op);  if (op->X_op == O_absent)    as_bad (_("missing operand"));  return input_line_pointer;}/* Parse special expressions (needed for LDI command):   xx8 (address)   xx8 (-address)   pm_xx8 (address)   pm_xx8 (-address)   where xx is: hh, hi, lo.  */static bfd_reloc_code_real_typeavr_ldi_expression (exp)     expressionS *exp;{  char *str = input_line_pointer;  char *tmp;  char op[8];  int mod;  tmp = str;  str = extract_word (str, op, sizeof (op));  if (op[0])    {      mod = (int) hash_find (avr_mod_hash, op);      if (mod)	{	  int closes = 0;	  mod -= 10;	  str = skip_space (str);	  if (*str == '(')	    {	      int neg_p = 0;	      ++str;	      if (strncmp ("pm(", str, 3) == 0		  || strncmp ("-(pm(", str, 5) == 0)		{		  if (HAVE_PM_P (mod))		    {		      ++mod;		      ++closes;		    }		  else		    as_bad (_("illegal expression"));		  if (*str == '-')		    {		      neg_p = 1;		      ++closes;		      str += 5;		    }		  else		    str += 3;		}	      if (*str == '-' && *(str + 1) == '(')		{		  neg_p ^= 1;		  ++closes;		  str += 2;		}	      input_line_pointer = str;	      expression (exp);	      do		{		  if (*input_line_pointer != ')')		    {		      as_bad (_("`)' required"));		      break;		    }		  input_line_pointer++;		}	      while (closes--);	      return neg_p ? EXP_MOD_NEG_RELOC (mod) : EXP_MOD_RELOC (mod);	    }	}    }  input_line_pointer = tmp;  expression (exp);  /* Warn about expressions that fail to use lo8 ().  */  if (exp->X_op == O_constant)    {      int x = exp->X_add_number;      if (x < -255 || x > 255)	as_warn (_("constant out of 8-bit range: %d"), x);    }  else    as_warn (_("expression possibly out of 8-bit range"));  return BFD_RELOC_AVR_LO8_LDI;}/* Flag to pass `pm' mode between `avr_parse_cons_expression' and   `avr_cons_fix_new'.  */static int exp_mod_pm = 0;/* Parse special CONS expression: pm (expression)   which is used for addressing to a program memory.   Relocation: BFD_RELOC_AVR_16_PM.  */voidavr_parse_cons_expression (exp, nbytes)     expressionS *exp;     int nbytes;{  char *tmp;  exp_mod_pm = 0;  tmp = input_line_pointer = skip_space (input_line_pointer);  if (nbytes == 2)    {      char *pm_name = "pm";      int len = strlen (pm_name);      if (strncasecmp (input_line_pointer, pm_name, len) == 0)	{	  input_line_pointer = skip_space (input_line_pointer + len);	  if (*input_line_pointer == '(')	    {	      input_line_pointer = skip_space (input_line_pointer + 1);	      exp_mod_pm = 1;	      expression (exp);	      if (*input_line_pointer == ')')		++input_line_pointer;	      else		{		  as_bad (_("`)' required"));		  exp_mod_pm = 0;		}	      return;	    }	  input_line_pointer = tmp;	}    }  expression (exp);}voidavr_cons_fix_new (frag, where, nbytes, exp)     fragS *frag;     int where;     int nbytes;     expressionS *exp;{  if (exp_mod_pm == 0)    {      if (nbytes == 2)	fix_new_exp (frag, where, nbytes, exp, false, BFD_RELOC_16);      else if (nbytes == 4)	fix_new_exp (frag, where, nbytes, exp, false, BFD_RELOC_32);      else	as_bad (_("illegal %srelocation size: %d"), "", nbytes);    }  else    {      if (nbytes == 2)	fix_new_exp (frag, where, nbytes, exp, false, BFD_RELOC_AVR_16_PM);      else	as_bad (_("illegal %srelocation size: %d"), "`pm' ", nbytes);      exp_mod_pm = 0;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲aⅴ怡春院| 午夜精品久久久久影视| 国产精品久久久久婷婷| 国产精品视频一二三区| 亚洲精品视频免费看| 亚洲成av人片| 国产麻豆精品久久一二三| 国产成人一区在线| 欧美在线观看视频在线| 日韩欧美亚洲国产精品字幕久久久| 久久久影院官网| 亚洲色图欧美偷拍| 美女视频黄免费的久久 | 91在线精品一区二区| 欧美日韩一区国产| 久久久久久久久久久黄色| 亚洲免费在线视频一区 二区| 日韩精品电影一区亚洲| 成人午夜精品在线| 欧美色国产精品| 欧美国产精品一区二区| 手机精品视频在线观看| 成人午夜视频免费看| 在线91免费看| 中文字幕字幕中文在线中不卡视频| 五月天精品一区二区三区| 成人午夜av电影| 4438x亚洲最大成人网| 中文字幕亚洲一区二区va在线| 天堂av在线一区| jiyouzz国产精品久久| 日韩欧美成人午夜| 亚洲一区二区三区四区的| 国产精品18久久久久久久久久久久| 在线观看日韩av先锋影音电影院| 久久综合久久综合九色| 亚洲va国产天堂va久久en| 从欧美一区二区三区| 日韩欧美一级二级三级| 亚洲成年人网站在线观看| 91网站黄www| 国产亚洲欧美日韩俺去了| 日本不卡在线视频| 在线看日本不卡| 国产精品久久久久久久久搜平片 | 色狠狠色狠狠综合| 久久丝袜美腿综合| 日本亚洲视频在线| 欧美中文字幕不卡| 中文字幕亚洲欧美在线不卡| 国产伦精品一区二区三区免费| 欧美日韩精品电影| 欧美日韩精品电影| 亚洲女女做受ⅹxx高潮| 成人黄色大片在线观看| 久久综合色一综合色88| 蜜桃精品视频在线观看| 欧美人与禽zozo性伦| 亚洲激情五月婷婷| 99精品久久只有精品| 色哟哟精品一区| 国产精品成人一区二区三区夜夜夜| 韩国成人精品a∨在线观看| 欧美精品高清视频| 亚洲亚洲精品在线观看| 91久久精品一区二区| 亚洲欧美一区二区三区极速播放 | 国产精品午夜电影| 国产成人亚洲综合色影视| 欧美变态凌虐bdsm| 秋霞影院一区二区| 日韩一区二区麻豆国产| 日韩不卡在线观看日韩不卡视频| 欧美色手机在线观看| 亚洲自拍欧美精品| 欧美色网一区二区| 亚洲不卡一区二区三区| 欧美日韩精品一区视频| 亚洲高清三级视频| 欧美区视频在线观看| 日韩精品福利网| 日韩美女主播在线视频一区二区三区| 午夜欧美在线一二页| 国产精品一区在线| 国产精品全国免费观看高清| 成人性生交大片免费看视频在线 | 精品影视av免费| 精品福利二区三区| 国产一区91精品张津瑜| 国产欧美一区二区三区在线看蜜臀| 粉嫩嫩av羞羞动漫久久久 | 国产电影一区在线| 欧美日韩久久一区二区| 视频一区二区三区入口| 4438x亚洲最大成人网| 国内精品免费**视频| 国产片一区二区| 99vv1com这只有精品| 成人免费在线播放视频| 欧美性生活大片视频| 日韩国产在线一| 久久亚洲免费视频| 99视频超级精品| 亚洲18色成人| 精品久久久久久最新网址| 风间由美一区二区三区在线观看| 亚洲视频免费在线观看| 欧美男女性生活在线直播观看| 国产精品久久久久精k8| 在线观看国产精品网站| 免费三级欧美电影| 国产精品无人区| 欧美日韩一区二区三区四区五区| 老汉av免费一区二区三区| 欧美精彩视频一区二区三区| 91福利在线播放| 美国三级日本三级久久99| 国产精品热久久久久夜色精品三区| 欧美性欧美巨大黑白大战| 久久狠狠亚洲综合| 欧美精品高清视频| 成人午夜短视频| 天堂蜜桃91精品| 国产日韩欧美制服另类| 色综合久久99| 中文字幕亚洲精品在线观看| 欧美一区二区三区播放老司机| 国产成人免费xxxxxxxx| 亚洲国产日韩一区二区| 亚洲精品一区二区三区蜜桃下载| 91片在线免费观看| 麻豆视频一区二区| 伊人婷婷欧美激情| 精品裸体舞一区二区三区| 色视频欧美一区二区三区| 免费欧美日韩国产三级电影| 久久亚洲综合av| 欧美日韩在线一区二区| 国产传媒久久文化传媒| 午夜精品久久久久久久99水蜜桃| 日本一区二区成人| 欧美精品少妇一区二区三区| 不卡的电视剧免费网站有什么| 国产欧美视频在线观看| 欧美精品xxxxbbbb| www..com久久爱| 精品在线视频一区| 日韩专区中文字幕一区二区| 国产精品国产精品国产专区不片| 日韩三级中文字幕| 在线观看免费成人| 懂色中文一区二区在线播放| 日本视频在线一区| 又紧又大又爽精品一区二区| 日本一区二区三区dvd视频在线| 日韩欧美久久久| 欧美午夜精品一区二区蜜桃 | 最好看的中文字幕久久| 欧美tk丨vk视频| 91精品国产综合久久久久久久| 色综合中文字幕国产 | av电影一区二区| 国产一区二区三区在线看麻豆| 日韩精品乱码av一区二区| 一区二区在线观看视频| 亚洲国产成人一区二区三区| 精品奇米国产一区二区三区| 欧美放荡的少妇| 欧美日韩在线播放三区| 91在线小视频| 99久久99久久精品免费看蜜桃| 精品一区二区三区在线观看国产| 午夜精品视频一区| 一区二区三区不卡视频在线观看| 国产精品第13页| 国产精品美女久久久久久2018| 久久久亚洲精品一区二区三区| 欧美一区二区三区视频免费| 欧美精品丝袜中出| 国产高清不卡一区二区| 国内一区二区在线| 麻豆免费看一区二区三区| 日本91福利区| 美女性感视频久久| 美女尤物国产一区| 国产自产2019最新不卡| 青青草97国产精品免费观看无弹窗版 | 亚洲国产精品久久一线不卡| 亚洲永久精品大片| 亚洲在线观看免费视频| 亚洲午夜久久久| 亚洲电影在线播放| 亚洲va国产va欧美va观看| 日韩在线一二三区| 久久国产精品一区二区| 久久国产福利国产秒拍| 国产精品自产自拍| 丁香一区二区三区| 99国产精品99久久久久久| 欧美性色aⅴ视频一区日韩精品|