On 11/01/2018 13:07, David Hildenbrand wrote: >>> >>> +static inline void lctlg(int cr, uint64_t value) >>> +{ >>> + asm volatile( >>> + " lctlg %1,%1,%0\n" >>> + : : "Q" (value), "i" (cr)); >> Doesn't the compiler complain here? I though that "i" is only possible >> with constants? I guess the compiler is smart enough to replace it with >> the right constants, since this is an inline function. But maybe better >> play safe and turn this into a macro instead. > This works as it gets inlined. asm macros is frowned upon, no? > Then please use always_inline. Paolo