| 
									
										
										
										
											2006-10-24 10:12:44 +02:00
										 |  |  | /* | 
					
						
							|  |  |  |  * Copyright (C) 2004-2006 Atmel Corporation | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify
 | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2 as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.text | 
					
						
							|  |  |  | .Lnot_word_aligned: | 
					
						
							|  |  |  | 1:	ld.ub	r8, r12[0] | 
					
						
							|  |  |  | 	sub	r10, 1 | 
					
						
							|  |  |  | 	st.b	r11++, r8 | 
					
						
							|  |  |  | 	reteq	r12 | 
					
						
							|  |  |  | 	tst	r11, r9 | 
					
						
							|  |  |  | 	brne	1b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* fall through */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.global	__raw_readsb
 | 
					
						
							|  |  |  | 	.type	__raw_readsb,@function
 | 
					
						
							|  |  |  | __raw_readsb: | 
					
						
							|  |  |  | 	cp.w	r10, 0 | 
					
						
							|  |  |  | 	mov	r9, 3 | 
					
						
							|  |  |  | 	reteq	r12 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	tst	r11, r9 | 
					
						
							|  |  |  | 	brne	.Lnot_word_aligned | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	sub	r10, 4 | 
					
						
							|  |  |  | 	brlt	2f | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 1:	ldins.b	r8:t, r12[0] | 
					
						
							|  |  |  | 	ldins.b	r8:u, r12[0] | 
					
						
							|  |  |  | 	ldins.b	r8:l, r12[0] | 
					
						
							|  |  |  | 	ldins.b r8:b, r12[0] | 
					
						
							|  |  |  | 	st.w	r11++, r8 | 
					
						
							|  |  |  | 	sub	r10, 4 | 
					
						
							|  |  |  | 	brge	1b | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 2:	sub	r10, -4 | 
					
						
							|  |  |  | 	reteq	r12 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-09 14:16:06 +02:00
										 |  |  | 3:	ld.ub	r8, r12[0] | 
					
						
							| 
									
										
										
										
											2006-10-24 10:12:44 +02:00
										 |  |  | 	sub	r10, 1 | 
					
						
							|  |  |  | 	st.b	r11++, r8 | 
					
						
							|  |  |  | 	brne	3b | 
					
						
							| 
									
										
										
										
											2006-11-06 14:06:45 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	retal	r12 |