Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sparc: Add asm/asm.h

This will contain macros that help share assembler code
between the 32-bit and 64-bit platform.

Signed-off-by: David S. Miller <davem@davemloft.net>

+40
+40
arch/sparc/include/asm/asm.h
··· 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 */