|
@@ -1804,6 +1804,7 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
|
|
op->xerval |= XER_CA;
|
|
op->xerval |= XER_CA;
|
|
else
|
|
else
|
|
op->xerval &= ~XER_CA;
|
|
op->xerval &= ~XER_CA;
|
|
|
|
+ set_ca32(op, op->xerval & XER_CA);
|
|
goto logical_done;
|
|
goto logical_done;
|
|
|
|
|
|
case 824: /* srawi */
|
|
case 824: /* srawi */
|
|
@@ -1816,6 +1817,7 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
|
|
op->xerval |= XER_CA;
|
|
op->xerval |= XER_CA;
|
|
else
|
|
else
|
|
op->xerval &= ~XER_CA;
|
|
op->xerval &= ~XER_CA;
|
|
|
|
+ set_ca32(op, op->xerval & XER_CA);
|
|
goto logical_done;
|
|
goto logical_done;
|
|
|
|
|
|
#ifdef __powerpc64__
|
|
#ifdef __powerpc64__
|
|
@@ -1845,6 +1847,7 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
|
|
op->xerval |= XER_CA;
|
|
op->xerval |= XER_CA;
|
|
else
|
|
else
|
|
op->xerval &= ~XER_CA;
|
|
op->xerval &= ~XER_CA;
|
|
|
|
+ set_ca32(op, op->xerval & XER_CA);
|
|
goto logical_done;
|
|
goto logical_done;
|
|
|
|
|
|
case 826: /* sradi with sh_5 = 0 */
|
|
case 826: /* sradi with sh_5 = 0 */
|
|
@@ -1858,6 +1861,7 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
|
|
op->xerval |= XER_CA;
|
|
op->xerval |= XER_CA;
|
|
else
|
|
else
|
|
op->xerval &= ~XER_CA;
|
|
op->xerval &= ~XER_CA;
|
|
|
|
+ set_ca32(op, op->xerval & XER_CA);
|
|
goto logical_done;
|
|
goto logical_done;
|
|
#endif /* __powerpc64__ */
|
|
#endif /* __powerpc64__ */
|
|
|
|
|