Skip to content

Commit fd2ee37

Browse files
committed
Revert "Finish the correction of do/dor"
Looks like I'm tired this evening...
1 parent 16b76d4 commit fd2ee37

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/devices/cpu/dsp563xx/dsp563xx.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,13 +146,19 @@ void dsp563xx_device::execute_run()
146146
while(m_icount > 0) {
147147
debugger_instruction_hook(m_pc);
148148
u32 opcode = m_p.read_dword(m_pc);
149+
bool loop = (m_mr & MR_LF) && m_pc == m_la;
149150
u16 kmove = t_move[opcode >> 8];
150151
u16 knpar = kmove || opcode >= 0x100000 ? 0 : t_npar[opcode];
151152
u16 kipar = knpar ? 0 : t_ipar[opcode & 0xff];
152153
bool ex = BIT(t_move_ex[kmove >> 6], kmove & 0x3f) || BIT(t_npar_ex[knpar >> 6], knpar & 0x3f);
153-
u32 exv = ex ? m_p.read_dword(m_pc+1) : 0;
154+
u32 exv;
155+
if(ex) {
156+
exv = m_p.read_dword(m_pc+1);
157+
loop = loop || ((m_mr & MR_LF) && m_pc+1 == m_la);
158+
} else
159+
exv = 0;
154160
m_npc = (m_pc + (ex ? 2 : 1)) & 0xffffff;
155-
if((m_mr & MR_LF) && m_npc == m_la) {
161+
if(loop) {
156162
if(m_lc != 1 || (m_emr & EMR_FV)) {
157163
m_lc = m_lc ? m_lc-1 : 0xffff;
158164
m_npc = get_ssh();

0 commit comments

Comments
 (0)