Lines Matching refs:u

38 opr_cast(struct ud* u, struct ud_operand* op)  in opr_cast()  argument
40 if (u->br_far) { in opr_cast()
41 ud_asmprintf(u, "far "); in opr_cast()
44 case 8: ud_asmprintf(u, "byte " ); break; in opr_cast()
45 case 16: ud_asmprintf(u, "word " ); break; in opr_cast()
46 case 32: ud_asmprintf(u, "dword "); break; in opr_cast()
47 case 64: ud_asmprintf(u, "qword "); break; in opr_cast()
48 case 80: ud_asmprintf(u, "tword "); break; in opr_cast()
49 case 128: ud_asmprintf(u, "oword "); break; in opr_cast()
50 case 256: ud_asmprintf(u, "yword "); break; in opr_cast()
59 static void gen_operand(struct ud* u, struct ud_operand* op, int syn_cast) in gen_operand() argument
63 ud_asmprintf(u, "%s", ud_reg_tab[op->base - UD_R_AL]); in gen_operand()
68 opr_cast(u, op); in gen_operand()
70 ud_asmprintf(u, "["); in gen_operand()
71 if (u->pfx_seg) { in gen_operand()
72 ud_asmprintf(u, "%s:", ud_reg_tab[u->pfx_seg - UD_R_AL]); in gen_operand()
75 ud_asmprintf(u, "%s", ud_reg_tab[op->base - UD_R_AL]); in gen_operand()
78 ud_asmprintf(u, "%s%s", op->base != UD_NONE? "+" : "", in gen_operand()
81 ud_asmprintf(u, "*%d", op->scale); in gen_operand()
85 ud_syn_print_mem_disp(u, op, (op->base != UD_NONE || in gen_operand()
88 ud_asmprintf(u, "]"); in gen_operand()
92 ud_syn_print_imm(u, op); in gen_operand()
97 ud_syn_print_addr(u, ud_syn_rel_target(u, op)); in gen_operand()
103 ud_asmprintf(u, "word 0x%x:0x%x", op->lval.ptr.seg, in gen_operand()
107 ud_asmprintf(u, "dword 0x%x:0x%x", op->lval.ptr.seg, in gen_operand()
114 if (syn_cast) opr_cast(u, op); in gen_operand()
115 ud_asmprintf(u, "%d", op->lval.udword); in gen_operand()
127 ud_translate_intel(struct ud* u) in ud_translate_intel() argument
130 if (!P_OSO(u->itab_entry->prefix) && u->pfx_opr) { in ud_translate_intel()
131 switch (u->dis_mode) { in ud_translate_intel()
132 case 16: ud_asmprintf(u, "o32 "); break; in ud_translate_intel()
134 case 64: ud_asmprintf(u, "o16 "); break; in ud_translate_intel()
139 if (!P_ASO(u->itab_entry->prefix) && u->pfx_adr) { in ud_translate_intel()
140 switch (u->dis_mode) { in ud_translate_intel()
141 case 16: ud_asmprintf(u, "a32 "); break; in ud_translate_intel()
142 case 32: ud_asmprintf(u, "a16 "); break; in ud_translate_intel()
143 case 64: ud_asmprintf(u, "a32 "); break; in ud_translate_intel()
147 if (u->pfx_seg && in ud_translate_intel()
148 u->operand[0].type != UD_OP_MEM && in ud_translate_intel()
149 u->operand[1].type != UD_OP_MEM ) { in ud_translate_intel()
150 ud_asmprintf(u, "%s ", ud_reg_tab[u->pfx_seg - UD_R_AL]); in ud_translate_intel()
153 if (u->pfx_lock) { in ud_translate_intel()
154 ud_asmprintf(u, "lock "); in ud_translate_intel()
156 if (u->pfx_rep) { in ud_translate_intel()
157 ud_asmprintf(u, "rep "); in ud_translate_intel()
158 } else if (u->pfx_repe) { in ud_translate_intel()
159 ud_asmprintf(u, "repe "); in ud_translate_intel()
160 } else if (u->pfx_repne) { in ud_translate_intel()
161 ud_asmprintf(u, "repne "); in ud_translate_intel()
165 ud_asmprintf(u, "%s", ud_lookup_mnemonic(u->mnemonic)); in ud_translate_intel()
167 if (u->operand[0].type != UD_NONE) { in ud_translate_intel()
169 ud_asmprintf(u, " "); in ud_translate_intel()
170 if (u->operand[0].type == UD_OP_MEM) { in ud_translate_intel()
171 if (u->operand[1].type == UD_OP_IMM || in ud_translate_intel()
172 u->operand[1].type == UD_OP_CONST || in ud_translate_intel()
173 u->operand[1].type == UD_NONE || in ud_translate_intel()
174 (u->operand[0].size != u->operand[1].size)) { in ud_translate_intel()
176 } else if (u->operand[1].type == UD_OP_REG && in ud_translate_intel()
177 u->operand[1].base == UD_R_CL) { in ud_translate_intel()
178 switch (u->mnemonic) { in ud_translate_intel()
192 gen_operand(u, &u->operand[0], cast); in ud_translate_intel()
195 if (u->operand[1].type != UD_NONE) { in ud_translate_intel()
197 ud_asmprintf(u, ", "); in ud_translate_intel()
198 if (u->operand[1].type == UD_OP_MEM && in ud_translate_intel()
199 u->operand[0].size != u->operand[1].size && in ud_translate_intel()
200 !ud_opr_is_sreg(&u->operand[0])) { in ud_translate_intel()
203 gen_operand(u, &u->operand[1], cast); in ud_translate_intel()
206 if (u->operand[2].type != UD_NONE) { in ud_translate_intel()
208 ud_asmprintf(u, ", "); in ud_translate_intel()
209 if (u->operand[2].type == UD_OP_MEM && in ud_translate_intel()
210 u->operand[2].size != u->operand[1].size) { in ud_translate_intel()
213 gen_operand(u, &u->operand[2], cast); in ud_translate_intel()
216 if (u->operand[3].type != UD_NONE) { in ud_translate_intel()
217 ud_asmprintf(u, ", "); in ud_translate_intel()
218 gen_operand(u, &u->operand[3], 0); in ud_translate_intel()