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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgcc/] [config/] [lm32/] [_lshrsi3.S] - Blame information for rev 734

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 734 jeremybenn
# _lshrsi3.S for Lattice Mico32
2
# Contributed by Jon Beniston  and Richard Henderson.
3
#
4
# Copyright (C) 2009 Free Software Foundation, Inc.
5
#
6
# This file is free software; you can redistribute it and/or modify it
7
# under the terms of the GNU General Public License as published by the
8
# Free Software Foundation; either version 3, or (at your option) any
9
# later version.
10
#
11
# This file is distributed in the hope that it will be useful, but
12
# WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
# General Public License for more details.
15
#
16
# Under Section 7 of GPL version 3, you are granted additional
17
# permissions described in the GCC Runtime Library Exception, version
18
# 3.1, as published by the Free Software Foundation.
19
#
20
# You should have received a copy of the GNU General Public License and
21
# a copy of the GCC Runtime Library Exception along with this program;
22
# see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
23
# .
24
#
25
 
26
/* Logical right shift.  */
27
 
28
        .global __lshrsi3
29
        .type __lshrsi3,@function
30
 
31
__lshrsi3:
32
        /* Only use 5 LSBs, as that's all the h/w shifter uses.  */
33
        andi    r2, r2, 0x1f
34
        /* Get address of offset into unrolled shift loop to jump to.  */
35
#ifdef __PIC__
36
        lw      r3, (gp+got(__lshrsi3_0))
37
#else
38
        mvhi    r3, hi(__lshrsi3_0)
39
        ori     r3, r3, lo(__lshrsi3_0)
40
#endif
41
        add     r2, r2, r2
42
        add     r2, r2, r2
43
        sub     r3, r3, r2
44
        b       r3
45
 
46
__lshrsi3_31:
47
        srui    r1, r1, 1
48
__lshrsi3_30:
49
        srui    r1, r1, 1
50
__lshrsi3_29:
51
        srui    r1, r1, 1
52
__lshrsi3_28:
53
        srui    r1, r1, 1
54
__lshrsi3_27:
55
        srui    r1, r1, 1
56
__lshrsi3_26:
57
        srui    r1, r1, 1
58
__lshrsi3_25:
59
        srui    r1, r1, 1
60
__lshrsi3_24:
61
        srui    r1, r1, 1
62
__lshrsi3_23:
63
        srui    r1, r1, 1
64
__lshrsi3_22:
65
        srui    r1, r1, 1
66
__lshrsi3_21:
67
        srui    r1, r1, 1
68
__lshrsi3_20:
69
        srui    r1, r1, 1
70
__lshrsi3_19:
71
        srui    r1, r1, 1
72
__lshrsi3_18:
73
        srui    r1, r1, 1
74
__lshrsi3_17:
75
        srui    r1, r1, 1
76
__lshrsi3_16:
77
        srui    r1, r1, 1
78
__lshrsi3_15:
79
        srui    r1, r1, 1
80
__lshrsi3_14:
81
        srui    r1, r1, 1
82
__lshrsi3_13:
83
        srui    r1, r1, 1
84
__lshrsi3_12:
85
        srui    r1, r1, 1
86
__lshrsi3_11:
87
        srui    r1, r1, 1
88
__lshrsi3_10:
89
        srui    r1, r1, 1
90
__lshrsi3_9:
91
        srui    r1, r1, 1
92
__lshrsi3_8:
93
        srui    r1, r1, 1
94
__lshrsi3_7:
95
        srui    r1, r1, 1
96
__lshrsi3_6:
97
        srui    r1, r1, 1
98
__lshrsi3_5:
99
        srui    r1, r1, 1
100
__lshrsi3_4:
101
        srui    r1, r1, 1
102
__lshrsi3_3:
103
        srui    r1, r1, 1
104
__lshrsi3_2:
105
        srui    r1, r1, 1
106
__lshrsi3_1:
107
        srui    r1, r1, 1
108
__lshrsi3_0:
109
        ret

powered by: WebSVN 2.1.0

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