faults.cc revision 2166
12131SN/A/*
22131SN/A * Copyright (c) 2003-2005 The Regents of The University of Michigan
32131SN/A * All rights reserved.
42131SN/A *
52131SN/A * Redistribution and use in source and binary forms, with or without
62131SN/A * modification, are permitted provided that the following conditions are
72131SN/A * met: redistributions of source code must retain the above copyright
82131SN/A * notice, this list of conditions and the following disclaimer;
92131SN/A * redistributions in binary form must reproduce the above copyright
102131SN/A * notice, this list of conditions and the following disclaimer in the
112131SN/A * documentation and/or other materials provided with the distribution;
122131SN/A * neither the name of the copyright holders nor the names of its
132131SN/A * contributors may be used to endorse or promote products derived from
142131SN/A * this software without specific prior written permission.
152131SN/A *
162131SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
172131SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
182131SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
192131SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
202131SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
212131SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
222131SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
232131SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
242131SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
252131SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
262131SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
272665Ssaidi@eecs.umich.edu */
282935Sksewell@umich.edu
292935Sksewell@umich.edu#include "arch/alpha/faults.hh"
302131SN/A
312131SN/AResetFaultType * const ResetFault =
322239SN/A    new ResetFaultType("reset", 1, 0x0001);
332680Sktlim@umich.eduArithmeticFaultType * const ArithmeticFault =
342447SN/A    new ArithmeticFaultType("arith", 3, 0x0501);
352447SN/AInterruptFaultType * const InterruptFault =
362935Sksewell@umich.edu    new InterruptFaultType("interrupt", 4, 0x0101);
372800Ssaidi@eecs.umich.eduNDtbMissFaultType * const NDtbMissFault =
382800Ssaidi@eecs.umich.edu    new NDtbMissFaultType("dtb_miss_single", 5, 0x0201);
392800Ssaidi@eecs.umich.eduPDtbMissFaultType * const PDtbMissFault =
402800Ssaidi@eecs.umich.edu    new PDtbMissFaultType("dtb_miss_double", 6, 0x0281);
412131SN/ADtbPageFaultType * const DtbPageFault =
422447SN/A    new DtbPageFaultType("dfault", 8, 0x0381);
432447SN/ADtbAcvFaultType * const DtbAcvFault =
442131SN/A    new DtbAcvFaultType("dfault", 9, 0x0381);
452479SN/AItbMissFaultType * const ItbMissFault =
462447SN/A    new ItbMissFaultType("itbmiss", 10, 0x0181);
472447SN/AItbPageFaultType * const ItbPageFault =
482131SN/A    new ItbPageFaultType("itbmiss", 11, 0x0181);
492479SN/AItbAcvFaultType * const ItbAcvFault =
502447SN/A    new ItbAcvFaultType("iaccvio", 12, 0x0081);
512447SN/AUnimplementedOpcodeFaultType * const UnimplementedOpcodeFault =
522447SN/A    new UnimplementedOpcodeFaultType("opdec", 13, 0x0481);
532447SN/AFloatEnableFaultType * const FloatEnableFault =
542447SN/A    new FloatEnableFaultType("fen", 14, 0x0581);
552447SN/APalFaultType * const PalFault =
562447SN/A    new PalFaultType("pal", 15, 0x2001);
572447SN/AIntegerOverflowFaultType * const IntegerOverflowFault =
582447SN/A    new IntegerOverflowFaultType("intover", 16, 0x0501);
592447SN/A
602447SN/AFault ** ListOfFaults[] = {
612800Ssaidi@eecs.umich.edu        (Fault **)&NoFault,
622800Ssaidi@eecs.umich.edu        (Fault **)&ResetFault,
632800Ssaidi@eecs.umich.edu        (Fault **)&MachineCheckFault,
642800Ssaidi@eecs.umich.edu        (Fault **)&ArithmeticFault,
652800Ssaidi@eecs.umich.edu        (Fault **)&InterruptFault,
662800Ssaidi@eecs.umich.edu        (Fault **)&NDtbMissFault,
672447SN/A        (Fault **)&PDtbMissFault,
682447SN/A        (Fault **)&AlignmentFault,
692447SN/A        (Fault **)&DtbPageFault,
702447SN/A        (Fault **)&DtbAcvFault,
712447SN/A        (Fault **)&ItbMissFault,
722447SN/A        (Fault **)&ItbPageFault,
732447SN/A        (Fault **)&ItbAcvFault,
742447SN/A        (Fault **)&UnimplementedOpcodeFault,
752447SN/A        (Fault **)&FloatEnableFault,
762447SN/A        (Fault **)&PalFault,
772447SN/A        (Fault **)&IntegerOverflowFault,
782447SN/A        };
792447SN/A
802447SN/Aint NumFaults = sizeof(ListOfFaults) / sizeof(Fault **);
812447SN/A