mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	Replaced signed_parameters API with CONST_FLAG_SIGNED
This commit is contained in:
		
							parent
							
								
									93a70959f3
								
							
						
					
					
						commit
						f4b46ed31e
					
				
					 10 changed files with 11 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -819,7 +819,7 @@ AstModule::~AstModule()
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// create a new parametric module (when needed) and return the name of the generated module
 | 
			
		||||
RTLIL::IdString AstModule::derive(RTLIL::Design *design, std::map<RTLIL::IdString, RTLIL::Const> parameters, std::set<RTLIL::IdString> signed_parameters)
 | 
			
		||||
RTLIL::IdString AstModule::derive(RTLIL::Design *design, std::map<RTLIL::IdString, RTLIL::Const> parameters)
 | 
			
		||||
{
 | 
			
		||||
	log_header("Executing AST frontend in derive mode using pre-parsed AST for module `%s'.\n", name.c_str());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -853,7 +853,7 @@ RTLIL::IdString AstModule::derive(RTLIL::Design *design, std::map<RTLIL::IdStrin
 | 
			
		|||
	rewrite_parameter:
 | 
			
		||||
			para_info += stringf("%s=%s", child->str.c_str(), log_signal(RTLIL::SigSpec(parameters[para_id])));
 | 
			
		||||
			delete child->children.at(0);
 | 
			
		||||
			child->children[0] = AstNode::mkconst_bits(parameters[para_id].bits, signed_parameters.count(para_id) > 0);
 | 
			
		||||
			child->children[0] = AstNode::mkconst_bits(parameters[para_id].bits, (parameters[para_id].flags & RTLIL::CONST_FLAG_SIGNED) != 0);
 | 
			
		||||
			hash_data.insert(hash_data.end(), child->str.begin(), child->str.end());
 | 
			
		||||
			hash_data.push_back(0);
 | 
			
		||||
			hash_data.insert(hash_data.end(), parameters[para_id].bits.begin(), parameters[para_id].bits.end());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -229,7 +229,7 @@ namespace AST
 | 
			
		|||
		AstNode *ast;
 | 
			
		||||
		bool nolatches, nomem2reg, mem2reg, lib, noopt;
 | 
			
		||||
		virtual ~AstModule();
 | 
			
		||||
		virtual RTLIL::IdString derive(RTLIL::Design *design, std::map<RTLIL::IdString, RTLIL::Const> parameters, std::set<RTLIL::IdString> signed_parameters);
 | 
			
		||||
		virtual RTLIL::IdString derive(RTLIL::Design *design, std::map<RTLIL::IdString, RTLIL::Const> parameters);
 | 
			
		||||
		virtual RTLIL::Module *clone() const;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1304,12 +1304,8 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint)
 | 
			
		|||
					if (child->str.size() == 0) {
 | 
			
		||||
						char buf[100];
 | 
			
		||||
						snprintf(buf, 100, "$%d", ++para_counter);
 | 
			
		||||
						if (child->children[0]->is_signed)
 | 
			
		||||
							cell->signed_parameters.insert(buf);
 | 
			
		||||
						cell->parameters[buf] = child->children[0]->asParaConst();
 | 
			
		||||
					} else {
 | 
			
		||||
						if (child->children[0]->is_signed)
 | 
			
		||||
							cell->signed_parameters.insert(child->str);
 | 
			
		||||
						cell->parameters[child->str] = child->children[0]->asParaConst();
 | 
			
		||||
					}
 | 
			
		||||
					continue;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -191,7 +191,7 @@ cell_body:
 | 
			
		|||
	} |
 | 
			
		||||
	cell_body TOK_PARAMETER TOK_SIGNED TOK_ID constant TOK_EOL {
 | 
			
		||||
		current_cell->parameters[$4] = *$5;
 | 
			
		||||
		current_cell->signed_parameters.insert($4);
 | 
			
		||||
		current_cell->parameters[$4].flags |= RTLIL::CONST_FLAG_SIGNED;
 | 
			
		||||
		free($4);
 | 
			
		||||
		delete $5;
 | 
			
		||||
	} |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue