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