Lines Matching full:start

21 		assert(old < entry->start);  in block_range__debug()
22 assert(entry->start <= entry->end); /* single instruction block; jump to a jump */ in block_range__debug()
39 if (addr < entry->start) in block_range__find()
72 * @start: branch target starting this basic block
77 struct block_range_iter block_range__create(u64 start, u64 end) in block_range__create() argument
88 if (start < entry->start) in block_range__create()
90 else if (start > entry->end) in block_range__create()
97 * Didn't find anything.. there's a hole at @start, however @end might in block_range__create()
108 if (entry->end < start) { in block_range__create()
115 if (next->start <= end) { /* add head: [start...][n->start...] */ in block_range__create()
121 .start = start, in block_range__create()
122 .end = next->start - 1, in block_range__create()
131 iter.start = head; in block_range__create()
137 * The whole [start..end] range is non-overlapping. in block_range__create()
144 .start = start, in block_range__create()
154 iter.start = entry; in block_range__create()
162 if (entry->start < start) { /* split: [e->start...][start...] */ in block_range__create()
168 .start = entry->start, in block_range__create()
169 .end = start - 1, in block_range__create()
177 entry->start = start; in block_range__create()
185 } else if (entry->start == start) in block_range__create()
188 iter.start = entry; in block_range__create()
192 * At this point we've got: @iter.start = [@start...] but @end can still be in block_range__create()
195 entry = iter.start; in block_range__create()
206 .start = end + 1, in block_range__create()
245 if (end < next->start) { /* add tail: [...e->end][...end] */ in block_range__create()
253 .start = entry->end + 1, in block_range__create()
270 if (entry->end + 1 != next->start) { in block_range__create()
276 .start = entry->end + 1, in block_range__create()
277 .end = next->start - 1, in block_range__create()
291 assert(iter.start->start == start && iter.start->is_target); in block_range__create()