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

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

?? ieee.c

?? 早期freebsd實現
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* BFD back-end for ieee-695 objects.   Copyright 1990, 1991, 1992 Free Software Foundation, Inc.   Written by Steve Chamberlain of Cygnus Support.This file is part of BFD, the Binary File Descriptor library.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */#define KEEPMINUSPCININST 1/* IEEE 695 format is a stream of records, which we parse using a simple one-   token (which is one byte in this lexicon) lookahead recursive decent   parser.  */#include "bfd.h"#include "sysdep.h"#include "libbfd.h"#include "ieee.h"#include "libieee.h"#include "obstack.h"#define obstack_chunk_alloc bfd_xmalloc#define obstack_chunk_free free/* Functions for writing to ieee files in the strange way that the   standard requires. */static voidDEFUN(ieee_write_byte,(abfd, byte),      bfd *abfd AND      bfd_byte byte){  bfd_write((PTR)&byte, 1, 1, abfd);}static voidDEFUN(ieee_write_twobyte,(abfd, twobyte),      bfd *abfd AND      int twobyte){  bfd_byte b[2];  b[1] = twobyte & 0xff;  b[0] = twobyte >> 8;  bfd_write((PTR)&b[0], 1, 2, abfd);}static voidDEFUN(ieee_write_2bytes,(abfd, bytes),      bfd *abfd AND      int bytes){  bfd_byte buffer[2];  buffer[0] = bytes >> 8;  buffer[1] = bytes & 0xff;  bfd_write((PTR)buffer, 1, 2, abfd);}static voidDEFUN(ieee_write_int,(abfd, value),      bfd *abfd AND      bfd_vma value){  if (((unsigned)value) <= 127) {    ieee_write_byte(abfd, value);  }  else {    unsigned int length;    /* How many significant bytes ? */    /* FIXME FOR LONGER INTS */    if (value & 0xff000000) {      length = 4;    }    else if (value & 0x00ff0000) {      length  = 3;    }    else if (value & 0x0000ff00) {      length = 2;    }    else length = 1;    ieee_write_byte(abfd, (int)ieee_number_repeat_start_enum + length);    switch (length) {    case 4:      ieee_write_byte(abfd, value >> 24);    case 3:      ieee_write_byte(abfd, value >> 16);    case 2:      ieee_write_byte(abfd, value >> 8);    case 1:      ieee_write_byte(abfd, value);    }  }}static voidDEFUN(ieee_write_id,(abfd, id),      bfd *abfd AND      CONST char *id){  size_t length = strlen(id);  if (length >= 0 && length <= 127) {    ieee_write_byte(abfd, length);  }  else if (length < 255) {    ieee_write_byte(abfd, ieee_extension_length_1_enum);    ieee_write_byte(abfd, length);  }  else if (length < 65535) {    ieee_write_byte(abfd, ieee_extension_length_2_enum);    ieee_write_byte(abfd, length >> 8);    ieee_write_byte(abfd, length & 0xff);    }  else {    BFD_FAIL();  }  bfd_write((PTR)id, 1, length, abfd);}/***************************************************************************Functions for reading from ieee files in the strange way that thestandard requires:*/#define this_byte(ieee) *((ieee)->input_p)#define next_byte(ieee) ((ieee)->input_p++)#define this_byte_and_next(ieee) (*((ieee)->input_p++))static unsigned short DEFUN(read_2bytes,(ieee),   common_header_type *ieee){  unsigned  char c1 = this_byte_and_next(ieee);  unsigned  char c2 = this_byte_and_next(ieee);  return (c1<<8 ) | c2;}static voidDEFUN(bfd_get_string,(ieee, string, length),    common_header_type *ieee AND      char *string AND      size_t length){  size_t i;  for (i= 0; i < length; i++) {    string[i] = this_byte_and_next(ieee);  }}static char *DEFUN(read_id,(ieee),  common_header_type *ieee){  size_t length;  char *string;  length = this_byte_and_next(ieee);  if (length >= 0x00 && length <= 0x7f) {    /* Simple string of length 0 to 127 */  }  else if (length == 0xde) {    /* Length is next byte, allowing 0..255 */    length = this_byte_and_next(ieee);  }  else if (length == 0xdf) {    /* Length is next two bytes, allowing 0..65535 */    length = this_byte_and_next(ieee) ;    length = (length * 256) + this_byte_and_next(ieee);  }  /* Buy memory and read string */  string = bfd_alloc(ieee->abfd, length+1);  bfd_get_string(ieee, string, length);  string[length] = 0;  return string;}static voidDEFUN(ieee_write_expression,(abfd, value, symbol, pcrel, index),      bfd*abfd AND      bfd_vma value AND      asymbol *symbol AND      boolean pcrel AND    unsigned int index){  unsigned int term_count = 0;  if (value != 0)   {    ieee_write_int(abfd, value);    term_count++;  }         if (symbol->section == &bfd_com_section      || symbol->section == &bfd_und_section)   {    /* Def of a common symbol */    ieee_write_byte(abfd, ieee_variable_X_enum);    ieee_write_int(abfd, symbol->value);    term_count++;  }  else  if (symbol->section != &bfd_abs_section)   {    /* Ref to defined symbol - */      ieee_write_byte(abfd, ieee_variable_R_enum);    ieee_write_byte(abfd, symbol->section->index + IEEE_SECTION_NUMBER_BASE);    term_count++;    if (symbol->flags & BSF_GLOBAL)     {      ieee_write_byte(abfd, ieee_variable_I_enum);      ieee_write_int(abfd, symbol->value);      term_count++;    }    else if (symbol->flags & ( BSF_LOCAL | BSF_SECTION_SYM))    {      /* This is a reference to a defined local symbol, 	 We can easily do a local as a section+offset */      ieee_write_byte(abfd, ieee_variable_R_enum); /* or L */      ieee_write_byte(abfd, symbol->section->index +		      IEEE_SECTION_NUMBER_BASE);      ieee_write_int(abfd, symbol->value);      term_count++;    }    else   {	BFD_FAIL();      }  }     if(pcrel) {      /* subtract the pc from here by asking for PC of this section*/      ieee_write_byte(abfd, ieee_variable_P_enum);      ieee_write_byte(abfd, index  +IEEE_SECTION_NUMBER_BASE);      ieee_write_byte(abfd, ieee_function_minus_enum);    }  if (term_count == 1)   {    ieee_write_byte(abfd,0);  }  else {          while (term_count > 1) {	  ieee_write_byte(abfd, ieee_function_plus_enum);	  term_count--;	}    }}/*****************************************************************************//*writes any integer into the buffer supplied and always takes 5 bytes*/static voidDEFUN(ieee_write_int5,(buffer, value),      bfd_byte*buffer AND      bfd_vma value ){  buffer[0] = (bfd_byte)ieee_number_repeat_4_enum;  buffer[1] = (value >> 24 ) & 0xff;  buffer[2] = (value >> 16 ) & 0xff;  buffer[3] = (value >> 8 ) & 0xff;  buffer[4] = (value >> 0 ) & 0xff;}static voidDEFUN(ieee_write_int5_out, (abfd, value),      bfd *abfd AND      bfd_vma value){  bfd_byte b[5];  ieee_write_int5(b, value);  bfd_write((PTR)b,1,5,abfd);}static boolean DEFUN(parse_int,(ieee, value_ptr),      common_header_type  *ieee AND      bfd_vma *value_ptr){  int value = this_byte(ieee);  int result;  if (value >= 0 && value <= 127) {    *value_ptr = value;    next_byte(ieee);    return true;  }   else if (value >= 0x80 && value <= 0x88) {    unsigned int count = value & 0xf;    result = 0;    next_byte(ieee);    while (count) {      result =(result << 8) | this_byte_and_next(ieee);      count--;    }    *value_ptr = result;    return true;  }   return false;}static intDEFUN(parse_i,(ieee, ok),   common_header_type *ieee AND      boolean *ok){  bfd_vma x;  *ok = parse_int(ieee, &x);  return x;}static bfd_vma DEFUN(must_parse_int,(ieee),     common_header_type *ieee){  bfd_vma result;  BFD_ASSERT(parse_int(ieee, &result) == true);  return result;}typedef struct {  bfd_vma value;  asection *section;  ieee_symbol_index_type symbol;} ieee_value_type;static reloc_howto_type abs32_howto  = HOWTO(1,0,2,32,false,0,false,true,0,"abs32",true,0xffffffff, 0xffffffff,false);staticreloc_howto_type abs16_howto  = HOWTO(1,0,1,16,false,0,false,true,0,"abs16",true,0x0000ffff, 0x0000ffff,false);staticreloc_howto_type abs8_howto  = HOWTO(1,0,0,8,false,0,false,true,0,"abs8",true,0x000000ff, 0x000000ff,false);static reloc_howto_type rel32_howto  = HOWTO(1,0,2,32,true,0,false,true,0,"rel32",true,0xffffffff,	 0xffffffff,false);staticreloc_howto_type rel16_howto  = HOWTO(1,0,1,16,true,0,false,true,0,"rel16",true,0x0000ffff, 0x0000ffff,false);staticreloc_howto_type rel8_howto  = HOWTO(1,0,0,8,true,0,false,true,0,"rel8",true,0x000000ff, 0x000000ff,false);static ieee_symbol_index_type NOSYMBOL = {  0, 0};static voidDEFUN(parse_expression,(ieee, value, symbol, pcrel, extra, section),      ieee_data_type *ieee AND      bfd_vma *value AND      ieee_symbol_index_type *symbol AND      boolean *pcrel AND      unsigned int *extra AND      asection **section){#define POS sp[1]#define TOS sp[0]#define NOS sp[-1]#define INC sp++;#define DEC sp--;    boolean loop = true;  ieee_value_type stack[10];  /* The stack pointer always points to the next unused location */#define PUSH(x,y,z) TOS.symbol=x;TOS.section=y;TOS.value=z;INC;#define POP(x,y,z) DEC;x=TOS.symbol;y=TOS.section;z=TOS.value;  ieee_value_type *sp = stack;  while (loop) {    switch (this_byte(&(ieee->h))) 	{	case ieee_variable_P_enum:	  /* P variable, current program counter for section n */	    {	      int section_n ;	      next_byte(&(ieee->h));	      *pcrel = true;	      section_n  = must_parse_int(&(ieee->h));	      PUSH(NOSYMBOL, &bfd_abs_section,		   TOS.value = ieee->section_table[section_n]->vma +		   ieee_per_section(ieee->section_table[section_n])->pc);	      break;	    }	case ieee_variable_L_enum:	  /* L variable  address of section N */	  next_byte(&(ieee->h));	  PUSH(NOSYMBOL,ieee->section_table[must_parse_int(&(ieee->h))],0);	  break;	case ieee_variable_R_enum:	  /* R variable, logical address of section module */	  /* FIXME, this should be different to L */	  next_byte(&(ieee->h));	  PUSH(NOSYMBOL,ieee->section_table[must_parse_int(&(ieee->h))],0);	  break;	case ieee_variable_S_enum:	  /* S variable, size in MAUS of section module */	  next_byte(&(ieee->h));	  PUSH(NOSYMBOL,	       0,	       ieee->section_table[must_parse_int(&(ieee->h))]->_raw_size);	  break;	  case ieee_variable_I_enum:	case ieee_variable_X_enum:	  /* Push the address of external variable n */	    {	      ieee_symbol_index_type sy;	      next_byte(&(ieee->h));	      sy.index  = (int)(must_parse_int(&(ieee->h))) ;	      sy.letter = 'X';	      PUSH(sy, &bfd_und_section, 0);	    }		  break;	case ieee_function_minus_enum:	    {	      bfd_vma value1, value2;	      asection *section1, *section_dummy;	      ieee_symbol_index_type sy;	      next_byte(&(ieee->h));	      POP(sy, section1, value1);	      POP(sy, section_dummy, value2);	      PUSH(sy, section1 ? section1 : section_dummy, value1-value2);	    }	  break;	case ieee_function_plus_enum:	    {	      bfd_vma value1, value2;	      asection *section1;	      asection *section2;	      ieee_symbol_index_type sy1;	      ieee_symbol_index_type sy2;	      next_byte(&(ieee->h));	      POP(sy1, section1, value1);	      POP(sy2, section2, value2);	      PUSH(sy1.letter ? sy1 : sy2, section1!=&bfd_abs_section ? section1: section2, value1+value2);	    }	  break;	default: 	    {	      bfd_vma va;	      BFD_ASSERT(this_byte(&(ieee->h)) < (int)ieee_variable_A_enum 			 || this_byte(&(ieee->h)) > (int)ieee_variable_Z_enum);	      if (parse_int(&(ieee->h), &va)) 		  {		    PUSH(NOSYMBOL, &bfd_abs_section, va);		  }	      else {		/* 		  Thats all that we can understand. As far as I can see		  there is a bug in the Microtec IEEE output which I'm		  using to scan, whereby the comma operator is ommited		  sometimes in an expression, giving expressions with too		  many terms. We can tell if that's the case by ensuring		  that sp == stack here. If not, then we've pushed		  something too far, so we keep adding		  */		while (sp != stack+1) {		  asection *section1;		  ieee_symbol_index_type sy1;		  POP(sy1, section1, *extra);		}	      {		asection *dummy;		POP(*symbol, dummy, *value);		if (section) *section = dummy;	      }				loop = false;	      }	    }	}  }}#define ieee_seek(abfd, offset) \  IEEE_DATA(abfd)->h.input_p = IEEE_DATA(abfd)->h.first_byte + offset#define ieee_pos(abfd)   IEEE_DATA(abfd)->h.input_p -IEEE_DATA(abfd)->h.first_byte static unsigned int last_index;static ieee_symbol_type *DEFUN(get_symbol,(abfd, 		  ieee,  		  last_symbol,		  symbol_count,pptr,max_index		  ),      bfd *abfd AND      ieee_data_type *ieee AND      ieee_symbol_type *last_symbol AND      unsigned int *symbol_count AND		  ieee_symbol_type *** pptr AND      unsigned int *max_index

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频免费观看| 日韩精品一区二区三区中文不卡| 91一区二区三区在线观看| 在线观看成人小视频| 久久一二三国产| 亚洲国产精品久久人人爱| 国产999精品久久久久久| 91麻豆精品国产91久久久更新时间| 国产欧美一区视频| 麻豆国产欧美一区二区三区| 欧美午夜精品一区| 亚洲欧美在线另类| 成人免费精品视频| 精品动漫一区二区三区在线观看| 国产精品 欧美精品| 日韩亚洲欧美在线| 亚洲成在人线在线播放| 91丨国产丨九色丨pron| 欧美激情在线看| 国产精品一区二区三区乱码| 日韩一级黄色大片| 日韩精品一区第一页| 欧美性猛交xxxx黑人交| 亚洲同性同志一二三专区| 成人免费视频网站在线观看| 久久久精品欧美丰满| 国产乱码一区二区三区| 日韩精品一区二区三区视频| 日韩精品亚洲专区| 欧美日本免费一区二区三区| 一区二区三国产精华液| 日本大香伊一区二区三区| 亚洲精品国产无套在线观| 99热99精品| 亚洲精品国久久99热| 91色视频在线| 亚洲一区二区三区小说| 在线观看91视频| 亚洲电影第三页| 91精品久久久久久久99蜜桃 | 亚洲超碰97人人做人人爱| 欧美综合天天夜夜久久| 一二三区精品福利视频| 欧美日韩免费不卡视频一区二区三区| 亚洲一区av在线| 欧美色电影在线| 蜜臀久久99精品久久久久宅男 | 免费观看30秒视频久久| 日韩精品一区二区在线| 国产电影一区在线| 亚洲婷婷在线视频| 在线电影院国产精品| 久久国产生活片100| 国产欧美一区二区精品忘忧草 | 91婷婷韩国欧美一区二区| 亚洲乱码国产乱码精品精小说 | 国产激情91久久精品导航| 亚洲国产高清在线| 91电影在线观看| 免费欧美日韩国产三级电影| 国产亚洲欧洲一区高清在线观看| 成人免费观看视频| 亚洲福中文字幕伊人影院| 欧美videos大乳护士334| 成人黄页毛片网站| 日韩精品亚洲专区| 国产精品麻豆一区二区| 欧美精品久久一区二区三区 | 亚洲成人免费在线| 久久久精品欧美丰满| 欧美亚洲禁片免费| 国产美女娇喘av呻吟久久| 1区2区3区精品视频| 欧美一区二区精品在线| kk眼镜猥琐国模调教系列一区二区| 亚洲第一av色| 国产欧美一区二区三区鸳鸯浴| 欧美在线|欧美| 国产精品一级在线| 亚洲成年人影院| 中文字幕精品三区| 日韩一区二区三区四区| 一本色道亚洲精品aⅴ| 精品一区二区三区免费毛片爱| 亚洲免费观看在线观看| 久久视频一区二区| 欧美日韩成人一区二区| a在线欧美一区| 国产综合成人久久大片91| 石原莉奈在线亚洲三区| 国产精品久久精品日日| 精品国产91乱码一区二区三区| 欧美性猛交xxxx黑人交| 99久久精品国产导航| 色哟哟在线观看一区二区三区| 国产乱码精品一区二区三| 日韩av一二三| 亚洲国产精品一区二区www| 亚洲色图欧美在线| 欧美极品美女视频| 久久无码av三级| 欧美成人一区二区三区| 在线播放一区二区三区| 欧洲一区在线观看| 色悠悠亚洲一区二区| 97久久超碰精品国产| 菠萝蜜视频在线观看一区| 国产真实乱子伦精品视频| 久久精品国产成人一区二区三区| 亚洲综合小说图片| 樱桃国产成人精品视频| 亚洲男人的天堂在线观看| 国产精品网曝门| 中文字幕精品三区| 中文字幕一区三区| 中文字幕一区二| 国产精品国产三级国产普通话蜜臀| 国产欧美日韩久久| 国产欧美日韩精品a在线观看| 国产丝袜美腿一区二区三区| 久久九九全国免费| 国产精品网站在线播放| 亚洲色图色小说| 亚洲一二三级电影| 日韩在线卡一卡二| 国产麻豆欧美日韩一区| 粉嫩一区二区三区性色av| av在线综合网| 在线看国产一区| 91麻豆精品国产综合久久久久久| 69精品人人人人| 久久综合色一综合色88| 国产精品天美传媒| 亚洲猫色日本管| 丝袜国产日韩另类美女| 久久国产精品色| 成人毛片在线观看| 欧美中文字幕不卡| 日韩精品一区二区三区在线 | 91黄色免费观看| 91.成人天堂一区| 久久你懂得1024| 亚洲天堂精品视频| 日日夜夜精品视频天天综合网| 蜜桃视频一区二区三区在线观看| 国产精品2024| 在线观看国产日韩| 精品国产乱码久久久久久老虎| 国产精品污网站| 性久久久久久久久| 国产毛片精品国产一区二区三区| 99在线精品一区二区三区| 欧美日韩在线电影| 久久只精品国产| 亚洲制服丝袜av| 国产在线精品一区二区夜色| 99riav一区二区三区| 精品日韩一区二区三区| 亚洲免费在线播放| 国产乱码精品一区二区三区忘忧草| 91香蕉视频在线| 26uuu色噜噜精品一区二区| 亚洲欧美韩国综合色| 国产一区二区视频在线播放| 欧美亚洲国产一区二区三区| 久久日一线二线三线suv| 一区二区三区毛片| 床上的激情91.| 日韩久久免费av| 无码av免费一区二区三区试看 | 麻豆国产精品777777在线| 成a人片国产精品| 精品国产乱码久久久久久闺蜜| 亚洲婷婷综合色高清在线| 极品少妇xxxx精品少妇偷拍| 精品视频一区三区九区| 国产精品免费久久久久| 精品一区二区三区香蕉蜜桃| 欧美色综合影院| 亚洲天堂av老司机| 福利视频网站一区二区三区| 欧美videos中文字幕| 亚洲.国产.中文慕字在线| 91免费看视频| 国产精品久久久久aaaa| 国产91丝袜在线观看| 精品日韩99亚洲| 麻豆高清免费国产一区| 欧美日韩精品福利| 亚洲精品日韩一| 91亚洲精品一区二区乱码| 中文字幕不卡在线| 国产成人a级片| 久久久久久综合| 国产又黄又大久久| 久久久久久久久免费| 国产一区二区三区日韩| 欧美r级电影在线观看| 美女精品一区二区| www久久精品|