Merge tag 'vfio-v3.19-rc1' of git://github.com/awilliam/linux-vfio
[deliverable/linux.git] / 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 */
This page took 0.037984 seconds and 6 git commands to generate.