From 3ff091bdf401113057c26cf1087cf0e872154265 Mon Sep 17 00:00:00 2001 From: Nathanael Premillieu Date: Wed, 17 Apr 2013 16:07:10 -0500 Subject: [PATCH] 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 " --- src/arch/arm/insts/macromem.cc | 4 ++++ 1 file changed, 4 insertions(+) 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); -- 2.30.2