Index: ia64-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/ia64-tdep.c,v retrieving revision 1.94 diff -u -r1.94 ia64-tdep.c --- ia64-tdep.c 26 Aug 2003 17:33:22 -0000 1.94 +++ ia64-tdep.c 26 Aug 2003 17:46:44 -0000 @@ -1143,11 +1143,18 @@ if (next_pc == 0) break; - if ((it == B && ((instr & 0x1e1f800003f) != 0x04000000000)) - || ((instr & 0x3fLL) != 0LL)) + if (it == B && ((instr & 0x1e1f800003f) != 0x04000000000)) { - /* Exit loop upon hitting a non-nop branch instruction - or a predicated instruction. */ + /* Exit loop upon hitting a non-nop branch instruction. */ + if (trust_limit) + lim_pc = pc; + break; + } + else if (((instr & 0x3fLL) != 0LL) && + (frameless || ret_reg != 0)) + { + /* Exit loop upon hitting a predicated instruction if + we already have the return register or if we are frameless. */ if (trust_limit) lim_pc = pc; break;