Skip to content

Commit f18df8a

Browse files
committed
Edge::arcDelayAnnotateBit resolves issue #299
Signed-off-by: James Cherry <[email protected]>
1 parent 892a9a4 commit f18df8a

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

graph/Graph.cc

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1322,7 +1322,7 @@ Edge::arcDelayAnnotated(const TimingArc *arc,
13221322
{
13231323
size_t index = arc->index() * ap_count + ap_index;
13241324
if (arc_delay_annotated_is_bits_)
1325-
return arc_delay_annotated_.bits_ & (1 << index);
1325+
return arc_delay_annotated_.bits_ & arcDelayAnnotateBit(index);
13261326
else
13271327
return (*arc_delay_annotated_.seq_)[index];
13281328
}
@@ -1334,17 +1334,17 @@ Edge::setArcDelayAnnotated(const TimingArc *arc,
13341334
bool annotated)
13351335
{
13361336
size_t index = arc->index() * ap_count + ap_index;
1337-
if (index > sizeof(intptr_t) * 8
1337+
if (index > sizeof(uintptr_t) * 8
13381338
&& arc_delay_annotated_is_bits_) {
13391339
arc_delay_annotated_is_bits_ = false;
13401340
size_t bit_count = ap_count * RiseFall::index_count * 2;
13411341
arc_delay_annotated_.seq_ = new std::vector<bool>(bit_count);
13421342
}
13431343
if (arc_delay_annotated_is_bits_) {
13441344
if (annotated)
1345-
arc_delay_annotated_.bits_ |= (1 << index);
1345+
arc_delay_annotated_.bits_ |= arcDelayAnnotateBit(index);
13461346
else
1347-
arc_delay_annotated_.bits_ &= ~(1 << index);
1347+
arc_delay_annotated_.bits_ &= ~arcDelayAnnotateBit(index);
13481348
}
13491349
else
13501350
(*arc_delay_annotated_.seq_)[index] = annotated;
@@ -1368,6 +1368,12 @@ Edge::setDelayAnnotationIsIncremental(bool is_incr)
13681368
delay_annotation_is_incremental_ = is_incr;
13691369
}
13701370

1371+
uintptr_t
1372+
Edge::arcDelayAnnotateBit(size_t index)
1373+
{
1374+
return static_cast<uintptr_t>(1) << index;
1375+
}
1376+
13711377
const TimingRole *
13721378
Edge::role() const
13731379
{

include/sta/Graph.hh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ protected:
421421
DcalcAPIndex ap_index,
422422
DcalcAPIndex ap_count,
423423
bool annotated);
424+
static uintptr_t arcDelayAnnotateBit(size_t index);
424425

425426
TimingArcSet *arc_set_;
426427
VertexId from_;

0 commit comments

Comments
 (0)