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

getsetcc.S (514B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2	.globl		getcc
      3	.type		getcc,#function
      4getcc:
      5	ldx		[%o0 + PT_V9_TSTATE], %o1
      6	srlx		%o1, 32, %o1
      7	and		%o1, 0xf, %o1
      8	retl
      9	 stx		%o1, [%o0 + PT_V9_G1]
     10	.size		getcc,.-getcc
     11
     12	.globl		setcc
     13	.type		setcc,#function
     14setcc:
     15	ldx		[%o0 + PT_V9_TSTATE], %o1
     16	ldx		[%o0 + PT_V9_G1], %o2
     17	or		%g0, %ulo(TSTATE_ICC), %o3
     18	sllx		%o3, 32, %o3
     19	andn		%o1, %o3, %o1
     20	sllx		%o2, 32, %o2
     21	and		%o2, %o3, %o2
     22	or		%o1, %o2, %o1
     23	retl
     24	 stx		%o1, [%o0 + PT_V9_TSTATE]
     25	.size		setcc,.-setcc