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 --- |