Merge branch 'ieee802154-for-davem-2019-08-24' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-microblaze.git] / arch / hexagon / kernel / vm_ops.S
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;