x86/alternative: Add alternative_input_2 to support alternative with two features...
authorFenghua Yu <fenghua.yu@intel.com>
Thu, 29 May 2014 18:12:32 +0000 (11:12 -0700)
committerH. Peter Anvin <hpa@linux.intel.com>
Thu, 29 May 2014 21:24:53 +0000 (14:24 -0700)
commit5b3e83f46a2a7e8625258dbf84a26e7f4032bfa8
treeab8fb7ade5ca31ce2f7b0c7a4a5f13bed218d20a
parentb6f42a4a3c886bd18baf319d433a841ac9942c02
x86/alternative: Add alternative_input_2 to support alternative with two features and input

alternative_input_2() replaces old instruction with new instructions with
input based on two features.

In alternative_input_2(oldinstr, newinstr1, feature1, newinstr2, feature2,
input...),

feature2 has higher priority to replace oldinstr than feature1.

If CPU has feature2, newinstr2 replaces oldinstr and newinstr2 is
executed during run time.

If CPU doesn't have feature2, but it has feature1, newinstr1 replaces oldinstr
and newinstr1 is executed during run time.

If CPU doesn't have feature2 and feature1, oldinstr is executed during run
time.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Link: http://lkml.kernel.org/r/1401387164-43416-5-git-send-email-fenghua.yu@intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/alternative.h