Lines Matching refs:entry

19 		struct block_range *entry = rb_entry(rb, struct block_range, node);
21 assert(old < entry->start);
22 assert(entry->start <= entry->end); /* single instruction block; jump to a jump */
24 old = entry->end;
33 struct block_range *entry;
37 entry = rb_entry(parent, struct block_range, node);
39 if (addr < entry->start)
41 else if (addr > entry->end)
44 return entry;
81 struct block_range *next, *entry = NULL;
86 entry = rb_entry(parent, struct block_range, node);
88 if (start < entry->start)
90 else if (start > entry->end)
101 if (!entry) /* tree empty */
108 if (entry->end < start) {
139 entry = malloc(sizeof(struct block_range));
140 if (!entry)
143 *entry = (struct block_range){
150 rb_link_node(&entry->node, parent, p);
151 rb_insert_color(&entry->node, &block_ranges.root);
154 iter.start = entry;
155 iter.end = entry;
162 if (entry->start < start) { /* split: [e->start...][start...] */
168 .start = entry->start,
170 .is_target = entry->is_target,
173 .coverage = entry->coverage,
174 .entry = entry->entry,
177 entry->start = start;
178 entry->is_target = 1;
179 entry->entry = 0;
181 rb_link_left_of_node(&head->node, &entry->node);
185 } else if (entry->start == start)
186 entry->is_target = 1;
188 iter.start = entry;
195 entry = iter.start;
198 * If @end is inside @entry, split.
200 if (end < entry->end) { /* split: [...end][...e->end] */
207 .end = entry->end,
209 .is_branch = entry->is_branch,
211 .coverage = entry->coverage,
212 .taken = entry->taken,
213 .pred = entry->pred,
216 entry->end = end;
217 entry->is_branch = 1;
218 entry->taken = 0;
219 entry->pred = 0;
221 rb_link_right_of_node(&tail->node, &entry->node);
225 iter.end = entry;
230 * If @end matches @entry, done
232 if (end == entry->end) {
233 entry->is_branch = 1;
234 iter.end = entry;
238 next = block_range__next(entry);
243 * If @end is in beyond @entry but not inside @next, add tail.
253 .start = entry->end + 1,
259 rb_link_right_of_node(&tail->node, &entry->node);
268 * If there is a hole between @entry and @next, fill it.
270 if (entry->end + 1 != next->start) {
276 .start = entry->end + 1,
287 entry = next;