bitfields.isa revision 7116:b867ef81fb38
16242Sgblack@eecs.umich.edu// -*- mode:c++ -*-
212529Sgiacomo.travaglini@arm.com
37093Sgblack@eecs.umich.edu// Copyright (c) 2010 ARM Limited
47093Sgblack@eecs.umich.edu// All rights reserved
57093Sgblack@eecs.umich.edu//
67093Sgblack@eecs.umich.edu// The license below extends only to copyright in the software and shall
77093Sgblack@eecs.umich.edu// not be construed as granting a license to any other intellectual
87093Sgblack@eecs.umich.edu// property including but not limited to intellectual property relating
97093Sgblack@eecs.umich.edu// to a hardware implementation of the functionality of the software
107093Sgblack@eecs.umich.edu// licensed hereunder.  You may use the software subject to the license
117093Sgblack@eecs.umich.edu// terms below provided that you ensure that this notice is replicated
127093Sgblack@eecs.umich.edu// unmodified and in its entirety in all distributions of the software,
137093Sgblack@eecs.umich.edu// modified or unmodified, in source code or in binary form.
146242Sgblack@eecs.umich.edu//
156242Sgblack@eecs.umich.edu// Copyright (c) 2007-2008 The Florida State University
166242Sgblack@eecs.umich.edu// All rights reserved.
176242Sgblack@eecs.umich.edu//
186242Sgblack@eecs.umich.edu// Redistribution and use in source and binary forms, with or without
196242Sgblack@eecs.umich.edu// modification, are permitted provided that the following conditions are
206242Sgblack@eecs.umich.edu// met: redistributions of source code must retain the above copyright
216242Sgblack@eecs.umich.edu// notice, this list of conditions and the following disclaimer;
226242Sgblack@eecs.umich.edu// redistributions in binary form must reproduce the above copyright
236242Sgblack@eecs.umich.edu// notice, this list of conditions and the following disclaimer in the
246242Sgblack@eecs.umich.edu// documentation and/or other materials provided with the distribution;
256242Sgblack@eecs.umich.edu// neither the name of the copyright holders nor the names of its
266242Sgblack@eecs.umich.edu// contributors may be used to endorse or promote products derived from
276242Sgblack@eecs.umich.edu// this software without specific prior written permission.
286242Sgblack@eecs.umich.edu//
296242Sgblack@eecs.umich.edu// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
306242Sgblack@eecs.umich.edu// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
316242Sgblack@eecs.umich.edu// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
326242Sgblack@eecs.umich.edu// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
336242Sgblack@eecs.umich.edu// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
346242Sgblack@eecs.umich.edu// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
356242Sgblack@eecs.umich.edu// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
366242Sgblack@eecs.umich.edu// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
376242Sgblack@eecs.umich.edu// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
386242Sgblack@eecs.umich.edu// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
396242Sgblack@eecs.umich.edu// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
406242Sgblack@eecs.umich.edu//
4110037SARM gem5 Developers// Authors: Stephen Hines
426242Sgblack@eecs.umich.edu
436242Sgblack@eecs.umich.edu////////////////////////////////////////////////////////////////////
446242Sgblack@eecs.umich.edu//
456242Sgblack@eecs.umich.edu// Bitfield definitions.
4610037SARM gem5 Developers//
4711939Snikos.nikoleris@arm.com
4810037SARM gem5 Developers// Opcode fields
4913115Sgiacomo.travaglini@arm.comdef bitfield ENCODING      encoding;
509256SAndreas.Sandberg@arm.comdef bitfield OPCODE        opcode;
516242Sgblack@eecs.umich.edudef bitfield MEDIA_OPCODE  mediaOpcode;
5210037SARM gem5 Developersdef bitfield MEDIA_OPCODE2 mediaOpcode2;
5310037SARM gem5 Developersdef bitfield USEIMM        useImm;
5410037SARM gem5 Developersdef bitfield OPCODE_24     opcode24;
556242Sgblack@eecs.umich.edudef bitfield OPCODE_23_20  opcode23_20;
566242Sgblack@eecs.umich.edudef bitfield OPCODE_23_21  opcode23_21;
576242Sgblack@eecs.umich.edudef bitfield OPCODE_22     opcode22;
5813392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_20     opcode20;
5913392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_19_16  opcode19_16;
6013392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_19     opcode19;
6113392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_18     opcode18;
6213392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_15_12  opcode15_12;
6313392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_15     opcode15;
6413392Sgiacomo.travaglini@arm.comdef bitfield MISC_OPCODE   miscOpcode;
6513392Sgiacomo.travaglini@arm.comdef bitfield OPC2          opc2; 
6613392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_7      opcode7;
6713392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_6      opcode6;
6813392Sgiacomo.travaglini@arm.comdef bitfield OPCODE_4      opcode4;
6913392Sgiacomo.travaglini@arm.com
7013392Sgiacomo.travaglini@arm.comdef bitfield IS_MISC       isMisc;
7113392Sgiacomo.travaglini@arm.comdef bitfield SEVEN_AND_FOUR sevenAndFour;
7213392Sgiacomo.travaglini@arm.com
737259Sgblack@eecs.umich.edudef bitfield THUMB         thumb;
7410037SARM gem5 Developersdef bitfield BIGTHUMB      bigThumb;
7513392Sgiacomo.travaglini@arm.com
7613392Sgiacomo.travaglini@arm.com// Other
7713392Sgiacomo.travaglini@arm.comdef bitfield COND_CODE     condCode;
7813392Sgiacomo.travaglini@arm.comdef bitfield S_FIELD       sField;
7913392Sgiacomo.travaglini@arm.comdef bitfield RN            rn;
8013392Sgiacomo.travaglini@arm.comdef bitfield RD            rd;
8113392Sgiacomo.travaglini@arm.comdef bitfield SHIFT_SIZE    shiftSize;
8213392Sgiacomo.travaglini@arm.comdef bitfield SHIFT         shift;
8313392Sgiacomo.travaglini@arm.comdef bitfield RM            rm;
8413392Sgiacomo.travaglini@arm.com
8513392Sgiacomo.travaglini@arm.comdef bitfield RS            rs;
8613392Sgiacomo.travaglini@arm.com
8713392Sgiacomo.travaglini@arm.comdef bitfield PUSWL         puswl;
8813392Sgiacomo.travaglini@arm.comdef bitfield PREPOST       puswl.prepost;
8913392Sgiacomo.travaglini@arm.comdef bitfield UP               puswl.up;
908868SMatt.Horsnell@arm.comdef bitfield PSRUSER       puswl.psruser;
9110037SARM gem5 Developersdef bitfield WRITEBACK     puswl.writeback;
9213392Sgiacomo.travaglini@arm.comdef bitfield LOADOP        puswl.loadOp;
9313392Sgiacomo.travaglini@arm.com
9413392Sgiacomo.travaglini@arm.comdef bitfield PUBWL         pubwl;
9513392Sgiacomo.travaglini@arm.com
9613392Sgiacomo.travaglini@arm.comdef bitfield IMM           imm;
9713392Sgiacomo.travaglini@arm.com
9813392Sgiacomo.travaglini@arm.comdef bitfield IMMED_11_0    immed11_0;
9913392Sgiacomo.travaglini@arm.com
10013392Sgiacomo.travaglini@arm.comdef bitfield IMMED_HI_11_8 immedHi11_8;
10113392Sgiacomo.travaglini@arm.comdef bitfield IMMED_LO_3_0  immedLo3_0;
10213392Sgiacomo.travaglini@arm.com
10313392Sgiacomo.travaglini@arm.comdef bitfield IMMED_23_0    immed23_0;
10413392Sgiacomo.travaglini@arm.com
10513392Sgiacomo.travaglini@arm.comdef bitfield CPNUM         cpNum;
10613392Sgiacomo.travaglini@arm.com// Note that FP Regs are only 3 bits
10713392Sgiacomo.travaglini@arm.comdef bitfield FN            fn;
10813392Sgiacomo.travaglini@arm.comdef bitfield FD            fd;
10913392Sgiacomo.travaglini@arm.comdef bitfield FPREGIMM      fpRegImm;
11013392Sgiacomo.travaglini@arm.com// We can just use 3:0 for FM since the hard-wired FP regs are handled in
11113392Sgiacomo.travaglini@arm.com// float_regfile.hh
11213392Sgiacomo.travaglini@arm.comdef bitfield FM            fm;
11313392Sgiacomo.travaglini@arm.comdef bitfield FPIMM         fpImm;
11413392Sgiacomo.travaglini@arm.comdef bitfield PUNWL         punwl;
11513392Sgiacomo.travaglini@arm.com
11613392Sgiacomo.travaglini@arm.com// M5 instructions
11713392Sgiacomo.travaglini@arm.comdef bitfield M5FUNC        m5Func;
11813392Sgiacomo.travaglini@arm.com
11913392Sgiacomo.travaglini@arm.com// 16 bit thumb bitfields
12013392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_15_13  topcode15_13;
12113392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_13_11  topcode13_11;
12213392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_12_11  topcode12_11;
12313392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_12_10  topcode12_10;
12413392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_11_9   topcode11_9;
12513392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_11_8   topcode11_8;
12613392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_10_9   topcode10_9;
12713392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_10_8   topcode10_8;
12813392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_9_6    topcode9_6;
12913392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_7      topcode7;
13013392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_7_6    topcode7_6;
13113392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_7_5    topcode7_5;
13213392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_7_4    topcode7_4;
13313392Sgiacomo.travaglini@arm.comdef bitfield TOPCODE_3_0    topcode3_0;
13413392Sgiacomo.travaglini@arm.com
13513392Sgiacomo.travaglini@arm.com// 32 bit thumb bitfields
13613392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_12_11 htopcode12_11;
13713392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_10_9  htopcode10_9;
13813392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_9     htopcode9;
13913392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_9_8   htopcode9_8;
14013392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_9_5   htopcode9_5;
14113392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_9_4   htopcode9_4;
1427351Sgblack@eecs.umich.edudef bitfield HTOPCODE_8     htopcode8;
14310037SARM gem5 Developersdef bitfield HTOPCODE_8_7   htopcode8_7;
14413392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_8_6   htopcode8_6;
14513392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_8_5   htopcode8_5;
14613392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_7     htopcode7;
14713392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_7_5   htopcode7_5;
14813392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_6_5   htopcode6_5;
14913392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_5_4   htopcode5_4;
15013392Sgiacomo.travaglini@arm.comdef bitfield HTOPCODE_4     htopcode4;
15113392Sgiacomo.travaglini@arm.com
15213392Sgiacomo.travaglini@arm.comdef bitfield HTRN           htrn;
15313392Sgiacomo.travaglini@arm.comdef bitfield HTS            hts;
15413392Sgiacomo.travaglini@arm.com
15513392Sgiacomo.travaglini@arm.comdef bitfield LTOPCODE_15    ltopcode15;
15613392Sgiacomo.travaglini@arm.comdef bitfield LTOPCODE_11_8  ltopcode11_8;
15713392Sgiacomo.travaglini@arm.comdef bitfield LTOPCODE_7_6   ltopcode7_6;
15813392Sgiacomo.travaglini@arm.comdef bitfield LTOPCODE_7_4   ltopcode7_4;
15913392Sgiacomo.travaglini@arm.comdef bitfield LTOPCODE_4     ltopcode4;
16013392Sgiacomo.travaglini@arm.com
16113392Sgiacomo.travaglini@arm.comdef bitfield LTRD           ltrd;
16213392Sgiacomo.travaglini@arm.comdef bitfield LTCOPROC       ltcoproc;
16313392Sgiacomo.travaglini@arm.com