| 
									
										
										
										
											2008-06-19 20:26:19 +02:00
										 |  |  | #ifndef _SPARC64_BACKOFF_H
 | 
					
						
							|  |  |  | #define _SPARC64_BACKOFF_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BACKOFF_LIMIT	(4 * 1024)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_SMP
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BACKOFF_SETUP(reg)	\
 | 
					
						
							|  |  |  | 	mov	1, reg | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-18 22:53:26 -07:00
										 |  |  | #define BACKOFF_LABEL(spin_label, continue_label) \
 | 
					
						
							|  |  |  | 	spin_label | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-19 20:26:19 +02:00
										 |  |  | #define BACKOFF_SPIN(reg, tmp, label)	\
 | 
					
						
							|  |  |  | 	mov	reg, tmp; \ | 
					
						
							|  |  |  | 88:	brnz,pt	tmp, 88b; \ | 
					
						
							|  |  |  | 	 sub	tmp, 1, tmp; \ | 
					
						
							|  |  |  | 	set	BACKOFF_LIMIT, tmp; \ | 
					
						
							|  |  |  | 	cmp	reg, tmp; \ | 
					
						
							|  |  |  | 	bg,pn	%xcc, label; \ | 
					
						
							|  |  |  | 	 nop; \ | 
					
						
							|  |  |  | 	ba,pt	%xcc, label; \ | 
					
						
							|  |  |  | 	 sllx	reg, 1, reg; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BACKOFF_SETUP(reg)
 | 
					
						
							| 
									
										
										
										
											2010-08-18 22:53:26 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define BACKOFF_LABEL(spin_label, continue_label) \
 | 
					
						
							|  |  |  | 	continue_label | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BACKOFF_SPIN(reg, tmp, label)
 | 
					
						
							| 
									
										
										
										
											2008-06-19 20:26:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _SPARC64_BACKOFF_H */
 |