version 1.5, 2003/06/03 02:56:08 |
version 1.6, 2006/03/25 19:06:36 |
|
|
}; |
}; |
|
|
void |
void |
findcall(parentp, p_lowpc, p_highpc) |
findcall(nltype *parentp, unsigned long p_lowpc, unsigned long p_highpc) |
nltype *parentp; |
|
unsigned long p_lowpc; |
|
unsigned long p_highpc; |
|
{ |
{ |
u_long pc; |
unsigned long pc; |
nltype *childp; |
nltype *childp; |
unsigned long destpc; |
unsigned long destpc; |
long op; |
long op; |
|
|
|
|
for (pc = p_lowpc; pc < p_highpc; pc += 4) { |
for (pc = p_lowpc; pc < p_highpc; pc += 4) { |
off = pc - s_lowpc; |
off = pc - s_lowpc; |
op = *(u_long *)&textspace[off]; |
op = *(unsigned long *)&textspace[off]; |
if ((op & 0xc0000000) == 0x40000000) { |
if ((op & 0xc0000000) == 0x40000000) { |
/* |
/* |
* a pc relative call insn -- check that this |
* a pc relative call insn -- check that this |