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