> From: "Theo de Raadt" <dera...@openbsd.org> > Date: Mon, 16 Mar 2020 19:13:13 -0600 > > ok deraadt > > Next up, to figure out the right plan for ofw. > > Thank you so much for figuring out these two details. > > How are the bootblocks faring?
I believe somebody already tested the bootloader. Doesn't hurt to try again though. > And userland? base was in pretty good shape already and I'm rebuilding now that the ABI fix is in. Haven't tried xenocara yet. > George Koehler <kern...@gmail.com> wrote: > > > On Mon, 16 Mar 2020 12:54:52 +0100 (CET) > > Mark Kettenis <mark.kette...@xs4all.nl> wrote: > > > > > I had a look at what NetBSD does, and they use '%L0' instead of > > > '%0+1'. As far as I can tell this works on both gcc and clang. The > > > diff below produces a working kernel when building with gcc. Not yet > > > in a position to test a clang-built kernel myself yet. But if this > > > produces a working kernel with clang as well, I'd prefer this diff > > > instead of yours. > > > > Yes, the clang kernel is working with your %L0 diff and the noinline > > stuff. I now prefer your %L0 diff, ok gkoehler@ > > > > "mftb %L0" becomes "mftb ${0:L}" in LLVM IR (clang -S -emit-llvm), > > then LLVM handles the 'L' in PPCAsmPrinter::PrintAsmOperand in > > /usr/src/gnu/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp > > > > > Index: arch/powerpc/include/cpu.h > > > =================================================================== > > > RCS file: /cvs/src/sys/arch/powerpc/include/cpu.h,v > > > retrieving revision 1.65 > > > diff -u -p -r1.65 cpu.h > > > --- arch/powerpc/include/cpu.h 23 Mar 2019 05:27:53 -0000 1.65 > > > +++ arch/powerpc/include/cpu.h 16 Mar 2020 11:30:42 -0000 > > > @@ -336,7 +336,7 @@ ppc_mftb(void) > > > u_long scratch; > > > u_int64_t tb; > > > > > > - __asm volatile ("1: mftbu %0; mftb %0+1; mftbu %1;" > > > + __asm volatile ("1: mftbu %0; mftb %L0; mftbu %1;" > > > " cmpw 0,%0,%1; bne 1b" : "=r"(tb), "=r"(scratch)); > > > return tb; > > > } > > > > > > -- > > George Koehler <kern...@gmail.com> > > >