more changes to the decoder ... Now does special 3 table
authorKorey Sewell <ksewell@umich.edu>
Wed, 25 Jan 2006 22:36:38 +0000 (17:36 -0500)
committerKorey Sewell <ksewell@umich.edu>
Wed, 25 Jan 2006 22:36:38 +0000 (17:36 -0500)
arch/mips/isa_desc/bitfields.h:
    Change from table names to actual bitfield name ...

--HG--
extra : convert_revision : ead69065eb9c3e9c4ea4f67587a6fb07091898ed

arch/mips/isa_desc/bitfields.h
arch/mips/isa_desc/decoder.h

index 7fce190ce273af4e5be8ea8222c8fc0ebf120042..7938891507c632c39c0425c5513275145b435eeb 100644 (file)
@@ -7,14 +7,25 @@
 def bitfield OPCODE_HI  <31:29>;
 def bitfield OPCODE_LO  <28:26>;
 
-def bitfield SPECIAL_HI   < 5: 3>;
-def bitfield SPECIAL_HI   < 2: 0>;
+def bitfield FUNCTION_HI   < 5: 3>;
+def bitfield FUNCTION_LO   < 2: 0>;
 
-def bitfield REGIMM_HI     <20:19>;
-def bitfield REGIMM_LO     <18:16>;
+def bitfield RT              <20:16>;
+def bitfield RT_HI    <20:19>;
+def bitfield RT_LO    <18:16>;
 
-def bitfield RS                <25:21>;
-def bitfield RT                <20:16>;
+def bitfield RS              <25:21>;
+def bitfield RS_HI    <25:24>;
+def bitfield RS_LO    <23:21>;
+
+def bitfield MOVCI <>;
+def bitfield SRL   <>;
+def bitfield SRLV  <>;
+def bitfield SA    <>;
+
+def bitfield BSHFL    <>;
+def bitfield BSHFL_HI <>;
+def bitfield BSHFL_LO <>;
 
 // Integer operate format(s>;
 def bitfield INTIMM    <15: 0>; // integer immediate (literal)
index 235ff1ef619f5afdfa5ff9431a74ff870bae72e8..1afd0f9d9026af6a6d02823bf958f92aeebe9e8e 100644 (file)
@@ -14,8 +14,8 @@ decode OPCODE_HI default FailUnimpl::unknown() {
     // Derived From ... Table A-2 MIPS32 ISA Manual
     0x0: decode OPCODE_LO default FailUnimpl::reserved(){
 
-        0x0: decode SPECIAL_HI {
-            0x0: decode SPECIAL_LO {
+        0x0: decode FUNCTION_HI {
+            0x0: decode FUNCTION_LO {
               0x1: decode MOVCI {
                 format Move {
                   0: movc({{ }});
@@ -46,7 +46,7 @@ decode OPCODE_HI default FailUnimpl::unknown() {
               }
             }
 
-            0x1: decode SPECIAL_LO {
+            0x1: decode FUNCTION_LO {
 
               //Table A-3 Note: "Specific encodings of the hint field are used
               //to distinguish JR from JR.HB and JALR from JALR.HB"
@@ -65,7 +65,7 @@ decode OPCODE_HI default FailUnimpl::unknown() {
               0x7: Synchronize::synch({{ }});
             }
 
-            0x2: decode SPECIAL_LO {
+            0x2: decode FUNCTION_LO {
               format MultDiv {
                 0x0: mfhi({{ }});
                 0x1: mthi({{ }});
@@ -74,7 +74,7 @@ decode OPCODE_HI default FailUnimpl::unknown() {
               }
             };
 
-            0x3: decode SPECIAL_LO {
+            0x3: decode FUNCTION_LO {
               format MultDiv {
                 0x0: mult({{ }});
                 0x1: multu({{ }});
@@ -83,7 +83,7 @@ decode OPCODE_HI default FailUnimpl::unknown() {
               }
             };
 
-            0x4: decode SPECIAL_LO {
+            0x4: decode FUNCTION_LO {
               format Arithmetic {
                 0x0: add({{ }});
                 0x1: addu({{ }});
@@ -99,14 +99,14 @@ decode OPCODE_HI default FailUnimpl::unknown() {
               }
             }
 
-            0x5: decode SPECIAL_LO {
+            0x5: decode FUNCTION_LO {
               format SetInstructions{
                 0x2: slt({{ }});
                 0x3: sltu({{ }});
               }
             };
 
-            0x6: decode SPECIAL_LO {
+            0x6: decode FUNCTION_LO {
               format Trap {
                  0x0: tge({{ }});
                  0x1: tgeu({{ }});
@@ -218,7 +218,7 @@ decode OPCODE_HI default FailUnimpl::unknown() {
             0x6: reserved_inst_exception({{ }})
         };
 
-        4: decode SPECIAL2 {
+        0x4: decode FUNCTION_HI {
             0x0:;
             0x1:;
             0x2:;
@@ -228,14 +228,23 @@ decode OPCODE_HI default FailUnimpl::unknown() {
             0x6:;
         }
 
-        7: decode SPECIAL3 {
-            0x0:;
-            0x1:;
-            0x2:;
-            0x3:;
-            0x4:;
-            0x5:;
-            0x6:;
+        0x7: decode FUNCTION_HI {
+          //Table A-6 MIPS32 SPECIAL31 Encoding of Function Field for Release 2 of the Architecture
+          0x0: decode FUNCTION_LO {
+            0x1: ext({{ }});
+            0x4: ins({{ }});
+          }
+
+          0x4: decode SA {
+            //Table A-10 MIPS32 BSHFL Encoding of sa Field
+            0x02: wsbh({{ }});
+            0x10: seb({{ }});
+            0x18: seh({{ }});
+          }
+
+          0x6: decode FUNCTION_LO {
+            0x7: rdhwr({{ }});
+          }
         }
     };