111723Sar4jc@virginia.edu// -*- mode:c++ -*-
211723Sar4jc@virginia.edu
311723Sar4jc@virginia.edu// Copyright (c) 2015 RISC-V Foundation
411723Sar4jc@virginia.edu// Copyright (c) 2016 The University of Virginia
511723Sar4jc@virginia.edu// All rights reserved.
611723Sar4jc@virginia.edu//
711723Sar4jc@virginia.edu// Redistribution and use in source and binary forms, with or without
811723Sar4jc@virginia.edu// modification, are permitted provided that the following conditions are
911723Sar4jc@virginia.edu// met: redistributions of source code must retain the above copyright
1011723Sar4jc@virginia.edu// notice, this list of conditions and the following disclaimer;
1111723Sar4jc@virginia.edu// redistributions in binary form must reproduce the above copyright
1211723Sar4jc@virginia.edu// notice, this list of conditions and the following disclaimer in the
1311723Sar4jc@virginia.edu// documentation and/or other materials provided with the distribution;
1411723Sar4jc@virginia.edu// neither the name of the copyright holders nor the names of its
1511723Sar4jc@virginia.edu// contributors may be used to endorse or promote products derived from
1611723Sar4jc@virginia.edu// this software without specific prior written permission.
1711723Sar4jc@virginia.edu//
1811723Sar4jc@virginia.edu// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1911723Sar4jc@virginia.edu// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2011723Sar4jc@virginia.edu// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2111723Sar4jc@virginia.edu// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2211723Sar4jc@virginia.edu// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2311723Sar4jc@virginia.edu// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2411723Sar4jc@virginia.edu// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2511723Sar4jc@virginia.edu// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2611723Sar4jc@virginia.edu// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2711723Sar4jc@virginia.edu// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2811723Sar4jc@virginia.edu// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2911723Sar4jc@virginia.edu//
3011723Sar4jc@virginia.edu// Authors: Maxwell Walter
3111723Sar4jc@virginia.edu//          Alec Roelke
3211723Sar4jc@virginia.edu
3311723Sar4jc@virginia.edu////////////////////////////////////////////////////////////////////
3411723Sar4jc@virginia.edu//
3511723Sar4jc@virginia.edu// Bitfield definitions.
3611723Sar4jc@virginia.edu//
3711723Sar4jc@virginia.edu
3812120Sar4jc@virginia.edudef bitfield QUADRANT <1:0>;
3912120Sar4jc@virginia.edudef bitfield OPCODE <6:2>;
4011723Sar4jc@virginia.edu
4111723Sar4jc@virginia.edu// R-Type
4211723Sar4jc@virginia.edudef bitfield ALL	<31:0>;
4311723Sar4jc@virginia.edudef bitfield RD     <11:7>;
4411723Sar4jc@virginia.edudef bitfield FUNCT3 <14:12>;
4511723Sar4jc@virginia.edudef bitfield RS1    <19:15>;
4611723Sar4jc@virginia.edudef bitfield RS2    <24:20>;
4711723Sar4jc@virginia.edudef bitfield FUNCT7 <31:25>;
4811723Sar4jc@virginia.edu
4911723Sar4jc@virginia.edu// Bit shifts
5011723Sar4jc@virginia.edudef bitfield SRTYPE <30>;
5111723Sar4jc@virginia.edudef bitfield SHAMT5 <24:20>;
5211723Sar4jc@virginia.edudef bitfield SHAMT6 <25:20>;
5311723Sar4jc@virginia.edu
5411723Sar4jc@virginia.edu// I-Type
5511723Sar4jc@virginia.edudef bitfield IMM12  <31:20>;
5611723Sar4jc@virginia.edu
5711723Sar4jc@virginia.edu// S-Type
5811723Sar4jc@virginia.edudef bitfield IMM5   <11:7>;
5911723Sar4jc@virginia.edudef bitfield IMM7   <31:25>;
6011723Sar4jc@virginia.edu
6111723Sar4jc@virginia.edu// U-Type
6211723Sar4jc@virginia.edudef bitfield IMM20  <31:12>;
6311723Sar4jc@virginia.edu
6411723Sar4jc@virginia.edu// SB-Type
6511723Sar4jc@virginia.edudef bitfield BIMM12BIT11 <7>;
6611723Sar4jc@virginia.edudef bitfield BIMM12BITS4TO1<11:8>;
6712328Sar4jc@virginia.edudef bitfield BIMM12BITS10TO5 <30:25>;
6811723Sar4jc@virginia.edudef bitfield IMMSIGN <31>;
6911723Sar4jc@virginia.edu
7011723Sar4jc@virginia.edu// UJ-Type
7111723Sar4jc@virginia.edudef bitfield UJIMMBITS10TO1 <30:21>;
7212120Sar4jc@virginia.edudef bitfield UJIMMBIT11 <20>;
7311723Sar4jc@virginia.edudef bitfield UJIMMBITS19TO12 <19:12>;
7411723Sar4jc@virginia.edu
7511723Sar4jc@virginia.edu// System
7611723Sar4jc@virginia.edudef bitfield FUNCT12 <31:20>;
7712119Sar4jc@virginia.edudef bitfield CSRIMM <19:15>;
7811725Sar4jc@virginia.edu
7911725Sar4jc@virginia.edu// Floating point
8011725Sar4jc@virginia.edudef bitfield FD <11:7>;
8111725Sar4jc@virginia.edudef bitfield FS1 <19:15>;
8211725Sar4jc@virginia.edudef bitfield FS2 <24:20>;
8311725Sar4jc@virginia.edudef bitfield FS3 <31:27>;
8411725Sar4jc@virginia.edu
8511725Sar4jc@virginia.edudef bitfield ROUND_MODE <14:12>;
8611725Sar4jc@virginia.edudef bitfield CONV_SGN <24:20>;
8711725Sar4jc@virginia.edudef bitfield FUNCT2 <26:25>;
8811726Sar4jc@virginia.edu
8911726Sar4jc@virginia.edu// AMO
9011726Sar4jc@virginia.edudef bitfield AMOFUNCT <31:27>;
9111726Sar4jc@virginia.edudef bitfield AQ <26>;
9211726Sar4jc@virginia.edudef bitfield RL <25>;
9312120Sar4jc@virginia.edu
9412120Sar4jc@virginia.edu// Compressed
9512120Sar4jc@virginia.edudef bitfield COPCODE <15:13>;
9612120Sar4jc@virginia.edudef bitfield CFUNCT1 <12>;
9712120Sar4jc@virginia.edudef bitfield CFUNCT2HIGH <11:10>;
9812120Sar4jc@virginia.edudef bitfield CFUNCT2LOW <6:5>;
9912120Sar4jc@virginia.edudef bitfield RC1 <11:7>;
10012120Sar4jc@virginia.edudef bitfield RC2 <6:2>;
10112120Sar4jc@virginia.edudef bitfield RP1 <9:7>;
10212120Sar4jc@virginia.edudef bitfield RP2 <4:2>;
10312120Sar4jc@virginia.edudef bitfield FC1 <11:7>;
10412120Sar4jc@virginia.edudef bitfield FC2 <6:2>;
10512120Sar4jc@virginia.edudef bitfield FP2 <4:2>;
10612120Sar4jc@virginia.edudef bitfield CJUMPIMM <12:2>;
10713931Savishai.tvila@gmail.comdef bitfield CJUMPIMM3TO1 <5:3>;
10813931Savishai.tvila@gmail.comdef bitfield CJUMPIMM4TO4 <11:11>;
10913931Savishai.tvila@gmail.comdef bitfield CJUMPIMM5TO5 <2:2>;
11013931Savishai.tvila@gmail.comdef bitfield CJUMPIMM6TO6 <7:7>;
11113931Savishai.tvila@gmail.comdef bitfield CJUMPIMM7TO7 <6:6>;
11213931Savishai.tvila@gmail.comdef bitfield CJUMPIMM9TO8 <10:9>;
11313931Savishai.tvila@gmail.comdef bitfield CJUMPIMM10TO10 <8:8>;
11413931Savishai.tvila@gmail.comdef bitfield CJUMPIMMSIGN <12:12>;
11512120Sar4jc@virginia.edudef bitfield CIMM8 <12:5>;
11612120Sar4jc@virginia.edudef bitfield CIMM6 <12:7>;
11712120Sar4jc@virginia.edudef bitfield CIMM5 <6:2>;
11812120Sar4jc@virginia.edudef bitfield CIMM3 <12:10>;
11912120Sar4jc@virginia.edudef bitfield CIMM2 <6:5>;
12012120Sar4jc@virginia.edudef bitfield CIMM1 <12>;
121