From: Nathanael Premillieu Date: Wed, 12 Dec 2012 15:50:16 +0000 (-0600) Subject: arm: set movret_uop as conditional or unconditional control X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=84fc57bfe6b5a9130d7ed27ee1e3fc1e06f80d08;p=gem5.git arm: set movret_uop as conditional or unconditional control A flag was missing for the movret_uop microop instruction. This patch adds that flag when the instruction is used, not directly in the constructor of the instruction. Committed by: Nilay Vaish --- diff --git a/src/arch/arm/insts/macromem.cc b/src/arch/arm/insts/macromem.cc index d05ac7728..decd194c4 100644 --- a/src/arch/arm/insts/macromem.cc +++ b/src/arch/arm/insts/macromem.cc @@ -145,6 +145,10 @@ MacroMemOp::MacroMemOp(const char *mnem, ExtMachInst machInst, // register. if (load && reg == INTREG_PC && exception_ret) { *++uop = new MicroUopRegMovRet(machInst, 0, INTREG_UREG1); + if (!(condCode == COND_AL || condCode == COND_UC)) + (*uop)->setFlag(StaticInst::IsCondControl); + else + (*uop)->setFlag(StaticInst::IsUncondControl); } else if (load) { *++uop = new MicroUopRegMov(machInst, regIdx, INTREG_UREG1); if (reg == INTREG_PC) {