On Mon, Mar 23, 2020 at 11:49 AM Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote: > > So maybe we can find why > commit 76b043848fd2 ("x86/retpoline: Add initial retpoline support") > added THUNK_TARGET with and without "m" constraint, and either: > - remove "m" from THUNK_TARGET. (Maybe this doesn't compile somewhere) > or > - use my above recommendation locally avoiding THUNK_TARGET. We can > use "r" rather than "a" (what Clang would have picked) or "b (what GCC > would have picked) to give the compilers maximal flexibility. So I've sent a patch for the latter; my reason for not pursuing the former is: 1. I assume that the thunk target could be spilled, or a pointer, and we'd like to keep flexibility for the general case of inline asm that doesn't modify the stack pointer. 2. `entry` is local to `handle_external_interrupt_irqoff`; it's not being passed in via pointer as a function parameter. 3. register pressure is irrelevant if the resulting code is incorrect. -- Thanks, ~Nick Desaulniers