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 xc->setMiscReg(IPR_EXC_ADDR, NPC); 854 NPC = xc->readMiscReg(IPR_PAL_BASE) + palOffset; |
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({{ |
1020 panic("M5 panic instruction called at pc = %#x.", PC); |
1021 }}, IsNonSpeculative); 1022#define CPANN(lbl) CPA::cpa()->lbl(xc->tcBase()) 1023 0x55: decode RA { 1024 0x00: m5a_old({{ |
1025 panic("Deprecated M5 annotate instruction executed " 1026 "at pc = %#x\n", PC); |
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 --- |