Fix count calculation when counter limit set to 0 (Robert Reif)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3840 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
		
							parent
							
								
									6fa13c170c
								
							
						
					
					
						commit
						bd7e2875fe
					
				@ -97,9 +97,14 @@ static int slavio_timer_is_user(SLAVIO_TIMERState *s)
 | 
			
		||||
// Convert from ptimer countdown units
 | 
			
		||||
static void slavio_timer_get_out(SLAVIO_TIMERState *s)
 | 
			
		||||
{
 | 
			
		||||
    uint64_t count;
 | 
			
		||||
    uint64_t count, limit;
 | 
			
		||||
 | 
			
		||||
    count = s->limit - PERIODS_TO_LIMIT(ptimer_get_count(s->timer));
 | 
			
		||||
    if (s->limit == 0) /* free-run processor or system counter */
 | 
			
		||||
        limit = TIMER_MAX_COUNT32;
 | 
			
		||||
    else
 | 
			
		||||
        limit = s->limit;
 | 
			
		||||
 | 
			
		||||
    count = limit - PERIODS_TO_LIMIT(ptimer_get_count(s->timer));
 | 
			
		||||
    DPRINTF("get_out: limit %" PRIx64 " count %x%08x\n", s->limit,
 | 
			
		||||
            s->counthigh, s->count);
 | 
			
		||||
    s->count = count & TIMER_COUNT_MASK32;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user