aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/include/asm/asm.h40
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 */