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] - Rev 3

Compare with Previous | Blame | View Log

/*
 * Copyright 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.
 */
#include <asm/page.h>
#include <asm/thread_info.h>
#include <asm/asm.h>

        .text
        .align  1
        .global clear_user
        .type   clear_user, "function"
clear_user:
        branch_if_kernel r8, __clear_user
        ret_if_privileged r8, r12, r11, r11

        .global __clear_user
        .type   __clear_user, "function"
__clear_user:
        mov     r9, r12
        mov     r8, 0
        andl    r9, 3, COH
        brne    5f

1:      sub     r11, 4
        brlt    2f

10:     st.w    r12++, r8
        sub     r11, 4
        brge    10b

2:      sub     r11, -4
        reteq   0

        /* Unaligned count or address */
        bld     r11, 1
        brcc    12f
11:     st.h    r12++, r8
        sub     r11, 2
        reteq   0
12:     st.b    r12++, r8
        retal   0

        /* Unaligned address */
5:      cp.w    r11, 4
        brlt    2b

        lsl     r9, 2
        add     pc, pc, r9
13:     st.b    r12++, r8
        sub     r11, 1
14:     st.b    r12++, r8
        sub     r11, 1
15:     st.b    r12++, r8
        sub     r11, 1
        rjmp    1b

        .size   clear_user, . - clear_user
        .size   __clear_user, . - __clear_user

        .section .fixup, "ax"
        .align  1
18:     sub     r11, -4
19:     retal   r11

        .section __ex_table, "a"
        .align  2
        .long   10b, 18b
        .long   11b, 19b
        .long   12b, 19b
        .long   13b, 19b
        .long   14b, 19b
        .long   15b, 19b

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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