Lines Matching refs:op
20 opr_cast(struct ud* u, struct ud_operand* op)
22 switch(op->size) {
34 gen_operand(struct ud* u, struct ud_operand* op)
36 switch(op->type) {
38 mkasm(u, "%%%s", ud_reg_tab[op->base - UD_R_AL]);
42 if (u->br_far) opr_cast(u, op);
45 if (op->offset == 8) {
46 if (op->lval.sbyte < 0)
47 mkasm(u, "-0x%x", (-op->lval.sbyte) & 0xff);
48 else mkasm(u, "0x%x", op->lval.sbyte);
50 else if (op->offset == 16)
51 mkasm(u, "0x%x", op->lval.uword);
52 else if (op->offset == 32)
53 mkasm(u, "0x%lx", op->lval.udword);
54 else if (op->offset == 64)
55 mkasm(u, "0x" FMT64 "x", op->lval.uqword);
57 if (op->base)
58 mkasm(u, "(%%%s", ud_reg_tab[op->base - UD_R_AL]);
59 if (op->index) {
60 if (op->base)
63 mkasm(u, "%%%s", ud_reg_tab[op->index - UD_R_AL]);
65 if (op->scale)
66 mkasm(u, ",%d", op->scale);
67 if (op->base || op->index)
72 switch (op->size) {
73 case 8: mkasm(u, "$0x%x", op->lval.ubyte); break;
74 case 16: mkasm(u, "$0x%x", op->lval.uword); break;
75 case 32: mkasm(u, "$0x%lx", op->lval.udword); break;
76 case 64: mkasm(u, "$0x" FMT64 "x", op->lval.uqword); break;
82 switch (op->size) {
84 mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sbyte);
87 mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sword);
90 mkasm(u, "0x" FMT64 "x", u->pc + op->lval.sdword);
97 switch (op->size) {
99 mkasm(u, "$0x%x, $0x%x", op->lval.ptr.seg,
100 op->lval.ptr.off & 0xFFFF);
103 mkasm(u, "$0x%x, $0x%lx", op->lval.ptr.seg,
104 op->lval.ptr.off);