824,839c824,836
< #if FULL_SYSTEM
< 0x00: CallPal::call_pal({{
< if (!palValid ||
< (palPriv
< && xc->readMiscReg(IPR_ICM) != mode_kernel)) {
< // invalid pal function code, or attempt to do privileged
< // PAL call in non-kernel mode
< fault = new UnimplementedOpcodeFault;
< } else {
< // check to see if simulator wants to do something special
< // on this PAL call (including maybe suppress it)
< bool dopal = xc->simPalCheck(palFunc);
<
< if (dopal) {
< xc->setMiscReg(IPR_EXC_ADDR, NPC);
< NPC = xc->readMiscReg(IPR_PAL_BASE) + palOffset;
---
> 0x00: decode FullSystem {
> 0: decode PALFUNC {
> format EmulatedCallPal {
> 0x00: halt ({{
> exitSimLoop("halt instruction encountered");
> }}, IsNonSpeculative);
> 0x83: callsys({{
> xc->syscall(R0);
> }}, IsSerializeAfter, IsNonSpeculative, IsSyscall);
> // Read uniq reg into ABI return value register (r0)
> 0x9e: rduniq({{ R0 = Runiq; }}, IsIprAccess);
> // Write uniq reg with value from ABI arg register (r16)
> 0x9f: wruniq({{ Runiq = R16; }}, IsIprAccess);
842,856c839,856
< }}, IsNonSpeculative);
< #else
< 0x00: decode PALFUNC {
< format EmulatedCallPal {
< 0x00: halt ({{
< exitSimLoop("halt instruction encountered");
< }}, IsNonSpeculative);
< 0x83: callsys({{
< xc->syscall(R0);
< }}, IsSerializeAfter, IsNonSpeculative, IsSyscall);
< // Read uniq reg into ABI return value register (r0)
< 0x9e: rduniq({{ R0 = Runiq; }}, IsIprAccess);
< // Write uniq reg with value from ABI arg register (r16)
< 0x9f: wruniq({{ Runiq = R16; }}, IsIprAccess);
< }
---
> default: CallPal::call_pal({{
> if (!palValid ||
> (palPriv
> && xc->readMiscReg(IPR_ICM) != mode_kernel)) {
> // invalid pal function code, or attempt to do privileged
> // PAL call in non-kernel mode
> fault = new UnimplementedOpcodeFault;
> } else {
> // check to see if simulator wants to do something special
> // on this PAL call (including maybe suppress it)
> bool dopal = xc->simPalCheck(palFunc);
>
> if (dopal) {
> xc->setMiscReg(IPR_EXC_ADDR, NPC);
> NPC = xc->readMiscReg(IPR_PAL_BASE) + palOffset;
> }
> }
> }}, IsNonSpeculative);
858d857
< #endif
860d858
< #if FULL_SYSTEM
927,928d924
< #endif
<