aboutsummaryrefslogtreecommitdiffstats
path: root/common/kernel
diff options
context:
space:
mode:
authormyrtle <gatecat@ds0.me>2022-08-10 11:25:34 +0100
committerGitHub <noreply@github.com>2022-08-10 11:25:34 +0100
commit66722096edaff35f1620ebfc9acaab13ae149377 (patch)
tree8b189e44b65afabfaddb3402ab8aac544df9ba83 /common/kernel
parent06ce27ed38279cfa3455e248ea2b2c773cdf6324 (diff)
parent77c82b0fbf15892b0c8222bac89564f3f024493e (diff)
downloadnextpnr-66722096edaff35f1620ebfc9acaab13ae149377.tar.gz
nextpnr-66722096edaff35f1620ebfc9acaab13ae149377.tar.bz2
nextpnr-66722096edaff35f1620ebfc9acaab13ae149377.zip
Merge pull request #1010 from YosysHQ/gatecat/idf
refactor: id(stringf(...)) to new idf(...) helper
Diffstat (limited to 'common/kernel')
-rw-r--r--common/kernel/basectx.cc12
-rw-r--r--common/kernel/basectx.h2
-rw-r--r--common/kernel/nextpnr_types.cc8
3 files changed, 18 insertions, 4 deletions
diff --git a/common/kernel/basectx.cc b/common/kernel/basectx.cc
index 82cdd835..777d06e1 100644
--- a/common/kernel/basectx.cc
+++ b/common/kernel/basectx.cc
@@ -26,6 +26,18 @@
NEXTPNR_NAMESPACE_BEGIN
+IdString BaseCtx::idf(const char *fmt, ...) const
+{
+ std::string string;
+ va_list ap;
+
+ va_start(ap, fmt);
+ string = vstringf(fmt, ap);
+ va_end(ap);
+
+ return id(string);
+}
+
const char *BaseCtx::nameOfBel(BelId bel) const
{
const Context *ctx = getCtx();
diff --git a/common/kernel/basectx.h b/common/kernel/basectx.h
index 5775e47f..c8791a2b 100644
--- a/common/kernel/basectx.h
+++ b/common/kernel/basectx.h
@@ -162,6 +162,8 @@ struct BaseCtx
IdString id(const char *s) const { return IdString(this, s); }
+ IdString idf(const char *fmt, ...) const; // create IdString using printf formatting
+
Context *getCtx() { return as_ctx; }
const Context *getCtx() const { return as_ctx; }
diff --git a/common/kernel/nextpnr_types.cc b/common/kernel/nextpnr_types.cc
index 8563eb27..6da37763 100644
--- a/common/kernel/nextpnr_types.cc
+++ b/common/kernel/nextpnr_types.cc
@@ -152,8 +152,8 @@ void CellInfo::movePortBusTo(IdString old_name, int old_offset, bool old_bracket
IdString new_name, int new_offset, bool new_brackets, int width)
{
for (int i = 0; i < width; i++) {
- IdString old_port = ctx->id(stringf(old_brackets ? "%s[%d]" : "%s%d", old_name.c_str(ctx), i + old_offset));
- IdString new_port = ctx->id(stringf(new_brackets ? "%s[%d]" : "%s%d", new_name.c_str(ctx), i + new_offset));
+ IdString old_port = ctx->idf(old_brackets ? "%s[%d]" : "%s%d", old_name.c_str(ctx), i + old_offset);
+ IdString new_port = ctx->idf(new_brackets ? "%s[%d]" : "%s%d", new_name.c_str(ctx), i + new_offset);
movePortTo(old_port, new_cell, new_port);
}
}
@@ -171,8 +171,8 @@ void CellInfo::copyPortBusTo(IdString old_name, int old_offset, bool old_bracket
IdString new_name, int new_offset, bool new_brackets, int width)
{
for (int i = 0; i < width; i++) {
- IdString old_port = ctx->id(stringf(old_brackets ? "%s[%d]" : "%s%d", old_name.c_str(ctx), i + old_offset));
- IdString new_port = ctx->id(stringf(new_brackets ? "%s[%d]" : "%s%d", new_name.c_str(ctx), i + new_offset));
+ IdString old_port = ctx->idf(old_brackets ? "%s[%d]" : "%s%d", old_name.c_str(ctx), i + old_offset);
+ IdString new_port = ctx->idf(new_brackets ? "%s[%d]" : "%s%d", new_name.c_str(ctx), i + new_offset);
copyPortTo(old_port, new_cell, new_port);
}
}