On 16/03/18 11:38, Ard Biesheuvel wrote: > On 16 March 2018 at 11:35, Andrew Jones <drjones@xxxxxxxxxx> wrote: >> On Fri, Mar 16, 2018 at 09:31:57AM +0000, Marc Zyngier wrote: >>> On 15/03/18 19:16, James Morse wrote: >>>> >>>> (I had a go at using 'Ush', to let the compiler schedule the adrp, but couldn't >>>> get it to work.) >>> >>> I tried that as well at some point, but couldn't see how to use it. The >>> compiler was never happy with my use of the constraints, so I gave up >>> and did it my way... >>> >> >> What's 'Ush'? I tried to search for it, but came up short. I'm wondering >> what things I can try (and fail) to use it on too :-) >> > > https://gcc.gnu.org/onlinedocs/gccint/Machine-Constraints.html I was hoping that something like: asm("add %0, %1, :lo12:%2" : "=r" (addr) : "Ush" (&s), "S" (&s)) would do the right thing (generating an ADRP), but all I managed was to get the compiler shouting at me (in a rather unhelpful manner). I guess I could have looked into the GCC source code to find out how to use this thing, but life is short. M. -- Jazz is not dead. It just smells funny...