faults.hh revision 7811
15132Sgblack@eecs.umich.edu/* 25132Sgblack@eecs.umich.edu * Copyright (c) 2003-2005 The Regents of The University of Michigan 35132Sgblack@eecs.umich.edu * Copyright (c) 2009 The University of Edinburgh 45132Sgblack@eecs.umich.edu * All rights reserved. 57087Snate@binkert.org * 67087Snate@binkert.org * Redistribution and use in source and binary forms, with or without 77087Snate@binkert.org * modification, are permitted provided that the following conditions are 87087Snate@binkert.org * met: redistributions of source code must retain the above copyright 97087Snate@binkert.org * notice, this list of conditions and the following disclaimer; 107087Snate@binkert.org * redistributions in binary form must reproduce the above copyright 117087Snate@binkert.org * notice, this list of conditions and the following disclaimer in the 127087Snate@binkert.org * documentation and/or other materials provided with the distribution; 135132Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its 147087Snate@binkert.org * contributors may be used to endorse or promote products derived from 157087Snate@binkert.org * this software without specific prior written permission. 167087Snate@binkert.org * 177087Snate@binkert.org * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 187087Snate@binkert.org * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 197087Snate@binkert.org * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 207087Snate@binkert.org * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 217087Snate@binkert.org * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 225132Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 237087Snate@binkert.org * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 245132Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 255132Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 265132Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 275132Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 285132Sgblack@eecs.umich.edu * 295132Sgblack@eecs.umich.edu * Authors: Gabe Black 305132Sgblack@eecs.umich.edu * Timothy M. Jones 315132Sgblack@eecs.umich.edu */ 325132Sgblack@eecs.umich.edu 335132Sgblack@eecs.umich.edu#ifndef __ARCH_POWER_FAULTS_HH__ 345132Sgblack@eecs.umich.edu#define __ARCH_POWER_FAULTS_HH__ 355132Sgblack@eecs.umich.edu 365132Sgblack@eecs.umich.edu#include "sim/faults.hh" 375132Sgblack@eecs.umich.edu 385132Sgblack@eecs.umich.edunamespace PowerISA 395132Sgblack@eecs.umich.edu{ 408229Snate@binkert.org 415612Sgblack@eecs.umich.educlass PowerFault : public FaultBase 428229Snate@binkert.org{ 437901Shestness@cs.utexas.edu protected: 445132Sgblack@eecs.umich.edu FaultName _name; 455132Sgblack@eecs.umich.edu 465132Sgblack@eecs.umich.edu PowerFault(FaultName name) 475132Sgblack@eecs.umich.edu : _name(name) 488229Snate@binkert.org { 495132Sgblack@eecs.umich.edu } 505299Sgblack@eecs.umich.edu 518706Sandreas.hansson@arm.com FaultName 525132Sgblack@eecs.umich.edu name() const 535132Sgblack@eecs.umich.edu { 545132Sgblack@eecs.umich.edu return _name; 555299Sgblack@eecs.umich.edu } 565299Sgblack@eecs.umich.edu}; 575132Sgblack@eecs.umich.edu 585625Sgblack@eecs.umich.edu 595625Sgblack@eecs.umich.educlass UnimplementedOpcodeFault : public PowerFault 605625Sgblack@eecs.umich.edu{ 615627Sgblack@eecs.umich.edu public: 625627Sgblack@eecs.umich.edu UnimplementedOpcodeFault() 637704Sgblack@eecs.umich.edu : PowerFault("Unimplemented Opcode") 647704Sgblack@eecs.umich.edu { 655132Sgblack@eecs.umich.edu } 6610554Salexandru.dutu@amd.com}; 6710554Salexandru.dutu@amd.com 686220Sgblack@eecs.umich.edu 696220Sgblack@eecs.umich.educlass MachineCheckFault : public PowerFault 706220Sgblack@eecs.umich.edu{ 716220Sgblack@eecs.umich.edu public: 726220Sgblack@eecs.umich.edu MachineCheckFault() 736220Sgblack@eecs.umich.edu : PowerFault("Machine Check") 746220Sgblack@eecs.umich.edu { 756220Sgblack@eecs.umich.edu } 766220Sgblack@eecs.umich.edu}; 776220Sgblack@eecs.umich.edu 786222Sgblack@eecs.umich.edu 796222Sgblack@eecs.umich.educlass AlignmentFault : public PowerFault 806222Sgblack@eecs.umich.edu{ 816222Sgblack@eecs.umich.edu public: 826222Sgblack@eecs.umich.edu AlignmentFault() 836222Sgblack@eecs.umich.edu : PowerFault("Alignment") 846222Sgblack@eecs.umich.edu { 856222Sgblack@eecs.umich.edu } 866222Sgblack@eecs.umich.edu 876222Sgblack@eecs.umich.edu bool 886220Sgblack@eecs.umich.edu isAlignmentFault() const 896220Sgblack@eecs.umich.edu { 906220Sgblack@eecs.umich.edu return true; 916222Sgblack@eecs.umich.edu } 926220Sgblack@eecs.umich.edu}; 936222Sgblack@eecs.umich.edu 946220Sgblack@eecs.umich.edu 956220Sgblack@eecs.umich.edustatic inline Fault 966222Sgblack@eecs.umich.edugenMachineCheckFault() 976220Sgblack@eecs.umich.edu{ 986220Sgblack@eecs.umich.edu return new MachineCheckFault(); 996220Sgblack@eecs.umich.edu} 1006220Sgblack@eecs.umich.edu 1016222Sgblack@eecs.umich.edu} // namespace PowerISA 1026220Sgblack@eecs.umich.edu 1036220Sgblack@eecs.umich.edu#endif // __ARCH_POWER_FAULTS_HH__ 1046220Sgblack@eecs.umich.edu