xref: /openbmc/linux/arch/sparc/include/asm/asm.h (revision b2441318)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
25c03d590SDavid S. Miller #ifndef _SPARC_ASM_H
35c03d590SDavid S. Miller #define _SPARC_ASM_H
45c03d590SDavid S. Miller 
55c03d590SDavid S. Miller /* Macros to assist the sharing of assembler code between 32-bit and
65c03d590SDavid S. Miller  * 64-bit sparc.
75c03d590SDavid S. Miller  */
85c03d590SDavid S. Miller 
95c03d590SDavid S. Miller #ifdef CONFIG_SPARC64
105c03d590SDavid S. Miller #define BRANCH32(TYPE, PREDICT, DEST) \
115c03d590SDavid S. Miller 	TYPE,PREDICT	%icc, DEST
125c03d590SDavid S. Miller #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \
135c03d590SDavid S. Miller 	TYPE,a,PREDICT	%icc, DEST
145c03d590SDavid S. Miller #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \
155c03d590SDavid S. Miller 	brz,PREDICT	REG, DEST
165c03d590SDavid S. Miller #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \
175c03d590SDavid S. Miller 	brz,a,PREDICT	REG, DEST
185c03d590SDavid S. Miller #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \
195c03d590SDavid S. Miller 	brnz,PREDICT	REG, DEST
205c03d590SDavid S. Miller #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \
215c03d590SDavid S. Miller 	brnz,a,PREDICT	REG, DEST
225c03d590SDavid S. Miller #else
235c03d590SDavid S. Miller #define BRANCH32(TYPE, PREDICT, DEST) \
245c03d590SDavid S. Miller 	TYPE		DEST
255c03d590SDavid S. Miller #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \
265c03d590SDavid S. Miller 	TYPE,a		DEST
275c03d590SDavid S. Miller #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \
285c03d590SDavid S. Miller 	cmp		REG, 0; \
295c03d590SDavid S. Miller 	be		DEST
305c03d590SDavid S. Miller #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \
315c03d590SDavid S. Miller 	cmp		REG, 0; \
325c03d590SDavid S. Miller 	be,a		DEST
335c03d590SDavid S. Miller #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \
345c03d590SDavid S. Miller 	cmp		REG, 0; \
355c03d590SDavid S. Miller 	bne		DEST
365c03d590SDavid S. Miller #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \
375c03d590SDavid S. Miller 	cmp		REG, 0; \
385c03d590SDavid S. Miller 	bne,a		DEST
395c03d590SDavid S. Miller #endif
405c03d590SDavid S. Miller 
415c03d590SDavid S. Miller #endif /* _SPARC_ASM_H */
42