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

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

?? dl-machine.h

?? glibc2.5版源代碼
?? H
?? 第 1 頁 / 共 2 頁
字號:
	add	%sp, 23*4, %o2\n\	orcc	%o0, %lo(_rtld_local), %o0\n\	sll	%i5, 2, %o3\n\	ld	[%l7+%o0], %o0\n\	add	%o3, 4, %o3\n\	mov	%i5, %o1\n\	add	%o2, %o3, %o3\n\	call	_dl_init_internal\n\	 ld	[%o0], %o0\n\  /* Pass our finalizer function to the user in %g1.  */\n\	sethi	%hi(_dl_fini), %g1\n\	or	%g1, %lo(_dl_fini), %g1\n\	ld	[%l7+%g1], %g1\n\  /* Jump to the user's entry point and deallocate the extra stack we got.  */\n\	jmp	%l0\n\	 add	%sp, 6*4, %sp\n\	.size   _dl_start_user, . - _dl_start_user\n\	.previous");static inline Elf32_Addrsparc_fixup_plt (const Elf32_Rela *reloc, Elf32_Addr *reloc_addr,		 Elf32_Addr value, int t){  Elf32_Sword disp = value - (Elf32_Addr) reloc_addr;#ifndef RTLD_BOOTSTRAP  /* Note that we don't mask the hwcap here, as the flush is essential to     functionality on those cpu's that implement it.  */  int do_flush = GLRO(dl_hwcap) & HWCAP_SPARC_FLUSH;#else  /* Unfortunately, this is necessary, so that we can ensure     ld.so will not execute corrupt PLT entry instructions. */  const int do_flush = 1;#endif  if (0 && disp >= -0x800000 && disp < 0x800000)    {      /* Don't need to worry about thread safety. We're writing just one	 instruction.  */      reloc_addr[0] = OPCODE_BA | ((disp >> 2) & 0x3fffff);      if (do_flush)	__asm __volatile ("flush %0" : : "r"(reloc_addr));    }  else    {      /* For thread safety, write the instructions from the bottom and	 flush before we overwrite the critical "b,a".  This of course	 need not be done during bootstrapping, since there are no threads.	 But we also can't tell if we _can_ use flush, so don't. */      reloc_addr += t;      reloc_addr[1] = OPCODE_JMP_G1 | (value & 0x3ff);      if (do_flush)	__asm __volatile ("flush %0+4" : : "r"(reloc_addr));      reloc_addr[0] = OPCODE_SETHI_G1 | (value >> 10);      if (do_flush)	__asm __volatile ("flush %0" : : "r"(reloc_addr));    }  return value;}static inline Elf32_Addrelf_machine_fixup_plt (struct link_map *map, lookup_t t,		       const Elf32_Rela *reloc,		       Elf32_Addr *reloc_addr, Elf32_Addr value){  return sparc_fixup_plt (reloc, reloc_addr, value, 1);}/* Return the final value of a plt relocation.  */static inline Elf32_Addrelf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,		       Elf32_Addr value){  return value + reloc->r_addend;}#endif /* dl_machine_h */#define ARCH_LA_PLTENTER	sparc32_gnu_pltenter#define ARCH_LA_PLTEXIT		sparc32_gnu_pltexit#ifdef RESOLVE_MAP/* Perform the relocation specified by RELOC and SYM (which is fully resolved).   MAP is the object containing the reloc.  */auto inline void__attribute__ ((always_inline))elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,		  const Elf32_Sym *sym, const struct r_found_version *version,		  void *const reloc_addr_arg){  Elf32_Addr *const reloc_addr = reloc_addr_arg;  const Elf32_Sym *const refsym = sym;  Elf32_Addr value;  const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);  struct link_map *sym_map = NULL;#if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC  /* This is defined in rtld.c, but nowhere in the static libc.a; make the     reference weak so static programs can still link.  This declaration     cannot be done when compiling rtld.c (i.e.  #ifdef RTLD_BOOTSTRAP)     because rtld.c contains the common defn for _dl_rtld_map, which is     incompatible with a weak decl in the same file.  */  weak_extern (_dl_rtld_map);#endif  if (__builtin_expect (r_type == R_SPARC_NONE, 0))    return;#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC  if (__builtin_expect (r_type == R_SPARC_RELATIVE, 0))    {# if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC      if (map != &_dl_rtld_map) /* Already done in rtld itself. */# endif	*reloc_addr += map->l_addr + reloc->r_addend;      return;    }#endif#ifndef RESOLVE_CONFLICT_FIND_MAP  if (__builtin_expect (ELF32_ST_BIND (sym->st_info) == STB_LOCAL, 0)      && sym->st_shndx != SHN_UNDEF)    {      value = map->l_addr;    }  else    {      sym_map = RESOLVE_MAP (&sym, version, r_type);      value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;    }#else  value = 0;#endif  value += reloc->r_addend;	/* Assume copy relocs have zero addend.  */  switch (r_type)    {#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP    case R_SPARC_COPY:      if (sym == NULL)	/* This can happen in trace mode if an object could not be	   found.  */	break;      if (sym->st_size > refsym->st_size	  || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))	{	  const char *strtab;	  strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);	  _dl_error_printf ("\%s: Symbol `%s' has different size in shared object, consider re-linking\n",			    rtld_progname ?: "<program name unknown>",			    strtab + refsym->st_name);	}      memcpy (reloc_addr_arg, (void *) value,	      MIN (sym->st_size, refsym->st_size));      break;#endif    case R_SPARC_GLOB_DAT:    case R_SPARC_32:      *reloc_addr = value;      break;    case R_SPARC_JMP_SLOT:      /* At this point we don't need to bother with thread safety,	 so we can optimize the first instruction of .plt out.  */      sparc_fixup_plt (reloc, reloc_addr, value, 0);      break;#if defined USE_TLS && (!defined RTLD_BOOTSTRAP || USE___THREAD) \    && !defined RESOLVE_CONFLICT_FIND_MAP    case R_SPARC_TLS_DTPMOD32:      /* Get the information from the link map returned by the	 resolv function.  */      if (sym_map != NULL)	*reloc_addr = sym_map->l_tls_modid;      break;    case R_SPARC_TLS_DTPOFF32:      /* During relocation all TLS symbols are defined and used.	 Therefore the offset is already correct.  */      *reloc_addr = (sym == NULL ? 0 : sym->st_value) + reloc->r_addend;      break;    case R_SPARC_TLS_TPOFF32:      /* The offset is negative, forward from the thread pointer.  */      /* We know the offset of object the symbol is contained in.	 It is a negative value which will be added to the	 thread pointer.  */      if (sym != NULL)	{	  CHECK_STATIC_TLS (map, sym_map);	  *reloc_addr = sym->st_value - sym_map->l_tls_offset	    + reloc->r_addend;	}      break;# ifndef RTLD_BOOTSTRAP    case R_SPARC_TLS_LE_HIX22:    case R_SPARC_TLS_LE_LOX10:      if (sym != NULL)	{	  CHECK_STATIC_TLS (map, sym_map);	  value = sym->st_value - sym_map->l_tls_offset	    + reloc->r_addend;	  if (r_type == R_SPARC_TLS_LE_HIX22)	    *reloc_addr = (*reloc_addr & 0xffc00000) | ((~value) >> 10);	  else	    *reloc_addr = (*reloc_addr & 0xffffe000) | (value & 0x3ff)	      | 0x1c00;	}      break;# endif#endif#ifndef RTLD_BOOTSTRAP    case R_SPARC_8:      *(char *) reloc_addr = value;      break;    case R_SPARC_16:      *(short *) reloc_addr = value;      break;    case R_SPARC_DISP8:      *(char *) reloc_addr = (value - (Elf32_Addr) reloc_addr);      break;    case R_SPARC_DISP16:      *(short *) reloc_addr = (value - (Elf32_Addr) reloc_addr);      break;    case R_SPARC_DISP32:      *reloc_addr = (value - (Elf32_Addr) reloc_addr);      break;    case R_SPARC_LO10:      *reloc_addr = (*reloc_addr & ~0x3ff) | (value & 0x3ff);      break;    case R_SPARC_WDISP30:      *reloc_addr = ((*reloc_addr & 0xc0000000)		     | ((value - (unsigned int) reloc_addr) >> 2));      break;    case R_SPARC_HI22:      *reloc_addr = (*reloc_addr & 0xffc00000) | (value >> 10);      break;    case R_SPARC_UA16:      ((unsigned char *) reloc_addr_arg) [0] = value >> 8;      ((unsigned char *) reloc_addr_arg) [1] = value;      break;    case R_SPARC_UA32:      ((unsigned char *) reloc_addr_arg) [0] = value >> 24;      ((unsigned char *) reloc_addr_arg) [1] = value >> 16;      ((unsigned char *) reloc_addr_arg) [2] = value >> 8;      ((unsigned char *) reloc_addr_arg) [3] = value;      break;#endif#if !defined RTLD_BOOTSTRAP || defined _NDEBUG    default:      _dl_reloc_bad_type (map, r_type, 0);      break;#endif    }}auto inline void__attribute__ ((always_inline))elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,			   void *const reloc_addr_arg){  Elf32_Addr *const reloc_addr = reloc_addr_arg;  *reloc_addr += l_addr + reloc->r_addend;}auto inline void__attribute__ ((always_inline))elf_machine_lazy_rel (struct link_map *map,		      Elf32_Addr l_addr, const Elf32_Rela *reloc){  switch (ELF32_R_TYPE (reloc->r_info))    {    case R_SPARC_NONE:      break;    case R_SPARC_JMP_SLOT:      break;    default:      _dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 1);      break;    }}#endif	/* RESOLVE_MAP */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人不卡免费av| 日韩一区国产二区欧美三区| 欧美绝品在线观看成人午夜影视| 日韩一区二区免费在线电影| 中文字幕一区日韩精品欧美| 久久99久久久久| 欧洲精品一区二区三区在线观看| 国产香蕉久久精品综合网| 亚瑟在线精品视频| 91免费国产在线观看| 国产欧美日韩三级| 裸体在线国模精品偷拍| 欧美午夜精品久久久| 亚洲欧美综合在线精品| 国产成人精品三级| 精品国产乱码久久久久久影片| 亚洲午夜在线观看视频在线| 色综合天天做天天爱| 欧美—级在线免费片| 国精产品一区一区三区mba视频| 欧美精品丝袜中出| 午夜视频一区二区三区| 在线视频国内一区二区| 亚洲欧美色图小说| 色丁香久综合在线久综合在线观看| 亚洲国产岛国毛片在线| 国产成人在线观看免费网站| 久久久综合网站| 国内外成人在线| 久久亚洲精品小早川怜子| 美女尤物国产一区| 日韩欧美国产电影| 久久不见久久见免费视频7| 91精品国模一区二区三区| 日本成人在线看| 日韩女优视频免费观看| 黄一区二区三区| 久久青草国产手机看片福利盒子| 国产精品一区二区黑丝| 欧美激情一区二区三区不卡| 成人晚上爱看视频| 亚洲欧美日韩小说| 欧美精选一区二区| 麻豆91免费看| 日本一区二区三区四区 | 色系网站成人免费| 一区二区三区四区不卡视频| 色噜噜狠狠色综合中国| 五月激情综合婷婷| 久久免费国产精品| 99精品国产一区二区三区不卡| 亚洲欧美激情一区二区| 欧美日韩一级黄| 久草热8精品视频在线观看| 国产日韩精品一区二区三区| 色综合久久久久网| 石原莉奈在线亚洲二区| 久久久电影一区二区三区| 99国产精品久久久久久久久久| 亚洲国产成人91porn| 欧美大白屁股肥臀xxxxxx| 国产精品一区二区91| 依依成人综合视频| 日韩精品一区二区三区四区视频| 国产乱子轮精品视频| 亚洲久本草在线中文字幕| 日韩一区二区三区视频在线 | 亚洲午夜日本在线观看| 欧美一二三区在线观看| voyeur盗摄精品| 日韩在线一区二区| 国产精品美女久久久久久久久久久| 91福利在线导航| 国产一区二区三区在线观看免费视频 | 欧美激情综合在线| 欧美乱妇15p| 99精品桃花视频在线观看| 麻豆国产一区二区| 亚洲在线观看免费| 久久先锋资源网| 久久婷婷久久一区二区三区| 91麻豆免费看片| 国产乱码一区二区三区| 亚洲一二三专区| 国产精品欧美一级免费| 日韩欧美色电影| 欧美亚洲一区二区在线| 成人av手机在线观看| 久久国产三级精品| 丝袜美腿亚洲一区二区图片| 亚洲欧美成人一区二区三区| 26uuu精品一区二区在线观看| 欧美日韩精品一二三区| 成人免费黄色大片| 国产另类ts人妖一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 一区二区三区四区蜜桃| 亚洲欧洲三级电影| 中文字幕高清不卡| 久久久精品综合| 久久品道一品道久久精品| 日韩一二三区视频| 欧美疯狂性受xxxxx喷水图片| 94-欧美-setu| 97久久精品人人做人人爽| 国产白丝精品91爽爽久久| 国产精品一区在线| 国模少妇一区二区三区| 国产在线播精品第三| 精品伊人久久久久7777人| 日本欧洲一区二区| 亚洲444eee在线观看| 视频一区中文字幕| 亚洲18女电影在线观看| 三级欧美在线一区| 蓝色福利精品导航| 激情偷乱视频一区二区三区| 国产中文字幕一区| 大陆成人av片| 99精品视频一区二区三区| 91美女片黄在线| 欧美日韩中文国产| 91精品国产91久久综合桃花 | 麻豆精品视频在线观看| 久久国产视频网| 国产成人综合在线观看| 成人激情黄色小说| 91视视频在线直接观看在线看网页在线看| 成人深夜福利app| 色av成人天堂桃色av| 555www色欧美视频| 日韩三级免费观看| 国产欧美一区二区精品忘忧草| 欧美韩日一区二区三区| 亚洲欧洲一区二区在线播放| 亚洲综合久久久久| 日本视频一区二区| 成人国产精品免费网站| 欧美在线免费播放| 日韩小视频在线观看专区| 国产欧美精品区一区二区三区| 日韩毛片视频在线看| 午夜久久久影院| 国产白丝精品91爽爽久久| 91国偷自产一区二区使用方法| 91精品国产aⅴ一区二区| 国产欧美一区二区在线| 亚洲图片自拍偷拍| 国产自产视频一区二区三区| 91麻豆国产香蕉久久精品| 制服丝袜亚洲播放| 国产精品免费免费| 丝袜诱惑制服诱惑色一区在线观看| 黄页视频在线91| 欧美伊人久久大香线蕉综合69| 久久蜜桃av一区二区天堂| 亚洲一区av在线| 成人午夜免费视频| 3atv一区二区三区| 亚洲欧洲中文日韩久久av乱码| 麻豆久久一区二区| 欧美视频三区在线播放| 国产日韩欧美电影| 免费在线看一区| 欧美在线影院一区二区| 久久精品一区二区三区av| 视频一区中文字幕国产| 91免费版pro下载短视频| 欧美精品一区二区在线观看| 亚洲韩国精品一区| 91影院在线观看| 久久久国产精华| 久久99深爱久久99精品| 欧美精品日日鲁夜夜添| 亚洲美女在线一区| 成人免费观看视频| 337p粉嫩大胆噜噜噜噜噜91av| 五月天激情综合| 欧美色大人视频| 亚洲影院免费观看| 91在线小视频| 国产精品毛片高清在线完整版| 国产真实乱对白精彩久久| 日韩一本二本av| 日韩成人一级片| 91精品久久久久久久久99蜜臂| 亚洲福利一区二区| 欧美人牲a欧美精品| 亚洲成a天堂v人片| 欧美日韩国产首页在线观看| 亚洲乱码国产乱码精品精的特点| 国产91丝袜在线18| 国产免费成人在线视频| 成人丝袜高跟foot| 中文字幕一区二区在线播放| 成人h版在线观看| 18涩涩午夜精品.www| 91蜜桃在线免费视频| 一片黄亚洲嫩模| 欧美三级一区二区|