Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/hexagon/kernel/vm_ops.S
26424 views
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
20
ENTRY(__vmrte)
21
trap1(#HVM_TRAP1_VMRTE);
22
jumpr R31;
23
24
ENTRY(__vmsetvec)
25
trap1(#HVM_TRAP1_VMSETVEC);
26
jumpr R31;
27
28
ENTRY(__vmsetie)
29
trap1(#HVM_TRAP1_VMSETIE);
30
jumpr R31;
31
32
ENTRY(__vmgetie)
33
trap1(#HVM_TRAP1_VMGETIE);
34
jumpr R31;
35
36
ENTRY(__vmintop)
37
trap1(#HVM_TRAP1_VMINTOP);
38
jumpr R31;
39
40
ENTRY(__vmclrmap)
41
trap1(#HVM_TRAP1_VMCLRMAP);
42
jumpr R31;
43
44
ENTRY(__vmnewmap)
45
r1 = #VM_NEWMAP_TYPE_PGTABLES;
46
trap1(#HVM_TRAP1_VMNEWMAP);
47
jumpr R31;
48
49
ENTRY(__vmcache)
50
trap1(#HVM_TRAP1_VMCACHE);
51
jumpr R31;
52
53
ENTRY(__vmgettime)
54
trap1(#HVM_TRAP1_VMGETTIME);
55
jumpr R31;
56
57
ENTRY(__vmsettime)
58
trap1(#HVM_TRAP1_VMSETTIME);
59
jumpr R31;
60
61
ENTRY(__vmwait)
62
trap1(#HVM_TRAP1_VMWAIT);
63
jumpr R31;
64
65
ENTRY(__vmyield)
66
trap1(#HVM_TRAP1_VMYIELD);
67
jumpr R31;
68
69
ENTRY(__vmstart)
70
trap1(#HVM_TRAP1_VMSTART);
71
jumpr R31;
72
73
ENTRY(__vmstop)
74
trap1(#HVM_TRAP1_VMSTOP);
75
jumpr R31;
76
77
ENTRY(__vmvpid)
78
trap1(#HVM_TRAP1_VMVPID);
79
jumpr R31;
80
81
/* Probably not actually going to use these; see vm_entry.S */
82
83
ENTRY(__vmsetregs)
84
trap1(#HVM_TRAP1_VMSETREGS);
85
jumpr R31;
86
87
ENTRY(__vmgetregs)
88
trap1(#HVM_TRAP1_VMGETREGS);
89
jumpr R31;
90
91