On May 27, 2010, at 9:12 AM, Ananth N Mavinakayanahalli wrote: > Hi Paul, > > While we are at it, can we also add nop to the list of emulated > instructions?
Dare I ask why we need to emulate nop? - k > > Ananth > --- > From: Ananth N Mavinakayanahalli <ana...@in.ibm.com> > > Emulate ori 0,0,0 (nop). > > The long winded way is to do: > > case 24: > rd = (instr >> 21) & 0x1f; > if (rd != 0) > break; > rb = (instr >> 11) & 0x1f; > if (rb != 0) > break; > imm = (instr & 0xffff); > if (imm == 0) { > regs->nip += 4; > return 1; > } > break; > > But, the following is more straightforward for this case at least. > > Signed-off-by: Ananth N Mavinakayanahalli <ana...@in.ibm.com> > Signed-off-by: Srikar Dronamraju <sri...@linux.vnet.ibm.com> > --- > arch/powerpc/lib/sstep.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > Index: linux-27may/arch/powerpc/lib/sstep.c > =================================================================== > --- linux-27may.orig/arch/powerpc/lib/sstep.c > +++ linux-27may/arch/powerpc/lib/sstep.c > @@ -412,6 +412,12 @@ int __kprobes emulate_step(struct pt_reg > int err; > mm_segment_t oldfs; > > + /* ori 0,0,0 is a nop. Emulate that too */ > + if (instr == 0x60000000) { > + regs->nip += 4; > + return 1; > + } > + > opcode = instr >> 26; > switch (opcode) { > case 16: /* bc */ > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev