registers.hh revision 12139
111723Sar4jc@virginia.edu/* 211723Sar4jc@virginia.edu * Copyright (c) 2013 ARM Limited 311723Sar4jc@virginia.edu * Copyright (c) 2014-2015 Sven Karlsson 411723Sar4jc@virginia.edu * All rights reserved 511723Sar4jc@virginia.edu * 611723Sar4jc@virginia.edu * The license below extends only to copyright in the software and shall 711723Sar4jc@virginia.edu * not be construed as granting a license to any other intellectual 811723Sar4jc@virginia.edu * property including but not limited to intellectual property relating 911723Sar4jc@virginia.edu * to a hardware implementation of the functionality of the software 1011723Sar4jc@virginia.edu * licensed hereunder. You may use the software subject to the license 1111723Sar4jc@virginia.edu * terms below provided that you ensure that this notice is replicated 1211723Sar4jc@virginia.edu * unmodified and in its entirety in all distributions of the software, 1311723Sar4jc@virginia.edu * modified or unmodified, in source code or in binary form. 1411723Sar4jc@virginia.edu * 1511723Sar4jc@virginia.edu * Copyright (c) 2016 RISC-V Foundation 1611723Sar4jc@virginia.edu * Copyright (c) 2016 The University of Virginia 1711723Sar4jc@virginia.edu * All rights reserved. 1811723Sar4jc@virginia.edu * 1911723Sar4jc@virginia.edu * Redistribution and use in source and binary forms, with or without 2011723Sar4jc@virginia.edu * modification, are permitted provided that the following conditions are 2111723Sar4jc@virginia.edu * met: redistributions of source code must retain the above copyright 2211723Sar4jc@virginia.edu * notice, this list of conditions and the following disclaimer; 2311723Sar4jc@virginia.edu * redistributions in binary form must reproduce the above copyright 2411723Sar4jc@virginia.edu * notice, this list of conditions and the following disclaimer in the 2511723Sar4jc@virginia.edu * documentation and/or other materials provided with the distribution; 2611723Sar4jc@virginia.edu * neither the name of the copyright holders nor the names of its 2711723Sar4jc@virginia.edu * contributors may be used to endorse or promote products derived from 2811723Sar4jc@virginia.edu * this software without specific prior written permission. 2911723Sar4jc@virginia.edu * 3011723Sar4jc@virginia.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 3111723Sar4jc@virginia.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 3211723Sar4jc@virginia.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 3311723Sar4jc@virginia.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3411723Sar4jc@virginia.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 3511723Sar4jc@virginia.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 3611723Sar4jc@virginia.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 3711723Sar4jc@virginia.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 3811723Sar4jc@virginia.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3911723Sar4jc@virginia.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 4011723Sar4jc@virginia.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 4111723Sar4jc@virginia.edu * 4211723Sar4jc@virginia.edu * Authors: Andreas Hansson 4311723Sar4jc@virginia.edu * Sven Karlsson 4411723Sar4jc@virginia.edu * Alec Roelke 4511723Sar4jc@virginia.edu */ 4611723Sar4jc@virginia.edu 4711723Sar4jc@virginia.edu#ifndef __ARCH_RISCV_REGISTERS_HH__ 4811723Sar4jc@virginia.edu#define __ARCH_RISCV_REGISTERS_HH__ 4911723Sar4jc@virginia.edu 5011723Sar4jc@virginia.edu#include <map> 5111723Sar4jc@virginia.edu#include <string> 5212119Sar4jc@virginia.edu#include <vector> 5311723Sar4jc@virginia.edu 5412104Snathanael.premillieu@arm.com#include "arch/generic/types.hh" 5512109SRekai.GonzalezAlberquilla@arm.com#include "arch/generic/vec_reg.hh" 5611911SBrandon.Potter@amd.com#include "arch/isa_traits.hh" 5711723Sar4jc@virginia.edu#include "arch/riscv/generated/max_inst_regs.hh" 5811723Sar4jc@virginia.edu#include "base/types.hh" 5911723Sar4jc@virginia.edu 6011723Sar4jc@virginia.edunamespace RiscvISA { 6111723Sar4jc@virginia.edu 6211723Sar4jc@virginia.eduusing RiscvISAInst::MaxInstSrcRegs; 6311723Sar4jc@virginia.eduusing RiscvISAInst::MaxInstDestRegs; 6411723Sar4jc@virginia.educonst int MaxMiscDestRegs = 1; 6511723Sar4jc@virginia.edu 6611723Sar4jc@virginia.edutypedef uint64_t IntReg; 6711723Sar4jc@virginia.edutypedef uint64_t FloatRegBits; 6811723Sar4jc@virginia.edutypedef double FloatReg; 6911723Sar4jc@virginia.edutypedef uint8_t CCReg; // Not applicable to Riscv 7011723Sar4jc@virginia.edutypedef uint64_t MiscReg; 7111723Sar4jc@virginia.edu 7212109SRekai.GonzalezAlberquilla@arm.com// dummy typedefs since we don't have vector regs 7312109SRekai.GonzalezAlberquilla@arm.comconst unsigned NumVecElemPerVecReg = 2; 7412109SRekai.GonzalezAlberquilla@arm.comusing VecElem = uint32_t; 7512109SRekai.GonzalezAlberquilla@arm.comusing VecReg = ::VecRegT<VecElem, NumVecElemPerVecReg, false>; 7612109SRekai.GonzalezAlberquilla@arm.comusing ConstVecReg = ::VecRegT<VecElem, NumVecElemPerVecReg, true>; 7712109SRekai.GonzalezAlberquilla@arm.comusing VecRegContainer = VecReg::Container; 7812109SRekai.GonzalezAlberquilla@arm.com 7911723Sar4jc@virginia.educonst int NumIntArchRegs = 32; 8011726Sar4jc@virginia.educonst int NumMicroIntRegs = 1; 8111726Sar4jc@virginia.educonst int NumIntRegs = NumIntArchRegs + NumMicroIntRegs; 8211725Sar4jc@virginia.educonst int NumFloatRegs = 32; 8312109SRekai.GonzalezAlberquilla@arm.com// This has to be one to prevent warnings that are treated as errors 8412109SRekai.GonzalezAlberquilla@arm.comconst unsigned NumVecRegs = 1; 8511723Sar4jc@virginia.educonst int NumCCRegs = 0; 8611723Sar4jc@virginia.educonst int NumMiscRegs = 4096; 8711723Sar4jc@virginia.edu 8811723Sar4jc@virginia.edu// Semantically meaningful register indices 8911723Sar4jc@virginia.educonst int ZeroReg = 0; 9011723Sar4jc@virginia.educonst int ReturnAddrReg = 1; 9111723Sar4jc@virginia.educonst int StackPointerReg = 2; 9211723Sar4jc@virginia.educonst int GlobalPointerReg = 3; 9311723Sar4jc@virginia.educonst int ThreadPointerReg = 4; 9411723Sar4jc@virginia.educonst int FramePointerReg = 8; 9512139Sar4jc@virginia.educonst int ReturnValueReg = 10; 9612119Sar4jc@virginia.educonst std::vector<int> ReturnValueRegs = {10, 11}; 9712119Sar4jc@virginia.educonst std::vector<int> ArgumentRegs = {10, 11, 12, 13, 14, 15, 16, 17}; 9811726Sar4jc@virginia.educonst int AMOTempReg = 32; 9911723Sar4jc@virginia.edu 10012119Sar4jc@virginia.educonst std::vector<std::string> IntRegNames = { 10112119Sar4jc@virginia.edu "zero", "ra", "sp", "gp", 10211723Sar4jc@virginia.edu "tp", "t0", "t1", "t2", 10311723Sar4jc@virginia.edu "s0", "s1", "a0", "a1", 10411723Sar4jc@virginia.edu "a2", "a3", "a4", "a5", 10511723Sar4jc@virginia.edu "a6", "a7", "s2", "s3", 10611723Sar4jc@virginia.edu "s4", "s5", "s6", "s7", 10711723Sar4jc@virginia.edu "s8", "s9", "s10", "s11", 10812119Sar4jc@virginia.edu "t3", "t4", "t5", "t6" 10912119Sar4jc@virginia.edu}; 11012119Sar4jc@virginia.educonst std::vector<std::string> FloatRegNames = { 11112119Sar4jc@virginia.edu "ft0", "ft1", "ft2", "ft3", 11212119Sar4jc@virginia.edu "ft4", "ft5", "ft6", "ft7", 11312119Sar4jc@virginia.edu "fs0", "fs1", "fa0", "fa1", 11412119Sar4jc@virginia.edu "fa2", "fa3", "fa4", "fa5", 11512119Sar4jc@virginia.edu "fa6", "fa7", "fs2", "fs3", 11612119Sar4jc@virginia.edu "fs4", "fs5", "fs6", "fs7", 11712119Sar4jc@virginia.edu "fs8", "fs9", "fs10", "fs11", 11812119Sar4jc@virginia.edu "ft8", "ft9", "ft10", "ft11" 11912119Sar4jc@virginia.edu}; 12011723Sar4jc@virginia.edu 12112139Sar4jc@virginia.educonst int SyscallNumReg = 17; 12212139Sar4jc@virginia.educonst std::vector<int> SyscallArgumentRegs = {10, 11, 12, 13}; 12312139Sar4jc@virginia.educonst int SyscallPseudoReturnReg = 10; 12411723Sar4jc@virginia.edu 12511723Sar4jc@virginia.eduenum MiscRegIndex { 12611963Sar4jc@virginia.edu MISCREG_USTATUS = 0x000, 12711963Sar4jc@virginia.edu MISCREG_UIE = 0x004, 12811963Sar4jc@virginia.edu MISCREG_UTVEC = 0x005, 12911963Sar4jc@virginia.edu MISCREG_USCRATCH = 0x040, 13011963Sar4jc@virginia.edu MISCREG_UEPC = 0x041, 13111963Sar4jc@virginia.edu MISCREG_UCAUSE = 0x042, 13211963Sar4jc@virginia.edu MISCREG_UBADADDR = 0x043, 13311963Sar4jc@virginia.edu MISCREG_UIP = 0x044, 13411723Sar4jc@virginia.edu MISCREG_FFLAGS = 0x001, 13511723Sar4jc@virginia.edu MISCREG_FRM = 0x002, 13611723Sar4jc@virginia.edu MISCREG_FCSR = 0x003, 13711723Sar4jc@virginia.edu MISCREG_CYCLE = 0xC00, 13811723Sar4jc@virginia.edu MISCREG_TIME = 0xC01, 13911723Sar4jc@virginia.edu MISCREG_INSTRET = 0xC02, 14011963Sar4jc@virginia.edu MISCREG_HPMCOUNTER_BASE = 0xC03, 14111723Sar4jc@virginia.edu MISCREG_CYCLEH = 0xC80, 14211723Sar4jc@virginia.edu MISCREG_TIMEH = 0xC81, 14311723Sar4jc@virginia.edu MISCREG_INSTRETH = 0xC82, 14411963Sar4jc@virginia.edu MISCREG_HPMCOUNTERH_BASE = 0xC83, 14511723Sar4jc@virginia.edu 14611723Sar4jc@virginia.edu MISCREG_SSTATUS = 0x100, 14711963Sar4jc@virginia.edu MISCREG_SEDELEG = 0x102, 14811963Sar4jc@virginia.edu MISCREG_SIDELEG = 0x103, 14911723Sar4jc@virginia.edu MISCREG_SIE = 0x104, 15011963Sar4jc@virginia.edu MISCREG_STVEC = 0x105, 15111723Sar4jc@virginia.edu MISCREG_SSCRATCH = 0x140, 15211723Sar4jc@virginia.edu MISCREG_SEPC = 0x141, 15311963Sar4jc@virginia.edu MISCREG_SCAUSE = 0x142, 15411963Sar4jc@virginia.edu MISCREG_SBADADDR = 0x143, 15511723Sar4jc@virginia.edu MISCREG_SIP = 0x144, 15611723Sar4jc@virginia.edu MISCREG_SPTBR = 0x180, 15711723Sar4jc@virginia.edu 15811723Sar4jc@virginia.edu MISCREG_HSTATUS = 0x200, 15911963Sar4jc@virginia.edu MISCREG_HEDELEG = 0x202, 16011963Sar4jc@virginia.edu MISCREG_HIDELEG = 0x203, 16111963Sar4jc@virginia.edu MISCREG_HIE = 0x204, 16211963Sar4jc@virginia.edu MISCREG_HTVEC = 0x205, 16311723Sar4jc@virginia.edu MISCREG_HSCRATCH = 0x240, 16411723Sar4jc@virginia.edu MISCREG_HEPC = 0x241, 16511723Sar4jc@virginia.edu MISCREG_HCAUSE = 0x242, 16611723Sar4jc@virginia.edu MISCREG_HBADADDR = 0x243, 16711963Sar4jc@virginia.edu MISCREG_HIP = 0x244, 16811723Sar4jc@virginia.edu 16911963Sar4jc@virginia.edu MISCREG_MVENDORID = 0xF11, 17011963Sar4jc@virginia.edu MISCREG_MARCHID = 0xF12, 17111963Sar4jc@virginia.edu MISCREG_MIMPID = 0xF13, 17211963Sar4jc@virginia.edu MISCREG_MHARTID = 0xF14, 17311723Sar4jc@virginia.edu MISCREG_MSTATUS = 0x300, 17411963Sar4jc@virginia.edu MISCREG_MISA = 0x301, 17511963Sar4jc@virginia.edu MISCREG_MEDELEG = 0x302, 17611963Sar4jc@virginia.edu MISCREG_MIDELEG = 0x303, 17711723Sar4jc@virginia.edu MISCREG_MIE = 0x304, 17811963Sar4jc@virginia.edu MISCREG_MTVEC = 0x305, 17911723Sar4jc@virginia.edu MISCREG_MSCRATCH = 0x340, 18011723Sar4jc@virginia.edu MISCREG_MEPC = 0x341, 18111723Sar4jc@virginia.edu MISCREG_MCAUSE = 0x342, 18211723Sar4jc@virginia.edu MISCREG_MBADADDR = 0x343, 18311723Sar4jc@virginia.edu MISCREG_MIP = 0x344, 18411723Sar4jc@virginia.edu MISCREG_MBASE = 0x380, 18511723Sar4jc@virginia.edu MISCREG_MBOUND = 0x381, 18611723Sar4jc@virginia.edu MISCREG_MIBASE = 0x382, 18711723Sar4jc@virginia.edu MISCREG_MIBOUND = 0x383, 18811723Sar4jc@virginia.edu MISCREG_MDBASE = 0x384, 18911723Sar4jc@virginia.edu MISCREG_MDBOUND = 0x385, 19011963Sar4jc@virginia.edu MISCREG_MCYCLE = 0xB00, 19111963Sar4jc@virginia.edu MISCREG_MINSTRET = 0xB02, 19211963Sar4jc@virginia.edu MISCREG_MHPMCOUNTER_BASE = 0xB03, 19311963Sar4jc@virginia.edu MISCREG_MUCOUNTEREN = 0x320, 19411963Sar4jc@virginia.edu MISCREG_MSCOUNTEREN = 0x321, 19511963Sar4jc@virginia.edu MISCREG_MHCOUNTEREN = 0x322, 19611963Sar4jc@virginia.edu MISCREG_MHPMEVENT_BASE = 0x323, 19711963Sar4jc@virginia.edu 19811963Sar4jc@virginia.edu MISCREG_TSELECT = 0x7A0, 19911963Sar4jc@virginia.edu MISCREG_TDATA1 = 0x7A1, 20011963Sar4jc@virginia.edu MISCREG_TDATA2 = 0x7A2, 20111963Sar4jc@virginia.edu MISCREG_TDATA3 = 0x7A3, 20211963Sar4jc@virginia.edu MISCREG_DCSR = 0x7B0, 20311963Sar4jc@virginia.edu MISCREG_DPC = 0x7B1, 20411963Sar4jc@virginia.edu MISCREG_DSCRATCH = 0x7B2 20511723Sar4jc@virginia.edu}; 20611723Sar4jc@virginia.edu 20712119Sar4jc@virginia.educonst std::map<int, std::string> MiscRegNames = { 20812119Sar4jc@virginia.edu {MISCREG_USTATUS, "ustatus"}, 20912119Sar4jc@virginia.edu {MISCREG_UIE, "uie"}, 21012119Sar4jc@virginia.edu {MISCREG_UTVEC, "utvec"}, 21112119Sar4jc@virginia.edu {MISCREG_USCRATCH, "uscratch"}, 21212119Sar4jc@virginia.edu {MISCREG_UEPC, "uepc"}, 21312119Sar4jc@virginia.edu {MISCREG_UCAUSE, "ucause"}, 21412119Sar4jc@virginia.edu {MISCREG_UBADADDR, "ubadaddr"}, 21512119Sar4jc@virginia.edu {MISCREG_UIP, "uip"}, 21612119Sar4jc@virginia.edu {MISCREG_FFLAGS, "fflags"}, 21712119Sar4jc@virginia.edu {MISCREG_FRM, "frm"}, 21812119Sar4jc@virginia.edu {MISCREG_FCSR, "fcsr"}, 21912119Sar4jc@virginia.edu {MISCREG_CYCLE, "cycle"}, 22012119Sar4jc@virginia.edu {MISCREG_TIME, "time"}, 22112119Sar4jc@virginia.edu {MISCREG_INSTRET, "instret"}, 22212119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 0, "hpmcounter03"}, 22312119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 1, "hpmcounter04"}, 22412119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 2, "hpmcounter05"}, 22512119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 3, "hpmcounter06"}, 22612119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 4, "hpmcounter07"}, 22712119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 5, "hpmcounter08"}, 22812119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 6, "hpmcounter09"}, 22912119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 7, "hpmcounter10"}, 23012119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 8, "hpmcounter11"}, 23112119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 9, "hpmcounter12"}, 23212119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 10, "hpmcounter13"}, 23312119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 11, "hpmcounter14"}, 23412119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 12, "hpmcounter15"}, 23512119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 13, "hpmcounter16"}, 23612119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 14, "hpmcounter17"}, 23712119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 15, "hpmcounter18"}, 23812119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 16, "hpmcounter19"}, 23912119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 17, "hpmcounter20"}, 24012119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 18, "hpmcounter21"}, 24112119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 19, "hpmcounter22"}, 24212119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 20, "hpmcounter23"}, 24312119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 21, "hpmcounter24"}, 24412119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 22, "hpmcounter25"}, 24512119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 23, "hpmcounter26"}, 24612119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 24, "hpmcounter27"}, 24712119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 25, "hpmcounter28"}, 24812119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 26, "hpmcounter29"}, 24912119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 27, "hpmcounter30"}, 25012119Sar4jc@virginia.edu {MISCREG_HPMCOUNTER_BASE + 28, "hpmcounter31"}, 25112119Sar4jc@virginia.edu {MISCREG_CYCLEH, "cycleh"}, 25212119Sar4jc@virginia.edu {MISCREG_TIMEH, "timeh"}, 25312119Sar4jc@virginia.edu {MISCREG_INSTRETH, "instreth"}, 25412119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 0, "hpmcounterh03"}, 25512119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 1, "hpmcounterh04"}, 25612119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 2, "hpmcounterh05"}, 25712119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 3, "hpmcounterh06"}, 25812119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 4, "hpmcounterh07"}, 25912119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 5, "hpmcounterh08"}, 26012119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 6, "hpmcounterh09"}, 26112119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 7, "hpmcounterh10"}, 26212119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 8, "hpmcounterh11"}, 26312119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 9, "hpmcounterh12"}, 26412119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 10, "hpmcounterh13"}, 26512119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 11, "hpmcounterh14"}, 26612119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 12, "hpmcounterh15"}, 26712119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 13, "hpmcounterh16"}, 26812119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 14, "hpmcounterh17"}, 26912119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 15, "hpmcounterh18"}, 27012119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 16, "hpmcounterh19"}, 27112119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 17, "hpmcounterh20"}, 27212119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 18, "hpmcounterh21"}, 27312119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 19, "hpmcounterh22"}, 27412119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 20, "hpmcounterh23"}, 27512119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 21, "hpmcounterh24"}, 27612119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 22, "hpmcounterh25"}, 27712119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 23, "hpmcounterh26"}, 27812119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 24, "hpmcounterh27"}, 27912119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 25, "hpmcounterh28"}, 28012119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 26, "hpmcounterh29"}, 28112119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 27, "hpmcounterh30"}, 28212119Sar4jc@virginia.edu {MISCREG_HPMCOUNTERH_BASE + 28, "hpmcounterh31"}, 28312119Sar4jc@virginia.edu 28412119Sar4jc@virginia.edu {MISCREG_SSTATUS, "sstatus"}, 28512119Sar4jc@virginia.edu {MISCREG_SEDELEG, "sedeleg"}, 28612119Sar4jc@virginia.edu {MISCREG_SIDELEG, "sideleg"}, 28712119Sar4jc@virginia.edu {MISCREG_SIE, "sie"}, 28812119Sar4jc@virginia.edu {MISCREG_STVEC, "stvec"}, 28912119Sar4jc@virginia.edu {MISCREG_SSCRATCH, "sscratch"}, 29012119Sar4jc@virginia.edu {MISCREG_SEPC, "sepc"}, 29112119Sar4jc@virginia.edu {MISCREG_SCAUSE, "scause"}, 29212119Sar4jc@virginia.edu {MISCREG_SBADADDR, "sbadaddr"}, 29312119Sar4jc@virginia.edu {MISCREG_SIP, "sip"}, 29412119Sar4jc@virginia.edu {MISCREG_SPTBR, "sptbr"}, 29512119Sar4jc@virginia.edu 29612119Sar4jc@virginia.edu {MISCREG_HSTATUS, "hstatus"}, 29712119Sar4jc@virginia.edu {MISCREG_HEDELEG, "hedeleg"}, 29812119Sar4jc@virginia.edu {MISCREG_HIDELEG, "hideleg"}, 29912119Sar4jc@virginia.edu {MISCREG_HIE, "hie"}, 30012119Sar4jc@virginia.edu {MISCREG_HTVEC, "htvec"}, 30112119Sar4jc@virginia.edu {MISCREG_HSCRATCH, "hscratch"}, 30212119Sar4jc@virginia.edu {MISCREG_HEPC, "hepc"}, 30312119Sar4jc@virginia.edu {MISCREG_HCAUSE, "hcause"}, 30412119Sar4jc@virginia.edu {MISCREG_HBADADDR, "hbadaddr"}, 30512119Sar4jc@virginia.edu {MISCREG_HIP, "hip"}, 30612119Sar4jc@virginia.edu 30712119Sar4jc@virginia.edu {MISCREG_MVENDORID, "mvendorid"}, 30812119Sar4jc@virginia.edu {MISCREG_MARCHID, "marchid"}, 30912119Sar4jc@virginia.edu {MISCREG_MIMPID, "mimpid"}, 31012119Sar4jc@virginia.edu {MISCREG_MHARTID, "mhartid"}, 31112119Sar4jc@virginia.edu {MISCREG_MSTATUS, "mstatus"}, 31212119Sar4jc@virginia.edu {MISCREG_MISA, "misa"}, 31312119Sar4jc@virginia.edu {MISCREG_MEDELEG, "medeleg"}, 31412119Sar4jc@virginia.edu {MISCREG_MIDELEG, "mideleg"}, 31512119Sar4jc@virginia.edu {MISCREG_MIE, "mie"}, 31612119Sar4jc@virginia.edu {MISCREG_MTVEC, "mtvec"}, 31712119Sar4jc@virginia.edu {MISCREG_MSCRATCH, "mscratch"}, 31812119Sar4jc@virginia.edu {MISCREG_MEPC, "mepc"}, 31912119Sar4jc@virginia.edu {MISCREG_MCAUSE, "mcause"}, 32012119Sar4jc@virginia.edu {MISCREG_MBADADDR, "mbadaddr"}, 32112119Sar4jc@virginia.edu {MISCREG_MIP, "mip"}, 32212119Sar4jc@virginia.edu {MISCREG_MBASE, "mbase"}, 32312119Sar4jc@virginia.edu {MISCREG_MBOUND, "mbound"}, 32412119Sar4jc@virginia.edu {MISCREG_MIBASE, "mibase"}, 32512119Sar4jc@virginia.edu {MISCREG_MIBOUND, "mibound"}, 32612119Sar4jc@virginia.edu {MISCREG_MDBASE, "mdbase"}, 32712119Sar4jc@virginia.edu {MISCREG_MDBOUND, "mdbound"}, 32812119Sar4jc@virginia.edu {MISCREG_MCYCLE, "mcycle"}, 32912119Sar4jc@virginia.edu {MISCREG_MINSTRET, "minstret"}, 33012119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 0, "mhpmcounter03"}, 33112119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 1, "mhpmcounter04"}, 33212119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 2, "mhpmcounter05"}, 33312119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 3, "mhpmcounter06"}, 33412119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 4, "mhpmcounter07"}, 33512119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 5, "mhpmcounter08"}, 33612119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 6, "mhpmcounter09"}, 33712119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 7, "mhpmcounter10"}, 33812119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 8, "mhpmcounter11"}, 33912119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 9, "mhpmcounter12"}, 34012119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 10, "mhpmcounter13"}, 34112119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 11, "mhpmcounter14"}, 34212119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 12, "mhpmcounter15"}, 34312119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 13, "mhpmcounter16"}, 34412119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 14, "mhpmcounter17"}, 34512119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 15, "mhpmcounter18"}, 34612119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 16, "mhpmcounter19"}, 34712119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 17, "mhpmcounter20"}, 34812119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 18, "mhpmcounter21"}, 34912119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 19, "mhpmcounter22"}, 35012119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 20, "mhpmcounter23"}, 35112119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 21, "mhpmcounter24"}, 35212119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 22, "mhpmcounter25"}, 35312119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 23, "mhpmcounter26"}, 35412119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 24, "mhpmcounter27"}, 35512119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 25, "mhpmcounter28"}, 35612119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 26, "mhpmcounter29"}, 35712119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 27, "mhpmcounter30"}, 35812119Sar4jc@virginia.edu {MISCREG_MHPMCOUNTER_BASE + 28, "mhpmcounter31"}, 35912119Sar4jc@virginia.edu {MISCREG_MUCOUNTEREN, "mucounteren"}, 36012119Sar4jc@virginia.edu {MISCREG_MSCOUNTEREN, "mscounteren"}, 36112119Sar4jc@virginia.edu {MISCREG_MHCOUNTEREN, "mhcounteren"}, 36212119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 0, "mhpmevent03"}, 36312119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 1, "mhpmevent04"}, 36412119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 2, "mhpmevent05"}, 36512119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 3, "mhpmevent06"}, 36612119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 4, "mhpmevent07"}, 36712119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 5, "mhpmevent08"}, 36812119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 6, "mhpmevent09"}, 36912119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 7, "mhpmevent10"}, 37012119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 8, "mhpmevent11"}, 37112119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 9, "mhpmevent12"}, 37212119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 10, "mhpmevent13"}, 37312119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 11, "mhpmevent14"}, 37412119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 12, "mhpmevent15"}, 37512119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 13, "mhpmevent16"}, 37612119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 14, "mhpmevent17"}, 37712119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 15, "mhpmevent18"}, 37812119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 16, "mhpmevent19"}, 37912119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 17, "mhpmevent20"}, 38012119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 18, "mhpmevent21"}, 38112119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 19, "mhpmevent22"}, 38212119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 20, "mhpmevent23"}, 38312119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 21, "mhpmevent24"}, 38412119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 22, "mhpmevent25"}, 38512119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 23, "mhpmevent26"}, 38612119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 24, "mhpmevent27"}, 38712119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 25, "mhpmevent28"}, 38812119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 26, "mhpmevent29"}, 38912119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 27, "mhpmevent30"}, 39012119Sar4jc@virginia.edu {MISCREG_MHPMEVENT_BASE + 28, "mhpmevent31"}, 39112119Sar4jc@virginia.edu 39212119Sar4jc@virginia.edu {MISCREG_TSELECT, "tselect"}, 39312119Sar4jc@virginia.edu {MISCREG_TDATA1, "tdata1"}, 39412119Sar4jc@virginia.edu {MISCREG_TDATA2, "tdata2"}, 39512119Sar4jc@virginia.edu {MISCREG_TDATA3, "tdata3"}, 39612119Sar4jc@virginia.edu {MISCREG_DCSR, "dcsr"}, 39712119Sar4jc@virginia.edu {MISCREG_DPC, "dpc"}, 39812119Sar4jc@virginia.edu {MISCREG_DSCRATCH, "dscratch"} 39912119Sar4jc@virginia.edu}; 40012119Sar4jc@virginia.edu 40111723Sar4jc@virginia.edu} 40211723Sar4jc@virginia.edu 40311723Sar4jc@virginia.edu#endif // __ARCH_RISCV_REGISTERS_HH__ 404