Lines Matching refs:entry

23 		struct block_range *entry = rb_entry(rb, struct block_range, node);
25 assert(old < entry->start);
26 assert(entry->start <= entry->end); /* single instruction block; jump to a jump */
28 old = entry->end;
37 struct block_range *entry;
41 entry = rb_entry(parent, struct block_range, node);
43 if (addr < entry->start)
45 else if (addr > entry->end)
48 return entry;
85 struct block_range *next, *entry = NULL;
90 entry = rb_entry(parent, struct block_range, node);
92 if (start < entry->start)
94 else if (start > entry->end)
105 if (!entry) /* tree empty */
112 if (entry->end < start) {
143 entry = malloc(sizeof(struct block_range));
144 if (!entry)
147 *entry = (struct block_range){
154 rb_link_node(&entry->node, parent, p);
155 rb_insert_color(&entry->node, &block_ranges.root);
158 iter.start = entry;
159 iter.end = entry;
166 if (entry->start < start) { /* split: [e->start...][start...] */
172 .start = entry->start,
174 .is_target = entry->is_target,
177 .coverage = entry->coverage,
178 .entry = entry->entry,
181 entry->start = start;
182 entry->is_target = 1;
183 entry->entry = 0;
185 rb_link_left_of_node(&head->node, &entry->node);
189 } else if (entry->start == start)
190 entry->is_target = 1;
192 iter.start = entry;
199 entry = iter.start;
202 * If @end is inside @entry, split.
204 if (end < entry->end) { /* split: [...end][...e->end] */
211 .end = entry->end,
213 .is_branch = entry->is_branch,
215 .coverage = entry->coverage,
216 .taken = entry->taken,
217 .pred = entry->pred,
220 entry->end = end;
221 entry->is_branch = 1;
222 entry->taken = 0;
223 entry->pred = 0;
225 rb_link_right_of_node(&tail->node, &entry->node);
229 iter.end = entry;
234 * If @end matches @entry, done
236 if (end == entry->end) {
237 entry->is_branch = 1;
238 iter.end = entry;
242 next = block_range__next(entry);
247 * If @end is in beyond @entry but not inside @next, add tail.
257 .start = entry->end + 1,
263 rb_link_right_of_node(&tail->node, &entry->node);
272 * If there is a hole between @entry and @next, fill it.
274 if (entry->end + 1 != next->start) {
280 .start = entry->end + 1,
291 entry = next;