On Sun, 2018-01-14 at 13:07 -0800, Linus Torvalds wrote: > On Sun, Jan 14, 2018 at 1:02 PM, David Woodhouse <dw...@infradead.org> wrote: > > > > Review on the GCC patches has led to a request that the thunk symbols > > be changed from e.g. __x86_indirect_thunk_rax to > > __x86_indirect_thunk_ax without the 'r'. > Ok. I think that just makes it easier for us, since then the names are > independent of 32-vs/64, and we don't need to use the _ASM_XY names. > > What about r8-r15? I'm assuming 'r' there is used?
Ah yes, *this* is why I hated it... for 'r8' onwards that is indeed the register names as well as the suffix of the thunk name. But for the legacy registers I have to prepend 'e' or 'r' myself in the macro. So it ends up looking like this: .macro THUNK reg .section .text.__x86.indirect_thunk.\reg ENTRY(__x86_indirect_thunk_\reg) CFI_STARTPROC $done = 0 .irp xreg r8 r9 r10 r11 r12 r13 r14 r15 .ifeqs "\reg", "\xreg" JMP_NOSPEC %\reg $done = 1 .endif .endr .if $done != 1 JMP_NOSPEC %__ASM_REG(\reg) .endif CFI_ENDPROC ENDPROC(__x86_indirect_thunk_\reg) .endm /* * Despite being an assembler file we can't just use .irp here * because __KSYM_DEPS__ only uses the C preprocessor and would * only see one instance of "__x86_indirect_thunk_\reg" rather * than one per register with the correct names. So we do it * the simple and nasty way... */ #define EXPORT_THUNK(reg) EXPORT_SYMBOL(__x86_indirect_thunk_ ## reg) #define GENERATE_THUNK(reg) THUNK reg ; EXPORT_THUNK(reg) GENERATE_THUNK(ax) GENERATE_THUNK(bx) GENERATE_THUNK(cx) GENERATE_THUNK(dx) GENERATE_THUNK(si) GENERATE_THUNK(di) GENERATE_THUNK(bp) #ifdef CONFIG_64BIT GENERATE_THUNK(r8) GENERATE_THUNK(r9) GENERATE_THUNK(r10) GENERATE_THUNK(r11) GENERATE_THUNK(r12) GENERATE_THUNK(r13) GENERATE_THUNK(r14) GENERATE_THUNK(r15) #endif And *that* was the point at which I asked HJ to just use the proper bloody register names :)
smime.p7s
Description: S/MIME cryptographic signature