mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 05:19:11 +00:00 
			
		
		
		
	Fixed return size of const_*() eval functions
This commit is contained in:
		
							parent
							
								
									be44157c0f
								
							
						
					
					
						commit
						83ec3fa204
					
				
					 1 changed files with 5 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -35,6 +35,8 @@ static void extend(RTLIL::Const &arg, int width, bool is_signed)
 | 
			
		|||
 | 
			
		||||
	while (int(arg.bits.size()) < width)
 | 
			
		||||
		arg.bits.push_back(padding);
 | 
			
		||||
 | 
			
		||||
	arg.bits.resize(width);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void extend_u0(RTLIL::Const &arg, int width, bool is_signed)
 | 
			
		||||
| 
						 | 
				
			
			@ -46,6 +48,8 @@ static void extend_u0(RTLIL::Const &arg, int width, bool is_signed)
 | 
			
		|||
 | 
			
		||||
	while (int(arg.bits.size()) < width)
 | 
			
		||||
		arg.bits.push_back(padding);
 | 
			
		||||
 | 
			
		||||
	arg.bits.resize(width);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static BigInteger const2big(const RTLIL::Const &val, bool as_signed, int &undef_bit_pos)
 | 
			
		||||
| 
						 | 
				
			
			@ -312,7 +316,7 @@ RTLIL::Const RTLIL::const_shl(const RTLIL::Const &arg1, const RTLIL::Const &arg2
 | 
			
		|||
RTLIL::Const RTLIL::const_shr(const RTLIL::Const &arg1, const RTLIL::Const &arg2, bool signed1, bool, int result_len)
 | 
			
		||||
{
 | 
			
		||||
	RTLIL::Const arg1_ext = arg1;
 | 
			
		||||
	extend_u0(arg1_ext, result_len, signed1);
 | 
			
		||||
	extend_u0(arg1_ext, std::max(result_len, SIZE(arg1)), signed1);
 | 
			
		||||
	return const_shift_worker(arg1_ext, arg2, false, +1, result_len);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue