Re: [PATCH 2/6] powerpc sstep: Add darn instruction emulation
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2019-02-20 00:52:25
Sandipan Das [off-list ref] 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
quoted hunk ↗ jump to hunk
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