summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/register.cc5
-rw-r--r--passes/opt/opt_clean.cc3
2 files changed, 7 insertions, 1 deletions
diff --git a/kernel/register.cc b/kernel/register.cc
index f6f5804b..9f6fe37d 100644
--- a/kernel/register.cc
+++ b/kernel/register.cc
@@ -149,12 +149,15 @@ void Pass::call(RTLIL::Design *design, std::string command)
std::string str = p;
int strsz = str.size();
if (strsz > 0 && str[strsz-1] == ';') {
+ int num_semikolon = 0;
while (strsz > 0 && str[strsz-1] == ';')
- strsz--;
+ strsz--, num_semikolon++;
if (strsz > 0)
args.push_back(str.substr(0, strsz));
call(design, args);
args.clear();
+ if (num_semikolon == 2)
+ call(design, "clean");
} else
args.push_back(str);
}
diff --git a/passes/opt/opt_clean.cc b/passes/opt/opt_clean.cc
index 183d6757..17f4168d 100644
--- a/passes/opt/opt_clean.cc
+++ b/passes/opt/opt_clean.cc
@@ -313,6 +313,9 @@ struct CleanPass : public Pass {
log("\n");
log("This is identical to opt_clean, but less verbose.\n");
log("\n");
+ log("When commands are seperated using the ';;' token, this command will be executed\n");
+ log("between the commands.\n");
+ log("\n");
}
virtual void execute(std::vector<std::string> args, RTLIL::Design *design)
{