[PATCH 2/6] powerpc sstep: Add darn instruction emulation
Michael Ellerman
mpe at ellerman.id.au
Wed Feb 20 11:50:28 AEDT 2019
Sandipan Das <sandipan at linux.ibm.com> writes:
> This adds emulation support for the following integer instructions:
> * Deliver A Random Number (darn)
This doesn't build with old binutils. We need to support old binutils.
{standard input}:4343: Error: Unrecognized opcode: `darn'
You need to use PPC_DARN().
cheers
> diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
> index b40ec18515bd..18ac0a26c4fc 100644
> --- a/arch/powerpc/lib/sstep.c
> +++ b/arch/powerpc/lib/sstep.c
> @@ -1728,6 +1728,25 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
> (int) regs->gpr[rb];
> goto arith_done;
>
> + case 755: /* darn */
> + if (!cpu_has_feature(CPU_FTR_ARCH_300))
> + return -1;
> + switch (ra & 0x3) {
> + case 0:
> + asm("darn %0,0" : "=r" (op->val));
> + goto compute_done;
> +
> + case 1:
> + asm("darn %0,1" : "=r" (op->val));
> + goto compute_done;
> +
> + case 2:
> + asm("darn %0,2" : "=r" (op->val));
> + goto compute_done;
> + }
> +
> + return -1;
> +
>
> /*
> * Logical instructions
> --
> 2.14.4
More information about the Linuxppc-dev
mailing list