Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / tools / testing / selftests / powerpc / copyloops / asm / ppc_asm.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __SELFTESTS_POWERPC_PPC_ASM_H
3 #define __SELFTESTS_POWERPC_PPC_ASM_H
4 #include <ppc-asm.h>
5
6 #define CONFIG_ALTIVEC
7
8 #define r1      1
9
10 #define R14 r14
11 #define R15 r15
12 #define R16 r16
13 #define R17 r17
14 #define R18 r18
15 #define R19 r19
16 #define R20 r20
17 #define R21 r21
18 #define R22 r22
19 #define R29 r29
20 #define R30 r30
21 #define R31 r31
22
23 #define STACKFRAMESIZE  256
24 #define STK_REG(i)      (112 + ((i)-14)*8)
25
26 #define _GLOBAL(A) FUNC_START(test_ ## A)
27 #define _GLOBAL_TOC(A) _GLOBAL(A)
28 #define _GLOBAL_TOC_KASAN(A) _GLOBAL(A)
29
30 #define PPC_MTOCRF(A, B)        mtocrf A, B
31
32 #define EX_TABLE(x, y)                  \
33         .section __ex_table,"a";        \
34         .8byte  x, y;                   \
35         .previous
36
37 #define BEGIN_FTR_SECTION               .if test_feature
38 #define FTR_SECTION_ELSE                .else
39 #define ALT_FTR_SECTION_END_IFCLR(x)    .endif
40 #define ALT_FTR_SECTION_END_IFSET(x)    .endif
41 #define ALT_FTR_SECTION_END(x, y)       .endif
42 #define END_FTR_SECTION_IFCLR(x)        .endif
43 #define END_FTR_SECTION_IFSET(x)        .endif
44
45 /* Default to taking the first of any alternative feature sections */
46 test_feature = 1
47
48 #endif /* __SELFTESTS_POWERPC_PPC_ASM_H */