MIPS 64 bit addressing query

Vinod pandarinathan
2007-08-06T00:57:42Z

Hi Experts,

I found that gdb6.4.1 is sign extending the
PC before comparing it to the breakpoint address[bpt->address].

Sign extension happens in mips-tdep.c

/* MIPS believes that the PC has a sign extended value. Perhaps the
all registers should be sign extended for simplicity? */

static CORE_ADDR
mips_read_pc (ptid_t ptid)
{
return read_signed_register_pid (mips_regnum (current_gdbarch)->pc, ptid);
}
The target suspends at the breakpoint, but the debugger is not able to
identify the associated breakpoint as [unsigned value is compared to a
64 bit sign extended value].

We are using MIPS 3 ISA and since breakpoint is set at an address
where the 32nd bit is set to 1 the 64 bit sign extended values does
not compare with the unsigned
break point address.

Can you please explain how we can fix the problem? Should I sign
extend the break point address too ?

Thanks
Vinod.