Speedup 'tb_find_slow' by using the same heuristic as during memory page lookup
Move the last found TB to the head of the list so it will be found more quickly next time it will be looked for. Signed-off-by: Kirill Batuzov <batuzovk@ispras.ru> Signed-off-by: Pavel Yushchenko <pau@ispras.ru> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
		
							parent
							
								
									53016fa69c
								
							
						
					
					
						commit
						2c90fe2b71
					
				@ -167,6 +167,12 @@ static TranslationBlock *tb_find_slow(target_ulong pc,
 | 
			
		||||
    tb = tb_gen_code(env, pc, cs_base, flags, 0);
 | 
			
		||||
 | 
			
		||||
 found:
 | 
			
		||||
    /* Move the last found TB to the head of the list */
 | 
			
		||||
    if (likely(*ptb1)) {
 | 
			
		||||
        *ptb1 = tb->phys_hash_next;
 | 
			
		||||
        tb->phys_hash_next = tb_phys_hash[h];
 | 
			
		||||
        tb_phys_hash[h] = tb;
 | 
			
		||||
    }
 | 
			
		||||
    /* we add the TB in the virtual pc hash table */
 | 
			
		||||
    env->tb_jmp_cache[tb_jmp_cache_hash_func(pc)] = tb;
 | 
			
		||||
    return tb;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user