Mercurial > repos > blastem
comparison 68kinst.c @ 643:da52f7b72156
Unbreak PC indexed addressing modes in decoder
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 03 Dec 2014 09:26:07 -0800 |
parents | 08d0e3e7d0d8 |
children | f822d9216968 |
comparison
equal
deleted
inserted
replaced
642:08d0e3e7d0d8 | 643:da52f7b72156 |
---|---|
138 dst->addr_mode = MODE_ABSOLUTE; | 138 dst->addr_mode = MODE_ABSOLUTE; |
139 ext = *(++cur); | 139 ext = *(++cur); |
140 dst->params.immed = ext << 16 | *(++cur); | 140 dst->params.immed = ext << 16 | *(++cur); |
141 break; | 141 break; |
142 case 3: | 142 case 3: |
143 #ifdef M68020 | |
144 //TODO: Implement me for M68020+ support; | |
145 #else | |
146 dst->addr_mode = MODE_PC_INDEX_DISP8; | |
147 ext = *(++cur); | |
148 dst->params.regs.sec = ext >> 11;//includes areg/dreg bit, reg num and word/long bit | |
149 dst->params.regs.displacement = sign_extend8(ext&0xFF); | |
150 #endif | |
151 | |
152 ext = *(++cur); | 143 ext = *(++cur); |
153 dst->params.regs.sec = ext >> 11;//includes areg/dreg bit, reg num and word/long bit | 144 dst->params.regs.sec = ext >> 11;//includes areg/dreg bit, reg num and word/long bit |
154 #ifdef M68020 | 145 #ifdef M68020 |
155 dst->params.regs.scale = ext >> 9 & 3; | 146 dst->params.regs.scale = ext >> 9 & 3; |
156 if (ext & 0x100) | 147 if (ext & 0x100) |