arm: set uopSet_uop as conditional or unconditional control
authorNathanael Premillieu <nathanael.premillieu@irisa.fr>
Wed, 12 Dec 2012 15:50:33 +0000 (09:50 -0600)
committerNathanael Premillieu <nathanael.premillieu@irisa.fr>
Wed, 12 Dec 2012 15:50:33 +0000 (09:50 -0600)
uopSet_uop is microop instruction that has the IsControl flags set, but the
IsCondControl or IsUncondControl flags seems not to be set, neither in
the construction nor where the microop is used. This patch adds the the
flags in the constructor of the instruction (MicroUopSetPCCPSR).

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

src/arch/arm/isa/templates/macromem.isa

index a62dec5cf24ca94197731ab334d5f76415d8bd8a..195204a95e3212b0708638e86a23e87631186327 100644 (file)
@@ -135,9 +135,12 @@ def template MicroSetPCCPSRConstructor {{
     {
         %(constructor)s;
         if (!(condCode == COND_AL || condCode == COND_UC)) {
+            flags[IsCondControl] = true;
             for (int x = 0; x < _numDestRegs; x++) {
                 _srcRegIdx[_numSrcRegs++] = _destRegIdx[x];
             }
+        } else {
+            flags[IsUncondControl] = true;
         }
     }
 }};