mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 13:29:12 +00:00 
			
		
		
		
	Interpret "abc9 -lut" as lut string only if [0-9:]
This commit is contained in:
		
							parent
							
								
									f52c6efd9d
								
							
						
					
					
						commit
						3b559de6e9
					
				
					 1 changed files with 18 additions and 19 deletions
				
			
		| 
						 | 
					@ -981,29 +981,28 @@ struct Abc9Pass : public Pass {
 | 
				
			||||||
			//}
 | 
								//}
 | 
				
			||||||
			if (arg == "-lut" && argidx+1 < args.size()) {
 | 
								if (arg == "-lut" && argidx+1 < args.size()) {
 | 
				
			||||||
				string arg = args[++argidx];
 | 
									string arg = args[++argidx];
 | 
				
			||||||
				size_t pos = arg.find_first_of(':');
 | 
									if (arg.find_first_not_of("0123456789:") == std::string::npos) {
 | 
				
			||||||
				int lut_mode = 0, lut_mode2 = 0;
 | 
										size_t pos = arg.find_first_of(':');
 | 
				
			||||||
				if (pos != string::npos) {
 | 
										int lut_mode = 0, lut_mode2 = 0;
 | 
				
			||||||
					lut_mode = atoi(arg.substr(0, pos).c_str());
 | 
					 | 
				
			||||||
					lut_mode2 = atoi(arg.substr(pos+1).c_str());
 | 
					 | 
				
			||||||
				} else {
 | 
					 | 
				
			||||||
					pos = arg.find_first_of('.');
 | 
					 | 
				
			||||||
					if (pos != string::npos) {
 | 
										if (pos != string::npos) {
 | 
				
			||||||
						lut_file = arg;
 | 
											lut_mode = atoi(arg.substr(0, pos).c_str());
 | 
				
			||||||
						rewrite_filename(lut_file);
 | 
											lut_mode2 = atoi(arg.substr(pos+1).c_str());
 | 
				
			||||||
						if (!lut_file.empty() && !is_absolute_path(lut_file))
 | 
										} else {
 | 
				
			||||||
							lut_file = std::string(pwd) + "/" + lut_file;
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					else {
 | 
					 | 
				
			||||||
						lut_mode = atoi(arg.c_str());
 | 
											lut_mode = atoi(arg.c_str());
 | 
				
			||||||
						lut_mode2 = lut_mode;
 | 
											lut_mode2 = lut_mode;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
 | 
										lut_costs.clear();
 | 
				
			||||||
 | 
										for (int i = 0; i < lut_mode; i++)
 | 
				
			||||||
 | 
											lut_costs.push_back(1);
 | 
				
			||||||
 | 
										for (int i = lut_mode; i < lut_mode2; i++)
 | 
				
			||||||
 | 
											lut_costs.push_back(2 << (i - lut_mode));
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									else {
 | 
				
			||||||
 | 
										lut_file = arg;
 | 
				
			||||||
 | 
										rewrite_filename(lut_file);
 | 
				
			||||||
 | 
										if (!lut_file.empty() && !is_absolute_path(lut_file) && lut_file[0] != '+')
 | 
				
			||||||
 | 
											lut_file = std::string(pwd) + "/" + lut_file;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				lut_costs.clear();
 | 
					 | 
				
			||||||
				for (int i = 0; i < lut_mode; i++)
 | 
					 | 
				
			||||||
					lut_costs.push_back(1);
 | 
					 | 
				
			||||||
				for (int i = lut_mode; i < lut_mode2; i++)
 | 
					 | 
				
			||||||
					lut_costs.push_back(2 << (i - lut_mode));
 | 
					 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if (arg == "-luts" && argidx+1 < args.size()) {
 | 
								if (arg == "-luts" && argidx+1 < args.size()) {
 | 
				
			||||||
| 
						 | 
					@ -1072,7 +1071,7 @@ struct Abc9Pass : public Pass {
 | 
				
			||||||
		    box_file = "+/dummy.box";
 | 
							    box_file = "+/dummy.box";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		rewrite_filename(box_file);
 | 
							rewrite_filename(box_file);
 | 
				
			||||||
		if (!box_file.empty() && !is_absolute_path(box_file))
 | 
							if (!box_file.empty() && !is_absolute_path(box_file) && box_file[0] != '+')
 | 
				
			||||||
		    box_file = std::string(pwd) + "/" + box_file;
 | 
							    box_file = std::string(pwd) + "/" + box_file;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		dict<int,IdString> box_lookup;
 | 
							dict<int,IdString> box_lookup;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue