| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -35,6 +35,17 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					////////////////////////////////////////
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define RELEASE(NEXT_CODE, FILTER) \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					cache_t next_case = { \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    .code = NEXT_CODE, \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    .mask = F_1x1 << next_addr, \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    .filter = FILTER, \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    .addr = next_addr \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					}; \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					cache_insert(next_case); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					////////////////////////////////////////
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define BFS_INIT \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					int next_addr; \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					int current = 0; \ | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -49,17 +60,6 @@ int filter = cache[current++].filter; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					////////////////////////////////////////
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define RELEASE(NEXT_CODE, FILTER) \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					cache_t next_case = { \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    .code = NEXT_CODE, \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    .mask = F_1x1 << next_addr, \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    .filter = FILTER, \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    .addr = next_addr \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					}; \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					cache_insert(next_case); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					////////////////////////////////////////
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					inline void Core::cache_insert(Core::cache_t &next_case) { // try to insert into cache
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    auto *cache_ptr = cache; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    for (; cache_ptr < cache + cache_size; ++cache_ptr) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |