On 20/06/16 09:48, Chris Smart wrote: > On Fri, Jun 17, 2016 at 05:20:05PM +1000, Balbir Singh wrote: >> >> >> On 17/06/16 09:33, Chris Smart wrote: > > [snip] > >>> + >>> + /* >>> + * ISA 3.0 (such as P9) copy, copy_first, paste and paste_last >>> alignment >>> + * check. >>> + * >>> + * Send a SIGBUS to the process that caused the fault. >>> + * >>> + * We do not emulate these because paste may contain additional >>> metadata >>> + * when pasting to a co-processor. Furthermore, paste_last is the >>> + * synchronisation point for preceding copy/paste sequences. >>> + */ >>> + if ((instruction & 0xfc0006fe) == PPC_INST_COPY) >>> + return -EIO; >> >> Should this all be under cpu_has_feature(CPU_FTR_ARCH_300)? >> > > I'm not sure we should or not. That instruction only exists on those > machines so is it worth adding an additional check when the next check > will fail anyway? > > I guess it would reduce non ISA 3.0 machines to just a single check rather > than two, but increases ISO 3.0 machines to three. >
Ideally we can do features and fixups, but that today works mostly for the assembly code we have. In this case we might get away by doing the if and "&", I would recommend adding a branch hint if (unlikely(...)) Balbir Singh _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev