Lines Matching refs:end
26 assert(entry->start <= entry->end); /* single instruction block; jump to a jump */
28 old = entry->end;
45 else if (addr > entry->end)
77 * @end: branch ending this basic block
81 struct block_range_iter block_range__create(u64 start, u64 end)
94 else if (start > entry->end)
101 * Didn't find anything.. there's a hole at @start, however @end might
112 if (entry->end < start) {
119 if (next->start <= end) { /* add head: [start...][n->start...] */
126 .end = next->start - 1,
141 * The whole [start..end] range is non-overlapping.
149 .end = end,
159 iter.end = entry;
173 .end = start - 1,
196 * At this point we've got: @iter.start = [@start...] but @end can still be
202 * If @end is inside @entry, split.
204 if (end < entry->end) { /* split: [...end][...e->end] */
210 .start = end + 1,
211 .end = entry->end,
220 entry->end = end;
229 iter.end = entry;
234 * If @end matches @entry, done
236 if (end == entry->end) {
238 iter.end = entry;
247 * If @end is in beyond @entry but not inside @next, add tail.
249 if (end < next->start) { /* add tail: [...e->end][...end] */
257 .start = entry->end + 1,
258 .end = end,
267 iter.end = tail;
274 if (entry->end + 1 != next->start) {
280 .start = entry->end + 1,
281 .end = next->start - 1,
296 assert(iter.end->end == end && iter.end->is_branch);