Fix build of "dummy" architexture

Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
Clifford Wolf 2018-06-21 14:16:07 +02:00
parent 993f6ef7d3
commit 08020400b3

View File

@ -23,42 +23,33 @@
#include "log.h" #include "log.h"
#include "route.h" #include "route.h"
namespace std {
template <>
struct hash<pair<NEXTPNR_NAMESPACE_PREFIX IdString,
NEXTPNR_NAMESPACE_PREFIX WireId>>
{
std::size_t
operator()(const pair<NEXTPNR_NAMESPACE_PREFIX IdString,
NEXTPNR_NAMESPACE_PREFIX WireId> &arg) const noexcept
{
std::size_t seed = hash<NEXTPNR_NAMESPACE_PREFIX IdString>()(arg.first);
seed ^= hash<NEXTPNR_NAMESPACE_PREFIX WireId>()(arg.second) +
0x9e3779b9 + (seed << 6) + (seed >> 2);
return seed;
}
};
template <>
struct hash<
pair<NEXTPNR_NAMESPACE_PREFIX IdString, NEXTPNR_NAMESPACE_PREFIX PipId>>
{
std::size_t
operator()(const pair<NEXTPNR_NAMESPACE_PREFIX IdString,
NEXTPNR_NAMESPACE_PREFIX PipId> &arg) const noexcept
{
std::size_t seed = hash<NEXTPNR_NAMESPACE_PREFIX IdString>()(arg.first);
seed ^= hash<NEXTPNR_NAMESPACE_PREFIX PipId>()(arg.second) +
0x9e3779b9 + (seed << 6) + (seed >> 2);
return seed;
}
};
} // namespace std
namespace { namespace {
USING_NEXTPNR_NAMESPACE USING_NEXTPNR_NAMESPACE
struct hash_id_wire
{
std::size_t operator()(const std::pair<IdString, WireId> &arg) const
noexcept
{
std::size_t seed = std::hash<IdString>()(arg.first);
seed ^= std::hash<WireId>()(arg.second) + 0x9e3779b9 + (seed << 6) +
(seed >> 2);
return seed;
}
};
struct hash_id_pip
{
std::size_t operator()(const std::pair<IdString, PipId> &arg) const noexcept
{
std::size_t seed = std::hash<IdString>()(arg.first);
seed ^= std::hash<PipId>()(arg.second) + 0x9e3779b9 + (seed << 6) +
(seed >> 2);
return seed;
}
};
struct QueuedWire struct QueuedWire
{ {
WireId wire; WireId wire;
@ -80,8 +71,9 @@ struct QueuedWire
struct RipupScoreboard struct RipupScoreboard
{ {
std::unordered_map<std::pair<IdString, WireId>, int> wireScores; std::unordered_map<std::pair<IdString, WireId>, int, hash_id_wire>
std::unordered_map<std::pair<IdString, PipId>, int> pipScores; wireScores;
std::unordered_map<std::pair<IdString, PipId>, int, hash_id_pip> pipScores;
}; };
void ripup_net(Context *ctx, IdString net_name) void ripup_net(Context *ctx, IdString net_name)