Linux Audio

Check our new training course

Buildroot integration, development and maintenance

Need a Buildroot system for your embedded project?
Loading...
v5.4
  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! __ashrsi3
 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! __ashrsi3_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	.global	__ashrsi3
 52	.global	__ashrsi3_r0
 53	
 54	.align	2
 55__ashrsi3:
 56	mov	r5,r0
 57	.align	2
 58__ashrsi3_r0:
 59	and	#31,r0
 60	mov.l	r4,@-r15
 61	mov	r0,r4
 62	mova	ashrsi3_table,r0
 63	mov.b	@(r0,r4),r4
 64	add	r4,r0
 65	jmp	@r0
 66	mov.l	@r15+,r0
 67
 68	.align	2
 69ashrsi3_table:
 70	.byte		ashrsi3_0-ashrsi3_table
 71	.byte		ashrsi3_1-ashrsi3_table
 72	.byte		ashrsi3_2-ashrsi3_table
 73	.byte		ashrsi3_3-ashrsi3_table
 74	.byte		ashrsi3_4-ashrsi3_table
 75	.byte		ashrsi3_5-ashrsi3_table
 76	.byte		ashrsi3_6-ashrsi3_table
 77	.byte		ashrsi3_7-ashrsi3_table
 78	.byte		ashrsi3_8-ashrsi3_table
 79	.byte		ashrsi3_9-ashrsi3_table
 80	.byte		ashrsi3_10-ashrsi3_table
 81	.byte		ashrsi3_11-ashrsi3_table
 82	.byte		ashrsi3_12-ashrsi3_table
 83	.byte		ashrsi3_13-ashrsi3_table
 84	.byte		ashrsi3_14-ashrsi3_table
 85	.byte		ashrsi3_15-ashrsi3_table
 86	.byte		ashrsi3_16-ashrsi3_table
 87	.byte		ashrsi3_17-ashrsi3_table
 88	.byte		ashrsi3_18-ashrsi3_table
 89	.byte		ashrsi3_19-ashrsi3_table
 90	.byte		ashrsi3_20-ashrsi3_table
 91	.byte		ashrsi3_21-ashrsi3_table
 92	.byte		ashrsi3_22-ashrsi3_table
 93	.byte		ashrsi3_23-ashrsi3_table
 94	.byte		ashrsi3_24-ashrsi3_table
 95	.byte		ashrsi3_25-ashrsi3_table
 96	.byte		ashrsi3_26-ashrsi3_table
 97	.byte		ashrsi3_27-ashrsi3_table
 98	.byte		ashrsi3_28-ashrsi3_table
 99	.byte		ashrsi3_29-ashrsi3_table
100	.byte		ashrsi3_30-ashrsi3_table
101	.byte		ashrsi3_31-ashrsi3_table
102
103ashrsi3_31:
104	rotcl	r0
105	rts
106	subc	r0,r0
107
108ashrsi3_30:
109	shar	r0
110ashrsi3_29:
111	shar	r0
112ashrsi3_28:
113	shar	r0
114ashrsi3_27:
115	shar	r0
116ashrsi3_26:
117	shar	r0
118ashrsi3_25:
119	shar	r0
120ashrsi3_24:
121	shlr16	r0
122	shlr8	r0
123	rts
124	exts.b	r0,r0
125
126ashrsi3_23:
127	shar	r0
128ashrsi3_22:
129	shar	r0
130ashrsi3_21:
131	shar	r0
132ashrsi3_20:
133	shar	r0
134ashrsi3_19:
135	shar	r0
136ashrsi3_18:
137	shar	r0
138ashrsi3_17:
139	shar	r0
140ashrsi3_16:
141	shlr16	r0
142	rts
143	exts.w	r0,r0
144
145ashrsi3_15:
146	shar	r0
147ashrsi3_14:
148	shar	r0
149ashrsi3_13:
150	shar	r0
151ashrsi3_12:
152	shar	r0
153ashrsi3_11:
154	shar	r0
155ashrsi3_10:
156	shar	r0
157ashrsi3_9:
158	shar	r0
159ashrsi3_8:
160	shar	r0
161ashrsi3_7:
162	shar	r0
163ashrsi3_6:
164	shar	r0
165ashrsi3_5:
166	shar	r0
167ashrsi3_4:
168	shar	r0
169ashrsi3_3:
170	shar	r0
171ashrsi3_2:
172	shar	r0
173ashrsi3_1:
174	rts
175	shar	r0
176
177ashrsi3_0:
178	rts
179	nop
v5.9
  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! __ashrsi3
 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! __ashrsi3_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	.global	__ashrsi3
 52	.global	__ashrsi3_r0
 53	
 54	.align	2
 55__ashrsi3:
 56	mov	r5,r0
 57	.align	2
 58__ashrsi3_r0:
 59	and	#31,r0
 60	mov.l	r4,@-r15
 61	mov	r0,r4
 62	mova	ashrsi3_table,r0
 63	mov.b	@(r0,r4),r4
 64	add	r4,r0
 65	jmp	@r0
 66	mov.l	@r15+,r0
 67
 68	.align	2
 69ashrsi3_table:
 70	.byte		ashrsi3_0-ashrsi3_table
 71	.byte		ashrsi3_1-ashrsi3_table
 72	.byte		ashrsi3_2-ashrsi3_table
 73	.byte		ashrsi3_3-ashrsi3_table
 74	.byte		ashrsi3_4-ashrsi3_table
 75	.byte		ashrsi3_5-ashrsi3_table
 76	.byte		ashrsi3_6-ashrsi3_table
 77	.byte		ashrsi3_7-ashrsi3_table
 78	.byte		ashrsi3_8-ashrsi3_table
 79	.byte		ashrsi3_9-ashrsi3_table
 80	.byte		ashrsi3_10-ashrsi3_table
 81	.byte		ashrsi3_11-ashrsi3_table
 82	.byte		ashrsi3_12-ashrsi3_table
 83	.byte		ashrsi3_13-ashrsi3_table
 84	.byte		ashrsi3_14-ashrsi3_table
 85	.byte		ashrsi3_15-ashrsi3_table
 86	.byte		ashrsi3_16-ashrsi3_table
 87	.byte		ashrsi3_17-ashrsi3_table
 88	.byte		ashrsi3_18-ashrsi3_table
 89	.byte		ashrsi3_19-ashrsi3_table
 90	.byte		ashrsi3_20-ashrsi3_table
 91	.byte		ashrsi3_21-ashrsi3_table
 92	.byte		ashrsi3_22-ashrsi3_table
 93	.byte		ashrsi3_23-ashrsi3_table
 94	.byte		ashrsi3_24-ashrsi3_table
 95	.byte		ashrsi3_25-ashrsi3_table
 96	.byte		ashrsi3_26-ashrsi3_table
 97	.byte		ashrsi3_27-ashrsi3_table
 98	.byte		ashrsi3_28-ashrsi3_table
 99	.byte		ashrsi3_29-ashrsi3_table
100	.byte		ashrsi3_30-ashrsi3_table
101	.byte		ashrsi3_31-ashrsi3_table
102
103ashrsi3_31:
104	rotcl	r0
105	rts
106	subc	r0,r0
107
108ashrsi3_30:
109	shar	r0
110ashrsi3_29:
111	shar	r0
112ashrsi3_28:
113	shar	r0
114ashrsi3_27:
115	shar	r0
116ashrsi3_26:
117	shar	r0
118ashrsi3_25:
119	shar	r0
120ashrsi3_24:
121	shlr16	r0
122	shlr8	r0
123	rts
124	exts.b	r0,r0
125
126ashrsi3_23:
127	shar	r0
128ashrsi3_22:
129	shar	r0
130ashrsi3_21:
131	shar	r0
132ashrsi3_20:
133	shar	r0
134ashrsi3_19:
135	shar	r0
136ashrsi3_18:
137	shar	r0
138ashrsi3_17:
139	shar	r0
140ashrsi3_16:
141	shlr16	r0
142	rts
143	exts.w	r0,r0
144
145ashrsi3_15:
146	shar	r0
147ashrsi3_14:
148	shar	r0
149ashrsi3_13:
150	shar	r0
151ashrsi3_12:
152	shar	r0
153ashrsi3_11:
154	shar	r0
155ashrsi3_10:
156	shar	r0
157ashrsi3_9:
158	shar	r0
159ashrsi3_8:
160	shar	r0
161ashrsi3_7:
162	shar	r0
163ashrsi3_6:
164	shar	r0
165ashrsi3_5:
166	shar	r0
167ashrsi3_4:
168	shar	r0
169ashrsi3_3:
170	shar	r0
171ashrsi3_2:
172	shar	r0
173ashrsi3_1:
174	rts
175	shar	r0
176
177ashrsi3_0:
178	rts
179	nop