[PATCH 5/5] powerpc/lib/sstep: Add isel instruction emulation
Matt Brown
matthew.brown.dev at gmail.com
Thu Jul 13 13:25:48 AEST 2017
This add emulation for the isel instruction.
Signed-off-by: Matt Brown <matthew.brown.dev at gmail.com>
---
arch/powerpc/lib/sstep.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 3228783..bb0e301 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -1297,6 +1297,16 @@ int analyse_instr(struct instruction_op *op, struct pt_regs *regs,
regs->gpr[ra] = ~(regs->gpr[rd] & regs->gpr[rb]);
goto logical_done;
+ case 585: /* isel */
+ mb = (instr >> 6) & 0x1f; /* bc */
+ val = (regs->ccr >> (mb + 32)) & 1;
+
+ if (val)
+ regs->gpr[rd] = regs->gpr[ra];
+ else
+ regs->gpr[rd] = regs->gpr[rb];
+ goto logical_done;
+
case 922: /* extsh */
regs->gpr[ra] = (signed short) regs->gpr[rd];
goto logical_done;
--
2.9.3
More information about the Linuxppc-dev
mailing list