comparison 68kinst.c @ 140:18796a3b0fe2

Fix label names in disassembler
author Mike Pavone <pavone@retrodev.com>
date Mon, 31 Dec 2012 11:56:01 -0800
parents e64554246d11
children 4791c0204410
comparison
equal deleted inserted replaced
139:cce22fb4c450 140:18796a3b0fe2
1178 case MODE_IMMEDIATE: 1178 case MODE_IMMEDIATE:
1179 case MODE_IMMEDIATE_WORD: 1179 case MODE_IMMEDIATE_WORD:
1180 return sprintf(dst, (decoded->params.immed <= 128 ? "%s #%d" : "%s #$%X"), c, decoded->params.immed); 1180 return sprintf(dst, (decoded->params.immed <= 128 ? "%s #%d" : "%s #$%X"), c, decoded->params.immed);
1181 case MODE_ABSOLUTE_SHORT: 1181 case MODE_ABSOLUTE_SHORT:
1182 if (labels) { 1182 if (labels) {
1183 return sprintf(dst, "%s ADDR_%X.w", c, decoded->params.immed); 1183 return sprintf(dst, "%s ADR_%X.w", c, decoded->params.immed);
1184 } else { 1184 } else {
1185 return sprintf(dst, "%s $%X.w", c, decoded->params.immed); 1185 return sprintf(dst, "%s $%X.w", c, decoded->params.immed);
1186 } 1186 }
1187 case MODE_ABSOLUTE: 1187 case MODE_ABSOLUTE:
1188 if (labels) { 1188 if (labels) {
1189 return sprintf(dst, "%s ADDR_%X.l", c, decoded->params.immed); 1189 return sprintf(dst, "%s ADR_%X.l", c, decoded->params.immed);
1190 } else { 1190 } else {
1191 return sprintf(dst, "%s $%X", c, decoded->params.immed); 1191 return sprintf(dst, "%s $%X", c, decoded->params.immed);
1192 } 1192 }
1193 case MODE_PC_DISPLACE: 1193 case MODE_PC_DISPLACE:
1194 if (labels) { 1194 if (labels) {
1195 return sprintf(dst, "%s ADDR_%X(pc)", c, address + 2 + decoded->params.regs.displacement); 1195 return sprintf(dst, "%s ADR_%X(pc)", c, address + 2 + decoded->params.regs.displacement);
1196 } else { 1196 } else {
1197 return sprintf(dst, "%s (%d, pc)", c, decoded->params.regs.displacement); 1197 return sprintf(dst, "%s (%d, pc)", c, decoded->params.regs.displacement);
1198 } 1198 }
1199 case MODE_PC_INDEX_DISP8: 1199 case MODE_PC_INDEX_DISP8:
1200 return sprintf(dst, "%s (%d, pc, %c%d.%c)", c, decoded->params.regs.displacement, (decoded->params.regs.sec & 0x10) ? 'a': 'd', (decoded->params.regs.sec >> 1) & 0x7, (decoded->params.regs.sec & 1) ? 'l': 'w'); 1200 return sprintf(dst, "%s (%d, pc, %c%d.%c)", c, decoded->params.regs.displacement, (decoded->params.regs.sec & 0x10) ? 'a': 'd', (decoded->params.regs.sec >> 1) & 0x7, (decoded->params.regs.sec & 1) ? 'l': 'w');
1277 strcpy(dst+ret, cond_mnem[decoded->extra.cond]); 1277 strcpy(dst+ret, cond_mnem[decoded->extra.cond]);
1278 ret = strlen(dst); 1278 ret = strlen(dst);
1279 if (decoded->op != M68K_SCC) { 1279 if (decoded->op != M68K_SCC) {
1280 if (labels) { 1280 if (labels) {
1281 if (decoded->op == M68K_DBCC) { 1281 if (decoded->op == M68K_DBCC) {
1282 ret += sprintf(dst+ret, " d%d, ADDR_%X", decoded->dst.params.regs.pri, decoded->address + 2 + decoded->src.params.immed); 1282 ret += sprintf(dst+ret, " d%d, ADR_%X", decoded->dst.params.regs.pri, decoded->address + 2 + decoded->src.params.immed);
1283 } else { 1283 } else {
1284 ret += sprintf(dst+ret, " ADDR_%X", decoded->address + 2 + decoded->src.params.immed); 1284 ret += sprintf(dst+ret, " ADR_%X", decoded->address + 2 + decoded->src.params.immed);
1285 } 1285 }
1286 } else { 1286 } else {
1287 if (decoded->op == M68K_DBCC) { 1287 if (decoded->op == M68K_DBCC) {
1288 ret += sprintf(dst+ret, " d%d, #%d <%X>", decoded->dst.params.regs.pri, decoded->src.params.immed, decoded->address + 2 + decoded->src.params.immed); 1288 ret += sprintf(dst+ret, " d%d, #%d <%X>", decoded->dst.params.regs.pri, decoded->src.params.immed, decoded->address + 2 + decoded->src.params.immed);
1289 } else { 1289 } else {
1293 return ret; 1293 return ret;
1294 } 1294 }
1295 break; 1295 break;
1296 case M68K_BSR: 1296 case M68K_BSR:
1297 if (labels) { 1297 if (labels) {
1298 ret = sprintf(dst, "bsr%s ADDR_%X", decoded->variant == VAR_BYTE ? ".s" : "", 1298 ret = sprintf(dst, "bsr%s ADR_%X", decoded->variant == VAR_BYTE ? ".s" : "",
1299 decoded->address + 2 + decoded->src.params.immed); 1299 decoded->address + 2 + decoded->src.params.immed);
1300 } else { 1300 } else {
1301 ret = sprintf(dst, "bsr%s #%d <%X>", decoded->variant == VAR_BYTE ? ".s" : "", decoded->src.params.immed, decoded->address + 2 + decoded->src.params.immed); 1301 ret = sprintf(dst, "bsr%s #%d <%X>", decoded->variant == VAR_BYTE ? ".s" : "", decoded->src.params.immed, decoded->address + 2 + decoded->src.params.immed);
1302 } 1302 }
1303 return ret; 1303 return ret;