summaryrefslogtreecommitdiff
path: root/src/arch/arm
diff options
context:
space:
mode:
authorNathanael Premillieu <nathanael.premillieu@irisa.fr>2012-12-12 09:50:33 -0600
committerNathanael Premillieu <nathanael.premillieu@irisa.fr>2012-12-12 09:50:33 -0600
commit3026a116baf0dd31ba42f6aa4027e314f9a00905 (patch)
treebcf6abb5281a1e1dd0d08d507173a78907668e47 /src/arch/arm
parent84fc57bfe6b5a9130d7ed27ee1e3fc1e06f80d08 (diff)
downloadgem5-3026a116baf0dd31ba42f6aa4027e314f9a00905.tar.xz
arm: set uopSet_uop as conditional or unconditional control
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>
Diffstat (limited to 'src/arch/arm')
-rw-r--r--src/arch/arm/isa/templates/macromem.isa3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/arch/arm/isa/templates/macromem.isa b/src/arch/arm/isa/templates/macromem.isa
index a62dec5cf..195204a95 100644
--- a/src/arch/arm/isa/templates/macromem.isa
+++ b/src/arch/arm/isa/templates/macromem.isa
@@ -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;
}
}
}};