registers.hh revision 6328
17949SAli.Saidi@ARM.com/* 210839Sandreas.sandberg@arm.com * Copyright (c) 2006 The Regents of The University of Michigan 37949SAli.Saidi@ARM.com * Copyright (c) 2007 MIPS Technologies, Inc. 47949SAli.Saidi@ARM.com * All rights reserved. 57949SAli.Saidi@ARM.com * 67949SAli.Saidi@ARM.com * Redistribution and use in source and binary forms, with or without 77949SAli.Saidi@ARM.com * modification, are permitted provided that the following conditions are 87949SAli.Saidi@ARM.com * met: redistributions of source code must retain the above copyright 97949SAli.Saidi@ARM.com * notice, this list of conditions and the following disclaimer; 107949SAli.Saidi@ARM.com * redistributions in binary form must reproduce the above copyright 117949SAli.Saidi@ARM.com * notice, this list of conditions and the following disclaimer in the 127949SAli.Saidi@ARM.com * documentation and/or other materials provided with the distribution; 137949SAli.Saidi@ARM.com * neither the name of the copyright holders nor the names of its 147949SAli.Saidi@ARM.com * contributors may be used to endorse or promote products derived from 157949SAli.Saidi@ARM.com * this software without specific prior written permission. 167949SAli.Saidi@ARM.com * 177949SAli.Saidi@ARM.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 187949SAli.Saidi@ARM.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 197949SAli.Saidi@ARM.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 207949SAli.Saidi@ARM.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 217949SAli.Saidi@ARM.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 227949SAli.Saidi@ARM.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 237949SAli.Saidi@ARM.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 247949SAli.Saidi@ARM.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 257949SAli.Saidi@ARM.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 267949SAli.Saidi@ARM.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 277949SAli.Saidi@ARM.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 287949SAli.Saidi@ARM.com * 297949SAli.Saidi@ARM.com * Authors: Korey Sewell 307949SAli.Saidi@ARM.com */ 317949SAli.Saidi@ARM.com 327949SAli.Saidi@ARM.com#ifndef __ARCH_MIPS_REGFILE_HH__ 337949SAli.Saidi@ARM.com#define __ARCH_MIPS_REGFILE_HH__ 347949SAli.Saidi@ARM.com 357949SAli.Saidi@ARM.com#include <iostream> 367949SAli.Saidi@ARM.com#include <string> 377949SAli.Saidi@ARM.com 387949SAli.Saidi@ARM.com#include "arch/mips/isa_traits.hh" 397949SAli.Saidi@ARM.com 407949SAli.Saidi@ARM.comclass BaseCPU; 417949SAli.Saidi@ARM.comclass Checkpoint; 427949SAli.Saidi@ARM.comclass EventManager; 437949SAli.Saidi@ARM.com 447949SAli.Saidi@ARM.comnamespace MipsISA 459330Schander.sudanthi@arm.com{ 469330Schander.sudanthi@arm.com const uint32_t MIPS32_QNAN = 0x7fbfffff; 477949SAli.Saidi@ARM.com const uint64_t MIPS64_QNAN = ULL(0x7fbfffffffffffff); 487949SAli.Saidi@ARM.com 497949SAli.Saidi@ARM.com enum FPControlRegNums { 509330Schander.sudanthi@arm.com FIR = NumFloatArchRegs, 518635Schris.emmons@arm.com FCCR, 527949SAli.Saidi@ARM.com FEXR, 537949SAli.Saidi@ARM.com FENR, 547949SAli.Saidi@ARM.com FCSR 558229Snate@binkert.org }; 567949SAli.Saidi@ARM.com 577949SAli.Saidi@ARM.com enum FCSRBits { 589330Schander.sudanthi@arm.com Inexact = 1, 599330Schander.sudanthi@arm.com Underflow, 609330Schander.sudanthi@arm.com Overflow, 618635Schris.emmons@arm.com DivideByZero, 629330Schander.sudanthi@arm.com Invalid, 637949SAli.Saidi@ARM.com Unimplemented 647949SAli.Saidi@ARM.com }; 657949SAli.Saidi@ARM.com 667949SAli.Saidi@ARM.com enum FCSRFields { 677949SAli.Saidi@ARM.com Flag_Field = 1, 687949SAli.Saidi@ARM.com Enable_Field = 6, 697949SAli.Saidi@ARM.com Cause_Field = 11 707949SAli.Saidi@ARM.com }; 717949SAli.Saidi@ARM.com 727949SAli.Saidi@ARM.com enum MiscIntRegNums { 737949SAli.Saidi@ARM.com LO = NumIntArchRegs, 747949SAli.Saidi@ARM.com HI, 757949SAli.Saidi@ARM.com DSPACX0, 767949SAli.Saidi@ARM.com DSPLo1, 777949SAli.Saidi@ARM.com DSPHi1, 787949SAli.Saidi@ARM.com DSPACX1, 797949SAli.Saidi@ARM.com DSPLo2, 807949SAli.Saidi@ARM.com DSPHi2, 817949SAli.Saidi@ARM.com DSPACX2, 827949SAli.Saidi@ARM.com DSPLo3, 837949SAli.Saidi@ARM.com DSPHi3, 847949SAli.Saidi@ARM.com DSPACX3, 857949SAli.Saidi@ARM.com DSPControl, 867949SAli.Saidi@ARM.com DSPLo0 = LO, 877949SAli.Saidi@ARM.com DSPHi0 = HI 887949SAli.Saidi@ARM.com }; 897949SAli.Saidi@ARM.com 907949SAli.Saidi@ARM.com //@TODO: Implementing ShadowSets needs to 917949SAli.Saidi@ARM.com //edit this value such that: 927949SAli.Saidi@ARM.com //TotalArchRegs = NumIntArchRegs * ShadowSets 937949SAli.Saidi@ARM.com const int TotalArchRegs = NumIntArchRegs; 947949SAli.Saidi@ARM.com 957949SAli.Saidi@ARM.com} // namespace MipsISA 967949SAli.Saidi@ARM.com 977949SAli.Saidi@ARM.com#endif 987949SAli.Saidi@ARM.com