X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gprof%2Fvax.c;h=99719b9fb7e110d2f4204d15329a9805b809416e;hb=0fd91d25e21fd32c5defb26c98be3d17306860f2;hp=6216589d96059faad3cb9e2be24c0738f680cbe9;hpb=210c61aa9bfd0f10e0d105d294280a863d8cfec9;p=deliverable%2Fbinutils-gdb.git diff --git a/gprof/vax.c b/gprof/vax.c index 6216589d96..99719b9fb7 100644 --- a/gprof/vax.c +++ b/gprof/vax.c @@ -247,18 +247,6 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc) indirectchild.cg.cyc.head = &indirectchild; } - if (core_text_space == 0) - { - return; - } - if (p_lowpc < s_lowpc) - { - p_lowpc = s_lowpc; - } - if (p_highpc > s_highpc) - { - p_highpc = s_highpc; - } DBG (CALLDEBUG, printf ("[findcall] %s: 0x%lx to 0x%lx\n", parent->name, (unsigned long) p_lowpc, (unsigned long) p_highpc)); @@ -318,24 +306,27 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc) * a function. */ destpc = pc + vax_offset (instructp + length); - if (destpc >= s_lowpc && destpc <= s_highpc) + if (hist_check_address (destpc)) { child = sym_lookup (&symtab, destpc); - DBG (CALLDEBUG, - printf ("[findcall]\tdestpc 0x%lx", - (unsigned long) destpc); - printf (" child->name %s", child->name); - printf (" child->addr 0x%lx\n", - (unsigned long) child->addr); - ); - if (child->addr == destpc) + if (child) { - /* - * a hit - */ - arc_add (parent, child, (unsigned long) 0); - length += vax_operandlength (instructp + length); - continue; + DBG (CALLDEBUG, + printf ("[findcall]\tdestpc 0x%lx", + (unsigned long) destpc); + printf (" child->name %s", child->name); + printf (" child->addr 0x%lx\n", + (unsigned long) child->addr); + ); + if (child->addr == destpc) + { + /* + * a hit + */ + arc_add (parent, child, (unsigned long) 0); + length += vax_operandlength (instructp + length); + continue; + } } goto botched; }