Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / arm64 / include / asm / alternative-asm.h
1 #ifndef __ASM_ALTERNATIVE_ASM_H
2 #define __ASM_ALTERNATIVE_ASM_H
3
4 #ifdef __ASSEMBLY__
5
6 .macro altinstruction_entry orig_offset alt_offset feature orig_len alt_len
7         .word \orig_offset - .
8         .word \alt_offset - .
9         .hword \feature
10         .byte \orig_len
11         .byte \alt_len
12 .endm
13
14 .macro alternative_insn insn1 insn2 cap
15 661:    \insn1
16 662:    .pushsection .altinstructions, "a"
17         altinstruction_entry 661b, 663f, \cap, 662b-661b, 664f-663f
18         .popsection
19         .pushsection .altinstr_replacement, "ax"
20 663:    \insn2
21 664:    .popsection
22         .if ((664b-663b) != (662b-661b))
23                 .error "Alternatives instruction length mismatch"
24         .endif
25 .endm
26
27 #endif  /*  __ASSEMBLY__  */
28
29 #endif /* __ASM_ALTERNATIVE_ASM_H */