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

ashlsi3.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! __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