From: Nathanael Premillieu Date: Wed, 17 Apr 2013 21:07:10 +0000 (-0500) Subject: arm: set ldr_ret_uop as conditional or unconditional control X-Git-Tag: stable_2013_06_16~4 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3ff091bdf401113057c26cf1087cf0e872154265;p=gem5.git arm: set ldr_ret_uop as conditional or unconditional control This patch adds a missing flag to the ldr_ret_uop microop instruction. The flag is added 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 decd194c4..26a916fc7 100644 --- a/src/arch/arm/insts/macromem.cc +++ b/src/arch/arm/insts/macromem.cc @@ -110,6 +110,10 @@ MacroMemOp::MacroMemOp(const char *mnem, ExtMachInst machInst, // This must be the exception return form of ldm. *++uop = new MicroLdrRetUop(machInst, regIdx, INTREG_UREG0, up, addr); + if (!(condCode == COND_AL || condCode == COND_UC)) + (*uop)->setFlag(StaticInst::IsCondControl); + else + (*uop)->setFlag(StaticInst::IsUncondControl); } else { *++uop = new MicroLdrUop(machInst, regIdx, INTREG_UREG0, up, addr);