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

regs_load.S (747B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#include <linux/linkage.h>
      3
      4.text
      5.type perf_regs_load,%function
      6#define STR_REG(r)	str x##r, [x0, 8 * r]
      7#define LDR_REG(r)	ldr x##r, [x0, 8 * r]
      8#define SP	(8 * 31)
      9#define PC	(8 * 32)
     10SYM_FUNC_START(perf_regs_load)
     11	STR_REG(0)
     12	STR_REG(1)
     13	STR_REG(2)
     14	STR_REG(3)
     15	STR_REG(4)
     16	STR_REG(5)
     17	STR_REG(6)
     18	STR_REG(7)
     19	STR_REG(8)
     20	STR_REG(9)
     21	STR_REG(10)
     22	STR_REG(11)
     23	STR_REG(12)
     24	STR_REG(13)
     25	STR_REG(14)
     26	STR_REG(15)
     27	STR_REG(16)
     28	STR_REG(17)
     29	STR_REG(18)
     30	STR_REG(19)
     31	STR_REG(20)
     32	STR_REG(21)
     33	STR_REG(22)
     34	STR_REG(23)
     35	STR_REG(24)
     36	STR_REG(25)
     37	STR_REG(26)
     38	STR_REG(27)
     39	STR_REG(28)
     40	STR_REG(29)
     41	STR_REG(30)
     42	mov x1, sp
     43	str x1, [x0, #SP]
     44	str x30, [x0, #PC]
     45	LDR_REG(1)
     46	ret
     47SYM_FUNC_END(perf_regs_load)