Lines Matching refs:end
22 assert(entry->start <= entry->end); /* single instruction block; jump to a jump */
24 old = entry->end;
41 else if (addr > entry->end)
73 * @end: branch ending this basic block
77 struct block_range_iter block_range__create(u64 start, u64 end)
90 else if (start > entry->end)
97 * Didn't find anything.. there's a hole at @start, however @end might
108 if (entry->end < start) {
115 if (next->start <= end) { /* add head: [start...][n->start...] */
122 .end = next->start - 1,
137 * The whole [start..end] range is non-overlapping.
145 .end = end,
155 iter.end = entry;
169 .end = start - 1,
192 * At this point we've got: @iter.start = [@start...] but @end can still be
198 * If @end is inside @entry, split.
200 if (end < entry->end) { /* split: [...end][...e->end] */
206 .start = end + 1,
207 .end = entry->end,
216 entry->end = end;
225 iter.end = entry;
230 * If @end matches @entry, done
232 if (end == entry->end) {
234 iter.end = entry;
243 * If @end is in beyond @entry but not inside @next, add tail.
245 if (end < next->start) { /* add tail: [...e->end][...end] */
253 .start = entry->end + 1,
254 .end = end,
263 iter.end = tail;
270 if (entry->end + 1 != next->start) {
276 .start = entry->end + 1,
277 .end = next->start - 1,
292 assert(iter.end->end == end && iter.end->is_branch);