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

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

?? xdf-objfmt.c

?? 支持AMD64的匯編編譯器源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
    /*@null@*/ xdf_objfmt_output_info *info = (xdf_objfmt_output_info *)d;    yasm_objfmt_xdf *objfmt_xdf;    /*@dependent@*/ /*@null@*/ xdf_section_data *xsd;    /*@null@*/ xdf_symrec_data *xsymd;    unsigned char *localbuf;    /* Don't output absolute sections into the section table */    if (yasm_section_is_absolute(sect))	return 0;    assert(info != NULL);    objfmt_xdf = info->objfmt_xdf;    xsd = yasm_section_get_data(sect, &xdf_section_data_cb);    assert(xsd != NULL);    localbuf = info->buf;    xsymd = yasm_symrec_get_data(xsd->sym, &xdf_symrec_data_cb);    assert(xsymd != NULL);    YASM_WRITE_32_L(localbuf, xsymd->index);	/* section name symbol */    if (xsd->addr) {	yasm_intnum_get_sized(xsd->addr, localbuf, 8, 64, 0, 0, 0, 0);	localbuf += 8;				/* physical address */    } else {	YASM_WRITE_32_L(localbuf, 0);	YASM_WRITE_32_L(localbuf, 0);    }    YASM_WRITE_16_L(localbuf, xsd->align);	/* alignment */    YASM_WRITE_16_L(localbuf, xsd->flags);	/* flags */    YASM_WRITE_32_L(localbuf, xsd->scnptr);	/* file ptr to data */    YASM_WRITE_32_L(localbuf, xsd->size);	/* section size */    YASM_WRITE_32_L(localbuf, xsd->relptr);	/* file ptr to relocs */    YASM_WRITE_32_L(localbuf, xsd->nreloc); /* num of relocation entries */    fwrite(info->buf, 32, 1, info->f);    return 0;}static voidxdf_objfmt_output(yasm_objfmt *objfmt, FILE *f, const char *obj_filename,		   int all_syms, /*@unused@*/ yasm_dbgfmt *df){    yasm_objfmt_xdf *objfmt_xdf = (yasm_objfmt_xdf *)objfmt;    xdf_objfmt_output_info info;    unsigned char *localbuf;    unsigned long symtab_count = 0;    unsigned long strtab_offset;    xdf_symtab_entry *entry;    info.objfmt_xdf = objfmt_xdf;    info.f = f;    info.buf = yasm_xmalloc(REGULAR_OUTBUF_SIZE);    /* Allocate space for headers by seeking forward */    if (fseek(f, (long)(16+32*(objfmt_xdf->parse_scnum)), SEEK_SET) < 0) {	yasm__fatal(N_("could not seek on output file"));	/*@notreached@*/	return;    }    /* Symbol table */    all_syms = 1;	/* force all syms into symbol table */    if (all_syms) {	/* Need to put all local syms into XDF symbol table */	yasm_symtab_traverse(objfmt_xdf->symtab, objfmt_xdf,			     xdf_objfmt_append_local_sym);    }    /* Get number of symbols */    if (STAILQ_EMPTY(&objfmt_xdf->xdf_symtab))	symtab_count = 0;    else {	/*@null@*/ /*@dependent@*/ xdf_symrec_data *sym_data_prev;	entry = STAILQ_LAST(&objfmt_xdf->xdf_symtab, xdf_symtab_entry, link);	sym_data_prev = yasm_symrec_get_data(entry->sym, &xdf_symrec_data_cb);	assert(sym_data_prev != NULL);	symtab_count = sym_data_prev->index + 1;    }    /* Get file offset of start of string table */    strtab_offset = 16+32*(objfmt_xdf->parse_scnum)+16*symtab_count;    STAILQ_FOREACH(entry, &objfmt_xdf->xdf_symtab, link) {	const char *name = yasm_symrec_get_name(entry->sym);	const yasm_expr *equ_val;	const yasm_intnum *intn;	size_t len = strlen(name);	/*@dependent@*/ /*@null@*/ xdf_symrec_data *xsymd;	unsigned long value = 0;	long scnum = -3;	/* -3 = debugging symbol */	/*@dependent@*/ /*@null@*/ yasm_section *sect;	/*@dependent@*/ /*@null@*/ yasm_bytecode *precbc;	yasm_sym_vis vis = yasm_symrec_get_visibility(entry->sym);	unsigned long flags = 0;	/* Get symrec's of_data (needed for storage class) */	xsymd = yasm_symrec_get_data(entry->sym, &xdf_symrec_data_cb);	if (!xsymd)	    yasm_internal_error(N_("xdf: expected sym data to be present"));	if (vis & YASM_SYM_GLOBAL)	    flags = XDF_SYM_GLOBAL;	/* Look at symrec for value/scnum/etc. */	if (yasm_symrec_get_label(entry->sym, &precbc)) {	    if (precbc)		sect = yasm_bc_get_section(precbc);	    else		sect = NULL;	    /* it's a label: get value and offset.	     * If there is not a section, leave as debugging symbol.	     */	    if (sect) {		/*@dependent@*/ /*@null@*/ xdf_section_data *csectd;		csectd = yasm_section_get_data(sect, &xdf_section_data_cb);		if (csectd) {		    scnum = csectd->scnum;		} else if (yasm_section_is_absolute(sect)) {		    yasm_expr *abs_start;		    abs_start = yasm_expr_copy(yasm_section_get_start(sect));		    intn = yasm_expr_get_intnum(&abs_start,						yasm_common_calc_bc_dist);		    if (!intn)			yasm__error(abs_start->line,			    N_("absolute section start not an integer expression"));		    else			value = yasm_intnum_get_uint(intn);		    yasm_expr_destroy(abs_start);		    flags |= XDF_SYM_EQU;		    scnum = -2;	/* -2 = absolute symbol */		} else		    yasm_internal_error(N_("didn't understand section"));		if (precbc)		    value += precbc->offset + precbc->len;	    }	} else if ((equ_val = yasm_symrec_get_equ(entry->sym))) {	    yasm_expr *equ_val_copy = yasm_expr_copy(equ_val);	    intn = yasm_expr_get_intnum(&equ_val_copy,					yasm_common_calc_bc_dist);	    if (!intn) {		if (vis & YASM_SYM_GLOBAL)		    yasm__error(equ_val->line,			N_("global EQU value not an integer expression"));	    } else		value = yasm_intnum_get_uint(intn);	    yasm_expr_destroy(equ_val_copy);	    flags |= XDF_SYM_EQU;	    scnum = -2;     /* -2 = absolute symbol */	} else {	    if (vis & YASM_SYM_EXTERN) {		flags = XDF_SYM_EXTERN;		scnum = -1;	    }	}	localbuf = info.buf;	YASM_WRITE_32_L(localbuf, scnum);	/* section number */	YASM_WRITE_32_L(localbuf, value);	/* value */	YASM_WRITE_32_L(localbuf, strtab_offset); /* string table offset */	strtab_offset += len+1;	YASM_WRITE_32_L(localbuf, flags);	/* flags */	fwrite(info.buf, 16, 1, f);    }    /* String table */    STAILQ_FOREACH(entry, &objfmt_xdf->xdf_symtab, link) {	const char *name = yasm_symrec_get_name(entry->sym);	size_t len = strlen(name);	fwrite(name, len+1, 1, f);    }    /* Section data/relocs */    if (yasm_object_sections_traverse(objfmt_xdf->object, &info,				      xdf_objfmt_output_section))	return;    /* Write headers */    if (fseek(f, 0, SEEK_SET) < 0) {	yasm__fatal(N_("could not seek on output file"));	/*@notreached@*/	return;    }    localbuf = info.buf;    YASM_WRITE_32_L(localbuf, XDF_MAGIC);	/* magic number */    YASM_WRITE_32_L(localbuf, objfmt_xdf->parse_scnum); /* number of sects */    YASM_WRITE_32_L(localbuf, symtab_count);		/* number of symtabs */    /* size of sect headers + symbol table + strings */    YASM_WRITE_32_L(localbuf, strtab_offset-16);    fwrite(info.buf, 16, 1, f);    yasm_object_sections_traverse(objfmt_xdf->object, &info,				  xdf_objfmt_output_secthead);    yasm_xfree(info.buf);}static voidxdf_objfmt_destroy(yasm_objfmt *objfmt){    yasm_objfmt_xdf *objfmt_xdf = (yasm_objfmt_xdf *)objfmt;    xdf_symtab_entry *entry1, *entry2;    /* Delete local symbol table */    entry1 = STAILQ_FIRST(&objfmt_xdf->xdf_symtab);    while (entry1 != NULL) {	entry2 = STAILQ_NEXT(entry1, link);	yasm_xfree(entry1);	entry1 = entry2;    }    yasm_xfree(objfmt);}static /*@observer@*/ /*@null@*/ yasm_section *xdf_objfmt_section_switch(yasm_objfmt *objfmt, yasm_valparamhead *valparams,			    /*@unused@*/ /*@null@*/			    yasm_valparamhead *objext_valparams,			    unsigned long line){    yasm_objfmt_xdf *objfmt_xdf = (yasm_objfmt_xdf *)objfmt;    yasm_valparam *vp = yasm_vps_first(valparams);    yasm_section *retval;    int isnew;    /*@dependent@*/ /*@null@*/ const yasm_intnum *absaddr = NULL;    unsigned int addralign = 0;    unsigned long flags = 0;    int flags_override = 0;    char *sectname;    int resonly = 0;    if (!vp || vp->param || !vp->val)	return NULL;    sectname = vp->val;    while ((vp = yasm_vps_next(vp))) {	flags_override = 1;	if (yasm__strcasecmp(vp->val, "use16") == 0) {	    flags &= ~(XDF_SECT_USE_32|XDF_SECT_USE_64);	    flags |= XDF_SECT_USE_16;	    yasm_arch_set_var(objfmt_xdf->arch, "mode_bits", 16);	} else if (yasm__strcasecmp(vp->val, "use32") == 0) {	    flags &= ~(XDF_SECT_USE_16|XDF_SECT_USE_64);	    flags |= XDF_SECT_USE_32;	    yasm_arch_set_var(objfmt_xdf->arch, "mode_bits", 32);	} else if (yasm__strcasecmp(vp->val, "use64") == 0) {	    flags &= ~(XDF_SECT_USE_16|XDF_SECT_USE_32);	    flags |= XDF_SECT_USE_64;	    yasm_arch_set_var(objfmt_xdf->arch, "mode_bits", 64);	} else if (yasm__strcasecmp(vp->val, "bss") == 0) {	    flags |= XDF_SECT_BSS;	} else if (yasm__strcasecmp(vp->val, "flat") == 0) {	    flags |= XDF_SECT_FLAT;	} else if (yasm__strcasecmp(vp->val, "absolute") == 0 && vp->param) {	    flags |= XDF_SECT_ABSOLUTE;	    absaddr = yasm_expr_get_intnum(&vp->param, NULL);	    if (!absaddr) {		yasm__error(line, N_("argument to `%s' is not an integer"),			    vp->val);		return NULL;	    }	} else if (yasm__strcasecmp(vp->val, "align") == 0 && vp->param) {	    /*@dependent@*/ /*@null@*/ const yasm_intnum *align;	    unsigned long bitcnt;	    align = yasm_expr_get_intnum(&vp->param, NULL);	    if (!align) {		yasm__error(line, N_("argument to `%s' is not a power of two"),			    vp->val);		return NULL;	    }	    addralign = yasm_intnum_get_uint(align);	    /* Check to see if alignment is a power of two.	     * This can be checked by seeing if only one bit is set.	     */	    BitCount(bitcnt, addralign);	    if (bitcnt > 1) {		yasm__error(line, N_("argument to `%s' is not a power of two"),			    vp->val);		return NULL;	    }	    /* Check to see if alignment is supported size */	    if (addralign > 4096) {		yasm__error(line,			    N_("XDF does not support alignments > 4096"));		return NULL;	    }	} else	    yasm__warning(YASM_WARN_GENERAL, line,			  N_("Unrecognized qualifier `%s'"), vp->val);    }    retval = yasm_object_get_general(objfmt_xdf->object, sectname, 0, resonly,				     &isnew, line);    if (isnew) {	xdf_section_data *data;	yasm_symrec *sym;	data = yasm_xmalloc(sizeof(xdf_section_data));	data->scnum = objfmt_xdf->parse_scnum++;	data->align = addralign;	data->flags = flags;	if (absaddr)	    data->addr = yasm_intnum_copy(absaddr);	else	    data->addr = NULL;	data->scnptr = 0;	data->size = 0;	data->relptr = 0;	data->nreloc = 0;	STAILQ_INIT(&data->relocs);	yasm_section_add_data(retval, &xdf_section_data_cb, data);	sym =	    yasm_symtab_define_label(objfmt_xdf->symtab, sectname,				     yasm_section_bcs_first(retval), 1, line);	xdf_objfmt_symtab_append(objfmt_xdf, sym);	data->sym = sym;    } else if (flags_override)	yasm__warning(YASM_WARN_GENERAL, line,		      N_("section flags ignored on section redeclaration"));    return retval;}static voidxdf_section_data_destroy(void *data){    xdf_section_data *xsd = (xdf_section_data *)data;    if (xsd->addr)	yasm_intnum_destroy(xsd->addr);    yasm_xfree(data);}static voidxdf_section_data_print(void *data, FILE *f, int indent_level){    xdf_section_data *xsd = (xdf_section_data *)data;    fprintf(f, "%*ssym=\n", indent_level, "");    yasm_symrec_print(xsd->sym, f, indent_level+1);    fprintf(f, "%*sscnum=%ld\n", indent_level, "", xsd->scnum);    fprintf(f, "%*sflags=0x%x\n", indent_level, "", xsd->flags);    fprintf(f, "%*saddr=", indent_level, "");    yasm_intnum_print(xsd->addr, f);    fprintf(f, "%*sscnptr=0x%lx\n", indent_level, "", xsd->scnptr);    fprintf(f, "%*ssize=%ld\n", indent_level, "", xsd->size);    fprintf(f, "%*srelptr=0x%lx\n", indent_level, "", xsd->relptr);    fprintf(f, "%*snreloc=%ld\n", indent_level, "", xsd->nreloc);    fprintf(f, "%*srelocs:\n", indent_level, "");}static yasm_symrec *xdf_objfmt_extern_declare(yasm_objfmt *objfmt, const char *name, /*@unused@*/			   /*@null@*/ yasm_valparamhead *objext_valparams,			   unsigned long line){    yasm_objfmt_xdf *objfmt_xdf = (yasm_objfmt_xdf *)objfmt;    yasm_symrec *sym;    sym = yasm_symtab_declare(objfmt_xdf->symtab, name, YASM_SYM_EXTERN,			      line);    xdf_objfmt_symtab_append(objfmt_xdf, sym);    return sym;}static yasm_symrec *xdf_objfmt_global_declare(yasm_objfmt *objfmt, const char *name, /*@unused@*/			   /*@null@*/ yasm_valparamhead *objext_valparams,			   unsigned long line){    yasm_objfmt_xdf *objfmt_xdf = (yasm_objfmt_xdf *)objfmt;    yasm_symrec *sym;    sym = yasm_symtab_declare(objfmt_xdf->symtab, name, YASM_SYM_GLOBAL,			      line);    xdf_objfmt_symtab_append(objfmt_xdf, sym);    return sym;}static yasm_symrec *xdf_objfmt_common_declare(yasm_objfmt *objfmt, const char *name,			   /*@only@*/ yasm_expr *size, /*@unused@*/ /*@null@*/			   yasm_valparamhead *objext_valparams,			   unsigned long line){    yasm_objfmt_xdf *objfmt_xdf = (yasm_objfmt_xdf *)objfmt;    yasm_symrec *sym;    yasm_expr_destroy(size);    yasm__error(line,	N_("XDF object format does not support common variables"));    sym = yasm_symtab_declare(objfmt_xdf->symtab, name, YASM_SYM_COMMON, line);    return sym;}static voidxdf_symrec_data_destroy(void *data){    yasm_xfree(data);}static voidxdf_symrec_data_print(void *data, FILE *f, int indent_level){    xdf_symrec_data *xsd = (xdf_symrec_data *)data;    fprintf(f, "%*ssymtab index=%lu\n", indent_level, "", xsd->index);}static intxdf_objfmt_directive(/*@unused@*/ yasm_objfmt *objfmt,		      /*@unused@*/ const char *name,		      /*@unused@*/ yasm_valparamhead *valparams,		      /*@unused@*/ /*@null@*/		      yasm_valparamhead *objext_valparams,		      /*@unused@*/ unsigned long line){    return 1;	/* no objfmt directives */}/* Define valid debug formats to use with this object format */static const char *xdf_objfmt_dbgfmt_keywords[] = {    "null",    NULL};/* Define objfmt structure -- see objfmt.h for details */yasm_objfmt_module yasm_xdf_LTX_objfmt = {    YASM_OBJFMT_VERSION,    "Extended Dynamic Object",    "xdf",    "xdf",    ".text",    32,    xdf_objfmt_dbgfmt_keywords,    "null",    xdf_objfmt_create,    xdf_objfmt_output,    xdf_objfmt_destroy,    xdf_objfmt_section_switch,    xdf_objfmt_extern_declare,    xdf_objfmt_global_declare,    xdf_objfmt_common_declare,    xdf_objfmt_directive};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜电影网亚洲视频| 欧美丰满少妇xxxxx高潮对白 | 精品成人一区二区三区四区| 久久先锋影音av| 亚洲欧美日韩中文播放 | 欧美日韩在线播| 日韩视频免费直播| 欧美激情自拍偷拍| 亚洲无人区一区| 国产原创一区二区| 色欧美88888久久久久久影院| 欧美精品亚洲二区| 久久久久9999亚洲精品| 亚洲综合激情小说| 国产成人在线视频网站| 欧美日韩一区精品| 国产亚洲欧洲一区高清在线观看| 一区二区三区日韩精品| 激情六月婷婷久久| 91成人网在线| 国产欧美日韩在线观看| 午夜欧美视频在线观看| 成人免费毛片片v| 欧美一区二区三区免费视频 | 99在线精品视频| 在线成人免费视频| 国产精品不卡在线| 久久99精品久久只有精品| 色婷婷综合视频在线观看| 2020国产精品自拍| 亚洲h在线观看| 99久久精品情趣| 欧美一区二区三区视频在线观看| 亚洲三级在线看| 国产一区二区精品久久99| 欧美日韩精品一区二区天天拍小说 | 欧美国产精品一区二区| 日韩电影网1区2区| 欧洲精品中文字幕| 国产精品国产自产拍在线| 久久99国产精品久久| 欧美性大战久久久久久久| 国产精品久久三| 国产一区二区成人久久免费影院 | 青青草成人在线观看| 91蜜桃网址入口| 国产欧美精品区一区二区三区| 日本va欧美va瓶| 欧美日韩午夜在线视频| 18成人在线视频| 国产成人综合自拍| 欧美电影免费观看高清完整版在线| 亚洲成人777| 欧美午夜电影网| 亚洲嫩草精品久久| 99久免费精品视频在线观看| 久久噜噜亚洲综合| 精久久久久久久久久久| 欧美一区二区三区在线视频| 视频一区中文字幕| 欧美日韩不卡一区| 亚洲国产一二三| 欧美系列亚洲系列| 亚洲国产视频一区二区| 欧美影院精品一区| 夜夜嗨av一区二区三区四季av| 91亚洲永久精品| 亚洲欧洲一区二区在线播放| 99久久精品99国产精品| 亚洲欧美一区二区三区国产精品| 国产成人日日夜夜| 欧美国产视频在线| 国产99一区视频免费| 国产精品色婷婷久久58| www.66久久| 亚洲日本在线观看| 在线观看亚洲精品视频| 亚洲图片有声小说| 91精品国产高清一区二区三区蜜臀 | 成人激情黄色小说| 综合在线观看色| 91黄色免费版| 亚洲chinese男男1069| 在线不卡免费av| 老司机午夜精品| 国产亚洲欧美在线| 97精品视频在线观看自产线路二 | 欧美亚洲一区三区| 亚洲gay无套男同| 日韩欧美国产综合一区| 国产一区二区三区在线观看免费| 国产亚洲欧美激情| 91视视频在线观看入口直接观看www | 五月婷婷久久丁香| 日韩视频不卡中文| 国产精品伊人色| 国产精品国产自产拍高清av | 一区av在线播放| 91麻豆精品国产自产在线 | 中文字幕欧美激情一区| 91蜜桃免费观看视频| 亚洲国产欧美日韩另类综合| 日韩亚洲欧美一区二区三区| 国产乱码精品一区二区三区五月婷| 国产精品国产自产拍高清av| 欧美日韩一区二区三区高清| 麻豆成人久久精品二区三区小说| 久久嫩草精品久久久精品| 99久久777色| 日本伊人色综合网| 国产拍欧美日韩视频二区| 一本大道av伊人久久综合| 日韩精品福利网| 国产欧美一区二区三区在线看蜜臀| 色综合视频在线观看| 狂野欧美性猛交blacked| 国产精品久久久久久户外露出 | 亚洲成人免费在线观看| 欧美精品一区在线观看| 日本精品一区二区三区高清 | 久久精品一区四区| 欧美性视频一区二区三区| 韩国女主播一区| 一区二区三区国产精华| 精品成人免费观看| 在线观看日韩av先锋影音电影院| 经典三级一区二区| 亚洲综合丁香婷婷六月香| 久久综合99re88久久爱| 欧美在线观看18| 国产激情一区二区三区| 午夜伦欧美伦电影理论片| 国产午夜精品久久久久久久| 欧美日韩精品专区| 99视频国产精品| 激情五月激情综合网| 亚洲制服丝袜av| 亚洲国产精品ⅴa在线观看| 3atv在线一区二区三区| 97精品国产97久久久久久久久久久久 | 成人免费福利片| 久久97超碰国产精品超碰| 艳妇臀荡乳欲伦亚洲一区| 久久久亚洲综合| 777奇米四色成人影色区| 99久久久久免费精品国产 | 欧美韩日一区二区三区四区| 在线综合亚洲欧美在线视频| 色狠狠色噜噜噜综合网| 成人性生交大片免费看在线播放 | 精品国产乱子伦一区| 欧美亚洲精品一区| zzijzzij亚洲日本少妇熟睡| 久久99日本精品| 午夜欧美2019年伦理| 一区二区免费在线播放| 国产精品乱码久久久久久| 久久夜色精品一区| 日韩午夜电影av| 精品视频免费看| 欧美在线观看一区二区| 色悠悠久久综合| 不卡视频在线观看| 成人综合婷婷国产精品久久| 国产乱子轮精品视频| 老司机免费视频一区二区三区| 午夜精品国产更新| 亚洲一区二区欧美激情| 亚洲一区二区av电影| 亚洲品质自拍视频网站| 中文字幕在线免费不卡| 国产精品入口麻豆原神| 国产午夜精品一区二区三区视频 | 风间由美一区二区av101| 精品一区二区国语对白| 蜜臀av性久久久久蜜臀aⅴ| 日韩在线观看一区二区| 亚洲第一电影网| 亚洲电影中文字幕在线观看| 亚洲www啪成人一区二区麻豆| 亚洲高清久久久| 婷婷中文字幕综合| 亚洲v日本v欧美v久久精品| 五月婷婷欧美视频| 青青草97国产精品免费观看 | 欧美不卡123| 精品福利视频一区二区三区| 久久久国产精品麻豆| 国产日产亚洲精品系列| 国产精品久久久久7777按摩| 亚洲天堂av一区| 亚洲在线免费播放| 午夜欧美2019年伦理| 美女视频一区在线观看| 激情五月播播久久久精品| 国产精品一区二区在线播放 | 亚洲丝袜美腿综合| 一区二区欧美国产| 日本成人超碰在线观看| 国产在线国偷精品免费看|