/*
* Opcodes of the call instructions:
*/
-#define OP_Jxx 0x1a
-#define OP_BSR 0x34
+#define OP_Jxx 0x1aU
+#define OP_BSR 0x34U
-#define Jxx_FUNC_JMP 0
-#define Jxx_FUNC_JSR 1
-#define Jxx_FUNC_RET 2
-#define Jxx_FUNC_JSR_COROUTINE 3
+#define Jxx_FUNC_JMP 0U
+#define Jxx_FUNC_JSR 1U
+#define Jxx_FUNC_RET 2U
+#define Jxx_FUNC_JSR_COROUTINE 3U
/* *INDENT-OFF* */
/* Here to document only. We can't use this when cross compiling as
indirect_child.cg.cyc.head = &indirect_child;
}
- if (!core_text_space)
- {
- return;
- }
- if (p_lowpc < s_lowpc)
- {
- p_lowpc = s_lowpc;
- }
- if (p_highpc > s_highpc)
- {
- p_highpc = s_highpc;
- }
DBG (CALLDEBUG, printf (_("[find_call] %s: 0x%lx to 0x%lx\n"),
parent->name, (unsigned long) p_lowpc,
(unsigned long) p_highpc));
{
insn = bfd_get_32 (core_bfd, ((unsigned char *) core_text_space
+ pc - core_text_sect->vma));
- switch (insn & (0x3f << 26))
+ switch (insn & (0x3fU << 26))
{
case OP_Jxx << 26:
/*
*/
dest_pc = pc + 4 + (((bfd_signed_vma) (insn & 0x1fffff)
^ 0x100000) - 0x100000);
- if (dest_pc >= s_lowpc && dest_pc <= s_highpc)
+ if (hist_check_address (dest_pc))
{
child = sym_lookup (&symtab, dest_pc);
- DBG (CALLDEBUG,
- printf (" 0x%lx\t; name=%s, addr=0x%lx",
- (unsigned long) dest_pc, child->name,
- (unsigned long) child->addr));
- if (child->addr == dest_pc || child->addr == dest_pc - 8)
- {
- DBG (CALLDEBUG, printf ("\n"));
- /* a hit: */
- arc_add (parent, child, (unsigned long) 0);
- continue;
- }
+ if (child)
+ {
+ DBG (CALLDEBUG,
+ printf (" 0x%lx\t; name=%s, addr=0x%lx",
+ (unsigned long) dest_pc, child->name,
+ (unsigned long) child->addr));
+ if (child->addr == dest_pc || child->addr == dest_pc - 8)
+ {
+ DBG (CALLDEBUG, printf ("\n"));
+ /* a hit: */
+ arc_add (parent, child, (unsigned long) 0);
+ continue;
+ }
+ }
}
/*
* Something funny going on.