| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -110,6 +110,7 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						variable result_with_carry : std_ulogic_vector(64 downto 0);
 | 
					 | 
					 | 
					 | 
						variable result_with_carry : std_ulogic_vector(64 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						variable result_en : std_ulogic;
 | 
					 | 
					 | 
					 | 
						variable result_en : std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						variable crnum : crnum_t;
 | 
					 | 
					 | 
					 | 
						variable crnum : crnum_t;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						variable crbit : integer range 0 to 31;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						variable scrnum : crnum_t;
 | 
					 | 
					 | 
					 | 
						variable scrnum : crnum_t;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						variable lo, hi : integer;
 | 
					 | 
					 | 
					 | 
						variable lo, hi : integer;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						variable sh, mb, me : std_ulogic_vector(5 downto 0);
 | 
					 | 
					 | 
					 | 
						variable sh, mb, me : std_ulogic_vector(5 downto 0);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -238,8 +239,8 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							result := e_in.read_data3;
 | 
					 | 
					 | 
					 | 
							result := e_in.read_data3;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							result_en := '1';
 | 
					 | 
					 | 
					 | 
							result_en := '1';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    when OP_ISEL =>
 | 
					 | 
					 | 
					 | 
						    when OP_ISEL =>
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							crnum := to_integer(unsigned(insn_bc(e_in.insn)));
 | 
					 | 
					 | 
					 | 
							crbit := to_integer(unsigned(insn_bc(e_in.insn)));
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if e_in.cr(31-crnum) = '1' then
 | 
					 | 
					 | 
					 | 
							if e_in.cr(31-crbit) = '1' then
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							    result := e_in.read_data1;
 | 
					 | 
					 | 
					 | 
							    result := e_in.read_data1;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							else
 | 
					 | 
					 | 
					 | 
							else
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							    result := e_in.read_data2;
 | 
					 | 
					 | 
					 | 
							    result := e_in.read_data2;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |