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

ashrdi3.S (644B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * ashrdi3.S:	The filesystem code creates all kinds of references to
      4 *              this little routine on the sparc with gcc.
      5 *
      6 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
      7 */
      8
      9#include <linux/linkage.h>
     10#include <asm/export.h>
     11
     12	.text
     13ENTRY(__ashrdi3)
     14	tst	%o2
     15	be	3f
     16	 or	%g0, 32, %g2
     17
     18	sub	%g2, %o2, %g2
     19
     20	tst	%g2
     21	bg	1f
     22	 sra	%o0, %o2, %o4
     23
     24	sra	%o0, 31, %o4
     25	sub	%g0, %g2, %g2
     26	ba	2f
     27	 sra	%o0, %g2, %o5
     28
     291:
     30	sll	%o0, %g2, %g3
     31	srl	%o1, %o2, %g2
     32	or	%g2, %g3, %o5
     332:
     34	or	%g0, %o4, %o0
     35	or	%g0, %o5, %o1
     363:
     37	jmpl	%o7 + 8, %g0
     38	 nop
     39ENDPROC(__ashrdi3)
     40EXPORT_SYMBOL(__ashrdi3)