1 | /* SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 |
2 | |
3 | Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, |
4 | 2004, 2005, 2006 |
5 | Free Software Foundation, Inc. |
6 | */ |
7 | |
8 | !! libgcc routines for the Renesas / SuperH SH CPUs. |
9 | !! Contributed by Steve Chamberlain. |
10 | !! sac@cygnus.com |
11 | |
12 | !! ashiftrt_r4_x, ___ashrsi3, ___ashlsi3, ___lshrsi3 routines |
13 | !! recoded in assembly by Toshiyasu Morita |
14 | !! tm@netcom.com |
15 | |
16 | /* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and |
17 | ELF local label prefixes by J"orn Rennecke |
18 | amylaar@cygnus.com */ |
19 | |
20 | .global __ashiftrt_r4_0 |
21 | .global __ashiftrt_r4_1 |
22 | .global __ashiftrt_r4_2 |
23 | .global __ashiftrt_r4_3 |
24 | .global __ashiftrt_r4_4 |
25 | .global __ashiftrt_r4_5 |
26 | .global __ashiftrt_r4_6 |
27 | .global __ashiftrt_r4_7 |
28 | .global __ashiftrt_r4_8 |
29 | .global __ashiftrt_r4_9 |
30 | .global __ashiftrt_r4_10 |
31 | .global __ashiftrt_r4_11 |
32 | .global __ashiftrt_r4_12 |
33 | .global __ashiftrt_r4_13 |
34 | .global __ashiftrt_r4_14 |
35 | .global __ashiftrt_r4_15 |
36 | .global __ashiftrt_r4_16 |
37 | .global __ashiftrt_r4_17 |
38 | .global __ashiftrt_r4_18 |
39 | .global __ashiftrt_r4_19 |
40 | .global __ashiftrt_r4_20 |
41 | .global __ashiftrt_r4_21 |
42 | .global __ashiftrt_r4_22 |
43 | .global __ashiftrt_r4_23 |
44 | .global __ashiftrt_r4_24 |
45 | .global __ashiftrt_r4_25 |
46 | .global __ashiftrt_r4_26 |
47 | .global __ashiftrt_r4_27 |
48 | .global __ashiftrt_r4_28 |
49 | .global __ashiftrt_r4_29 |
50 | .global __ashiftrt_r4_30 |
51 | .global __ashiftrt_r4_31 |
52 | .global __ashiftrt_r4_32 |
53 | |
54 | .align 1 |
55 | __ashiftrt_r4_32: |
56 | __ashiftrt_r4_31: |
57 | rotcl r4 |
58 | rts |
59 | subc r4,r4 |
60 | __ashiftrt_r4_30: |
61 | shar r4 |
62 | __ashiftrt_r4_29: |
63 | shar r4 |
64 | __ashiftrt_r4_28: |
65 | shar r4 |
66 | __ashiftrt_r4_27: |
67 | shar r4 |
68 | __ashiftrt_r4_26: |
69 | shar r4 |
70 | __ashiftrt_r4_25: |
71 | shar r4 |
72 | __ashiftrt_r4_24: |
73 | shlr16 r4 |
74 | shlr8 r4 |
75 | rts |
76 | exts.b r4,r4 |
77 | __ashiftrt_r4_23: |
78 | shar r4 |
79 | __ashiftrt_r4_22: |
80 | shar r4 |
81 | __ashiftrt_r4_21: |
82 | shar r4 |
83 | __ashiftrt_r4_20: |
84 | shar r4 |
85 | __ashiftrt_r4_19: |
86 | shar r4 |
87 | __ashiftrt_r4_18: |
88 | shar r4 |
89 | __ashiftrt_r4_17: |
90 | shar r4 |
91 | __ashiftrt_r4_16: |
92 | shlr16 r4 |
93 | rts |
94 | exts.w r4,r4 |
95 | __ashiftrt_r4_15: |
96 | shar r4 |
97 | __ashiftrt_r4_14: |
98 | shar r4 |
99 | __ashiftrt_r4_13: |
100 | shar r4 |
101 | __ashiftrt_r4_12: |
102 | shar r4 |
103 | __ashiftrt_r4_11: |
104 | shar r4 |
105 | __ashiftrt_r4_10: |
106 | shar r4 |
107 | __ashiftrt_r4_9: |
108 | shar r4 |
109 | __ashiftrt_r4_8: |
110 | shar r4 |
111 | __ashiftrt_r4_7: |
112 | shar r4 |
113 | __ashiftrt_r4_6: |
114 | shar r4 |
115 | __ashiftrt_r4_5: |
116 | shar r4 |
117 | __ashiftrt_r4_4: |
118 | shar r4 |
119 | __ashiftrt_r4_3: |
120 | shar r4 |
121 | __ashiftrt_r4_2: |
122 | shar r4 |
123 | __ashiftrt_r4_1: |
124 | rts |
125 | shar r4 |
126 | __ashiftrt_r4_0: |
127 | rts |
128 | nop |
129 | |