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/] [io-readsw.S] - Rev 3

Compare with Previous | Blame | View Log

/*
 * 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.
 */

.Lnot_word_aligned:
        /*
         * Bad alignment will cause a hardware exception, which is as
         * good as anything. No need for us to check for proper alignment.
         */
        ld.uh   r8, r12[0]
        sub     r10, 1
        st.h    r11++, r8

        /* fall through */

        .global __raw_readsw
        .type   __raw_readsw,@function
__raw_readsw:
        cp.w    r10, 0
        reteq   r12
        mov     r9, 3
        tst     r11, r9
        brne    .Lnot_word_aligned

        sub     r10, 2
        brlt    2f

1:      ldins.h r8:t, r12[0]
        ldins.h r8:b, r12[0]
        st.w    r11++, r8
        sub     r10, 2
        brge    1b

2:      sub     r10, -2
        reteq   r12

        ld.uh   r8, r12[0]
        st.h    r11++, r8
        retal   r12

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.