bitfields.isa revision 6247:094b7ea0b180
1// -*- mode:c++ -*-
2
3// Copyright (c) 2007-2008 The Florida State University
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: Stephen Hines
30
31////////////////////////////////////////////////////////////////////
32//
33// Bitfield definitions.
34//
35
36// Opcode fields
37def bitfield OPCODE        <27:25>;
38def bitfield OPCODE_27_25  <27:25>;
39def bitfield OPCODE_24_21  <24:21>;
40def bitfield OPCODE_24_23  <24:23>;
41def bitfield OPCODE_24	   <24:24>;
42def bitfield OPCODE_23_20  <23:20>;
43def bitfield OPCODE_23_21  <23:21>;
44def bitfield OPCODE_23     <23:23>;
45def bitfield OPCODE_22_8   <22: 8>;
46def bitfield OPCODE_22_21  <22:21>;
47def bitfield OPCODE_22     <22:22>;
48def bitfield OPCODE_21_20  <21:20>;
49def bitfield OPCODE_20     <20:20>;
50def bitfield OPCODE_19_18  <19:18>;
51def bitfield OPCODE_19	   <19:19>;
52def bitfield OPCODE_15_12  <15:12>;
53def bitfield OPCODE_15	   <15:15>;
54def bitfield OPCODE_9      < 9: 9>;
55def bitfield OPCODE_7_4    < 7: 4>;
56def bitfield OPCODE_7_5	   < 7: 5>;
57def bitfield OPCODE_7_6    < 7: 6>;
58def bitfield OPCODE_7      < 7: 7>;
59def bitfield OPCODE_6_5	   < 6: 5>;
60def bitfield OPCODE_6	   < 6: 6>;
61def bitfield OPCODE_5	   < 5: 5>;
62def bitfield OPCODE_4      < 4: 4>;
63
64// Other
65def bitfield COND_CODE     <31:28>;
66def bitfield S_FIELD       <20:20>;
67def bitfield RN            <19:16>;
68def bitfield RD            <15:12>;
69def bitfield SHIFT_SIZE    <11: 7>;
70def bitfield SHIFT         < 6: 5>;
71def bitfield RM            < 3: 0>;
72
73def bitfield RS            <11: 8>;
74
75def bitfield RDUP          <19:16>;
76def bitfield RNDN          <15:12>;
77
78def bitfield RDHI          <15:12>;
79def bitfield RDLO          <11: 8>;
80
81def bitfield U_FIELD       <23:23>;
82
83def bitfield PUSWL	   <24:20>;
84def bitfield PREPOST	   <24:24>;
85def bitfield UP		   <23:23>;
86def bitfield PSRUSER	   <22:22>;
87def bitfield WRITEBACK	   <21:21>;
88def bitfield LOADOP        <20:20>;
89
90def bitfield PUBWL	   <24:20>;
91def bitfield PUIWL	   <24:20>;
92def bitfield BYTEACCESS	   <22:22>;
93
94def bitfield LUAS	   <23:20>;
95
96def bitfield IMM	   < 7: 0>;
97def bitfield IMMED_7_4     < 7: 4>;
98def bitfield IMMED_3_0     < 3: 0>;
99
100def bitfield F_MSR         <19:19>;
101def bitfield S_MSR         <18:18>;
102def bitfield X_MSR         <17:17>;
103def bitfield C_MSR         <16:16>;
104
105def bitfield Y_6           < 6: 6>;
106def bitfield X_5           < 5: 5>;
107
108def bitfield IMMED_15_4    <15: 4>;
109
110def bitfield W_FIELD       <21:21>;
111
112def bitfield ROTATE        <11: 8>;
113def bitfield IMMED_7_0     < 7: 0>;
114
115def bitfield T_FIELD       <21:21>;
116def bitfield IMMED_11_0    <11: 0>;
117
118def bitfield IMMED_20_16   <20:16>;
119def bitfield IMMED_19_16   <19:16>;
120
121def bitfield IMMED_HI_11_8 <11: 8>;
122def bitfield IMMED_LO_3_0  < 3: 0>;
123
124def bitfield ROT           <11:10>;
125
126def bitfield R_FIELD       < 5: 5>;
127
128def bitfield CARET         <22:22>;
129def bitfield REGLIST       <15: 0>;
130
131def bitfield OFFSET        <23: 0>;
132def bitfield COPRO         <11: 8>;
133def bitfield OP1_7_4       < 7: 4>;
134def bitfield CM            < 3: 0>;
135
136def bitfield L_FIELD       <22:22>;
137def bitfield CD            <15:12>;
138def bitfield OPTION        < 7: 0>;
139
140def bitfield OP1_23_20     <23:20>;
141def bitfield CN            <19:16>;
142def bitfield OP2_7_5       < 7: 5>;
143
144def bitfield OP1_23_21     <23:21>;
145
146def bitfield IMMED_23_0    <23: 0>;
147def bitfield M_FIELD       <17:17>;
148def bitfield A_FIELD       < 8: 8>;
149def bitfield I_FIELD       < 7: 7>;
150def bitfield F_FIELD       < 6: 6>;
151def bitfield MODE          < 4: 0>;
152
153def bitfield A_BLX         <24:24>;
154
155def bitfield CPNUM	   <11: 8>;
156// Note that FP Regs are only 3 bits
157def bitfield FN		   <18:16>;
158def bitfield FD		   <14:12>;
159def bitfield FPREGIMM	   < 3: 3>;
160// We can just use 3:0 for FM since the hard-wired FP regs are handled in
161// float_regfile.hh
162def bitfield FM		   < 3: 0>;
163def bitfield FPIMM	   < 2: 0>;
164def bitfield PUNWL	   <24:20>;
165
166// M5 instructions
167def bitfield M5FUNC <7:0>;
168
169