bitfields.isa revision 8917
1// -*- mode:c++ -*- 2 3// Copyright (c) 2009 The University of Edinburgh 4// All rights reserved. 5// 6// Redistribution and use in source and binary forms, with or without 7// modification, are permitted provided that the following conditions are 8// met: redistributions of source code must retain the above copyright 9// notice, this list of conditions and the following disclaimer; 10// redistributions in binary form must reproduce the above copyright 11// notice, this list of conditions and the following disclaimer in the 12// documentation and/or other materials provided with the distribution; 13// neither the name of the copyright holders nor the names of its 14// contributors may be used to endorse or promote products derived from 15// this software without specific prior written permission. 16// 17// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28// 29// Authors: Timothy M. Jones 30 31//////////////////////////////////////////////////////////////////// 32// 33// Bitfield definitions. 34// 35// The endianness is the opposite to what's used here, so things 36// are reversed sometimes. Not sure of a fix to this though... 37 38// Opcode fields 39def bitfield OPCODE <31:26>; 40def bitfield X_XO <10:0>; 41def bitfield XO_XO <10:1>; 42def bitfield A_XO <5:1>; 43 44// Register fields 45def bitfield RA <20:16>; 46def bitfield RB <15:11>; 47def bitfield RS <25:21>; 48def bitfield RT <25:21>; 49def bitfield FRA <20:16>; 50def bitfield FRB <15:11>; 51def bitfield FRC <10:6>; 52def bitfield FRS <25:21>; 53def bitfield FRT <25:21>; 54 55// The record bit can be in two positions 56// Used to enable setting of the condition register 57def bitfield RC31 <0>; 58def bitfield RC21 <10>; 59 60// Used to enable setting of the overflow flags 61def bitfield OE <10>; 62 63// SPR field for mtspr instruction 64def bitfield SPR <20:11>; 65 66// FXM field for mtcrf instruction 67def bitfield FXM <19:12>; 68 69// Branch fields 70def bitfield LK <0>; 71def bitfield AA <1>; 72 73// Specifies a CR or FPSCR field 74def bitfield BF <25:23>; 75 76// Fields for FPSCR manipulation instructions 77def bitfield FLM <24:17>; 78// Named so to avoid conflicts with potential template typenames 79def bitfield L_FIELD <25>; 80// Named so to avoid conflicts with range_map.hh 81def bitfield W_FIELD <16>; 82// Named so to avoid conflicts with range.hh 83def bitfield U_FIELD <15:12>; 84 85// Field for specifying a bit in CR or FPSCR 86def bitfield BT <25:21>; 87