static void bc_align_print(const void *contents, FILE *f, int indent_level) { const bytecode_align *align = (const bytecode_align *)contents; fprintf(f, "%*s_Align_\n", indent_level, ""); fprintf(f, "%*sBoundary=", indent_level, ""); yasm_expr_print(align->boundary, f); fprintf(f, "\n%*sFill=", indent_level, ""); yasm_expr_print(align->fill, f); fprintf(f, "\n%*sMax Skip=", indent_level, ""); yasm_expr_print(align->maxskip, f); fprintf(f, "\n"); }
void yasm_vps_print(const yasm_valparamhead *headp, FILE *f) { const yasm_valparam *vp; if(!headp) { fprintf(f, "(none)"); return; } yasm_vps_foreach(vp, headp) { if (vp->val) fprintf(f, "(\"%s\",", vp->val); else fprintf(f, "((nil),"); switch (vp->type) { case YASM_PARAM_ID: fprintf(f, "%s", vp->param.id); break; case YASM_PARAM_STRING: fprintf(f, "\"%s\"", vp->param.str); break; case YASM_PARAM_EXPR: yasm_expr_print(vp->param.e, f); break; } fprintf(f, ")"); if (yasm_vps_next(vp)) fprintf(f, ","); } }
void yasm_value_print(const yasm_value *value, FILE *f, int indent_level) { fprintf(f, "%*s%u-bit, %ssigned", indent_level, "", value->size, value->sign ? "" : "un"); fprintf(f, "%*sAbsolute portion=", indent_level, ""); yasm_expr_print(value->abs, f); fprintf(f, "\n"); if (value->rel) { fprintf(f, "%*sRelative to=%s%s\n", indent_level, "", value->seg_of ? "SEG " : "", yasm_symrec_get_name(value->rel)); if (value->wrt) fprintf(f, "%*s(With respect to=%s)\n", indent_level, "", yasm_symrec_get_name(value->wrt)); if (value->rshift > 0) fprintf(f, "%*s(Right shifted by=%u)\n", indent_level, "", value->rshift); if (value->curpos_rel) fprintf(f, "%*s(Relative to current position)\n", indent_level, ""); if (value->ip_rel) fprintf(f, "%*s(IP-relative)\n", indent_level, ""); if (value->jump_target) fprintf(f, "%*s(Jump target)\n", indent_level, ""); if (value->section_rel) fprintf(f, "%*s(Section-relative)\n", indent_level, ""); if (value->no_warn) fprintf(f, "%*s(Overflow warnings disabled)\n", indent_level, ""); } }
static void bc_incbin_print(const void *contents, FILE *f, int indent_level) { const bytecode_incbin *incbin = (const bytecode_incbin *)contents; fprintf(f, "%*s_IncBin_\n", indent_level, ""); fprintf(f, "%*sFilename=`%s'\n", indent_level, "", incbin->filename); fprintf(f, "%*sStart=", indent_level, ""); if (!incbin->start) fprintf(f, "nil (0)"); else yasm_expr_print(incbin->start, f); fprintf(f, "%*sMax Len=", indent_level, ""); if (!incbin->maxlen) fprintf(f, "nil (unlimited)"); else yasm_expr_print(incbin->maxlen, f); fprintf(f, "\n"); }
void yasm_bc_print(const yasm_bytecode *bc, FILE *f, int indent_level) { if (!bc->callback) fprintf(f, "%*s_Empty_\n", indent_level, ""); else bc->callback->print(bc->contents, f, indent_level); fprintf(f, "%*sMultiple=", indent_level, ""); if (!bc->multiple) fprintf(f, "nil (1)"); else yasm_expr_print(bc->multiple, f); fprintf(f, "\n%*sLength=%lu\n", indent_level, "", bc->len); fprintf(f, "%*sLine Index=%lu\n", indent_level, "", bc->line); fprintf(f, "%*sOffset=%lx\n", indent_level, "", bc->offset); }