Sandipan Das <sandi...@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

Reply via email to