[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8 01/17] x86: Support compiling with indirect branch thunks
>>> On 12.01.18 at 19:00, <andrew.cooper3@xxxxxxxxxx> wrote: > --- a/xen/arch/x86/Rules.mk > +++ b/xen/arch/x86/Rules.mk > @@ -30,3 +30,10 @@ CFLAGS += -fno-asynchronous-unwind-tables > ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n) > CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE > endif > + > +# Compile with thunk-extern, indirect-branch-register if avaiable. > +ifneq ($(call cc-option,$(CC),-mindirect-branch-register,n),n) > +CFLAGS += -mindirect-branch=thunk-extern -mindirect-branch-register > +CFLAGS += -DCONFIG_INDIRECT_THUNK > +export CONFIG_INDIRECT_THUNK=y > +endif Still not a proper config option? > --- /dev/null > +++ b/xen/arch/x86/indirect-thunk.S > @@ -0,0 +1,38 @@ > +/* > + * Implement __x86_indirect_thunk_* symbols for use with compatbile compilers > + * and the -mindirect-branch=thunk-extern -mindirect-branch-register options. > + * > + * Copyright (c) 2017-2018 Citrix Systems Ltd. > + * > + * This source code is licensed under the GNU General Public License, > + * Version 2. See the file COPYING for more details. > + */ > + .file __FILE__ > + > +#include <asm/asm_defns.h> > + > +.macro IND_THUNK_RETPOLINE reg:req > + call 2f > +1: > + lfence > + jmp 1b > +2: As noted in a couple of other places, I'd prefer if numeric labels weren't used in macros (and especially new ones), in favor of .L ones utilizing \@. > + mov %\reg, (%rsp) > + ret > +.endm > + > +/* > + * Build the __x86_indirect_thunk_* symbols. Currently implement the > + * retpoline thunk only. > + */ > +.macro GEN_INDIRECT_THUNK reg:req > + .section .text.__x86_indirect_thunk_\reg, "ax", @progbits > + > +ENTRY(__x86_indirect_thunk_\reg) > + IND_THUNK_RETPOLINE \reg > +.endm Still unnecessary leading underscores in the section name? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |