MERGE-master-patchset-edits
[linux-2.6/openmoko-kernel.git] / arch / avr32 / lib / __avr32_lsr64.S
blobe65bb7f0d24c825e4abfce7f93022f18af12b785
1 /*
2  * Copyright (C) 2005-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  */
9         /*
10          * DWtype __avr32_lsr64(DWtype u, word_type b)
11          */
12         .text
13         .global __avr32_lsr64
14         .type   __avr32_lsr64,@function
15 __avr32_lsr64:
16         cp.w    r12, 0
17         reteq   r12
19         rsub    r9, r12, 32
20         brle    1f
22         lsl     r8, r11, r9
23         lsr     r11, r11, r12
24         lsr     r10, r10, r12
25         or      r10, r8
26         retal   r12
28 1:      neg     r9
29         lsr     r10, r11, r9
30         mov     r11, 0
31         retal   r12