OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [avr32/] [lib/] [clear_user.S] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
/*
2
 * Copyright 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
#include 
9
#include 
10
#include 
11
 
12
        .text
13
        .align  1
14
        .global clear_user
15
        .type   clear_user, "function"
16
clear_user:
17
        branch_if_kernel r8, __clear_user
18
        ret_if_privileged r8, r12, r11, r11
19
 
20
        .global __clear_user
21
        .type   __clear_user, "function"
22
__clear_user:
23
        mov     r9, r12
24
        mov     r8, 0
25
        andl    r9, 3, COH
26
        brne    5f
27
 
28
1:      sub     r11, 4
29
        brlt    2f
30
 
31
10:     st.w    r12++, r8
32
        sub     r11, 4
33
        brge    10b
34
 
35
2:      sub     r11, -4
36
        reteq   0
37
 
38
        /* Unaligned count or address */
39
        bld     r11, 1
40
        brcc    12f
41
11:     st.h    r12++, r8
42
        sub     r11, 2
43
        reteq   0
44
12:     st.b    r12++, r8
45
        retal   0
46
 
47
        /* Unaligned address */
48
5:      cp.w    r11, 4
49
        brlt    2b
50
 
51
        lsl     r9, 2
52
        add     pc, pc, r9
53
13:     st.b    r12++, r8
54
        sub     r11, 1
55
14:     st.b    r12++, r8
56
        sub     r11, 1
57
15:     st.b    r12++, r8
58
        sub     r11, 1
59
        rjmp    1b
60
 
61
        .size   clear_user, . - clear_user
62
        .size   __clear_user, . - __clear_user
63
 
64
        .section .fixup, "ax"
65
        .align  1
66
18:     sub     r11, -4
67
19:     retal   r11
68
 
69
        .section __ex_table, "a"
70
        .align  2
71
        .long   10b, 18b
72
        .long   11b, 19b
73
        .long   12b, 19b
74
        .long   13b, 19b
75
        .long   14b, 19b
76
        .long   15b, 19b

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.