Mercurial > repos > blastem
comparison 68kinst.c @ 60:6ffea8607730
Fix operand order for AND instructions
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 18 Dec 2012 23:55:10 -0800 |
parents | 3b79cbcf6846 |
children | 918468c623e9 |
comparison
equal
deleted
inserted
replaced
59:32650c77008a | 60:6ffea8607730 |
---|---|
884 decoded->src.addr_mode = decoded->dst.addr_mode = MODE_REG; | 884 decoded->src.addr_mode = decoded->dst.addr_mode = MODE_REG; |
885 } | 885 } |
886 } else { | 886 } else { |
887 decoded->op = M68K_AND; | 887 decoded->op = M68K_AND; |
888 decoded->extra.size = (*istream >> 6); | 888 decoded->extra.size = (*istream >> 6); |
889 decoded->dst.addr_mode = MODE_REG; | 889 decoded->src.addr_mode = MODE_REG; |
890 decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream); | 890 decoded->src.params.regs.pri = m68k_reg_quick_field(*istream); |
891 istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->src)); | 891 istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->dst)); |
892 } | 892 } |
893 } else { | 893 } else { |
894 if ((*istream & 0xC0) == 0xC0) { | 894 if ((*istream & 0xC0) == 0xC0) { |
895 decoded->op = M68K_MULU; | 895 decoded->op = M68K_MULU; |
896 decoded->extra.size = OPSIZE_WORD; | 896 decoded->extra.size = OPSIZE_WORD; |
898 decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream); | 898 decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream); |
899 istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src)); | 899 istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src)); |
900 } else { | 900 } else { |
901 decoded->op = M68K_AND; | 901 decoded->op = M68K_AND; |
902 decoded->extra.size = (*istream >> 6); | 902 decoded->extra.size = (*istream >> 6); |
903 decoded->src.addr_mode = MODE_REG; | 903 decoded->dst.addr_mode = MODE_REG; |
904 decoded->src.params.regs.pri = m68k_reg_quick_field(*istream); | 904 decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream); |
905 istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->dst)); | 905 istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->src)); |
906 } | 906 } |
907 } | 907 } |
908 break; | 908 break; |
909 case ADD_ADDX: | 909 case ADD_ADDX: |
910 size = *istream >> 6 & 0x3; | 910 size = *istream >> 6 & 0x3; |