Some ARM compilers in Thumb mode use BL (branch-and-link) instead of B (branch) for long jumps, since BL has more range. By default, IDA tries to determine if BL is a jump or a call. You can override IDA's decision using commands in Edit/Other menu (Force BL call/Force BL jump) or the following two functions.// Force BL instruction to be a jump // ea - address of the BL instruction // returns: 1-ok, 0-failed
success force_bl_jump(long ea);
// Force BL instruction to be a call // ea - address of the BL instruction // returns: 1-ok, 0-failed
success force_bl_call(long ea);