>>> On 13.02.18 at 15:41, <andrew.coop...@citrix.com> wrote: > On 13/02/18 14:22, Jan Beulich wrote: >>>>> On 12.02.18 at 12:23, <andrew.coop...@citrix.com> wrote: >>> --- a/xen/include/asm-x86/alternative.h >>> +++ b/xen/include/asm-x86/alternative.h >>> @@ -65,11 +65,6 @@ extern void alternative_instructions(void); >>> ALTERNATIVE(oldinstr, newinstr1, feature1) \ >>> ALTERNATIVE_N(newinstr2, feature2, 2) >>> >>> -#define ALTERNATIVE_3(oldinstr, newinstr1, feature1, newinstr2, feature2, \ >>> - newinstr3, feature3) \ >>> - ALTERNATIVE_2(oldinstr, newinstr1, feature1, newinstr2, feature2) \ >>> - ALTERNATIVE_N(newinstr3, feature3, 3) >>> - >>> /* >>> * Alternative instructions for different CPU types or capabilities. >>> * >> While this one is fine, ... >> >>> @@ -118,26 +113,6 @@ extern void alternative_instructions(void); >>> newinstr2, feature2) \ >>> : output : input) >>> >>> -/* >>> - * This is similar to alternative_io. But it has three features and >>> - * respective instructions. >>> - * >>> - * If CPU has feature3, newinstr3 is used. >>> - * Otherwise, if CPU has feature2, newinstr2 is used. >>> - * Otherwise, if CPU has feature1, newinstr1 is used. >>> - * Otherwise, oldinstr is used. >>> - */ >>> -#define alternative_io_3(oldinstr, newinstr1, feature1, newinstr2, \ >>> - feature2, newinstr3, feature3, output, \ >>> - input...) \ >>> - asm volatile(ALTERNATIVE_3(oldinstr, newinstr1, feature1, \ >>> - newinstr2, feature2, newinstr3, \ >>> - feature3) \ >>> - : output : input) >>> - >>> -/* Use this macro(s) if you need more than one output parameter. */ >>> -#define ASM_OUTPUT2(a...) a >> ... I'm having patches to post which use both of these, so I'd >> very much prefer them to not go away. It is simply a lack of time >> which resulted in me not having posted that series already. > > In which case I'll need to review that patch before commenting on this > one (i.e. whether it actually needs to be an alternative_3, or whether > there is a shorter way to do it). > > The problem is that the gas_max() expression expands its parameters 5 > times, and ISTR a report on LKML saying that older version of GAS > couldn't cope with the eventual expansion of the 3-replacement version.
As per my earlier reply, with ASM_OUTPUT2() retained Reviewed-by: Jan Beulich <jbeul...@suse.com> provided all of this (minus patch 7) goes in together (at which point I'll have quite some re-basing fun). Jan _______________________________________________ Xen-devel mailing list Xenemail@example.com https://lists.xenproject.org/mailman/listinfo/xen-devel