From 00964f2f618d241a2e5cd32f4e7dbbcf55de4fb4 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Fri, 19 Sep 2014 15:50:55 +0200 Subject: [PATCH] Initialize RTLIL::Const from std::vector --- kernel/rtlil.cc | 7 +++++++ kernel/rtlil.h | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/kernel/rtlil.cc b/kernel/rtlil.cc index 6556b82e..00be796f 100644 --- a/kernel/rtlil.cc +++ b/kernel/rtlil.cc @@ -65,6 +65,13 @@ RTLIL::Const::Const(RTLIL::State bit, int width) bits.push_back(bit); } +RTLIL::Const::Const(const std::vector &bits) +{ + flags = RTLIL::CONST_FLAG_NONE; + for (auto b : bits) + this->bits.push_back(b ? RTLIL::S1 : RTLIL::S0); +} + bool RTLIL::Const::operator <(const RTLIL::Const &other) const { if (bits.size() != other.bits.size()) diff --git a/kernel/rtlil.h b/kernel/rtlil.h index c4883769..a0ae8f08 100644 --- a/kernel/rtlil.h +++ b/kernel/rtlil.h @@ -428,7 +428,8 @@ struct RTLIL::Const Const(std::string str); Const(int val, int width = 32); Const(RTLIL::State bit, int width = 1); - Const(std::vector bits) : bits(bits) { flags = CONST_FLAG_NONE; }; + Const(const std::vector &bits) : bits(bits) { flags = CONST_FLAG_NONE; }; + Const(const std::vector &bits); bool operator <(const RTLIL::Const &other) const; bool operator ==(const RTLIL::Const &other) const;