Mercurial > repos > blastem
comparison 68kinst.c @ 94:a668a35a3463
Fix decoding bug for addq/subq
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 27 Dec 2012 18:47:33 -0800 |
parents | f63b0e58e2d5 |
children | dd3c680c618c |
comparison
equal
deleted
inserted
replaced
93:f63b0e58e2d5 | 94:a668a35a3463 |
---|---|
707 //ADDQ, SUBQ | 707 //ADDQ, SUBQ |
708 decoded->variant = VAR_QUICK; | 708 decoded->variant = VAR_QUICK; |
709 decoded->extra.size = size; | 709 decoded->extra.size = size; |
710 decoded->src.addr_mode = MODE_IMMEDIATE; | 710 decoded->src.addr_mode = MODE_IMMEDIATE; |
711 immed = m68k_reg_quick_field(*istream); | 711 immed = m68k_reg_quick_field(*istream); |
712 istream = m68k_decode_op(istream, size, &(decoded->dst)); | |
713 if (!immed) { | 712 if (!immed) { |
714 immed = 8; | 713 immed = 8; |
715 } | 714 } |
716 decoded->src.params.immed = immed; | 715 decoded->src.params.immed = immed; |
717 if (*istream & 0x100) { | 716 if (*istream & 0x100) { |
718 decoded->op = M68K_SUB; | 717 decoded->op = M68K_SUB; |
719 } else { | 718 } else { |
720 decoded->op = M68K_ADD; | 719 decoded->op = M68K_ADD; |
721 } | 720 } |
721 istream = m68k_decode_op(istream, size, &(decoded->dst)); | |
722 } | 722 } |
723 break; | 723 break; |
724 case BRANCH: | 724 case BRANCH: |
725 m68k_decode_cond(*istream, decoded); | 725 m68k_decode_cond(*istream, decoded); |
726 decoded->op = decoded->extra.cond == COND_FALSE ? M68K_BSR : M68K_BCC; | 726 decoded->op = decoded->extra.cond == COND_FALSE ? M68K_BSR : M68K_BCC; |