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

ashrsi3.S (2816B)


      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