decoder.isa (7725:00ea9430643b) decoder.isa (7794:8a7ba5a1b35d)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2003-2006 The Regents of The University of Michigan
4// All rights reserved.
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met: redistributions of source code must retain the above copyright

--- 836 unchanged lines hidden (view full) ---

845 // PAL call in non-kernel mode
846 fault = new UnimplementedOpcodeFault;
847 } else {
848 // check to see if simulator wants to do something special
849 // on this PAL call (including maybe suppress it)
850 bool dopal = xc->simPalCheck(palFunc);
851
852 if (dopal) {
1// -*- mode:c++ -*-
2
3// Copyright (c) 2003-2006 The Regents of The University of Michigan
4// All rights reserved.
5//
6// Redistribution and use in source and binary forms, with or without
7// modification, are permitted provided that the following conditions are
8// met: redistributions of source code must retain the above copyright

--- 836 unchanged lines hidden (view full) ---

845 // PAL call in non-kernel mode
846 fault = new UnimplementedOpcodeFault;
847 } else {
848 // check to see if simulator wants to do something special
849 // on this PAL call (including maybe suppress it)
850 bool dopal = xc->simPalCheck(palFunc);
851
852 if (dopal) {
853 PCState pc = PCS;
854 xc->setMiscReg(IPR_EXC_ADDR, pc.npc());
855 pc.npc(xc->readMiscReg(IPR_PAL_BASE) + palOffset);
856 PCS = pc;
853 xc->setMiscReg(IPR_EXC_ADDR, NPC);
854 NPC = xc->readMiscReg(IPR_PAL_BASE) + palOffset;
857 }
858 }
859 }}, IsNonSpeculative);
860#else
861 0x00: decode PALFUNC {
862 format EmulatedCallPal {
863 0x00: halt ({{
864 exitSimLoop("halt instruction encountered");

--- 149 unchanged lines hidden (view full) ---

1014 PseudoInst::switchcpu(xc->tcBase());
1015 }}, IsNonSpeculative);
1016#if FULL_SYSTEM
1017 0x53: m5addsymbol({{
1018 PseudoInst::addsymbol(xc->tcBase(), R16, R17);
1019 }}, IsNonSpeculative);
1020#endif
1021 0x54: m5panic({{
855 }
856 }
857 }}, IsNonSpeculative);
858#else
859 0x00: decode PALFUNC {
860 format EmulatedCallPal {
861 0x00: halt ({{
862 exitSimLoop("halt instruction encountered");

--- 149 unchanged lines hidden (view full) ---

1012 PseudoInst::switchcpu(xc->tcBase());
1013 }}, IsNonSpeculative);
1014#if FULL_SYSTEM
1015 0x53: m5addsymbol({{
1016 PseudoInst::addsymbol(xc->tcBase(), R16, R17);
1017 }}, IsNonSpeculative);
1018#endif
1019 0x54: m5panic({{
1022 panic("M5 panic instruction called at pc=%#x.",
1023 xc->pcState().pc());
1020 panic("M5 panic instruction called at pc = %#x.", PC);
1024 }}, IsNonSpeculative);
1025#define CPANN(lbl) CPA::cpa()->lbl(xc->tcBase())
1026 0x55: decode RA {
1027 0x00: m5a_old({{
1021 }}, IsNonSpeculative);
1022#define CPANN(lbl) CPA::cpa()->lbl(xc->tcBase())
1023 0x55: decode RA {
1024 0x00: m5a_old({{
1028 panic("Deprecated M5 annotate instruction executed at pc=%#x\n",
1029 xc->pcState().pc());
1025 panic("Deprecated M5 annotate instruction executed "
1026 "at pc = %#x\n", PC);
1030 }}, IsNonSpeculative);
1031 0x01: m5a_bsm({{
1032 CPANN(swSmBegin);
1033 }}, IsNonSpeculative);
1034 0x02: m5a_esm({{
1035 CPANN(swSmEnd);
1036 }}, IsNonSpeculative);
1037 0x03: m5a_begin({{

--- 58 unchanged lines hidden ---
1027 }}, IsNonSpeculative);
1028 0x01: m5a_bsm({{
1029 CPANN(swSmBegin);
1030 }}, IsNonSpeculative);
1031 0x02: m5a_esm({{
1032 CPANN(swSmEnd);
1033 }}, IsNonSpeculative);
1034 0x03: m5a_begin({{

--- 58 unchanged lines hidden ---