Line 266... |
Line 266... |
userContext.psw = psw;
|
userContext.psw = psw;
|
userContext.tlbIndex = mmuGetIndex();
|
userContext.tlbIndex = mmuGetIndex();
|
userContext.tlbHi = mmuGetEntryHi();
|
userContext.tlbHi = mmuGetEntryHi();
|
userContext.tlbLo = mmuGetEntryLo();
|
userContext.tlbLo = mmuGetEntryLo();
|
userContext.badAddr = mmuGetBadAddr();
|
userContext.badAddr = mmuGetBadAddr();
|
|
userContext.badAccs = mmuGetBadAccs();
|
if (saveState(&stepState)) {
|
if (saveState(&stepState)) {
|
origReturn = monitorReturn;
|
origReturn = monitorReturn;
|
monitorReturn = &stepState;
|
monitorReturn = &stepState;
|
resume();
|
resume();
|
}
|
}
|
Line 281... |
Line 282... |
psw = userContext.psw;
|
psw = userContext.psw;
|
mmuSetIndex(userContext.tlbIndex);
|
mmuSetIndex(userContext.tlbIndex);
|
mmuSetEntryHi(userContext.tlbHi);
|
mmuSetEntryHi(userContext.tlbHi);
|
mmuSetEntryLo(userContext.tlbLo);
|
mmuSetEntryLo(userContext.tlbLo);
|
mmuSetBadAddr(userContext.badAddr);
|
mmuSetBadAddr(userContext.badAddr);
|
|
mmuSetBadAccs(userContext.badAccs);
|
mmuWriteWord(nextAddr, nextInstr);
|
mmuWriteWord(nextAddr, nextInstr);
|
if (nextAddr == pc) {
|
if (nextAddr == pc) {
|
return;
|
return;
|
}
|
}
|
if ((psw & PSW_PRIO_MASK) >> 16 == 21 &&
|
if ((psw & PSW_PRIO_MASK) >> 16 == 21 &&
|
Line 329... |
Line 331... |
userContext.psw = psw;
|
userContext.psw = psw;
|
userContext.tlbIndex = mmuGetIndex();
|
userContext.tlbIndex = mmuGetIndex();
|
userContext.tlbHi = mmuGetEntryHi();
|
userContext.tlbHi = mmuGetEntryHi();
|
userContext.tlbLo = mmuGetEntryLo();
|
userContext.tlbLo = mmuGetEntryLo();
|
userContext.badAddr = mmuGetBadAddr();
|
userContext.badAddr = mmuGetBadAddr();
|
|
userContext.badAccs = mmuGetBadAccs();
|
if (saveState(&runState)) {
|
if (saveState(&runState)) {
|
origReturn = monitorReturn;
|
origReturn = monitorReturn;
|
monitorReturn = &runState;
|
monitorReturn = &runState;
|
resume();
|
resume();
|
}
|
}
|
Line 344... |
Line 347... |
psw = userContext.psw;
|
psw = userContext.psw;
|
mmuSetIndex(userContext.tlbIndex);
|
mmuSetIndex(userContext.tlbIndex);
|
mmuSetEntryHi(userContext.tlbHi);
|
mmuSetEntryHi(userContext.tlbHi);
|
mmuSetEntryLo(userContext.tlbLo);
|
mmuSetEntryLo(userContext.tlbLo);
|
mmuSetBadAddr(userContext.badAddr);
|
mmuSetBadAddr(userContext.badAddr);
|
|
mmuSetBadAccs(userContext.badAccs);
|
if (breakSet) {
|
if (breakSet) {
|
mmuWriteWord(breakAddr, instr);
|
mmuWriteWord(breakAddr, instr);
|
}
|
}
|
if (breakSet && breakAddr == pc) {
|
if (breakSet && breakAddr == pc) {
|
return;
|
return;
|