xref: /openbmc/u-boot/arch/sh/lib/lshrsi3.S (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini/* SPDX-License-Identifier: GPL-2.0+ */
272cedad2SMasahiro Yamada/* Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
372cedad2SMasahiro Yamada   2004, 2005, 2006
472cedad2SMasahiro Yamada   Free Software Foundation, Inc.
572cedad2SMasahiro Yamada */
672cedad2SMasahiro Yamada
772cedad2SMasahiro Yamada!! libgcc routines for the Renesas / SuperH SH CPUs.
872cedad2SMasahiro Yamada!! Contributed by Steve Chamberlain.
972cedad2SMasahiro Yamada!! sac@cygnus.com
1072cedad2SMasahiro Yamada
1172cedad2SMasahiro Yamada!! ashiftrt_r4_x, ___ashrsi3, ___ashlsi3, ___lshrsi3 routines
1272cedad2SMasahiro Yamada!! recoded in assembly by Toshiyasu Morita
1372cedad2SMasahiro Yamada!! tm@netcom.com
1472cedad2SMasahiro Yamada
1572cedad2SMasahiro Yamada/* SH2 optimizations for ___ashrsi3, ___ashlsi3, ___lshrsi3 and
1672cedad2SMasahiro Yamada   ELF local label prefixes by J"orn Rennecke
1772cedad2SMasahiro Yamada   amylaar@cygnus.com  */
1872cedad2SMasahiro Yamada
1972cedad2SMasahiro Yamada!
2072cedad2SMasahiro Yamada! __lshrsi3)
2172cedad2SMasahiro Yamada!
2272cedad2SMasahiro Yamada! Entry:
2372cedad2SMasahiro Yamada!
2472cedad2SMasahiro Yamada! r4: Value to shift
2572cedad2SMasahiro Yamada! r5: Shifts
2672cedad2SMasahiro Yamada!
2772cedad2SMasahiro Yamada! Exit:
2872cedad2SMasahiro Yamada!
2972cedad2SMasahiro Yamada! r0: Result
3072cedad2SMasahiro Yamada!
3172cedad2SMasahiro Yamada! Destroys:
3272cedad2SMasahiro Yamada!
3372cedad2SMasahiro Yamada! (none)
3472cedad2SMasahiro Yamada!
3572cedad2SMasahiro Yamada	.global	__lshrsi3
3672cedad2SMasahiro Yamada	.align	2
3772cedad2SMasahiro Yamada__lshrsi3:
3872cedad2SMasahiro Yamada	mov	#31,r0
3972cedad2SMasahiro Yamada	and	r0,r5
4072cedad2SMasahiro Yamada	mova	__lshrsi3_table,r0
4172cedad2SMasahiro Yamada	mov.b	@(r0,r5),r5
4272cedad2SMasahiro Yamada#ifdef __sh1__
4372cedad2SMasahiro Yamada	add	r5,r0
4472cedad2SMasahiro Yamada	jmp	@r0
4572cedad2SMasahiro Yamada#else
4672cedad2SMasahiro Yamada	braf	r5
4772cedad2SMasahiro Yamada#endif
4872cedad2SMasahiro Yamada	mov	r4,r0
4972cedad2SMasahiro Yamada
5072cedad2SMasahiro Yamada	.align	2
5172cedad2SMasahiro Yamada__lshrsi3_table:
5272cedad2SMasahiro Yamada	.byte		__lshrsi3_0-__lshrsi3_table
5372cedad2SMasahiro Yamada	.byte		__lshrsi3_1-__lshrsi3_table
5472cedad2SMasahiro Yamada	.byte		__lshrsi3_2-__lshrsi3_table
5572cedad2SMasahiro Yamada	.byte		__lshrsi3_3-__lshrsi3_table
5672cedad2SMasahiro Yamada	.byte		__lshrsi3_4-__lshrsi3_table
5772cedad2SMasahiro Yamada	.byte		__lshrsi3_5-__lshrsi3_table
5872cedad2SMasahiro Yamada	.byte		__lshrsi3_6-__lshrsi3_table
5972cedad2SMasahiro Yamada	.byte		__lshrsi3_7-__lshrsi3_table
6072cedad2SMasahiro Yamada	.byte		__lshrsi3_8-__lshrsi3_table
6172cedad2SMasahiro Yamada	.byte		__lshrsi3_9-__lshrsi3_table
6272cedad2SMasahiro Yamada	.byte		__lshrsi3_10-__lshrsi3_table
6372cedad2SMasahiro Yamada	.byte		__lshrsi3_11-__lshrsi3_table
6472cedad2SMasahiro Yamada	.byte		__lshrsi3_12-__lshrsi3_table
6572cedad2SMasahiro Yamada	.byte		__lshrsi3_13-__lshrsi3_table
6672cedad2SMasahiro Yamada	.byte		__lshrsi3_14-__lshrsi3_table
6772cedad2SMasahiro Yamada	.byte		__lshrsi3_15-__lshrsi3_table
6872cedad2SMasahiro Yamada	.byte		__lshrsi3_16-__lshrsi3_table
6972cedad2SMasahiro Yamada	.byte		__lshrsi3_17-__lshrsi3_table
7072cedad2SMasahiro Yamada	.byte		__lshrsi3_18-__lshrsi3_table
7172cedad2SMasahiro Yamada	.byte		__lshrsi3_19-__lshrsi3_table
7272cedad2SMasahiro Yamada	.byte		__lshrsi3_20-__lshrsi3_table
7372cedad2SMasahiro Yamada	.byte		__lshrsi3_21-__lshrsi3_table
7472cedad2SMasahiro Yamada	.byte		__lshrsi3_22-__lshrsi3_table
7572cedad2SMasahiro Yamada	.byte		__lshrsi3_23-__lshrsi3_table
7672cedad2SMasahiro Yamada	.byte		__lshrsi3_24-__lshrsi3_table
7772cedad2SMasahiro Yamada	.byte		__lshrsi3_25-__lshrsi3_table
7872cedad2SMasahiro Yamada	.byte		__lshrsi3_26-__lshrsi3_table
7972cedad2SMasahiro Yamada	.byte		__lshrsi3_27-__lshrsi3_table
8072cedad2SMasahiro Yamada	.byte		__lshrsi3_28-__lshrsi3_table
8172cedad2SMasahiro Yamada	.byte		__lshrsi3_29-__lshrsi3_table
8272cedad2SMasahiro Yamada	.byte		__lshrsi3_30-__lshrsi3_table
8372cedad2SMasahiro Yamada	.byte		__lshrsi3_31-__lshrsi3_table
8472cedad2SMasahiro Yamada
8572cedad2SMasahiro Yamada__lshrsi3_6:
8672cedad2SMasahiro Yamada	shlr2	r0
8772cedad2SMasahiro Yamada__lshrsi3_4:
8872cedad2SMasahiro Yamada	shlr2	r0
8972cedad2SMasahiro Yamada__lshrsi3_2:
9072cedad2SMasahiro Yamada	rts
9172cedad2SMasahiro Yamada	shlr2	r0
9272cedad2SMasahiro Yamada
9372cedad2SMasahiro Yamada__lshrsi3_7:
9472cedad2SMasahiro Yamada	shlr2	r0
9572cedad2SMasahiro Yamada__lshrsi3_5:
9672cedad2SMasahiro Yamada	shlr2	r0
9772cedad2SMasahiro Yamada__lshrsi3_3:
9872cedad2SMasahiro Yamada	shlr2	r0
9972cedad2SMasahiro Yamada__lshrsi3_1:
10072cedad2SMasahiro Yamada	rts
10172cedad2SMasahiro Yamada	shlr	r0
10272cedad2SMasahiro Yamada
10372cedad2SMasahiro Yamada__lshrsi3_14:
10472cedad2SMasahiro Yamada	shlr2	r0
10572cedad2SMasahiro Yamada__lshrsi3_12:
10672cedad2SMasahiro Yamada	shlr2	r0
10772cedad2SMasahiro Yamada__lshrsi3_10:
10872cedad2SMasahiro Yamada	shlr2	r0
10972cedad2SMasahiro Yamada__lshrsi3_8:
11072cedad2SMasahiro Yamada	rts
11172cedad2SMasahiro Yamada	shlr8	r0
11272cedad2SMasahiro Yamada
11372cedad2SMasahiro Yamada__lshrsi3_15:
11472cedad2SMasahiro Yamada	shlr2	r0
11572cedad2SMasahiro Yamada__lshrsi3_13:
11672cedad2SMasahiro Yamada	shlr2	r0
11772cedad2SMasahiro Yamada__lshrsi3_11:
11872cedad2SMasahiro Yamada	shlr2	r0
11972cedad2SMasahiro Yamada__lshrsi3_9:
12072cedad2SMasahiro Yamada	shlr8	r0
12172cedad2SMasahiro Yamada	rts
12272cedad2SMasahiro Yamada	shlr	r0
12372cedad2SMasahiro Yamada
12472cedad2SMasahiro Yamada__lshrsi3_22:
12572cedad2SMasahiro Yamada	shlr2	r0
12672cedad2SMasahiro Yamada__lshrsi3_20:
12772cedad2SMasahiro Yamada	shlr2	r0
12872cedad2SMasahiro Yamada__lshrsi3_18:
12972cedad2SMasahiro Yamada	shlr2	r0
13072cedad2SMasahiro Yamada__lshrsi3_16:
13172cedad2SMasahiro Yamada	rts
13272cedad2SMasahiro Yamada	shlr16	r0
13372cedad2SMasahiro Yamada
13472cedad2SMasahiro Yamada__lshrsi3_23:
13572cedad2SMasahiro Yamada	shlr2	r0
13672cedad2SMasahiro Yamada__lshrsi3_21:
13772cedad2SMasahiro Yamada	shlr2	r0
13872cedad2SMasahiro Yamada__lshrsi3_19:
13972cedad2SMasahiro Yamada	shlr2	r0
14072cedad2SMasahiro Yamada__lshrsi3_17:
14172cedad2SMasahiro Yamada	shlr16	r0
14272cedad2SMasahiro Yamada	rts
14372cedad2SMasahiro Yamada	shlr	r0
14472cedad2SMasahiro Yamada
14572cedad2SMasahiro Yamada__lshrsi3_30:
14672cedad2SMasahiro Yamada	shlr2	r0
14772cedad2SMasahiro Yamada__lshrsi3_28:
14872cedad2SMasahiro Yamada	shlr2	r0
14972cedad2SMasahiro Yamada__lshrsi3_26:
15072cedad2SMasahiro Yamada	shlr2	r0
15172cedad2SMasahiro Yamada__lshrsi3_24:
15272cedad2SMasahiro Yamada	shlr16	r0
15372cedad2SMasahiro Yamada	rts
15472cedad2SMasahiro Yamada	shlr8	r0
15572cedad2SMasahiro Yamada
15672cedad2SMasahiro Yamada__lshrsi3_31:
15772cedad2SMasahiro Yamada	shlr2	r0
15872cedad2SMasahiro Yamada__lshrsi3_29:
15972cedad2SMasahiro Yamada	shlr2	r0
16072cedad2SMasahiro Yamada__lshrsi3_27:
16172cedad2SMasahiro Yamada	shlr2	r0
16272cedad2SMasahiro Yamada__lshrsi3_25:
16372cedad2SMasahiro Yamada	shlr16	r0
16472cedad2SMasahiro Yamada	shlr8	r0
16572cedad2SMasahiro Yamada	rts
16672cedad2SMasahiro Yamada	shlr	r0
16772cedad2SMasahiro Yamada
16872cedad2SMasahiro Yamada__lshrsi3_0:
16972cedad2SMasahiro Yamada	rts
17072cedad2SMasahiro Yamada	nop
171