comparison 68kinst.c @ 93:f63b0e58e2d5

Implement EXT, add some fixes to LINK/UNLK
author Mike Pavone <pavone@retrodev.com>
date Thu, 27 Dec 2012 18:21:10 -0800
parents 8c446fc19cc0
children a668a35a3463
comparison
equal deleted inserted replaced
92:c3d034e076ee 93:f63b0e58e2d5
525 decoded->src.params.immed = *istream & 0x7; 525 decoded->src.params.immed = *istream & 0x7;
526 #endif 526 #endif
527 break; 527 break;
528 case 0x10: 528 case 0x10:
529 decoded->op = M68K_EXT; 529 decoded->op = M68K_EXT;
530 decoded->src.addr_mode = MODE_REG; 530 decoded->dst.addr_mode = MODE_REG;
531 decoded->src.params.regs.pri = *istream & 0x7; 531 decoded->dst.params.regs.pri = *istream & 0x7;
532 decoded->extra.size = OPSIZE_WORD; 532 decoded->extra.size = OPSIZE_WORD;
533 break; 533 break;
534 case 0x18: 534 case 0x18:
535 decoded->op = M68K_EXT; 535 decoded->op = M68K_EXT;
536 decoded->src.addr_mode = MODE_REG; 536 decoded->dst.addr_mode = MODE_REG;
537 decoded->src.params.regs.pri = *istream & 0x7; 537 decoded->dst.params.regs.pri = *istream & 0x7;
538 decoded->extra.size = OPSIZE_LONG; 538 decoded->extra.size = OPSIZE_LONG;
539 break; 539 break;
540 case 0x38: 540 case 0x38:
541 #ifdef M68020 541 #ifdef M68020
542 #endif 542 #endif
605 decoded->op = M68K_LINK; 605 decoded->op = M68K_LINK;
606 decoded->extra.size = OPSIZE_WORD; 606 decoded->extra.size = OPSIZE_WORD;
607 decoded->src.addr_mode = MODE_AREG; 607 decoded->src.addr_mode = MODE_AREG;
608 decoded->src.params.regs.pri = *istream & 0x7; 608 decoded->src.params.regs.pri = *istream & 0x7;
609 decoded->dst.addr_mode = MODE_IMMEDIATE; 609 decoded->dst.addr_mode = MODE_IMMEDIATE;
610 decoded->dst.params.immed = *(++istream); 610 decoded->dst.params.immed = sign_extend16(*(++istream));
611 break; 611 break;
612 case 3: 612 case 3:
613 //UNLK 613 //UNLK
614 decoded->op = M68K_UNLK; 614 decoded->op = M68K_UNLK;
615 decoded->extra.size = OPSIZE_UNSIZED; 615 decoded->extra.size = OPSIZE_UNSIZED;