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 <nilay@cs.wisc.edu>
This commit is contained in:
Nathanael Premillieu 2012-12-12 09:50:16 -06:00
parent 141ee38794
commit 84fc57bfe6

View file

@ -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) {