MCPcopy Create free account
hub / github.com/CE-Programming/CEmu / disasmPut

Function disasmPut

gui/qt/debugger/disasm.cpp:120–166  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118}
119
120static bool disasmPut(struct zdis_ctx *ctx, enum zdis_put kind, int32_t val, bool il) {
121 char tmp[11], sign = '+';
122 (void)ctx;
123 disasm.il = il;
124 switch (kind) {
125 case ZDIS_PUT_BYTE:
126 case ZDIS_PUT_PORT:
127 snprintf(tmp, 10, "$%02X", val);
128 *disasm.cur += tmp;
129 break;
130 case ZDIS_PUT_WORD:
131 *disasm.cur += strW(static_cast<uint32_t>(val));
132 break;
133 case ZDIS_PUT_OFF:
134 if (val < 0) {
135 val = -val;
136 sign = '-';
137 }
138 if (val) {
139 snprintf(tmp, 11, "%c$%02X", sign, val);
140 *disasm.cur += tmp;
141 }
142 break;
143 case ZDIS_PUT_REL:
144 val += disasm.ctx.zdis_end_addr;
145 [[gnu::fallthrough]];
146 case ZDIS_PUT_ADDR:
147 case ZDIS_PUT_ABS:
148 case ZDIS_PUT_RST:
149 *disasm.cur += strA(static_cast<uint32_t>(val));
150 break;
151 case ZDIS_PUT_CHAR:
152 *disasm.cur += static_cast<char>(val);
153 break;
154 case ZDIS_PUT_MNE_SEP:
155 disasm.instr.operands = disasm.tab ? '\t' : ' ';
156 disasm.cur = &disasm.instr.operands;
157 break;
158 case ZDIS_PUT_ARG_SEP:
159 *disasm.cur += disasm.comma;
160 break;
161 case ZDIS_PUT_END:
162 disasm.cur = nullptr;
163 break;
164 }
165 return true;
166}
167
168void disasmInit() {
169 disasm.ctx.zdis_read = disasmFetch;

Callers

nothing calls this directly

Calls 2

strWFunction · 0.85
strAFunction · 0.85

Tested by

no test coverage detected