cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

lshrsi3.S (2867B)


      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! __lshrsi3
     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! __lshrsi3_r0
     37!
     38! Entry:
     39!
     40! r0: Value to shift
     41! r5: Shifts
     42!
     43! Exit:
     44!
     45! r0: Result
     46!
     47! Destroys:
     48!
     49! (none)
     50!
     51	.global	__lshrsi3
     52	.global	__lshrsi3_r0
     53	
     54	.align	2
     55__lshrsi3:
     56	mov	r5,r0
     57	.align	2
     58__lshrsi3_r0:
     59	and	#31,r0
     60	mov.l	r4,@-r15
     61	mov	r0,r4
     62	mova	lshrsi3_table,r0
     63	mov.b	@(r0,r4),r4
     64	add	r4,r0
     65	jmp	@r0
     66	mov.l	@r15+,r0
     67
     68	.align	2
     69lshrsi3_table:
     70	.byte		lshrsi3_0-lshrsi3_table
     71	.byte		lshrsi3_1-lshrsi3_table
     72	.byte		lshrsi3_2-lshrsi3_table
     73	.byte		lshrsi3_3-lshrsi3_table
     74	.byte		lshrsi3_4-lshrsi3_table
     75	.byte		lshrsi3_5-lshrsi3_table
     76	.byte		lshrsi3_6-lshrsi3_table
     77	.byte		lshrsi3_7-lshrsi3_table
     78	.byte		lshrsi3_8-lshrsi3_table
     79	.byte		lshrsi3_9-lshrsi3_table
     80	.byte		lshrsi3_10-lshrsi3_table
     81	.byte		lshrsi3_11-lshrsi3_table
     82	.byte		lshrsi3_12-lshrsi3_table
     83	.byte		lshrsi3_13-lshrsi3_table
     84	.byte		lshrsi3_14-lshrsi3_table
     85	.byte		lshrsi3_15-lshrsi3_table
     86	.byte		lshrsi3_16-lshrsi3_table
     87	.byte		lshrsi3_17-lshrsi3_table
     88	.byte		lshrsi3_18-lshrsi3_table
     89	.byte		lshrsi3_19-lshrsi3_table
     90	.byte		lshrsi3_20-lshrsi3_table
     91	.byte		lshrsi3_21-lshrsi3_table
     92	.byte		lshrsi3_22-lshrsi3_table
     93	.byte		lshrsi3_23-lshrsi3_table
     94	.byte		lshrsi3_24-lshrsi3_table
     95	.byte		lshrsi3_25-lshrsi3_table
     96	.byte		lshrsi3_26-lshrsi3_table
     97	.byte		lshrsi3_27-lshrsi3_table
     98	.byte		lshrsi3_28-lshrsi3_table
     99	.byte		lshrsi3_29-lshrsi3_table
    100	.byte		lshrsi3_30-lshrsi3_table
    101	.byte		lshrsi3_31-lshrsi3_table
    102
    103lshrsi3_6:
    104	shlr2	r0
    105lshrsi3_4:
    106	shlr2	r0
    107lshrsi3_2:
    108	rts
    109	shlr2	r0
    110
    111lshrsi3_7:
    112	shlr2	r0
    113lshrsi3_5:
    114	shlr2	r0
    115lshrsi3_3:
    116	shlr2	r0
    117lshrsi3_1:
    118	rts
    119	shlr	r0
    120
    121lshrsi3_14:
    122	shlr2	r0
    123lshrsi3_12:
    124	shlr2	r0
    125lshrsi3_10:
    126	shlr2	r0
    127lshrsi3_8:
    128	rts
    129	shlr8	r0
    130
    131lshrsi3_15:
    132	shlr2	r0
    133lshrsi3_13:
    134	shlr2	r0
    135lshrsi3_11:
    136	shlr2	r0
    137lshrsi3_9:
    138	shlr8	r0
    139	rts
    140	shlr	r0
    141
    142lshrsi3_22:
    143	shlr2	r0
    144lshrsi3_20:
    145	shlr2	r0
    146lshrsi3_18:
    147	shlr2	r0
    148lshrsi3_16:
    149	rts
    150	shlr16	r0
    151
    152lshrsi3_23:
    153	shlr2	r0
    154lshrsi3_21:
    155	shlr2	r0
    156lshrsi3_19:
    157	shlr2	r0
    158lshrsi3_17:
    159	shlr16	r0
    160	rts
    161	shlr	r0
    162
    163lshrsi3_30:
    164	shlr2	r0
    165lshrsi3_28:
    166	shlr2	r0
    167lshrsi3_26:
    168	shlr2	r0
    169lshrsi3_24:
    170	shlr16	r0
    171	rts
    172	shlr8	r0
    173
    174lshrsi3_31:
    175	shlr2	r0
    176lshrsi3_29:
    177	shlr2	r0
    178lshrsi3_27:
    179	shlr2	r0
    180lshrsi3_25:
    181	shlr16	r0
    182	shlr8	r0
    183	rts
    184	shlr	r0
    185
    186lshrsi3_0:
    187	rts
    188	nop