我一直试图将一些GNU扩展转换为实际标准C,因此它将在clang上运行,知道标准C而不是GNU扩展,我有点亏.
__asm__ (goto("1:"
STATIC_KEY_INITIAL_NOP
".pushsection __jump_table, \"aw\" \n\t"
_ASM_ALIGN "\n\t"
_ASM_PTR "1b, %l[l_yes], %c0 \n\t"
".popsection \n\t"
: : "i" (key) : : l_yes););
Run Code Online (Sandbox Code Playgroud)
我试图把它变成实际的asm,但还没有成功.
如果你很好奇,这是我刚刚建立在clang上的内核的一部分,除了那一部分.