On 20/12/2019 13:41, Jan Beulich wrote: > In a pure PV environment (the PV shim in particular) we don't really > need emulation of all these. To limit #ifdef-ary utilize some of the > CASE_*() macros we have, by providing variants expanding to > (effectively) nothing (really a label, which in turn requires passing > -Wno-unused-label to the compiler when build such configurations). > > Due to the mixture of macro and #ifdef use, the placement of some of > the #ifdef-s is a little arbitrary. > > The resulting object file's .text is less than half the size of the > original, and looks to also be compiling a little more quickly. > > This is meant as a first step; more parts can likely be disabled down > the road.
Presumably we can drop everything but the onebyte and twobyte tables, and VEX/EVEX prefix parsing logic? > > Suggested-by: Andrew Cooper <[email protected]> > Signed-off-by: Jan Beulich <[email protected]> > --- > I'll be happy to take suggestions allowing to avoid -Wno-unused-label. I think I'm going to need a little while to figure out how this works. However... > > --- a/xen/arch/x86/Makefile > +++ b/xen/arch/x86/Makefile > @@ -79,6 +79,9 @@ obj-y += hpet.o > obj-y += vm_event.o > obj-y += xstate.o > > +ifneq ($(CONFIG_HVM),y) > +x86_emulate.o: CFLAGS += -Wno-unused-label > +endif > x86_emulate.o: x86_emulate/x86_emulate.c x86_emulate/x86_emulate.h > > efi-y := $(shell if [ ! -r $(BASEDIR)/include/xen/compile.h -o \ > --- a/xen/arch/x86/x86_emulate.c > +++ b/xen/arch/x86/x86_emulate.c > @@ -42,6 +42,12 @@ > } \ > }) > > +#ifndef CONFIG_HVM > +# define X86EMUL_NO_FPU > +# define X86EMUL_NO_MMX > +# define X86EMUL_NO_SIMD > +#endif ... isn't this going to cause problems for the emulator/fuzzer builds? On that subject, it would be very helpful to at least be able to configure reduced builds from these utilities. ~Andrew _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel
