ARM: Widen the immediate fields in the misc instruction classes.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 2 Jun 2010 17:58:12 +0000 (12:58 -0500)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 2 Jun 2010 17:58:12 +0000 (12:58 -0500)
src/arch/arm/insts/misc.hh
src/arch/arm/isa/templates/misc.isa

index 8080c4e1fd4744cc3d457d0316134f19a1431cb5..79cec573265f97fe81d72cb88b35b81b2a79c6a7 100644 (file)
@@ -97,10 +97,10 @@ class MsrRegOp : public MsrBase
 class ImmOp : public PredOp
 {
   protected:
-    uint32_t imm;
+    uint64_t imm;
 
     ImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
-             uint32_t _imm) :
+             uint64_t _imm) :
         PredOp(mnem, _machInst, __opClass), imm(_imm)
     {}
 
@@ -125,11 +125,11 @@ class RegImmRegOp : public PredOp
 {
   protected:
     IntRegIndex dest;
-    uint32_t imm;
+    uint64_t imm;
     IntRegIndex op1;
 
     RegImmRegOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
-                IntRegIndex _dest, uint32_t _imm, IntRegIndex _op1) :
+                IntRegIndex _dest, uint64_t _imm, IntRegIndex _op1) :
         PredOp(mnem, _machInst, __opClass),
         dest(_dest), imm(_imm), op1(_op1)
     {}
@@ -143,11 +143,11 @@ class RegRegRegImmOp : public PredOp
     IntRegIndex dest;
     IntRegIndex op1;
     IntRegIndex op2;
-    uint32_t imm;
+    uint64_t imm;
 
     RegRegRegImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
                    IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2,
-                   uint32_t _imm) :
+                   uint64_t _imm) :
         PredOp(mnem, _machInst, __opClass),
         dest(_dest), op1(_op1), op2(_op2), imm(_imm)
     {}
@@ -194,12 +194,12 @@ class RegRegImmImmOp : public PredOp
   protected:
     IntRegIndex dest;
     IntRegIndex op1;
-    uint32_t imm1;
-    uint32_t imm2;
+    uint64_t imm1;
+    uint64_t imm2;
 
     RegRegImmImmOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
                    IntRegIndex _dest, IntRegIndex _op1,
-                   uint32_t _imm1, uint32_t _imm2) :
+                   uint64_t _imm1, uint64_t _imm2) :
         PredOp(mnem, _machInst, __opClass),
         dest(_dest), op1(_op1), imm1(_imm1), imm2(_imm2)
     {}
@@ -211,13 +211,13 @@ class RegImmRegShiftOp : public PredOp
 {
   protected:
     IntRegIndex dest;
-    uint32_t imm;
+    uint64_t imm;
     IntRegIndex op1;
     int32_t shiftAmt;
     ArmShiftType shiftType;
 
     RegImmRegShiftOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass,
-                     IntRegIndex _dest, uint32_t _imm, IntRegIndex _op1,
+                     IntRegIndex _dest, uint64_t _imm, IntRegIndex _op1,
                      int32_t _shiftAmt, ArmShiftType _shiftType) :
         PredOp(mnem, _machInst, __opClass),
         dest(_dest), imm(_imm), op1(_op1),
index 771b6d784db3ccba0a3596a818ac9ac8658832ac..e880b03ec7eeaf5234cb6bac166986a0e712bad3 100644 (file)
@@ -105,13 +105,13 @@ class %(class_name)s : public %(base_class)s
   protected:
     public:
         // Constructor
-        %(class_name)s(ExtMachInst machInst, uint32_t _imm);
+        %(class_name)s(ExtMachInst machInst, uint64_t _imm);
         %(BasicExecDeclare)s
 };
 }};
 
 def template ImmOpConstructor {{
-    inline %(class_name)s::%(class_name)s(ExtMachInst machInst, uint32_t _imm)
+    inline %(class_name)s::%(class_name)s(ExtMachInst machInst, uint64_t _imm)
         : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _imm)
     {
         %(constructor)s;
@@ -147,7 +147,7 @@ class %(class_name)s : public %(base_class)s
         // Constructor
         %(class_name)s(ExtMachInst machInst,
                        IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _op2,
-                       uint32_t _imm);
+                       uint64_t _imm);
         %(BasicExecDeclare)s
 };
 }};
@@ -157,7 +157,7 @@ def template RegRegRegImmOpConstructor {{
                                           IntRegIndex _dest,
                                           IntRegIndex _op1,
                                           IntRegIndex _op2,
-                                          uint32_t _imm)
+                                          uint64_t _imm)
         : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
                          _dest, _op1, _op2, _imm)
     {
@@ -223,7 +223,7 @@ class %(class_name)s : public %(base_class)s
         // Constructor
         %(class_name)s(ExtMachInst machInst,
                        IntRegIndex _dest, IntRegIndex _op1,
-                       uint32_t _imm1, uint32_t _imm2);
+                       uint64_t _imm1, uint64_t _imm2);
         %(BasicExecDeclare)s
 };
 }};
@@ -232,8 +232,8 @@ def template RegRegImmImmOpConstructor {{
     inline %(class_name)s::%(class_name)s(ExtMachInst machInst,
                                           IntRegIndex _dest,
                                           IntRegIndex _op1,
-                                          uint32_t _imm1,
-                                          uint32_t _imm2)
+                                          uint64_t _imm1,
+                                          uint64_t _imm2)
         : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
                          _dest, _op1, _imm1, _imm2)
     {
@@ -248,7 +248,7 @@ class %(class_name)s : public %(base_class)s
     public:
         // Constructor
         %(class_name)s(ExtMachInst machInst,
-                       IntRegIndex _dest, uint32_t _imm, IntRegIndex _op1);
+                       IntRegIndex _dest, uint64_t _imm, IntRegIndex _op1);
         %(BasicExecDeclare)s
 };
 }};
@@ -256,7 +256,7 @@ class %(class_name)s : public %(base_class)s
 def template RegImmRegOpConstructor {{
     inline %(class_name)s::%(class_name)s(ExtMachInst machInst,
                                           IntRegIndex _dest,
-                                          uint32_t _imm,
+                                          uint64_t _imm,
                                           IntRegIndex _op1)
         : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s,
                          _dest, _imm, _op1)
@@ -272,7 +272,7 @@ class %(class_name)s : public %(base_class)s
     public:
         // Constructor
         %(class_name)s(ExtMachInst machInst,
-                       IntRegIndex _dest, uint32_t _imm, IntRegIndex _op1,
+                       IntRegIndex _dest, uint64_t _imm, IntRegIndex _op1,
                        int32_t _shiftAmt, ArmShiftType _shiftType);
         %(BasicExecDeclare)s
 };
@@ -281,7 +281,7 @@ class %(class_name)s : public %(base_class)s
 def template RegImmRegShiftOpConstructor {{
     inline %(class_name)s::%(class_name)s(ExtMachInst machInst,
                                           IntRegIndex _dest,
-                                          uint32_t _imm,
+                                          uint64_t _imm,
                                           IntRegIndex _op1,
                                           int32_t _shiftAmt,
                                           ArmShiftType _shiftType)