41 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
	
		
			1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #ifndef _SPARC_ASM_H
 | ||
|  | #define _SPARC_ASM_H
 | ||
|  | 
 | ||
|  | /* Macros to assist the sharing of assembler code between 32-bit and
 | ||
|  |  * 64-bit sparc. | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifdef CONFIG_SPARC64
 | ||
|  | #define BRANCH32(TYPE, PREDICT, DEST) \
 | ||
|  | 	TYPE,PREDICT	%icc, DEST | ||
|  | #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \
 | ||
|  | 	TYPE,a,PREDICT	%icc, DEST | ||
|  | #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \
 | ||
|  | 	brz,PREDICT	REG, DEST | ||
|  | #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \
 | ||
|  | 	brz,a,PREDICT	REG, DEST | ||
|  | #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \
 | ||
|  | 	brnz,PREDICT	REG, DEST | ||
|  | #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \
 | ||
|  | 	brnz,a,PREDICT	REG, DEST | ||
|  | #else
 | ||
|  | #define BRANCH32(TYPE, PREDICT, DEST) \
 | ||
|  | 	TYPE		DEST | ||
|  | #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \
 | ||
|  | 	TYPE,a		DEST | ||
|  | #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \
 | ||
|  | 	cmp		REG, 0; \ | ||
|  | 	be		DEST | ||
|  | #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \
 | ||
|  | 	cmp		REG, 0; \ | ||
|  | 	be,a		DEST | ||
|  | #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \
 | ||
|  | 	cmp		REG, 0; \ | ||
|  | 	bne		DEST | ||
|  | #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \
 | ||
|  | 	cmp		REG, 0; \ | ||
|  | 	bne,a		DEST | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif /* _SPARC_ASM_H */
 |