mirror of https://github.com/YosysHQ/yosys.git
Merge pull request #2880 from whitequark/cxxrtl-fix-2877
cxxrtl: add debug_item::{get,set}
This commit is contained in:
commit
9af88951bc
|
@ -999,6 +999,22 @@ struct debug_item : ::cxxrtl_object {
|
||||||
next = nullptr;
|
next = nullptr;
|
||||||
outline = &group;
|
outline = &group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<size_t Bits, class IntegerT>
|
||||||
|
IntegerT get() const {
|
||||||
|
assert(width == Bits && depth == 1);
|
||||||
|
value<Bits> item;
|
||||||
|
std::copy(curr, curr + value<Bits>::chunks, item.data);
|
||||||
|
return item.template get<IntegerT>();
|
||||||
|
}
|
||||||
|
|
||||||
|
template<size_t Bits, class IntegerT>
|
||||||
|
void set(IntegerT other) const {
|
||||||
|
assert(width == Bits && depth == 1);
|
||||||
|
value<Bits> item;
|
||||||
|
item.template set<IntegerT>(other);
|
||||||
|
std::copy(item.data, item.data + value<Bits>::chunks, next);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
static_assert(std::is_standard_layout<debug_item>::value, "debug_item is not compatible with C layout");
|
static_assert(std::is_standard_layout<debug_item>::value, "debug_item is not compatible with C layout");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue