Home | History | Annotate | Download | only in libdwfl

Lines Matching refs:stack

39 /* Maximum number of DWARF expression stack slots before returning an error.  */
107 do_push (struct eval_stack *stack, Dwarf_Addr val)
109 if (stack->used >= DWARF_EXPR_STACK_MAX)
114 if (stack->used == stack->allocated)
116 stack->allocated = MAX (stack->allocated * 2, 32);
118 new_addrs = realloc (stack->addrs,
119 stack->allocated * sizeof (*stack->addrs));
125 stack->addrs = new_addrs;
127 stack->addrs[stack->used++] = val;
132 do_pop (struct eval_stack *stack, Dwarf_Addr *val)
134 if (stack->used == 0)
139 *val = stack->addrs[--stack->used];
156 struct eval_stack stack =
163 #define pop(x) do_pop(&stack, x)
164 #define push(x) do_push(&stack, x)
182 free (stack.addrs);
189 free (stack.addrs);
209 free (stack.addrs);
217 free (stack.addrs);
224 free (stack.addrs);
231 free (stack.addrs);
237 free (stack.addrs);
244 free (stack.addrs);
250 free (stack.addrs);
257 free (stack.addrs);
264 free (stack.addrs);
269 if (stack.used <= op->number)
271 free (stack.addrs);
275 if (! push (stack.addrs[stack.used - 1 - op->number]))
277 free (stack.addrs);
285 free (stack.addrs);
292 free (stack.addrs);
302 free (stack.addrs);
311 free (stack.addrs);
319 free (stack.addrs);
328 free (stack.addrs);
344 free (stack.addrs);
352 free (stack.addrs); \
363 free (stack.addrs);
371 free (stack.addrs); \
380 free (stack.addrs); \
388 free (stack.addrs);
393 free (stack.addrs);
399 free (stack.addrs);
407 free (stack.addrs);
412 free (stack.addrs);
418 free (stack.addrs);
440 free (stack.addrs);
452 free (stack.addrs);
474 free (stack.addrs);
490 free (stack.addrs);
493 free (stack.addrs);
659 or the return pc is undefined, maybe end of call stack. */