Mercurial > repos > blastem
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; |