MCPcopy Create free account
hub / github.com/F-Stack/f-stack / md_printins

Function md_printins

freebsd/mips/mips/db_disasm.c:154–399  ·  view source on GitHub ↗

ARGSUSED */

Source from the content-addressed store, hash-verified

152
153/* ARGSUSED */
154static int
155md_printins(int ins, int mdbdot)
156{
157 InstFmt i;
158 int delay = 0;
159
160 i.word = ins;
161
162 switch (i.JType.op) {
163 case OP_SPECIAL:
164 if (i.word == 0) {
165 db_printf("nop");
166 break;
167 }
168 if (i.RType.func == OP_ADDU && i.RType.rt == 0) {
169 db_printf("move\t%s,%s",
170 reg_name[i.RType.rd], reg_name[i.RType.rs]);
171 break;
172 }
173 db_printf("%s", spec_name[i.RType.func]);
174 switch (i.RType.func) {
175 case OP_SLL:
176 case OP_SRL:
177 case OP_SRA:
178 case OP_DSLL:
179 case OP_DSRL:
180 case OP_DSRA:
181 case OP_DSLL32:
182 case OP_DSRL32:
183 case OP_DSRA32:
184 db_printf("\t%s,%s,%d", reg_name[i.RType.rd],
185 reg_name[i.RType.rt], i.RType.shamt);
186 break;
187
188 case OP_SLLV:
189 case OP_SRLV:
190 case OP_SRAV:
191 case OP_DSLLV:
192 case OP_DSRLV:
193 case OP_DSRAV:
194 db_printf("\t%s,%s,%s", reg_name[i.RType.rd],
195 reg_name[i.RType.rt], reg_name[i.RType.rs]);
196 break;
197
198 case OP_MFHI:
199 case OP_MFLO:
200 db_printf("\t%s", reg_name[i.RType.rd]);
201 break;
202
203 case OP_JR:
204 case OP_JALR:
205 delay = 1;
206 /* FALLTHROUGH */
207 case OP_MTLO:
208 case OP_MTHI:
209 db_printf("\t%s", reg_name[i.RType.rs]);
210 break;
211

Callers 1

db_disasmFunction · 0.85

Calls 1

db_printfFunction · 0.85

Tested by

no test coverage detected