Matt,

I would still guess that it's something to do with a hardcoded value, if not in decoder.isa than in one of the other isa files. Here are some probable candidates:
branch.isa:    return (RA == 31)
int.isa:     if (RC == 31) {
main.isa:     if (RC == 31) {
mem.isa:     if (RA == 31) {
mem.isa:     if (RA != 31) {

Ali

On Aug 20, 2007, at 12:31 PM, Steve Reinhardt wrote:

Hi Matt,

On 8/20/07, Matthew James Horsnell <[EMAIL PROTECTED]> wrote:
Having followed Steve's suggestions I have debugged the the binaries
using gdb, and can indeed see that when ZeroReg is set to 31 (and
ReturnAddressReg is 0) then the code calls JsrAndLink, whereas when the
constants are switched the code calls Jsr, but I have extensively
searched to see where I may have missed a constant.

If this is the case, then I suggest setting a breakpoint on decodeInst() in decoder.cc and stepping through to see why when the machine instruction is being decoded it is returning a Jsr object and not a JsrAndLink object. That line I pointed out earlier in branch.isa is what's supposed to control that, but obviously it's not working...

Steve

_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to