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

tm-syscall-asm.S (754B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#include <basic_asm.h>
      3#include <asm/unistd.h>
      4
      5	.text
      6FUNC_START(getppid_tm_active)
      7	tbegin.
      8	beq 1f
      9	li	r0, __NR_getppid
     10	sc
     11	tend.
     12	blr
     131:
     14	li	r3, -1
     15	blr
     16
     17FUNC_START(getppid_tm_suspended)
     18	tbegin.
     19	beq 1f
     20	li	r0, __NR_getppid
     21	tsuspend.
     22	sc
     23	tresume.
     24	tend.
     25	blr
     261:
     27	li	r3, -1
     28	blr
     29
     30
     31.macro scv level
     32	.long (0x44000001 | (\level) << 5)
     33.endm
     34
     35FUNC_START(getppid_scv_tm_active)
     36	PUSH_BASIC_STACK(0)
     37	tbegin.
     38	beq 1f
     39	li	r0, __NR_getppid
     40	scv	0
     41	tend.
     42	POP_BASIC_STACK(0)
     43	blr
     441:
     45	li	r3, -1
     46	POP_BASIC_STACK(0)
     47	blr
     48
     49FUNC_START(getppid_scv_tm_suspended)
     50	PUSH_BASIC_STACK(0)
     51	tbegin.
     52	beq 1f
     53	li	r0, __NR_getppid
     54	tsuspend.
     55	scv	0
     56	tresume.
     57	tend.
     58	POP_BASIC_STACK(0)
     59	blr
     601:
     61	li	r3, -1
     62	POP_BASIC_STACK(0)
     63	blr