isa.hh revision 9384:877293183bdf
12929Sktlim@umich.edu/*
22929Sktlim@umich.edu * Copyright (c) 2009 The Regents of The University of Michigan
32932Sktlim@umich.edu * Copyright (c) 2009 The University of Edinburgh
42929Sktlim@umich.edu * All rights reserved.
52929Sktlim@umich.edu *
62929Sktlim@umich.edu * Redistribution and use in source and binary forms, with or without
72929Sktlim@umich.edu * modification, are permitted provided that the following conditions are
82929Sktlim@umich.edu * met: redistributions of source code must retain the above copyright
92929Sktlim@umich.edu * notice, this list of conditions and the following disclaimer;
102929Sktlim@umich.edu * redistributions in binary form must reproduce the above copyright
112929Sktlim@umich.edu * notice, this list of conditions and the following disclaimer in the
122929Sktlim@umich.edu * documentation and/or other materials provided with the distribution;
132929Sktlim@umich.edu * neither the name of the copyright holders nor the names of its
142929Sktlim@umich.edu * contributors may be used to endorse or promote products derived from
152929Sktlim@umich.edu * this software without specific prior written permission.
162929Sktlim@umich.edu *
172929Sktlim@umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
182929Sktlim@umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
192929Sktlim@umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
202929Sktlim@umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
212929Sktlim@umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
222929Sktlim@umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
232929Sktlim@umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
242929Sktlim@umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
252929Sktlim@umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
262929Sktlim@umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
272929Sktlim@umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
282932Sktlim@umich.edu *
292932Sktlim@umich.edu * Authors: Gabe Black
302932Sktlim@umich.edu *          Timothy M. Jones
312929Sktlim@umich.edu */
322929Sktlim@umich.edu
332929Sktlim@umich.edu#ifndef __ARCH_POWER_ISA_HH__
342929Sktlim@umich.edu#define __ARCH_POWER_ISA_HH__
352929Sktlim@umich.edu
362929Sktlim@umich.edu#include "arch/power/registers.hh"
372929Sktlim@umich.edu#include "arch/power/types.hh"
382929Sktlim@umich.edu#include "base/misc.hh"
392929Sktlim@umich.edu#include "sim/sim_object.hh"
402929Sktlim@umich.edu
412929Sktlim@umich.edustruct PowerISAParams;
422929Sktlim@umich.educlass ThreadContext;
432929Sktlim@umich.educlass Checkpoint;
442929Sktlim@umich.educlass EventManager;
452929Sktlim@umich.edu
462929Sktlim@umich.edunamespace PowerISA
472929Sktlim@umich.edu{
482929Sktlim@umich.edu
492929Sktlim@umich.educlass ISA : public SimObject
502929Sktlim@umich.edu{
512929Sktlim@umich.edu  protected:
522929Sktlim@umich.edu    MiscReg dummy;
532929Sktlim@umich.edu    MiscReg miscRegs[NumMiscRegs];
542929Sktlim@umich.edu
552929Sktlim@umich.edu  public:
562929Sktlim@umich.edu    typedef PowerISAParams Params;
572929Sktlim@umich.edu
582929Sktlim@umich.edu    void
592929Sktlim@umich.edu    clear()
602929Sktlim@umich.edu    {
612929Sktlim@umich.edu    }
622929Sktlim@umich.edu
632929Sktlim@umich.edu    MiscReg
643020Sstever@eecs.umich.edu    readMiscRegNoEffect(int misc_reg)
653020Sstever@eecs.umich.edu    {
663020Sstever@eecs.umich.edu        fatal("Power does not currently have any misc regs defined\n");
672929Sktlim@umich.edu        return dummy;
682929Sktlim@umich.edu    }
693021Sstever@eecs.umich.edu
702929Sktlim@umich.edu    MiscReg
712929Sktlim@umich.edu    readMiscReg(int misc_reg, ThreadContext *tc)
722929Sktlim@umich.edu    {
732929Sktlim@umich.edu        fatal("Power does not currently have any misc regs defined\n");
742929Sktlim@umich.edu        return dummy;
752929Sktlim@umich.edu    }
762929Sktlim@umich.edu
772929Sktlim@umich.edu    void
782929Sktlim@umich.edu    setMiscRegNoEffect(int misc_reg, const MiscReg &val)
792929Sktlim@umich.edu    {
802929Sktlim@umich.edu        fatal("Power does not currently have any misc regs defined\n");
812929Sktlim@umich.edu    }
822929Sktlim@umich.edu
832929Sktlim@umich.edu    void
842929Sktlim@umich.edu    setMiscReg(int misc_reg, const MiscReg &val, ThreadContext *tc)
852929Sktlim@umich.edu    {
862929Sktlim@umich.edu        fatal("Power does not currently have any misc regs defined\n");
872929Sktlim@umich.edu    }
882929Sktlim@umich.edu
892929Sktlim@umich.edu    int
902929Sktlim@umich.edu    flattenIntIndex(int reg)
912929Sktlim@umich.edu    {
922929Sktlim@umich.edu        return reg;
932929Sktlim@umich.edu    }
942929Sktlim@umich.edu
952929Sktlim@umich.edu    int
962929Sktlim@umich.edu    flattenFloatIndex(int reg)
972929Sktlim@umich.edu    {
982929Sktlim@umich.edu        return reg;
992929Sktlim@umich.edu    }
1002929Sktlim@umich.edu
1012929Sktlim@umich.edu    void
1022929Sktlim@umich.edu    serialize(EventManager *em, std::ostream &os)
1032929Sktlim@umich.edu    {
1042929Sktlim@umich.edu    }
1054937Sstever@gmail.com
1064937Sstever@gmail.com    void
1074937Sstever@gmail.com    unserialize(EventManager *em, Checkpoint *cp, const std::string &section)
1084937Sstever@gmail.com    {
1094937Sstever@gmail.com    }
1104937Sstever@gmail.com
1114937Sstever@gmail.com    const Params *params() const;
1124937Sstever@gmail.com
1134937Sstever@gmail.com    ISA(Params *p);
1144937Sstever@gmail.com};
1154937Sstever@gmail.com
1164937Sstever@gmail.com} // namespace PowerISA
1174937Sstever@gmail.com
1182929Sktlim@umich.edu#endif // __ARCH_POWER_ISA_HH__
1192929Sktlim@umich.edu