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

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

?? elf32-arm.h

?? 基于4個mips核的noc設計
?? H
?? 第 1 頁 / 共 5 頁
字號:
  /* Now go back and fix up the original BL insn to point     to here.  */  ret_offset =    s->output_offset    + my_offset    - (input_section->output_offset       + offset + addend)    - 8;  tmp = bfd_get_32 (input_bfd, hit_data		    - input_section->vma);  bfd_put_32 (output_bfd,	      insert_thumb_branch (tmp, ret_offset),	      hit_data - input_section->vma);  return true;}/* Arm code calling a Thumb function.  */static intelf32_arm_to_thumb_stub (info, name, input_bfd, output_bfd, input_section,			 hit_data, sym_sec, offset, addend, val)     struct bfd_link_info * info;     const char *           name;     bfd *                  input_bfd;     bfd *                  output_bfd;     asection *             input_section;     bfd_byte *             hit_data;     asection *             sym_sec;     bfd_vma                offset;     bfd_signed_vma         addend;     bfd_vma                val;{  unsigned long int tmp;  long int my_offset;  asection * s;  long int ret_offset;  struct elf_link_hash_entry * myh;  struct elf32_arm_link_hash_table * globals;  myh = find_arm_glue (info, name, input_bfd);  if (myh == NULL)    return false;  globals = elf32_arm_hash_table (info);  BFD_ASSERT (globals != NULL);  BFD_ASSERT (globals->bfd_of_glue_owner != NULL);  my_offset = myh->root.u.def.value;  s = bfd_get_section_by_name (globals->bfd_of_glue_owner,			       ARM2THUMB_GLUE_SECTION_NAME);  BFD_ASSERT (s != NULL);  BFD_ASSERT (s->contents != NULL);  BFD_ASSERT (s->output_section != NULL);  if ((my_offset & 0x01) == 0x01)    {      if (sym_sec != NULL	  && sym_sec->owner != NULL	  && !INTERWORK_FLAG (sym_sec->owner))	{	  _bfd_error_handler	    (_("%s(%s): warning: interworking not enabled."),	     bfd_get_filename (sym_sec->owner), name);	  _bfd_error_handler	    (_("  first occurrence: %s: arm call to thumb"),	     bfd_get_filename (input_bfd));	}      --my_offset;      myh->root.u.def.value = my_offset;      bfd_put_32 (output_bfd, a2t1_ldr_insn,		  s->contents + my_offset);      bfd_put_32 (output_bfd, a2t2_bx_r12_insn,		  s->contents + my_offset + 4);      /* It's a thumb address.  Add the low order bit.  */      bfd_put_32 (output_bfd, val | a2t3_func_addr_insn,		  s->contents + my_offset + 8);    }  BFD_ASSERT (my_offset <= globals->arm_glue_size);  tmp = bfd_get_32 (input_bfd, hit_data);  tmp = tmp & 0xFF000000;  /* Somehow these are both 4 too far, so subtract 8.  */  ret_offset = s->output_offset    + my_offset    + s->output_section->vma    - (input_section->output_offset       + input_section->output_section->vma       + offset + addend)    - 8;  tmp = tmp | ((ret_offset >> 2) & 0x00FFFFFF);  bfd_put_32 (output_bfd, tmp, hit_data	      - input_section->vma);  return true;}/* Perform a relocation as part of a final link.  */static bfd_reloc_status_typeelf32_arm_final_link_relocate (howto, input_bfd, output_bfd,			       input_section, contents, rel, value,			       info, sym_sec, sym_name, sym_flags, h)     reloc_howto_type *     howto;     bfd *                  input_bfd;     bfd *                  output_bfd;     asection *             input_section;     bfd_byte *             contents;     Elf_Internal_Rela *    rel;     bfd_vma                value;     struct bfd_link_info * info;     asection *             sym_sec;     const char *           sym_name;     unsigned char          sym_flags;     struct elf_link_hash_entry * h;{  unsigned long                 r_type = howto->type;  unsigned long                 r_symndx;  bfd_byte *                    hit_data = contents + rel->r_offset;  bfd *                         dynobj = NULL;  Elf_Internal_Shdr *           symtab_hdr;  struct elf_link_hash_entry ** sym_hashes;  bfd_vma *                     local_got_offsets;  asection *                    sgot = NULL;  asection *                    splt = NULL;  asection *                    sreloc = NULL;  bfd_vma                       addend;  bfd_signed_vma                signed_addend;  struct elf32_arm_link_hash_table * globals;  /* If the start address has been set, then set the EF_ARM_HASENTRY     flag.  Setting this more than once is redundant, but the cost is     not too high, and it keeps the code simple.          The test is done  here, rather than somewhere else, because the     start address is only set just before the final link commences.     Note - if the user deliberately sets a start address of 0, the     flag will not be set.  */  if (bfd_get_start_address (output_bfd) != 0)    elf_elfheader (output_bfd)->e_flags |= EF_ARM_HASENTRY;        globals = elf32_arm_hash_table (info);  dynobj = elf_hash_table (info)->dynobj;  if (dynobj)    {      sgot = bfd_get_section_by_name (dynobj, ".got");      splt = bfd_get_section_by_name (dynobj, ".plt");    }  symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr;  sym_hashes = elf_sym_hashes (input_bfd);  local_got_offsets = elf_local_got_offsets (input_bfd);  r_symndx = ELF32_R_SYM (rel->r_info);#ifdef USE_REL  addend = bfd_get_32 (input_bfd, hit_data) & howto->src_mask;  if (addend & ((howto->src_mask + 1) >> 1))    {      signed_addend = -1;      signed_addend &= ~ howto->src_mask;      signed_addend |= addend;    }  else    signed_addend = addend;#else  addend = signed_addend = rel->r_addend;#endif  switch (r_type)    {    case R_ARM_NONE:      return bfd_reloc_ok;    case R_ARM_PC24:    case R_ARM_ABS32:    case R_ARM_REL32:#ifndef OLD_ARM_ABI    case R_ARM_XPC25:#endif      /* When generating a shared object, these relocations are copied	 into the output file to be resolved at run time.  */      if (info->shared	  && (r_type != R_ARM_PC24 	      || (h != NULL	          && h->dynindx != -1		  && (! info->symbolic		      || (h->elf_link_hash_flags			  & ELF_LINK_HASH_DEF_REGULAR) == 0))))	{	  Elf_Internal_Rel outrel;	  boolean skip, relocate;	  if (sreloc == NULL)	    {	      const char * name;	      name = (bfd_elf_string_from_elf_section		      (input_bfd,		       elf_elfheader (input_bfd)->e_shstrndx,		       elf_section_data (input_section)->rel_hdr.sh_name));	      if (name == NULL)		return bfd_reloc_notsupported;	      BFD_ASSERT (strncmp (name, ".rel", 4) == 0			  && strcmp (bfd_get_section_name (input_bfd,							   input_section),				     name + 4) == 0);	      sreloc = bfd_get_section_by_name (dynobj, name);	      BFD_ASSERT (sreloc != NULL);	    }	  skip = false;	  if (elf_section_data (input_section)->stab_info == NULL)	    outrel.r_offset = rel->r_offset;	  else	    {	      bfd_vma off;	      off = (_bfd_stab_section_offset		     (output_bfd, &elf_hash_table (info)->stab_info,		      input_section,		      & elf_section_data (input_section)->stab_info,		      rel->r_offset));	      if (off == (bfd_vma) -1)		skip = true;	      outrel.r_offset = off;	    }	  outrel.r_offset += (input_section->output_section->vma			      + input_section->output_offset);	  if (skip)	    {	      memset (&outrel, 0, sizeof outrel);	      relocate = false;	    }	  else if (r_type == R_ARM_PC24)	    {	      BFD_ASSERT (h != NULL && h->dynindx != -1);	      if ((input_section->flags & SEC_ALLOC) != 0)		relocate = false;	      else		relocate = true;	      outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_PC24);	    }	  else	    {	      if (h == NULL		  || ((info->symbolic || h->dynindx == -1)		      && (h->elf_link_hash_flags			  & ELF_LINK_HASH_DEF_REGULAR) != 0))		{		  relocate = true;		  outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE);		}	      else		{		  BFD_ASSERT (h->dynindx != -1);		  if ((input_section->flags & SEC_ALLOC) != 0)		    relocate = false;		  else		    relocate = true;		  outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_ABS32);		}	    }	  bfd_elf32_swap_reloc_out (output_bfd, &outrel,				    (((Elf32_External_Rel *)				      sreloc->contents)				     + sreloc->reloc_count));	  ++sreloc->reloc_count;	  /* If this reloc is against an external symbol, we do not want to	     fiddle with the addend.  Otherwise, we need to include the symbol	     value so that it becomes an addend for the dynamic reloc.  */	  if (! relocate)	    return bfd_reloc_ok;	  return _bfd_final_link_relocate (howto, input_bfd, input_section,					   contents, rel->r_offset, value,					   (bfd_vma) 0);	}      else switch (r_type)	{#ifndef OLD_ARM_ABI	case R_ARM_XPC25:	  /* Arm BLX instruction.  */#endif	case R_ARM_PC24:	  /* Arm B/BL instruction */#ifndef OLD_ARM_ABI	  if (r_type == R_ARM_XPC25)	    {	      /* Check for Arm calling Arm function.  */	      /* FIXME: Should we translate the instruction into a BL		 instruction instead ?  */	      if (sym_flags != STT_ARM_TFUNC)		_bfd_error_handler (_("\%s: Warning: Arm BLX instruction targets Arm function '%s'."),				    bfd_get_filename (input_bfd),				    h ? h->root.root.string : "(local)");	    }	  else#endif	    {	      /* Check for Arm calling Thumb function.  */	      if (sym_flags == STT_ARM_TFUNC)		{		  elf32_arm_to_thumb_stub (info, sym_name, input_bfd, output_bfd,					   input_section, hit_data, sym_sec, rel->r_offset,					   signed_addend, value);		  return bfd_reloc_ok;		}	    }	  if (   strcmp (bfd_get_target (input_bfd), "elf32-littlearm-oabi") == 0	      || strcmp (bfd_get_target (input_bfd), "elf32-bigarm-oabi") == 0)	    {	      /* The old way of doing things.  Trearing the addend as a		 byte sized field and adding in the pipeline offset.  */	      value -= (input_section->output_section->vma			+ input_section->output_offset);	      value -= rel->r_offset;	      value += addend;	      if (! globals->no_pipeline_knowledge)		value -= 8;	    }	  else	    {	      /* The ARM ELF ABI says that this reloc is computed as: S - P + A		 where:		  S is the address of the symbol in the relocation.		  P is address of the instruction being relocated.		  A is the addend (extracted from the instruction) in bytes.		 S is held in 'value'.		 P is the base address of the section containing the instruction		   plus the offset of the reloc into that section, ie:		     (input_section->output_section->vma +		      input_section->output_offset +		      rel->r_offset).		 A is the addend, converted into bytes, ie:		     (signed_addend * 4)		 Note: None of these operations have knowledge of the pipeline		 size of the processor, thus it is up to the assembler to encode		 this information into the addend.  */	      value -= (input_section->output_section->vma			+ input_section->output_offset);	      value -= rel->r_offset;	      value += (signed_addend << howto->size);	      /* Previous versions of this code also used to add in the pipeline		 offset here.  This is wrong because the linker is not supposed		 to know about such things, and one day it might change.  In order		 to support old binaries that need the old behaviour however, so		 we attempt to detect which ABI was used to create the reloc.  */	      if (! globals->no_pipeline_knowledge)		{		  Elf_Internal_Ehdr * i_ehdrp; /* Elf file header, internal form */		  i_ehdrp = elf_elfheader (input_bfd);		  if (i_ehdrp->e_ident[EI_OSABI] == 0)		    value -= 8;		}	    }	  signed_addend = value;	  signed_addend >>= howto->rightshift;	  /* It is not an error for an undefined weak reference to be	     out of range.  Any program that branches to such a symbol	     is going to crash anyway, so there is no point worrying	     about getting the destination exactly right.  */	  if (! h || h->root.type != bfd_link_hash_undefweak)	    {	      /* Perform a signed range check.  */	      if (   signed_addend >   ((bfd_signed_vma)  (howto->dst_mask >> 1))		  || signed_addend < - ((bfd_signed_vma) ((howto->dst_mask + 1) >> 1)))		return bfd_reloc_overflow;	    }#ifndef OLD_ARM_ABI	  /* If necessary set the H bit in the BLX instruction.  */	  if (r_type == R_ARM_XPC25 && ((value & 2) == 2))	    value = (signed_addend & howto->dst_mask)	      | (bfd_get_32 (input_bfd, hit_data) & (~ howto->dst_mask))	      | (1 << 24);	  else#endif	    value = (signed_addend & howto->dst_mask)	      | (bfd_get_32 (input_bfd, hit_data) & (~ howto->dst_mask));	  break;	case R_ARM_ABS32:	  value += addend;	  if (sym_flags == STT_ARM_TFUNC)	    value |= 1;	  break;	case R_ARM_REL32:	  value -= (input_section->output_section->vma		    + input_section->output_offset);	  value += addend;	  break;	}      bfd_put_32 (input_bfd, value, hit_data);      return bfd_reloc_ok;    case R_ARM_ABS8:      value += addend;      if ((long) value > 0x7f || (long) value < -0x80)	return bfd_reloc_overflow;      bfd_put_8 (input_bfd, value, hit_data);      return bfd_reloc_ok;    case R_ARM_ABS16:      value += addend;      if ((long) value > 0x7fff || (long) value < -0x8000)	return bfd_reloc_overflow;      bfd_put_16 (input_bfd, value, hit_data);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产夜色精品鲁鲁99| 黑人巨大精品欧美黑白配亚洲| 欧美日韩在线免费视频| 国产麻豆精品95视频| 一区二区免费在线播放| 久久人人爽人人爽| 91精品欧美一区二区三区综合在| 成人avav在线| 国产中文一区二区三区| 偷窥少妇高潮呻吟av久久免费| 国产欧美一区二区精品婷婷| 欧美日韩国产精品成人| 91麻豆高清视频| 国产不卡视频在线播放| 久久电影国产免费久久电影| 亚洲国产va精品久久久不卡综合| 国产精品国产精品国产专区不蜜| 精品国产a毛片| 欧美一级在线免费| 欧美图片一区二区三区| 91在线免费播放| 国产成人精品一区二区三区四区 | ㊣最新国产の精品bt伙计久久| 欧美一区二区女人| 色婷婷综合在线| 成人av午夜影院| 国产一区二区在线视频| 日韩成人av影视| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品久久久久久户外露出| 久久久久免费观看| 久久综合成人精品亚洲另类欧美 | 精品国产污污免费网站入口 | 欧美一级日韩免费不卡| 在线观看视频一区| 99久久精品情趣| av在线综合网| 国产成人精品网址| 国产成人一区在线| 国产成人av电影在线播放| 国产综合一区二区| 蜜臀久久99精品久久久画质超高清 | 91色.com| 色婷婷久久99综合精品jk白丝| www.一区二区| 99国产精品一区| 欧美优质美女网站| 欧美午夜在线一二页| 欧美日韩一区中文字幕| 欧美伦理电影网| 日韩欧美一区二区视频| 日韩一二三四区| 精品国产免费久久| 国产亚洲精品久| 国产精品毛片久久久久久久| 中文字幕一区二区三区蜜月| 亚洲人成精品久久久久| 亚洲高清免费观看| 久久国产福利国产秒拍| 国产91在线观看| 色综合久久综合| 欧美日本在线视频| 精品国产乱码91久久久久久网站| 欧美精品一区二区久久久| 国产精品久久久久毛片软件| 亚洲精品亚洲人成人网在线播放| 亚洲午夜一二三区视频| 狠狠色综合播放一区二区| 白白色 亚洲乱淫| 91久久精品一区二区三| 欧美一卡二卡三卡| 国产精品美女久久久久高潮| 亚洲综合色视频| 久久国产精品露脸对白| 成人的网站免费观看| 色综合久久88色综合天天 | 欧美三级电影在线看| 91精品福利在线一区二区三区| 久久久精品国产免费观看同学| 亚洲三级在线播放| 另类的小说在线视频另类成人小视频在线 | 欧美系列在线观看| 精品国产亚洲在线| 一区二区三区欧美久久| 久久国产综合精品| 91免费精品国自产拍在线不卡| 欧美夫妻性生活| 国产亚洲福利社区一区| 一级女性全黄久久生活片免费| 精品一区二区三区在线观看| 99久久婷婷国产综合精品| 欧美一区二区在线不卡| 国产精品女主播在线观看| 午夜精品福利一区二区蜜股av| 国产精品影视在线| 欧美日韩在线三级| 国产精品国模大尺度视频| 91色.com| 国产欧美日韩视频一区二区| 亚洲一区欧美一区| 成人性生交大片免费看中文| 欧美群妇大交群中文字幕| 国产精品午夜免费| 久久激情五月婷婷| 一本色道久久综合亚洲aⅴ蜜桃 | 色综合久久久久综合体| 精品三级在线看| 亚洲影院免费观看| 成人在线视频一区| 欧美videos大乳护士334| 亚洲国产三级在线| av午夜精品一区二区三区| 久久亚洲精华国产精华液| 午夜视黄欧洲亚洲| 91网站最新地址| 国产亚洲欧美日韩俺去了| 免费高清不卡av| 欧美人xxxx| 亚洲第一二三四区| 日本电影亚洲天堂一区| 国产精品久久久久天堂| 国产精品影视天天线| 26uuu国产在线精品一区二区| 天天亚洲美女在线视频| 91精品福利视频| 亚洲精品乱码久久久久久久久 | 久久婷婷色综合| 久久国产婷婷国产香蕉| 欧美大胆人体bbbb| 日韩精品一二三区| 欧美日韩不卡在线| 日韩精彩视频在线观看| 欧美日韩国产一级片| 亚洲一区二区四区蜜桃| 欧美综合天天夜夜久久| 一区二区日韩av| 欧美日韩国产高清一区二区| 亚洲国产视频a| 欧美日韩在线免费视频| 五月激情综合色| 91麻豆精品国产91久久久更新时间 | 精品制服美女久久| 精品久久久久久久一区二区蜜臀| 麻豆91在线播放免费| 精品国产91乱码一区二区三区| 久久99深爱久久99精品| 久久婷婷色综合| 成人精品视频一区二区三区尤物| 中文字幕第一页久久| yourporn久久国产精品| 亚洲综合无码一区二区| 91精品国产品国语在线不卡| 免费不卡在线视频| 久久久久久久网| 9l国产精品久久久久麻豆| 亚洲色图欧洲色图| 欧美伦理影视网| 国产一区日韩二区欧美三区| 国产日韩欧美综合一区| 99re热视频精品| 婷婷综合在线观看| 日韩精品自拍偷拍| 成人高清av在线| 亚洲国产精品久久一线不卡| 日韩视频一区在线观看| 国产成人综合网站| 一区二区三区四区激情| 3d动漫精品啪啪| 国产成人精品免费| 亚洲香蕉伊在人在线观| 精品国产乱码久久久久久蜜臀| 国产xxx精品视频大全| 亚洲综合激情小说| 精品国产一区二区在线观看| a级高清视频欧美日韩| 亚洲成av人片在线观看| 精品日韩一区二区三区| 99re热视频精品| 精品一区二区三区久久| 亚洲欧美一区二区三区极速播放 | 中文字幕一区二区不卡 | 欧美精品xxxxbbbb| 国产91精品露脸国语对白| 亚洲成人免费av| 欧美国产1区2区| 欧美一区二区视频观看视频| 国产69精品一区二区亚洲孕妇| 亚洲成a人v欧美综合天堂下载| 国产日韩高清在线| 欧美日韩亚洲综合一区 | 日韩欧美国产综合| 在线观看免费一区| 国产成人啪午夜精品网站男同| 亚洲午夜av在线| 日本一区二区三区四区| 播五月开心婷婷综合| 天堂午夜影视日韩欧美一区二区| 日韩午夜小视频| 91丨porny丨户外露出| 久久精品国产一区二区|