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

vm_ops.S (1647B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Hexagon VM instruction support
      4 *
      5 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
      6 */
      7
      8#include <linux/linkage.h>
      9#include <asm/hexagon_vm.h>
     10
     11/*
     12 * C wrappers for virtual machine "instructions".  These
     13 * could be, and perhaps some day will be, handled as in-line
     14 * macros, but for tracing/debugging it's handy to have
     15 * a single point of invocation for each of them.
     16 * Conveniently, they take parameters and return values
     17 * consistent with the ABI calling convention.
     18 */
     19
     20ENTRY(__vmrte)
     21	trap1(#HVM_TRAP1_VMRTE);
     22	jumpr	R31;
     23
     24ENTRY(__vmsetvec)
     25	trap1(#HVM_TRAP1_VMSETVEC);
     26	jumpr	R31;
     27
     28ENTRY(__vmsetie)
     29	trap1(#HVM_TRAP1_VMSETIE);
     30	jumpr	R31;
     31
     32ENTRY(__vmgetie)
     33	trap1(#HVM_TRAP1_VMGETIE);
     34	jumpr	R31;
     35
     36ENTRY(__vmintop)
     37	trap1(#HVM_TRAP1_VMINTOP);
     38	jumpr	R31;
     39
     40ENTRY(__vmclrmap)
     41	trap1(#HVM_TRAP1_VMCLRMAP);
     42	jumpr	R31;
     43
     44ENTRY(__vmnewmap)
     45	r1 = #VM_NEWMAP_TYPE_PGTABLES;
     46	trap1(#HVM_TRAP1_VMNEWMAP);
     47	jumpr	R31;
     48
     49ENTRY(__vmcache)
     50	trap1(#HVM_TRAP1_VMCACHE);
     51	jumpr	R31;
     52
     53ENTRY(__vmgettime)
     54	trap1(#HVM_TRAP1_VMGETTIME);
     55	jumpr	R31;
     56
     57ENTRY(__vmsettime)
     58	trap1(#HVM_TRAP1_VMSETTIME);
     59	jumpr	R31;
     60
     61ENTRY(__vmwait)
     62	trap1(#HVM_TRAP1_VMWAIT);
     63	jumpr	R31;
     64
     65ENTRY(__vmyield)
     66	trap1(#HVM_TRAP1_VMYIELD);
     67	jumpr	R31;
     68
     69ENTRY(__vmstart)
     70	trap1(#HVM_TRAP1_VMSTART);
     71	jumpr	R31;
     72
     73ENTRY(__vmstop)
     74	trap1(#HVM_TRAP1_VMSTOP);
     75	jumpr	R31;
     76
     77ENTRY(__vmvpid)
     78	trap1(#HVM_TRAP1_VMVPID);
     79	jumpr	R31;
     80
     81/*  Probably not actually going to use these; see vm_entry.S  */
     82
     83ENTRY(__vmsetregs)
     84	trap1(#HVM_TRAP1_VMSETREGS);
     85	jumpr	R31;
     86
     87ENTRY(__vmgetregs)
     88	trap1(#HVM_TRAP1_VMGETREGS);
     89	jumpr	R31;