isa.hh revision 9461
1/* 2 * Copyright (c) 2009 The Regents of The University of Michigan 3 * Copyright (c) 2009 The University of Edinburgh 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer; 10 * redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution; 13 * neither the name of the copyright holders nor the names of its 14 * contributors may be used to endorse or promote products derived from 15 * this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * 29 * Authors: Gabe Black 30 * Timothy M. Jones 31 */ 32 33#ifndef __ARCH_POWER_ISA_HH__ 34#define __ARCH_POWER_ISA_HH__ 35 36#include "arch/power/registers.hh" 37#include "arch/power/types.hh" 38#include "base/misc.hh" 39#include "sim/sim_object.hh" 40 41struct PowerISAParams; 42class ThreadContext; 43class Checkpoint; 44class EventManager; 45 46namespace PowerISA 47{ 48 49class ISA : public SimObject 50{ 51 protected: 52 MiscReg dummy; 53 MiscReg miscRegs[NumMiscRegs]; 54 55 public: 56 typedef PowerISAParams Params; 57 58 void 59 clear() 60 { 61 } 62 63 MiscReg 64 readMiscRegNoEffect(int misc_reg) 65 { 66 fatal("Power does not currently have any misc regs defined\n"); 67 return dummy; 68 } 69 70 MiscReg 71 readMiscReg(int misc_reg, ThreadContext *tc) 72 { 73 fatal("Power does not currently have any misc regs defined\n"); 74 return dummy; 75 } 76 77 void 78 setMiscRegNoEffect(int misc_reg, const MiscReg &val) 79 { 80 fatal("Power does not currently have any misc regs defined\n"); 81 } 82 83 void 84 setMiscReg(int misc_reg, const MiscReg &val, ThreadContext *tc) 85 { 86 fatal("Power does not currently have any misc regs defined\n"); 87 } 88 89 int 90 flattenIntIndex(int reg) 91 { 92 return reg; 93 } 94 95 int 96 flattenFloatIndex(int reg) 97 { 98 return reg; 99 } 100 101 void startup(ThreadContext *tc) {} 102 103 const Params *params() const; 104 105 ISA(Params *p); 106}; 107 108} // namespace PowerISA 109 110#endif // __ARCH_POWER_ISA_HH__ 111