comparison 68kinst.c @ 90:645fe435cb48

Fix decoding of and
author Mike Pavone <pavone@retrodev.com>
date Wed, 26 Dec 2012 22:13:31 -0800
parents d212e0cd0b7e
children 8c446fc19cc0
comparison
equal deleted inserted replaced
89:9757b4c6c33f 90:645fe435cb48
905 } else { 905 } else {
906 decoded->src.addr_mode = decoded->dst.addr_mode = MODE_REG; 906 decoded->src.addr_mode = decoded->dst.addr_mode = MODE_REG;
907 } 907 }
908 } else { 908 } else {
909 decoded->op = M68K_AND; 909 decoded->op = M68K_AND;
910 decoded->extra.size = (*istream >> 6); 910 decoded->extra.size = (*istream >> 6) & 0x3;
911 decoded->src.addr_mode = MODE_REG; 911 decoded->src.addr_mode = MODE_REG;
912 decoded->src.params.regs.pri = m68k_reg_quick_field(*istream); 912 decoded->src.params.regs.pri = m68k_reg_quick_field(*istream);
913 istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->dst)); 913 istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->dst));
914 } 914 }
915 } else { 915 } else {
919 decoded->dst.addr_mode = MODE_REG; 919 decoded->dst.addr_mode = MODE_REG;
920 decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream); 920 decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream);
921 istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src)); 921 istream = m68k_decode_op(istream, OPSIZE_WORD, &(decoded->src));
922 } else { 922 } else {
923 decoded->op = M68K_AND; 923 decoded->op = M68K_AND;
924 decoded->extra.size = (*istream >> 6); 924 decoded->extra.size = (*istream >> 6) & 0x3;
925 decoded->dst.addr_mode = MODE_REG; 925 decoded->dst.addr_mode = MODE_REG;
926 decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream); 926 decoded->dst.params.regs.pri = m68k_reg_quick_field(*istream);
927 istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->src)); 927 istream = m68k_decode_op(istream, decoded->extra.size, &(decoded->src));
928 } 928 }
929 } 929 }