powerpc sstep: Add support for modsw, moduw instructions
This adds emulation support for the following integer instructions: * Modulo Signed Word (modsw) * Modulo Unsigned Word (moduw) Signed-off-by: PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com> Signed-off-by: Sandipan Das <sandipan@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
3e751acba2
commit
6c18007150
|
@ -1708,6 +1708,13 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
|
||||||
case 266: /* add */
|
case 266: /* add */
|
||||||
op->val = regs->gpr[ra] + regs->gpr[rb];
|
op->val = regs->gpr[ra] + regs->gpr[rb];
|
||||||
goto arith_done;
|
goto arith_done;
|
||||||
|
|
||||||
|
case 267: /* moduw */
|
||||||
|
if (!cpu_has_feature(CPU_FTR_ARCH_300))
|
||||||
|
return -1;
|
||||||
|
op->val = (unsigned int) regs->gpr[ra] %
|
||||||
|
(unsigned int) regs->gpr[rb];
|
||||||
|
goto compute_done;
|
||||||
#ifdef __powerpc64__
|
#ifdef __powerpc64__
|
||||||
case 457: /* divdu */
|
case 457: /* divdu */
|
||||||
op->val = regs->gpr[ra] / regs->gpr[rb];
|
op->val = regs->gpr[ra] / regs->gpr[rb];
|
||||||
|
@ -1750,6 +1757,13 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
case 779: /* modsw */
|
||||||
|
if (!cpu_has_feature(CPU_FTR_ARCH_300))
|
||||||
|
return -1;
|
||||||
|
op->val = (int) regs->gpr[ra] %
|
||||||
|
(int) regs->gpr[rb];
|
||||||
|
goto compute_done;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Logical instructions
|
* Logical instructions
|
||||||
|
|
Loading…
Reference in New Issue