faults.hh revision 8567
12131SN/A/*
25268Sksewell@umich.edu * Copyright (c) 2003-2005 The Regents of The University of Michigan
35224Sksewell@umich.edu * Copyright (c) 2007 MIPS Technologies, Inc.
45224Sksewell@umich.edu * All rights reserved.
52131SN/A *
65224Sksewell@umich.edu * Redistribution and use in source and binary forms, with or without
75224Sksewell@umich.edu * modification, are permitted provided that the following conditions are
85224Sksewell@umich.edu * met: redistributions of source code must retain the above copyright
95224Sksewell@umich.edu * notice, this list of conditions and the following disclaimer;
105224Sksewell@umich.edu * redistributions in binary form must reproduce the above copyright
115224Sksewell@umich.edu * notice, this list of conditions and the following disclaimer in the
125224Sksewell@umich.edu * documentation and/or other materials provided with the distribution;
135224Sksewell@umich.edu * neither the name of the copyright holders nor the names of its
145224Sksewell@umich.edu * contributors may be used to endorse or promote products derived from
155224Sksewell@umich.edu * this software without specific prior written permission.
162131SN/A *
175224Sksewell@umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
185224Sksewell@umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
195224Sksewell@umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
205224Sksewell@umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
215224Sksewell@umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
225224Sksewell@umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
235224Sksewell@umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
245224Sksewell@umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
255224Sksewell@umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
265224Sksewell@umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
275224Sksewell@umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
282665Ssaidi@eecs.umich.edu *
295224Sksewell@umich.edu * Authors: Gabe Black
305224Sksewell@umich.edu *          Korey Sewell
315222Sksewell@umich.edu *          Jaidev Patwardhan
322131SN/A */
332131SN/A
342239SN/A#ifndef __MIPS_FAULTS_HH__
352239SN/A#define __MIPS_FAULTS_HH__
362131SN/A
372131SN/A#include "sim/faults.hh"
382447SN/A
392447SN/Anamespace MipsISA
402447SN/A{
416378Sgblack@eecs.umich.edu
422447SN/Atypedef const Addr FaultVect;
432131SN/A
448566Sgblack@eecs.umich.educlass MipsFaultBase : public FaultBase
452131SN/A{
462447SN/A  protected:
472447SN/A    virtual bool skipFaultingInstruction() {return false;}
482447SN/A    virtual bool setRestartAddress() {return true;}
492131SN/A  public:
508566Sgblack@eecs.umich.edu    struct FaultVals
518566Sgblack@eecs.umich.edu    {
528566Sgblack@eecs.umich.edu        const FaultName name;
538566Sgblack@eecs.umich.edu        const FaultVect vect;
548566Sgblack@eecs.umich.edu        FaultStat count;
558566Sgblack@eecs.umich.edu    };
568566Sgblack@eecs.umich.edu
576379Sgblack@eecs.umich.edu    Addr badVAddr;
586379Sgblack@eecs.umich.edu    Addr entryHiAsid;
596379Sgblack@eecs.umich.edu    Addr entryHiVPN2;
606379Sgblack@eecs.umich.edu    Addr entryHiVPN2X;
616379Sgblack@eecs.umich.edu    Addr contextBadVPN2;
622447SN/A#if FULL_SYSTEM
637678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
647678Sgblack@eecs.umich.edu            StaticInst::StaticInstPtr inst = StaticInst::nullStaticInstPtr)
657678Sgblack@eecs.umich.edu    {}
666378Sgblack@eecs.umich.edu    void setExceptionState(ThreadContext *, uint8_t);
676378Sgblack@eecs.umich.edu    void setHandlerPC(Addr, ThreadContext *);
682447SN/A#endif
692131SN/A};
702131SN/A
718566Sgblack@eecs.umich.edutemplate <typename T>
728566Sgblack@eecs.umich.educlass MipsFault : public MipsFaultBase
732131SN/A{
748566Sgblack@eecs.umich.edu  protected:
758566Sgblack@eecs.umich.edu    static FaultVals vals;
762131SN/A  public:
778566Sgblack@eecs.umich.edu    FaultName name() const { return vals.name; }
788566Sgblack@eecs.umich.edu    FaultVect vect() const { return vals.vect; }
798566Sgblack@eecs.umich.edu    FaultStat & countStat() { return vals.count; }
808566Sgblack@eecs.umich.edu};
818566Sgblack@eecs.umich.edu
828566Sgblack@eecs.umich.educlass MachineCheckFault : public MipsFault<MachineCheckFault>
838566Sgblack@eecs.umich.edu{
848566Sgblack@eecs.umich.edu  public:
855222Sksewell@umich.edu    bool isMachineCheckFault() {return true;}
865222Sksewell@umich.edu};
875222Sksewell@umich.edu
888566Sgblack@eecs.umich.educlass NonMaskableInterrupt : public MipsFault<NonMaskableInterrupt>
895222Sksewell@umich.edu{
905222Sksewell@umich.edu  public:
915222Sksewell@umich.edu    bool isNonMaskableInterrupt() {return true;}
922447SN/A};
932131SN/A
948566Sgblack@eecs.umich.educlass AlignmentFault : public MipsFault<AlignmentFault>
952131SN/A{
962131SN/A  public:
975222Sksewell@umich.edu    bool isAlignmentFault() {return true;}
982447SN/A};
992131SN/A
1008566Sgblack@eecs.umich.educlass AddressErrorFault : public MipsFault<AddressErrorFault>
1015222Sksewell@umich.edu{
1025222Sksewell@umich.edu  public:
1038567Sgblack@eecs.umich.edu    AddressErrorFault(Addr vaddr) { badVAddr = vaddr; }
1045222Sksewell@umich.edu#if FULL_SYSTEM
1057678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1067678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1075222Sksewell@umich.edu#endif
1085222Sksewell@umich.edu
1095222Sksewell@umich.edu};
1106378Sgblack@eecs.umich.edu
1118566Sgblack@eecs.umich.educlass StoreAddressErrorFault : public MipsFault<StoreAddressErrorFault>
1125222Sksewell@umich.edu{
1135222Sksewell@umich.edu  public:
1148567Sgblack@eecs.umich.edu    StoreAddressErrorFault(Addr vaddr) { badVAddr = vaddr; }
1155222Sksewell@umich.edu#if FULL_SYSTEM
1167678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1177678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1185222Sksewell@umich.edu#endif
1196378Sgblack@eecs.umich.edu};
1205222Sksewell@umich.edu
1218566Sgblack@eecs.umich.educlass UnimplementedOpcodeFault : public MipsFault<UnimplementedOpcodeFault> {};
1228566Sgblack@eecs.umich.edu
1238566Sgblack@eecs.umich.educlass TLBRefillIFetchFault : public MipsFault<TLBRefillIFetchFault>
1244661Sksewell@umich.edu{
1254661Sksewell@umich.edu  public:
1267678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1277678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1282447SN/A};
1296378Sgblack@eecs.umich.edu
1308566Sgblack@eecs.umich.educlass TLBInvalidIFetchFault : public MipsFault<TLBInvalidIFetchFault>
1314661Sksewell@umich.edu{
1324661Sksewell@umich.edu  public:
1337678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1347678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1354661Sksewell@umich.edu};
1364661Sksewell@umich.edu
1378566Sgblack@eecs.umich.educlass NDtbMissFault : public MipsFault<NDtbMissFault> {};
1388566Sgblack@eecs.umich.educlass PDtbMissFault : public MipsFault<PDtbMissFault> {};
1398566Sgblack@eecs.umich.educlass DtbPageFault : public MipsFault<DtbPageFault> {};
1408566Sgblack@eecs.umich.educlass DtbAcvFault : public MipsFault<DtbAcvFault> {};
1415222Sksewell@umich.edu
1425222Sksewell@umich.edustatic inline Fault genMachineCheckFault()
1435222Sksewell@umich.edu{
1445222Sksewell@umich.edu    return new MachineCheckFault;
1455222Sksewell@umich.edu}
1465222Sksewell@umich.edu
1475222Sksewell@umich.edustatic inline Fault genAlignmentFault()
1485222Sksewell@umich.edu{
1495222Sksewell@umich.edu    return new AlignmentFault;
1505222Sksewell@umich.edu}
1515222Sksewell@umich.edu
1528566Sgblack@eecs.umich.educlass ResetFault : public MipsFault<ResetFault>
1535222Sksewell@umich.edu{
1545222Sksewell@umich.edu  public:
1557678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1567678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1575222Sksewell@umich.edu
1585222Sksewell@umich.edu};
1596378Sgblack@eecs.umich.edu
1608566Sgblack@eecs.umich.educlass SystemCallFault : public MipsFault<SystemCallFault>
1615222Sksewell@umich.edu{
1625222Sksewell@umich.edu  public:
1638563Sgblack@eecs.umich.edu#if FULL_SYSTEM
1647678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1657678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1668563Sgblack@eecs.umich.edu#endif
1675222Sksewell@umich.edu};
1685222Sksewell@umich.edu
1698566Sgblack@eecs.umich.educlass SoftResetFault : public MipsFault<SoftResetFault>
1705222Sksewell@umich.edu{
1715222Sksewell@umich.edu  public:
1727678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1737678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1745222Sksewell@umich.edu};
1756378Sgblack@eecs.umich.edu
1768566Sgblack@eecs.umich.educlass DebugSingleStep : public MipsFault<DebugSingleStep>
1775222Sksewell@umich.edu{
1785222Sksewell@umich.edu  public:
1797678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1807678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1815222Sksewell@umich.edu};
1826378Sgblack@eecs.umich.edu
1838566Sgblack@eecs.umich.educlass DebugInterrupt : public MipsFault<DebugInterrupt>
1845222Sksewell@umich.edu{
1855222Sksewell@umich.edu  public:
1867678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1877678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
1885222Sksewell@umich.edu};
1895222Sksewell@umich.edu
1908566Sgblack@eecs.umich.educlass CoprocessorUnusableFault : public MipsFault<CoprocessorUnusableFault>
1915222Sksewell@umich.edu{
1928566Sgblack@eecs.umich.edu  protected:
1935222Sksewell@umich.edu    int coProcID;
1945222Sksewell@umich.edu  public:
1958566Sgblack@eecs.umich.edu    CoprocessorUnusableFault(int _procid) : coProcID(_procid)
1968566Sgblack@eecs.umich.edu    {}
1975222Sksewell@umich.edu
1987678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
1997678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2005222Sksewell@umich.edu};
2015222Sksewell@umich.edu
2028566Sgblack@eecs.umich.educlass ReservedInstructionFault : public MipsFault<ReservedInstructionFault>
2035222Sksewell@umich.edu{
2045222Sksewell@umich.edu  public:
2057678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2067678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2075222Sksewell@umich.edu};
2085222Sksewell@umich.edu
2098566Sgblack@eecs.umich.educlass ThreadFault : public MipsFault<ThreadFault>
2108566Sgblack@eecs.umich.edu{
2118566Sgblack@eecs.umich.edu  public:
2128566Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2138566Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2148566Sgblack@eecs.umich.edu};
2158566Sgblack@eecs.umich.edu
2168566Sgblack@eecs.umich.educlass ArithmeticFault : public MipsFault<ArithmeticFault>
2175222Sksewell@umich.edu{
2185222Sksewell@umich.edu  protected:
2195222Sksewell@umich.edu    bool skipFaultingInstruction() {return true;}
2205222Sksewell@umich.edu  public:
2215222Sksewell@umich.edu#if FULL_SYSTEM
2227678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2237678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2245222Sksewell@umich.edu#endif
2255222Sksewell@umich.edu};
2265222Sksewell@umich.edu
2278566Sgblack@eecs.umich.educlass InterruptFault : public MipsFault<InterruptFault>
2285222Sksewell@umich.edu{
2295222Sksewell@umich.edu  protected:
2305222Sksewell@umich.edu    bool setRestartAddress() {return false;}
2315222Sksewell@umich.edu  public:
2325222Sksewell@umich.edu#if FULL_SYSTEM
2337678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2347678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2355222Sksewell@umich.edu#endif
2365222Sksewell@umich.edu};
2375222Sksewell@umich.edu
2388566Sgblack@eecs.umich.educlass TrapFault : public MipsFault<TrapFault>
2395222Sksewell@umich.edu{
2405222Sksewell@umich.edu  public:
2415222Sksewell@umich.edu#if FULL_SYSTEM
2427678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2437678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2445222Sksewell@umich.edu#endif
2455222Sksewell@umich.edu};
2465222Sksewell@umich.edu
2478566Sgblack@eecs.umich.educlass BreakpointFault : public MipsFault<BreakpointFault>
2485222Sksewell@umich.edu{
2495222Sksewell@umich.edu  public:
2505222Sksewell@umich.edu#if FULL_SYSTEM
2517678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2527678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2535222Sksewell@umich.edu#endif
2545222Sksewell@umich.edu};
2555222Sksewell@umich.edu
2568566Sgblack@eecs.umich.educlass ItbRefillFault : public MipsFault<ItbRefillFault>
2575222Sksewell@umich.edu{
2585222Sksewell@umich.edu  public:
2598567Sgblack@eecs.umich.edu    ItbRefillFault(Addr asid, Addr vaddr, Addr vpn)
2608567Sgblack@eecs.umich.edu    {
2618567Sgblack@eecs.umich.edu        entryHiAsid = asid;
2628567Sgblack@eecs.umich.edu        entryHiVPN2 = vpn >> 2;
2638567Sgblack@eecs.umich.edu        entryHiVPN2X = vpn & 0x3;
2648567Sgblack@eecs.umich.edu        badVAddr = vaddr;
2658567Sgblack@eecs.umich.edu        contextBadVPN2 = vpn >> 2;
2668567Sgblack@eecs.umich.edu    }
2675222Sksewell@umich.edu#if FULL_SYSTEM
2687678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2697678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2705222Sksewell@umich.edu#endif
2715222Sksewell@umich.edu};
2726378Sgblack@eecs.umich.edu
2738566Sgblack@eecs.umich.educlass DtbRefillFault : public MipsFault<DtbRefillFault>
2745222Sksewell@umich.edu{
2755222Sksewell@umich.edu  public:
2768567Sgblack@eecs.umich.edu    DtbRefillFault(Addr asid, Addr vaddr, Addr vpn)
2778567Sgblack@eecs.umich.edu    {
2788567Sgblack@eecs.umich.edu        entryHiAsid = asid;
2798567Sgblack@eecs.umich.edu        entryHiVPN2 = vpn >> 2;
2808567Sgblack@eecs.umich.edu        entryHiVPN2X = vpn & 0x3;
2818567Sgblack@eecs.umich.edu        badVAddr = vaddr;
2828567Sgblack@eecs.umich.edu        contextBadVPN2 = vpn >> 2;
2838567Sgblack@eecs.umich.edu    }
2845222Sksewell@umich.edu#if FULL_SYSTEM
2857678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2867678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2875222Sksewell@umich.edu#endif
2885222Sksewell@umich.edu};
2895222Sksewell@umich.edu
2908566Sgblack@eecs.umich.educlass ItbPageFault : public MipsFault<ItbPageFault>
2915222Sksewell@umich.edu{
2925222Sksewell@umich.edu  public:
2935222Sksewell@umich.edu#if FULL_SYSTEM
2947678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
2957678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
2965222Sksewell@umich.edu#endif
2975222Sksewell@umich.edu};
2985222Sksewell@umich.edu
2998566Sgblack@eecs.umich.educlass ItbInvalidFault : public MipsFault<ItbInvalidFault>
3005222Sksewell@umich.edu{
3015222Sksewell@umich.edu  public:
3028567Sgblack@eecs.umich.edu    ItbInvalidFault(Addr asid, Addr vaddr, Addr vpn)
3038567Sgblack@eecs.umich.edu    {
3048567Sgblack@eecs.umich.edu        entryHiAsid = asid;
3058567Sgblack@eecs.umich.edu        entryHiVPN2 = vpn >> 2;
3068567Sgblack@eecs.umich.edu        entryHiVPN2X = vpn & 0x3;
3078567Sgblack@eecs.umich.edu        badVAddr = vaddr;
3088567Sgblack@eecs.umich.edu        contextBadVPN2 = vpn >> 2;
3098567Sgblack@eecs.umich.edu    }
3105222Sksewell@umich.edu#if FULL_SYSTEM
3117678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
3127678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
3135222Sksewell@umich.edu#endif
3146378Sgblack@eecs.umich.edu};
3155222Sksewell@umich.edu
3168566Sgblack@eecs.umich.educlass TLBModifiedFault : public MipsFault<TLBModifiedFault>
3175222Sksewell@umich.edu{
3185222Sksewell@umich.edu  public:
3198567Sgblack@eecs.umich.edu    TLBModifiedFault(Addr asid, Addr vaddr, Addr vpn)
3208567Sgblack@eecs.umich.edu    {
3218567Sgblack@eecs.umich.edu        entryHiAsid = asid;
3228567Sgblack@eecs.umich.edu        entryHiVPN2 = vpn >> 2;
3238567Sgblack@eecs.umich.edu        entryHiVPN2X = vpn & 0x3;
3248567Sgblack@eecs.umich.edu        badVAddr = vaddr;
3258567Sgblack@eecs.umich.edu        contextBadVPN2 = vpn >> 2;
3268567Sgblack@eecs.umich.edu    }
3275222Sksewell@umich.edu#if FULL_SYSTEM
3287678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
3297678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
3305222Sksewell@umich.edu#endif
3315222Sksewell@umich.edu};
3325222Sksewell@umich.edu
3338566Sgblack@eecs.umich.educlass DtbInvalidFault : public MipsFault<DtbInvalidFault>
3345222Sksewell@umich.edu{
3355222Sksewell@umich.edu  public:
3368567Sgblack@eecs.umich.edu    DtbInvalidFault(Addr asid, Addr vaddr, Addr vpn)
3378567Sgblack@eecs.umich.edu    {
3388567Sgblack@eecs.umich.edu        entryHiAsid = asid;
3398567Sgblack@eecs.umich.edu        entryHiVPN2 = vpn >> 2;
3408567Sgblack@eecs.umich.edu        entryHiVPN2X = vpn & 0x3;
3418567Sgblack@eecs.umich.edu        badVAddr = vaddr;
3428567Sgblack@eecs.umich.edu        contextBadVPN2 = vpn >> 2;
3438567Sgblack@eecs.umich.edu    }
3445222Sksewell@umich.edu#if FULL_SYSTEM
3457678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
3467678Sgblack@eecs.umich.edu            StaticInst::StaticInstPtr inst = nullStaticInstPtr);
3475222Sksewell@umich.edu#endif
3485222Sksewell@umich.edu};
3495222Sksewell@umich.edu
3508566Sgblack@eecs.umich.educlass FloatEnableFault : public MipsFault<FloatEnableFault> {};
3518566Sgblack@eecs.umich.educlass ItbMissFault : public MipsFault<ItbMissFault> {};
3528566Sgblack@eecs.umich.educlass ItbAcvFault : public MipsFault<ItbAcvFault> {};
3538566Sgblack@eecs.umich.educlass IntegerOverflowFault : public MipsFault<IntegerOverflowFault> {};
3548566Sgblack@eecs.umich.edu
3558566Sgblack@eecs.umich.educlass DspStateDisabledFault : public MipsFault<DspStateDisabledFault>
3565222Sksewell@umich.edu{
3575222Sksewell@umich.edu  public:
3587678Sgblack@eecs.umich.edu    void invoke(ThreadContext * tc,
3597678Sgblack@eecs.umich.edu            StaticInstPtr inst = StaticInst::nullStaticInstPtr);
3604661Sksewell@umich.edu};
3614661Sksewell@umich.edu
3627811Ssteve.reinhardt@amd.com} // namespace MipsISA
3632131SN/A
3645222Sksewell@umich.edu#endif // __MIPS_FAULTS_HH__
365