types.hh revision 6214:1ec0ec8933ae
15217Ssaidi@eecs.umich.edu/* 29428SAndreas.Sandberg@ARM.com * Copyright (c) 2007-2008 The Florida State University 39428SAndreas.Sandberg@ARM.com * All rights reserved. 49428SAndreas.Sandberg@ARM.com * 59428SAndreas.Sandberg@ARM.com * Redistribution and use in source and binary forms, with or without 69428SAndreas.Sandberg@ARM.com * modification, are permitted provided that the following conditions are 79428SAndreas.Sandberg@ARM.com * met: redistributions of source code must retain the above copyright 89428SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer; 99428SAndreas.Sandberg@ARM.com * redistributions in binary form must reproduce the above copyright 109428SAndreas.Sandberg@ARM.com * notice, this list of conditions and the following disclaimer in the 119428SAndreas.Sandberg@ARM.com * documentation and/or other materials provided with the distribution; 129428SAndreas.Sandberg@ARM.com * neither the name of the copyright holders nor the names of its 139428SAndreas.Sandberg@ARM.com * contributors may be used to endorse or promote products derived from 145217Ssaidi@eecs.umich.edu * this software without specific prior written permission. 155217Ssaidi@eecs.umich.edu * 165217Ssaidi@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 175217Ssaidi@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 185217Ssaidi@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 195217Ssaidi@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 205217Ssaidi@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 215217Ssaidi@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 225217Ssaidi@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 235217Ssaidi@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 245217Ssaidi@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 255217Ssaidi@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 265217Ssaidi@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 275217Ssaidi@eecs.umich.edu * 285217Ssaidi@eecs.umich.edu * Authors: Stephen Hines 295217Ssaidi@eecs.umich.edu */ 305217Ssaidi@eecs.umich.edu 315217Ssaidi@eecs.umich.edu#ifndef __ARCH_ARM_TYPES_HH__ 325217Ssaidi@eecs.umich.edu#define __ARCH_ARM_TYPES_HH__ 335217Ssaidi@eecs.umich.edu 345217Ssaidi@eecs.umich.edu#include "base/types.hh" 355217Ssaidi@eecs.umich.edu 365217Ssaidi@eecs.umich.edunamespace ArmISA 375217Ssaidi@eecs.umich.edu{ 385217Ssaidi@eecs.umich.edu typedef uint32_t MachInst; 395217Ssaidi@eecs.umich.edu typedef uint64_t ExtMachInst; 405217Ssaidi@eecs.umich.edu typedef uint8_t RegIndex; 415217Ssaidi@eecs.umich.edu 425217Ssaidi@eecs.umich.edu typedef uint64_t IntReg; 435217Ssaidi@eecs.umich.edu typedef uint64_t LargestRead; 445217Ssaidi@eecs.umich.edu // Need to use 64 bits to make sure that read requests get handled properly 456658Snate@binkert.org 465217Ssaidi@eecs.umich.edu // floating point register file entry type 478232Snate@binkert.org typedef uint32_t FloatReg32; 485217Ssaidi@eecs.umich.edu typedef uint64_t FloatReg64; 495217Ssaidi@eecs.umich.edu typedef uint64_t FloatRegBits; 505217Ssaidi@eecs.umich.edu 515217Ssaidi@eecs.umich.edu typedef double FloatRegVal; 525217Ssaidi@eecs.umich.edu typedef double FloatReg; 535217Ssaidi@eecs.umich.edu 545217Ssaidi@eecs.umich.edu // cop-0/cop-1 system control register 555217Ssaidi@eecs.umich.edu typedef uint64_t MiscReg; 565217Ssaidi@eecs.umich.edu 575217Ssaidi@eecs.umich.edu typedef union { 585217Ssaidi@eecs.umich.edu IntReg intreg; 595217Ssaidi@eecs.umich.edu FloatReg fpreg; 605217Ssaidi@eecs.umich.edu MiscReg ctrlreg; 615217Ssaidi@eecs.umich.edu } AnyReg; 625217Ssaidi@eecs.umich.edu 635217Ssaidi@eecs.umich.edu typedef int RegContextParam; 645217Ssaidi@eecs.umich.edu typedef int RegContextVal; 655217Ssaidi@eecs.umich.edu 665217Ssaidi@eecs.umich.edu //used in FP convert & round function 675217Ssaidi@eecs.umich.edu enum ConvertType{ 685217Ssaidi@eecs.umich.edu SINGLE_TO_DOUBLE, 695217Ssaidi@eecs.umich.edu SINGLE_TO_WORD, 705217Ssaidi@eecs.umich.edu SINGLE_TO_LONG, 715217Ssaidi@eecs.umich.edu 725217Ssaidi@eecs.umich.edu DOUBLE_TO_SINGLE, 735217Ssaidi@eecs.umich.edu DOUBLE_TO_WORD, 745217Ssaidi@eecs.umich.edu DOUBLE_TO_LONG, 755217Ssaidi@eecs.umich.edu 765217Ssaidi@eecs.umich.edu LONG_TO_SINGLE, 775217Ssaidi@eecs.umich.edu LONG_TO_DOUBLE, 785217Ssaidi@eecs.umich.edu LONG_TO_WORD, 797720Sgblack@eecs.umich.edu LONG_TO_PS, 807720Sgblack@eecs.umich.edu 815712Shsul@eecs.umich.edu WORD_TO_SINGLE, 825712Shsul@eecs.umich.edu WORD_TO_DOUBLE, 835217Ssaidi@eecs.umich.edu WORD_TO_LONG, 845217Ssaidi@eecs.umich.edu WORD_TO_PS, 855714Shsul@eecs.umich.edu 865714Shsul@eecs.umich.edu PL_TO_SINGLE, 875714Shsul@eecs.umich.edu PU_TO_SINGLE 885714Shsul@eecs.umich.edu }; 895714Shsul@eecs.umich.edu 905714Shsul@eecs.umich.edu //used in FP convert & round function 915714Shsul@eecs.umich.edu enum RoundMode{ 925217Ssaidi@eecs.umich.edu RND_ZERO, 939428SAndreas.Sandberg@ARM.com RND_DOWN, 949428SAndreas.Sandberg@ARM.com RND_UP, 959428SAndreas.Sandberg@ARM.com RND_NEAREST 969428SAndreas.Sandberg@ARM.com }; 979428SAndreas.Sandberg@ARM.com 989428SAndreas.Sandberg@ARM.com enum OperatingMode { 999428SAndreas.Sandberg@ARM.com MODE_USER = 16, 1009428SAndreas.Sandberg@ARM.com MODE_FIQ = 17, 1019428SAndreas.Sandberg@ARM.com MODE_IRQ = 18, 1029428SAndreas.Sandberg@ARM.com MODE_SVC = 19, 1039428SAndreas.Sandberg@ARM.com MODE_ABORT = 23, 1049428SAndreas.Sandberg@ARM.com MODE_UNDEFINED = 27, 1059428SAndreas.Sandberg@ARM.com MODE_SYSTEM = 31 1069428SAndreas.Sandberg@ARM.com }; 1079428SAndreas.Sandberg@ARM.com 1089428SAndreas.Sandberg@ARM.com struct CoreSpecific { 1099428SAndreas.Sandberg@ARM.com // Empty for now on the ARM 1109428SAndreas.Sandberg@ARM.com }; 1119428SAndreas.Sandberg@ARM.com 1129428SAndreas.Sandberg@ARM.com} // namespace ArmISA 1139428SAndreas.Sandberg@ARM.com 1149428SAndreas.Sandberg@ARM.com#endif 1159428SAndreas.Sandberg@ARM.com