decoder.isa (6804:e8e64ad04260) decoder.isa (7720:65d338a8dba4)
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

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

851#if FULL_SYSTEM
852 0x00: CallPal::call_pal({{
853 if (!palValid ||
854 (palPriv
855 && xc->readMiscReg(IPR_ICM) != mode_kernel)) {
856 // invalid pal function code, or attempt to do privileged
857 // PAL call in non-kernel mode
858 fault = new UnimplementedOpcodeFault;
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

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

851#if FULL_SYSTEM
852 0x00: CallPal::call_pal({{
853 if (!palValid ||
854 (palPriv
855 && xc->readMiscReg(IPR_ICM) != mode_kernel)) {
856 // invalid pal function code, or attempt to do privileged
857 // PAL call in non-kernel mode
858 fault = new UnimplementedOpcodeFault;
859 }
860 else {
859 } else {
861 // check to see if simulator wants to do something special
862 // on this PAL call (including maybe suppress it)
863 bool dopal = xc->simPalCheck(palFunc);
864
865 if (dopal) {
860 // check to see if simulator wants to do something special
861 // on this PAL call (including maybe suppress it)
862 bool dopal = xc->simPalCheck(palFunc);
863
864 if (dopal) {
866 xc->setMiscReg(IPR_EXC_ADDR, NPC);
867 NPC = xc->readMiscReg(IPR_PAL_BASE) + palOffset;
865 PCState pc = PCS;
866 xc->setMiscReg(IPR_EXC_ADDR, pc.npc());
867 pc.npc(xc->readMiscReg(IPR_PAL_BASE) + palOffset);
868 PCS = pc;
868 }
869 }
870 }}, IsNonSpeculative);
871#else
872 0x00: decode PALFUNC {
873 format EmulatedCallPal {
874 0x00: halt ({{
875 exitSimLoop("halt instruction encountered");

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

1025 PseudoInst::switchcpu(xc->tcBase());
1026 }}, IsNonSpeculative);
1027#if FULL_SYSTEM
1028 0x53: m5addsymbol({{
1029 PseudoInst::addsymbol(xc->tcBase(), R16, R17);
1030 }}, IsNonSpeculative);
1031#endif
1032 0x54: m5panic({{
869 }
870 }
871 }}, IsNonSpeculative);
872#else
873 0x00: decode PALFUNC {
874 format EmulatedCallPal {
875 0x00: halt ({{
876 exitSimLoop("halt instruction encountered");

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

1026 PseudoInst::switchcpu(xc->tcBase());
1027 }}, IsNonSpeculative);
1028#if FULL_SYSTEM
1029 0x53: m5addsymbol({{
1030 PseudoInst::addsymbol(xc->tcBase(), R16, R17);
1031 }}, IsNonSpeculative);
1032#endif
1033 0x54: m5panic({{
1033 panic("M5 panic instruction called at pc=%#x.", xc->readPC());
1034 panic("M5 panic instruction called at pc=%#x.",
1035 xc->pcState().pc());
1034 }}, IsNonSpeculative);
1035#define CPANN(lbl) CPA::cpa()->lbl(xc->tcBase())
1036 0x55: decode RA {
1037 0x00: m5a_old({{
1038 panic("Deprecated M5 annotate instruction executed at pc=%#x\n",
1036 }}, IsNonSpeculative);
1037#define CPANN(lbl) CPA::cpa()->lbl(xc->tcBase())
1038 0x55: decode RA {
1039 0x00: m5a_old({{
1040 panic("Deprecated M5 annotate instruction executed at pc=%#x\n",
1039 xc->readPC());
1041 xc->pcState().pc());
1040 }}, IsNonSpeculative);
1041 0x01: m5a_bsm({{
1042 CPANN(swSmBegin);
1043 }}, IsNonSpeculative);
1044 0x02: m5a_esm({{
1045 CPANN(swSmEnd);
1046 }}, IsNonSpeculative);
1047 0x03: m5a_begin({{

--- 58 unchanged lines hidden ---
1042 }}, IsNonSpeculative);
1043 0x01: m5a_bsm({{
1044 CPANN(swSmBegin);
1045 }}, IsNonSpeculative);
1046 0x02: m5a_esm({{
1047 CPANN(swSmEnd);
1048 }}, IsNonSpeculative);
1049 0x03: m5a_begin({{

--- 58 unchanged lines hidden ---