linux/arch/hexagon/kernel/vm_ops.S
<<
>>
Prefs
   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;
  90