bitfields.isa revision 6691
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>;
78def bitfield L             <25>;
79def bitfield W             <16>;
80// Named so to avoid conflicts with range.hh
81def bitfield U_FIELD       <15:12>;
82
83// Field for specifying a bit in CR or FPSCR
84def bitfield BT            <25:21>;
85