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 */
							 |