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