diff options
author | John Gilmore <gnu@cygnus> | 1992-02-22 01:46:16 +0000 |
---|---|---|
committer | John Gilmore <gnu@cygnus> | 1992-02-22 01:46:16 +0000 |
commit | 1ab3bf1b148d31aad66735f52f9ff72af8769cd0 (patch) | |
tree | f599e61700fc54d6ecd3d090e3d01cf6fa66a801 /gdb/i960-tdep.c | |
parent | 8e48d87af60233cc7e8dc18ab4e8f63d223ac20f (diff) | |
download | gdb-1ab3bf1b148d31aad66735f52f9ff72af8769cd0.zip gdb-1ab3bf1b148d31aad66735f52f9ff72af8769cd0.tar.gz gdb-1ab3bf1b148d31aad66735f52f9ff72af8769cd0.tar.bz2 |
* Check in Fred Fish's changes in these modules. Fred
will make ChangeLog entries for all of them.
Diffstat (limited to 'gdb/i960-tdep.c')
-rw-r--r-- | gdb/i960-tdep.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/gdb/i960-tdep.c b/gdb/i960-tdep.c index 308b21e..eda9d60 100644 --- a/gdb/i960-tdep.c +++ b/gdb/i960-tdep.c @@ -463,20 +463,18 @@ CORE_ADDR leafproc_return (ip) CORE_ADDR ip; /* ip from currently executing function */ { - int i; - register struct misc_function *mf; + register struct minimal_symbol *msymbol; char *p; int dst; unsigned int insn1, insn2; CORE_ADDR return_addr; char *index (); - if ((i = find_pc_misc_function (ip)) >= 0) + if ((msymbol = lookup_minimal_symbol_by_pc (ip)) != NULL) { - mf = &misc_function_vector[i]; - if ((p = index (mf->name, '.')) && !strcmp (p, ".lf")) + if ((p = index (msymbol -> name, '.')) && !strcmp (p, ".lf")) { - if (next_insn (mf->address, &insn1, &insn2) + if (next_insn (msymbol -> address, &insn1, &insn2) && (insn1 & 0xff87ffff) == 0x5c80161e /* mov g14, gx */ && (dst = REG_SRCDST (insn1)) <= G0_REGNUM + 7) { @@ -485,7 +483,7 @@ leafproc_return (ip) the return address from g14; otherwise, read it from the register into which g14 was moved. */ - return_addr = read_register ((ip == mf->address) + return_addr = read_register ((ip == msymbol->address) ? G14_REGNUM : dst); /* We know we are in a leaf procedure, but we don't know @@ -498,7 +496,7 @@ leafproc_return (ip) if (!next_insn (return_addr, &insn1, &insn2) || (insn1 & 0xff000000) != 0xa000000 /* ret */ - || find_pc_misc_function (return_addr) != i) + || lookup_minimal_symbol_by_pc (return_addr) != msymbol) return (return_addr); } } |