On 11/23/24 04:38, Stafford Horne wrote:
+ or1k_timer->ttcr = or1k_timer->ttcr_offset + + (now - or1k_timer->clk_offset + TIMER_PERIOD - 1) / TIMER_PERIOD;
Better using DIV_ROUND_UP.
+ /* Zero the count by applying a negative offset to the counter */ + or1k_timer->ttcr_offset += UINT32_MAX - (cpu->env.ttmr & TTMR_TP);
Since UINT32_MAX is -1 in this context, this appears to be off-by-one. I think -(ttmr & mask) alone is correct. r~