On Mon, Sep 03, 2018 at 08:49:38PM +0530, Sandipan Das wrote: > +#ifdef __powerpc64__ > + case 265: /* modud */ > + if (!cpu_has_feature(CPU_FTR_ARCH_300)) > + return -1; > + op->val = regs->gpr[ra] % regs->gpr[rb]; > + goto compute_done; > +#endif
The mod instruction has special cases that aren't handled by this C code, too (divide by 0, or signed division of the most negative number by -1). For the mod intruction the behaviour is undefined in those cases, but you probably should force some specific behaviour. You don't want the kernel to execute a trap instruction, etc. :-) Segher