On Thu, 23 Jul 2015 12:42:15 +0200
Peter Zijlstra <[email protected]> wrote:
> static __always_inline bool arch_static_branch_jump(struct static_key *key,
> bool inv)
> {
> if (!inv) {
> asm_volatile_goto("1:"
> "jmp %l[l_yes]\n\t"
And what happens when this gets converted to a two byte jump?
-- Steve
> ".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);
> } else {
> asm_volatile_goto("1:"
> "jmp %l[l_yes]\n\t"
> ".pushsection __jump_table_inv, \"aw\" \n\t"
> _ASM_ALIGN "\n\t"
> _ASM_PTR "1b, %l[l_yes], %c0 \n\t"
> ".popsection \n\t"
> : : "i" (key) : : l_yes);
> }
> return false;
> l_yes:
> return true;
> }
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/