isa.hh revision 12106
12567SN/A/* 27585SAli.Saidi@arm.com * Copyright (c) 2009 The Regents of The University of Michigan 37585SAli.Saidi@arm.com * Copyright (c) 2009 The University of Edinburgh 47585SAli.Saidi@arm.com * All rights reserved. 57585SAli.Saidi@arm.com * 67585SAli.Saidi@arm.com * Redistribution and use in source and binary forms, with or without 77585SAli.Saidi@arm.com * modification, are permitted provided that the following conditions are 87585SAli.Saidi@arm.com * met: redistributions of source code must retain the above copyright 97585SAli.Saidi@arm.com * notice, this list of conditions and the following disclaimer; 107585SAli.Saidi@arm.com * redistributions in binary form must reproduce the above copyright 117585SAli.Saidi@arm.com * notice, this list of conditions and the following disclaimer in the 127585SAli.Saidi@arm.com * documentation and/or other materials provided with the distribution; 137585SAli.Saidi@arm.com * neither the name of the copyright holders nor the names of its 142567SN/A * contributors may be used to endorse or promote products derived from 152567SN/A * this software without specific prior written permission. 162567SN/A * 172567SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 182567SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 192567SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 202567SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 212567SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 222567SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 232567SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 242567SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 252567SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 262567SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 272567SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 282567SN/A * 292567SN/A * Authors: Gabe Black 302567SN/A * Timothy M. Jones 312567SN/A */ 322567SN/A 332567SN/A#ifndef __ARCH_POWER_ISA_HH__ 342567SN/A#define __ARCH_POWER_ISA_HH__ 352567SN/A 362567SN/A#include "arch/power/registers.hh" 372567SN/A#include "arch/power/types.hh" 382567SN/A#include "base/misc.hh" 392665SN/A#include "cpu/reg_class.hh" 402665SN/A#include "sim/sim_object.hh" 412567SN/A 422567SN/Astruct PowerISAParams; 436757SAli.Saidi@ARM.comclass ThreadContext; 442567SN/Aclass Checkpoint; 457585SAli.Saidi@arm.comclass EventManager; 462567SN/A 476757SAli.Saidi@ARM.comnamespace PowerISA 486757SAli.Saidi@ARM.com{ 492567SN/A 502567SN/Aclass ISA : public SimObject 512567SN/A{ 522567SN/A protected: 536757SAli.Saidi@ARM.com MiscReg dummy; 542567SN/A MiscReg miscRegs[NumMiscRegs]; 552567SN/A 562567SN/A public: 576757SAli.Saidi@ARM.com typedef PowerISAParams Params; 586757SAli.Saidi@ARM.com 596757SAli.Saidi@ARM.com void 602567SN/A clear() 616757SAli.Saidi@ARM.com { 622567SN/A } 63 64 MiscReg 65 readMiscRegNoEffect(int misc_reg) const 66 { 67 fatal("Power does not currently have any misc regs defined\n"); 68 return dummy; 69 } 70 71 MiscReg 72 readMiscReg(int misc_reg, ThreadContext *tc) 73 { 74 fatal("Power does not currently have any misc regs defined\n"); 75 return dummy; 76 } 77 78 void 79 setMiscRegNoEffect(int misc_reg, const MiscReg &val) 80 { 81 fatal("Power does not currently have any misc regs defined\n"); 82 } 83 84 void 85 setMiscReg(int misc_reg, const MiscReg &val, ThreadContext *tc) 86 { 87 fatal("Power does not currently have any misc regs defined\n"); 88 } 89 90 RegId flattenRegId(const RegId& regId) const { return regId; } 91 92 int 93 flattenIntIndex(int reg) const 94 { 95 return reg; 96 } 97 98 int 99 flattenFloatIndex(int reg) const 100 { 101 return reg; 102 } 103 104 // dummy 105 int 106 flattenCCIndex(int reg) const 107 { 108 return reg; 109 } 110 111 int 112 flattenMiscIndex(int reg) const 113 { 114 return reg; 115 } 116 117 void startup(ThreadContext *tc) {} 118 119 /// Explicitly import the otherwise hidden startup 120 using SimObject::startup; 121 122 const Params *params() const; 123 124 ISA(Params *p); 125}; 126 127} // namespace PowerISA 128 129#endif // __ARCH_POWER_ISA_HH__ 130