mirror of
https://github.com/ekeeke/Genesis-Plus-GX.git
synced 2025-01-14 12:19:06 +01:00
[Core/CD] improved Main-CPU & Sub-CPU idle loop detection (fixes cases where ADDQ instruction is used in tight counter incrementing loop)
This commit is contained in:
parent
64d3e08e7d
commit
79bd0e7582
@ -1868,6 +1868,9 @@ static void m68k_op_addq_8_d(void)
|
|||||||
FLAG_Z = MASK_OUT_ABOVE_8(res);
|
FLAG_Z = MASK_OUT_ABOVE_8(res);
|
||||||
|
|
||||||
*r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;
|
*r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;
|
||||||
|
|
||||||
|
/* reset idle loop detection (fixes cases where instruction is used in tight counter incrementing loop) */
|
||||||
|
m68ki_cpu.poll.detected = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2028,6 +2031,9 @@ static void m68k_op_addq_16_d(void)
|
|||||||
FLAG_Z = MASK_OUT_ABOVE_16(res);
|
FLAG_Z = MASK_OUT_ABOVE_16(res);
|
||||||
|
|
||||||
*r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;
|
*r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;
|
||||||
|
|
||||||
|
/* reset idle loop detection (fixes cases where instruction is used in tight counter incrementing loop) */
|
||||||
|
m68ki_cpu.poll.detected = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2164,6 +2170,9 @@ static void m68k_op_addq_32_d(void)
|
|||||||
FLAG_Z = MASK_OUT_ABOVE_32(res);
|
FLAG_Z = MASK_OUT_ABOVE_32(res);
|
||||||
|
|
||||||
*r_dst = FLAG_Z;
|
*r_dst = FLAG_Z;
|
||||||
|
|
||||||
|
/* reset idle loop detection (fixes cases where instruction is used in tight counter incrementing loop) */
|
||||||
|
m68ki_cpu.poll.detected = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user