| 
									
										
										
										
											2012-02-18 17:50:06 +01:00
										 |  |  | #ifndef __ASM_ARM_INSN_H
 | 
					
						
							|  |  |  | #define __ASM_ARM_INSN_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-18 17:52:41 +01:00
										 |  |  | static inline unsigned long | 
					
						
							|  |  |  | arm_gen_nop(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #ifdef CONFIG_THUMB2_KERNEL
 | 
					
						
							|  |  |  | 	return 0xf3af8000; /* nop.w */ | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | 	return 0xe1a00000; /* mov r0, r0 */ | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-18 17:50:06 +01:00
										 |  |  | unsigned long | 
					
						
							|  |  |  | __arm_gen_branch(unsigned long pc, unsigned long addr, bool link); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline unsigned long | 
					
						
							|  |  |  | arm_gen_branch(unsigned long pc, unsigned long addr) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return __arm_gen_branch(pc, addr, false); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline unsigned long | 
					
						
							|  |  |  | arm_gen_branch_link(unsigned long pc, unsigned long addr) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return __arm_gen_branch(pc, addr, true); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |