PageRenderTime 113ms CodeModel.GetById 30ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/avr32/lib/io-readsb.S

https://bitbucket.org/thekraven/iscream_thunderc-2.6.35
Assembly | 49 lines | 40 code | 9 blank | 0 comment | 0 complexity | fcd36b21d4e6f5164766906f5b29803f MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
 1/*
 2 * Copyright (C) 2004-2006 Atmel Corporation
 3 *
 4 * This program is free software; you can redistribute it and/or modify
 5 * it under the terms of the GNU General Public License version 2 as
 6 * published by the Free Software Foundation.
 7 */
 8
 9	.text
10.Lnot_word_aligned:
111:	ld.ub	r8, r12[0]
12	sub	r10, 1
13	st.b	r11++, r8
14	reteq	r12
15	tst	r11, r9
16	brne	1b
17
18	/* fall through */
19
20	.global	__raw_readsb
21	.type	__raw_readsb,@function
22__raw_readsb:
23	cp.w	r10, 0
24	mov	r9, 3
25	reteq	r12
26
27	tst	r11, r9
28	brne	.Lnot_word_aligned
29
30	sub	r10, 4
31	brlt	2f
32
331:	ldins.b	r8:t, r12[0]
34	ldins.b	r8:u, r12[0]
35	ldins.b	r8:l, r12[0]
36	ldins.b r8:b, r12[0]
37	st.w	r11++, r8
38	sub	r10, 4
39	brge	1b
40
412:	sub	r10, -4
42	reteq	r12
43
443:	ld.ub	r8, r12[0]
45	sub	r10, 1
46	st.b	r11++, r8
47	brne	3b
48
49	retal	r12