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