Linux Audio

Check our new training course

Loading...
v6.13.7
  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!
 21! __ashlsi3
 22!
 23! Entry:
 24!
 25! r4: Value to shift
 26! r5: Shifts
 27!
 28! Exit:
 29!
 30! r0: Result
 31!
 32! Destroys:
 33!
 34! (none)
 35!
 36! __ashlsi3_r0
 37!
 38! Entry:
 39!
 40! r4: Value to shift
 41! r0: Shifts
 42!
 43! Exit:
 44!
 45! r0: Result
 46!
 47! Destroys:
 48!
 49! (none)
 50
 51
 52	.global	__ashlsi3
 53	.global	__ashlsi3_r0
 54	
 55	.align	2
 56__ashlsi3:
 57	mov	r5,r0
 58	.align	2
 59__ashlsi3_r0:
 60	and	#31,r0
 61	mov.l	r4,@-r15
 62	mov	r0,r4
 63	mova	ashlsi3_table,r0
 64	mov.b	@(r0,r4),r4
 65	add	r4,r0
 66	jmp	@r0
 67	mov.l	@r15+,r0
 68
 69	.align	2
 70ashlsi3_table:
 71	.byte		ashlsi3_0-ashlsi3_table
 72	.byte		ashlsi3_1-ashlsi3_table
 73	.byte		ashlsi3_2-ashlsi3_table
 74	.byte		ashlsi3_3-ashlsi3_table
 75	.byte		ashlsi3_4-ashlsi3_table
 76	.byte		ashlsi3_5-ashlsi3_table
 77	.byte		ashlsi3_6-ashlsi3_table
 78	.byte		ashlsi3_7-ashlsi3_table
 79	.byte		ashlsi3_8-ashlsi3_table
 80	.byte		ashlsi3_9-ashlsi3_table
 81	.byte		ashlsi3_10-ashlsi3_table
 82	.byte		ashlsi3_11-ashlsi3_table
 83	.byte		ashlsi3_12-ashlsi3_table
 84	.byte		ashlsi3_13-ashlsi3_table
 85	.byte		ashlsi3_14-ashlsi3_table
 86	.byte		ashlsi3_15-ashlsi3_table
 87	.byte		ashlsi3_16-ashlsi3_table
 88	.byte		ashlsi3_17-ashlsi3_table
 89	.byte		ashlsi3_18-ashlsi3_table
 90	.byte		ashlsi3_19-ashlsi3_table
 91	.byte		ashlsi3_20-ashlsi3_table
 92	.byte		ashlsi3_21-ashlsi3_table
 93	.byte		ashlsi3_22-ashlsi3_table
 94	.byte		ashlsi3_23-ashlsi3_table
 95	.byte		ashlsi3_24-ashlsi3_table
 96	.byte		ashlsi3_25-ashlsi3_table
 97	.byte		ashlsi3_26-ashlsi3_table
 98	.byte		ashlsi3_27-ashlsi3_table
 99	.byte		ashlsi3_28-ashlsi3_table
100	.byte		ashlsi3_29-ashlsi3_table
101	.byte		ashlsi3_30-ashlsi3_table
102	.byte		ashlsi3_31-ashlsi3_table
103
104ashlsi3_6:
105	shll2	r0
106ashlsi3_4:
107	shll2	r0
108ashlsi3_2:
109	rts
110	shll2	r0
111
112ashlsi3_7:
113	shll2	r0
114ashlsi3_5:
115	shll2	r0
116ashlsi3_3:
117	shll2	r0
118ashlsi3_1:
119	rts
120	shll	r0
121
122ashlsi3_14:
123	shll2	r0
124ashlsi3_12:
125	shll2	r0
126ashlsi3_10:
127	shll2	r0
128ashlsi3_8:
129	rts
130	shll8	r0
131
132ashlsi3_15:
133	shll2	r0
134ashlsi3_13:
135	shll2	r0
136ashlsi3_11:
137	shll2	r0
138ashlsi3_9:
139	shll8	r0
140	rts
141	shll	r0
142
143ashlsi3_22:
144	shll2	r0
145ashlsi3_20:
146	shll2	r0
147ashlsi3_18:
148	shll2	r0
149ashlsi3_16:
150	rts
151	shll16	r0
152
153ashlsi3_23:
154	shll2	r0
155ashlsi3_21:
156	shll2	r0
157ashlsi3_19:
158	shll2	r0
159ashlsi3_17:
160	shll16	r0
161	rts
162	shll	r0
163
164ashlsi3_30:
165	shll2	r0
166ashlsi3_28:
167	shll2	r0
168ashlsi3_26:
169	shll2	r0
170ashlsi3_24:
171	shll16	r0
172	rts
173	shll8	r0
174
175ashlsi3_31:
176	shll2	r0
177ashlsi3_29:
178	shll2	r0
179ashlsi3_27:
180	shll2	r0
181ashlsi3_25:
182	shll16	r0
183	shll8	r0
184	rts
185	shll	r0
186
187ashlsi3_0:
188	rts
189	nop
v6.2
  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!
 21! __ashlsi3
 22!
 23! Entry:
 24!
 25! r4: Value to shift
 26! r5: Shifts
 27!
 28! Exit:
 29!
 30! r0: Result
 31!
 32! Destroys:
 33!
 34! (none)
 35!
 36! __ashlsi3_r0
 37!
 38! Entry:
 39!
 40! r4: Value to shift
 41! r0: Shifts
 42!
 43! Exit:
 44!
 45! r0: Result
 46!
 47! Destroys:
 48!
 49! (none)
 50
 51
 52	.global	__ashlsi3
 53	.global	__ashlsi3_r0
 54	
 55	.align	2
 56__ashlsi3:
 57	mov	r5,r0
 58	.align	2
 59__ashlsi3_r0:
 60	and	#31,r0
 61	mov.l	r4,@-r15
 62	mov	r0,r4
 63	mova	ashlsi3_table,r0
 64	mov.b	@(r0,r4),r4
 65	add	r4,r0
 66	jmp	@r0
 67	mov.l	@r15+,r0
 68
 69	.align	2
 70ashlsi3_table:
 71	.byte		ashlsi3_0-ashlsi3_table
 72	.byte		ashlsi3_1-ashlsi3_table
 73	.byte		ashlsi3_2-ashlsi3_table
 74	.byte		ashlsi3_3-ashlsi3_table
 75	.byte		ashlsi3_4-ashlsi3_table
 76	.byte		ashlsi3_5-ashlsi3_table
 77	.byte		ashlsi3_6-ashlsi3_table
 78	.byte		ashlsi3_7-ashlsi3_table
 79	.byte		ashlsi3_8-ashlsi3_table
 80	.byte		ashlsi3_9-ashlsi3_table
 81	.byte		ashlsi3_10-ashlsi3_table
 82	.byte		ashlsi3_11-ashlsi3_table
 83	.byte		ashlsi3_12-ashlsi3_table
 84	.byte		ashlsi3_13-ashlsi3_table
 85	.byte		ashlsi3_14-ashlsi3_table
 86	.byte		ashlsi3_15-ashlsi3_table
 87	.byte		ashlsi3_16-ashlsi3_table
 88	.byte		ashlsi3_17-ashlsi3_table
 89	.byte		ashlsi3_18-ashlsi3_table
 90	.byte		ashlsi3_19-ashlsi3_table
 91	.byte		ashlsi3_20-ashlsi3_table
 92	.byte		ashlsi3_21-ashlsi3_table
 93	.byte		ashlsi3_22-ashlsi3_table
 94	.byte		ashlsi3_23-ashlsi3_table
 95	.byte		ashlsi3_24-ashlsi3_table
 96	.byte		ashlsi3_25-ashlsi3_table
 97	.byte		ashlsi3_26-ashlsi3_table
 98	.byte		ashlsi3_27-ashlsi3_table
 99	.byte		ashlsi3_28-ashlsi3_table
100	.byte		ashlsi3_29-ashlsi3_table
101	.byte		ashlsi3_30-ashlsi3_table
102	.byte		ashlsi3_31-ashlsi3_table
103
104ashlsi3_6:
105	shll2	r0
106ashlsi3_4:
107	shll2	r0
108ashlsi3_2:
109	rts
110	shll2	r0
111
112ashlsi3_7:
113	shll2	r0
114ashlsi3_5:
115	shll2	r0
116ashlsi3_3:
117	shll2	r0
118ashlsi3_1:
119	rts
120	shll	r0
121
122ashlsi3_14:
123	shll2	r0
124ashlsi3_12:
125	shll2	r0
126ashlsi3_10:
127	shll2	r0
128ashlsi3_8:
129	rts
130	shll8	r0
131
132ashlsi3_15:
133	shll2	r0
134ashlsi3_13:
135	shll2	r0
136ashlsi3_11:
137	shll2	r0
138ashlsi3_9:
139	shll8	r0
140	rts
141	shll	r0
142
143ashlsi3_22:
144	shll2	r0
145ashlsi3_20:
146	shll2	r0
147ashlsi3_18:
148	shll2	r0
149ashlsi3_16:
150	rts
151	shll16	r0
152
153ashlsi3_23:
154	shll2	r0
155ashlsi3_21:
156	shll2	r0
157ashlsi3_19:
158	shll2	r0
159ashlsi3_17:
160	shll16	r0
161	rts
162	shll	r0
163
164ashlsi3_30:
165	shll2	r0
166ashlsi3_28:
167	shll2	r0
168ashlsi3_26:
169	shll2	r0
170ashlsi3_24:
171	shll16	r0
172	rts
173	shll8	r0
174
175ashlsi3_31:
176	shll2	r0
177ashlsi3_29:
178	shll2	r0
179ashlsi3_27:
180	shll2	r0
181ashlsi3_25:
182	shll16	r0
183	shll8	r0
184	rts
185	shll	r0
186
187ashlsi3_0:
188	rts
189	nop