diff options
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/include/asm/asm.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/arch/sparc/include/asm/asm.h b/arch/sparc/include/asm/asm.h new file mode 100644 index 000000000000..e8e1d94b4cc9 --- /dev/null +++ b/arch/sparc/include/asm/asm.h | |||
@@ -0,0 +1,40 @@ | |||
1 | #ifndef _SPARC_ASM_H | ||
2 | #define _SPARC_ASM_H | ||
3 | |||
4 | /* Macros to assist the sharing of assembler code between 32-bit and | ||
5 | * 64-bit sparc. | ||
6 | */ | ||
7 | |||
8 | #ifdef CONFIG_SPARC64 | ||
9 | #define BRANCH32(TYPE, PREDICT, DEST) \ | ||
10 | TYPE,PREDICT %icc, DEST | ||
11 | #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \ | ||
12 | TYPE,a,PREDICT %icc, DEST | ||
13 | #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \ | ||
14 | brz,PREDICT REG, DEST | ||
15 | #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \ | ||
16 | brz,a,PREDICT REG, DEST | ||
17 | #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \ | ||
18 | brnz,PREDICT REG, DEST | ||
19 | #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \ | ||
20 | brnz,a,PREDICT REG, DEST | ||
21 | #else | ||
22 | #define BRANCH32(TYPE, PREDICT, DEST) \ | ||
23 | TYPE DEST | ||
24 | #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \ | ||
25 | TYPE,a DEST | ||
26 | #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \ | ||
27 | cmp REG, 0; \ | ||
28 | be DEST | ||
29 | #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \ | ||
30 | cmp REG, 0; \ | ||
31 | be,a DEST | ||
32 | #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \ | ||
33 | cmp REG, 0; \ | ||
34 | bne DEST | ||
35 | #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \ | ||
36 | cmp REG, 0; \ | ||
37 | bne,a DEST | ||
38 | #endif | ||
39 | |||
40 | #endif /* _SPARC_ASM_H */ | ||