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

NG4fls.S (495B)


      1/* NG4fls.S: SPARC optimized fls and __fls for T4 and above.
      2 *
      3 * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
      4 */
      5
      6#include <linux/linkage.h>
      7
      8#define LZCNT_O0_G2	\
      9	.word	0x85b002e8
     10
     11	.text
     12	.register	%g2, #scratch
     13	.register	%g3, #scratch
     14
     15ENTRY(NG4fls)
     16	LZCNT_O0_G2	!lzcnt	%o0, %g2
     17	mov	64, %g3
     18	retl
     19	 sub	%g3, %g2, %o0
     20ENDPROC(NG4fls)
     21
     22ENTRY(__NG4fls)
     23	brz,pn	%o0, 1f
     24	LZCNT_O0_G2	!lzcnt	%o0, %g2
     25	mov	63, %g3
     26	sub	%g3, %g2, %o0
     271:
     28	retl
     29	 nop
     30ENDPROC(__NG4fls)