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)