bitfields.isa revision 6019
16019Shines@cs.fsu.edu// -*- mode:c++ -*-
26019Shines@cs.fsu.edu
36019Shines@cs.fsu.edu// Copyright (c) 2007-2008 The Florida State University
46019Shines@cs.fsu.edu// All rights reserved.
56019Shines@cs.fsu.edu//
66019Shines@cs.fsu.edu// Redistribution and use in source and binary forms, with or without
76019Shines@cs.fsu.edu// modification, are permitted provided that the following conditions are
86019Shines@cs.fsu.edu// met: redistributions of source code must retain the above copyright
96019Shines@cs.fsu.edu// notice, this list of conditions and the following disclaimer;
106019Shines@cs.fsu.edu// redistributions in binary form must reproduce the above copyright
116019Shines@cs.fsu.edu// notice, this list of conditions and the following disclaimer in the
126019Shines@cs.fsu.edu// documentation and/or other materials provided with the distribution;
136019Shines@cs.fsu.edu// neither the name of the copyright holders nor the names of its
146019Shines@cs.fsu.edu// contributors may be used to endorse or promote products derived from
156019Shines@cs.fsu.edu// this software without specific prior written permission.
166019Shines@cs.fsu.edu//
176019Shines@cs.fsu.edu// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
186019Shines@cs.fsu.edu// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
196019Shines@cs.fsu.edu// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
206019Shines@cs.fsu.edu// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
216019Shines@cs.fsu.edu// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
226019Shines@cs.fsu.edu// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
236019Shines@cs.fsu.edu// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
246019Shines@cs.fsu.edu// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
256019Shines@cs.fsu.edu// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
266019Shines@cs.fsu.edu// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
276019Shines@cs.fsu.edu// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
286019Shines@cs.fsu.edu//
296019Shines@cs.fsu.edu// Authors: Stephen Hines
306019Shines@cs.fsu.edu
316019Shines@cs.fsu.edu////////////////////////////////////////////////////////////////////
326019Shines@cs.fsu.edu//
336019Shines@cs.fsu.edu// Bitfield definitions.
346019Shines@cs.fsu.edu//
356019Shines@cs.fsu.edu
366019Shines@cs.fsu.edu// Opcode fields
376019Shines@cs.fsu.edudef bitfield OPCODE        <27:25>;
386019Shines@cs.fsu.edudef bitfield OPCODE_27_25  <27:25>;
396019Shines@cs.fsu.edudef bitfield OPCODE_24_21  <24:21>;
406019Shines@cs.fsu.edudef bitfield OPCODE_24_23  <24:23>;
416019Shines@cs.fsu.edudef bitfield OPCODE_24	   <24:24>;
426019Shines@cs.fsu.edudef bitfield OPCODE_23_20  <23:20>;
436019Shines@cs.fsu.edudef bitfield OPCODE_23_21  <23:21>;
446019Shines@cs.fsu.edudef bitfield OPCODE_23     <23:23>;
456019Shines@cs.fsu.edudef bitfield OPCODE_22_8   <22: 8>;
466019Shines@cs.fsu.edudef bitfield OPCODE_22_21  <22:21>;
476019Shines@cs.fsu.edudef bitfield OPCODE_22     <22:22>;
486019Shines@cs.fsu.edudef bitfield OPCODE_21_20  <21:20>;
496019Shines@cs.fsu.edudef bitfield OPCODE_20     <20:20>;
506019Shines@cs.fsu.edudef bitfield OPCODE_19_18  <19:18>;
516019Shines@cs.fsu.edudef bitfield OPCODE_19	   <19:19>;
526019Shines@cs.fsu.edudef bitfield OPCODE_15_12  <15:12>;
536019Shines@cs.fsu.edudef bitfield OPCODE_15	   <15:15>;
546019Shines@cs.fsu.edudef bitfield OPCODE_9      < 9: 9>;
556019Shines@cs.fsu.edudef bitfield OPCODE_7_4    < 7: 4>;
566019Shines@cs.fsu.edudef bitfield OPCODE_7_5	   < 7: 5>;
576019Shines@cs.fsu.edudef bitfield OPCODE_7_6    < 7: 6>;
586019Shines@cs.fsu.edudef bitfield OPCODE_7      < 7: 7>;
596019Shines@cs.fsu.edudef bitfield OPCODE_6_5	   < 6: 5>;
606019Shines@cs.fsu.edudef bitfield OPCODE_6	   < 6: 6>;
616019Shines@cs.fsu.edudef bitfield OPCODE_5	   < 5: 5>;
626019Shines@cs.fsu.edudef bitfield OPCODE_4      < 4: 4>;
636019Shines@cs.fsu.edu
646019Shines@cs.fsu.edu// Other
656019Shines@cs.fsu.edudef bitfield COND_CODE     <31:28>;
666019Shines@cs.fsu.edudef bitfield S_FIELD       <20:20>;
676019Shines@cs.fsu.edudef bitfield RN            <19:16>;
686019Shines@cs.fsu.edudef bitfield RD            <15:12>;
696019Shines@cs.fsu.edudef bitfield SHIFT_SIZE    <11: 7>;
706019Shines@cs.fsu.edudef bitfield SHIFT         < 6: 5>;
716019Shines@cs.fsu.edudef bitfield RM            < 3: 0>;
726019Shines@cs.fsu.edu
736019Shines@cs.fsu.edudef bitfield RE            <20:16>;
746019Shines@cs.fsu.edu
756019Shines@cs.fsu.edudef bitfield RS            <11: 8>;
766019Shines@cs.fsu.edu
776019Shines@cs.fsu.edudef bitfield RDUP          <19:16>;
786019Shines@cs.fsu.edudef bitfield RNDN          <15:12>;
796019Shines@cs.fsu.edu
806019Shines@cs.fsu.edudef bitfield RDHI          <15:12>;
816019Shines@cs.fsu.edudef bitfield RDLO          <11: 8>;
826019Shines@cs.fsu.edu
836019Shines@cs.fsu.edudef bitfield U_FIELD       <23:23>;
846019Shines@cs.fsu.edu
856019Shines@cs.fsu.edudef bitfield PUSWL	   <24:20>;
866019Shines@cs.fsu.edudef bitfield PREPOST	   <24:24>;
876019Shines@cs.fsu.edudef bitfield UP		   <23:23>;
886019Shines@cs.fsu.edudef bitfield PSRUSER	   <22:22>;
896019Shines@cs.fsu.edudef bitfield WRITEBACK	   <21:21>;
906019Shines@cs.fsu.edudef bitfield LOADOP        <20:20>;
916019Shines@cs.fsu.edu
926019Shines@cs.fsu.edudef bitfield PUBWL	   <24:20>;
936019Shines@cs.fsu.edudef bitfield PUIWL	   <24:20>;
946019Shines@cs.fsu.edudef bitfield BYTEACCESS	   <22:22>;
956019Shines@cs.fsu.edu
966019Shines@cs.fsu.edudef bitfield LUAS	   <23:20>;
976019Shines@cs.fsu.edu
986019Shines@cs.fsu.edudef bitfield IMM	   < 7: 0>;
996019Shines@cs.fsu.edudef bitfield IMMED_7_4     < 7: 4>;
1006019Shines@cs.fsu.edudef bitfield IMMED_3_0     < 3: 0>;
1016019Shines@cs.fsu.edu
1026019Shines@cs.fsu.edudef bitfield F_MSR         <19:19>;
1036019Shines@cs.fsu.edudef bitfield S_MSR         <18:18>;
1046019Shines@cs.fsu.edudef bitfield X_MSR         <17:17>;
1056019Shines@cs.fsu.edudef bitfield C_MSR         <16:16>;
1066019Shines@cs.fsu.edu
1076019Shines@cs.fsu.edudef bitfield Y_6           < 6: 6>;
1086019Shines@cs.fsu.edudef bitfield X_5           < 5: 5>;
1096019Shines@cs.fsu.edu
1106019Shines@cs.fsu.edudef bitfield IMMED_15_4    <15: 4>;
1116019Shines@cs.fsu.edu
1126019Shines@cs.fsu.edudef bitfield W_FIELD       <21:21>;
1136019Shines@cs.fsu.edu
1146019Shines@cs.fsu.edudef bitfield ROTATE        <11: 8>;
1156019Shines@cs.fsu.edudef bitfield IMMED_7_0     < 7: 0>;
1166019Shines@cs.fsu.edu
1176019Shines@cs.fsu.edudef bitfield T_FIELD       <21:21>;
1186019Shines@cs.fsu.edudef bitfield IMMED_11_0    <11: 0>;
1196019Shines@cs.fsu.edu
1206019Shines@cs.fsu.edudef bitfield IMMED_20_16   <20:16>;
1216019Shines@cs.fsu.edudef bitfield IMMED_19_16   <19:16>;
1226019Shines@cs.fsu.edu
1236019Shines@cs.fsu.edudef bitfield IMMED_HI_11_8 <11: 8>;
1246019Shines@cs.fsu.edudef bitfield IMMED_LO_3_0  < 3: 0>;
1256019Shines@cs.fsu.edu
1266019Shines@cs.fsu.edudef bitfield ROT           <11:10>;
1276019Shines@cs.fsu.edu
1286019Shines@cs.fsu.edudef bitfield R_FIELD       < 5: 5>;
1296019Shines@cs.fsu.edu
1306019Shines@cs.fsu.edudef bitfield CARET         <22:22>;
1316019Shines@cs.fsu.edudef bitfield REGLIST       <15: 0>;
1326019Shines@cs.fsu.edu
1336019Shines@cs.fsu.edudef bitfield OFFSET        <23: 0>;
1346019Shines@cs.fsu.edudef bitfield COPRO         <11: 8>;
1356019Shines@cs.fsu.edudef bitfield OP1_7_4       < 7: 4>;
1366019Shines@cs.fsu.edudef bitfield CM            < 3: 0>;
1376019Shines@cs.fsu.edu
1386019Shines@cs.fsu.edudef bitfield L_FIELD       <22:22>;
1396019Shines@cs.fsu.edudef bitfield CD            <15:12>;
1406019Shines@cs.fsu.edudef bitfield OPTION        < 7: 0>;
1416019Shines@cs.fsu.edu
1426019Shines@cs.fsu.edudef bitfield OP1_23_20     <23:20>;
1436019Shines@cs.fsu.edudef bitfield CN            <19:16>;
1446019Shines@cs.fsu.edudef bitfield OP2_7_5       < 7: 5>;
1456019Shines@cs.fsu.edu
1466019Shines@cs.fsu.edudef bitfield OP1_23_21     <23:21>;
1476019Shines@cs.fsu.edu
1486019Shines@cs.fsu.edudef bitfield IMMED_23_0    <23: 0>;
1496019Shines@cs.fsu.edudef bitfield M_FIELD       <17:17>;
1506019Shines@cs.fsu.edudef bitfield A_FIELD       < 8: 8>;
1516019Shines@cs.fsu.edudef bitfield I_FIELD       < 7: 7>;
1526019Shines@cs.fsu.edudef bitfield F_FIELD       < 6: 6>;
1536019Shines@cs.fsu.edudef bitfield MODE          < 4: 0>;
1546019Shines@cs.fsu.edu
1556019Shines@cs.fsu.edudef bitfield A_BLX         <24:24>;
1566019Shines@cs.fsu.edu
1576019Shines@cs.fsu.edudef bitfield CPNUM	   <11: 8>;
1586019Shines@cs.fsu.edu// Note that FP Regs are only 3 bits
1596019Shines@cs.fsu.edudef bitfield FN		   <18:16>;
1606019Shines@cs.fsu.edudef bitfield FD		   <14:12>;
1616019Shines@cs.fsu.edudef bitfield FPREGIMM	   < 3: 3>;
1626019Shines@cs.fsu.edu// We can just use 3:0 for FM since the hard-wired FP regs are handled in
1636019Shines@cs.fsu.edu// float_regfile.hh
1646019Shines@cs.fsu.edudef bitfield FM		   < 3: 0>;
1656019Shines@cs.fsu.edudef bitfield FPIMM	   < 2: 0>;
1666019Shines@cs.fsu.edudef bitfield PUNWL	   <24:20>;
1676019Shines@cs.fsu.edu
1686019Shines@cs.fsu.edu// M5 instructions
1696019Shines@cs.fsu.edudef bitfield M5FUNC <7:0>;
1706019Shines@cs.fsu.edu
171