Mercurial > repos > blastem
comparison 68kinst.c @ 1648:b7ecd0d6a77b mame_interp
Merge from default
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 25 Dec 2018 11:12:26 -0800 |
parents | dc1eab3ec092 |
children | 8554751f17b5 |
comparison
equal
deleted
inserted
replaced
1509:36732f5c2281 | 1648:b7ecd0d6a77b |
---|---|
1535 decoded->src.addr_mode = MODE_IMMEDIATE; | 1535 decoded->src.addr_mode = MODE_IMMEDIATE; |
1536 if (!immed) { | 1536 if (!immed) { |
1537 immed = 8; | 1537 immed = 8; |
1538 } | 1538 } |
1539 decoded->src.params.immed = immed; | 1539 decoded->src.params.immed = immed; |
1540 decoded->variant = VAR_QUICK; | |
1540 } | 1541 } |
1541 decoded->dst.addr_mode = MODE_REG; | 1542 decoded->dst.addr_mode = MODE_REG; |
1542 decoded->dst.params.regs.pri = *istream & 0x7; | 1543 decoded->dst.params.regs.pri = *istream & 0x7; |
1543 | 1544 |
1544 } else { | 1545 } else { |
2606 } | 2607 } |
2607 return ret; | 2608 return ret; |
2608 #endif | 2609 #endif |
2609 default: | 2610 default: |
2610 size = decoded->extra.size; | 2611 size = decoded->extra.size; |
2612 uint8_t is_quick = decoded->variant == VAR_QUICK && decoded->op != M68K_ASL && decoded->op != M68K_ASR | |
2613 && decoded->op != M68K_LSL && decoded->op != M68K_LSR && decoded->op != M68K_ROXR && decoded->op != M68K_ROXL | |
2614 && decoded->op != M68K_ROR && decoded->op != M68K_ROL; | |
2611 ret = sprintf(dst, "%s%s%s", | 2615 ret = sprintf(dst, "%s%s%s", |
2612 mnemonics[decoded->op], | 2616 mnemonics[decoded->op], |
2613 decoded->variant == VAR_QUICK ? "q" : (decoded->variant == VAR_IMMEDIATE ? "i" : ""), | 2617 is_quick ? "q" : (decoded->variant == VAR_IMMEDIATE ? "i" : ""), |
2614 size == OPSIZE_BYTE ? ".b" : (size == OPSIZE_WORD ? ".w" : (size == OPSIZE_LONG ? ".l" : ""))); | 2618 size == OPSIZE_BYTE ? ".b" : (size == OPSIZE_WORD ? ".w" : (size == OPSIZE_LONG ? ".l" : ""))); |
2615 } | 2619 } |
2616 if (decoded->op == M68K_MOVEM) { | 2620 if (decoded->op == M68K_MOVEM) { |
2617 op1len = m68k_disasm_movem_op(&(decoded->src), &(decoded->dst), dst + ret, 0, labels, decoded->address, label_fun, data); | 2621 op1len = m68k_disasm_movem_op(&(decoded->src), &(decoded->dst), dst + ret, 0, labels, decoded->address, label_fun, data); |
2618 ret += op1len; | 2622 ret += op1len; |