WIP FPC-III support
[linux/fpc-iii.git] / arch / hexagon / kernel / vm_ops.S
blobf61c04d485f6f9111a89048960c14029b909c321
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  */
8 #include <linux/linkage.h>
9 #include <asm/hexagon_vm.h>
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  */
20 ENTRY(__vmrte)
21         trap1(#HVM_TRAP1_VMRTE);
22         jumpr   R31;
24 ENTRY(__vmsetvec)
25         trap1(#HVM_TRAP1_VMSETVEC);
26         jumpr   R31;
28 ENTRY(__vmsetie)
29         trap1(#HVM_TRAP1_VMSETIE);
30         jumpr   R31;
32 ENTRY(__vmgetie)
33         trap1(#HVM_TRAP1_VMGETIE);
34         jumpr   R31;
36 ENTRY(__vmintop)
37         trap1(#HVM_TRAP1_VMINTOP);
38         jumpr   R31;
40 ENTRY(__vmclrmap)
41         trap1(#HVM_TRAP1_VMCLRMAP);
42         jumpr   R31;
44 ENTRY(__vmnewmap)
45         r1 = #VM_NEWMAP_TYPE_PGTABLES;
46         trap1(#HVM_TRAP1_VMNEWMAP);
47         jumpr   R31;
49 ENTRY(__vmcache)
50         trap1(#HVM_TRAP1_VMCACHE);
51         jumpr   R31;
53 ENTRY(__vmgettime)
54         trap1(#HVM_TRAP1_VMGETTIME);
55         jumpr   R31;
57 ENTRY(__vmsettime)
58         trap1(#HVM_TRAP1_VMSETTIME);
59         jumpr   R31;
61 ENTRY(__vmwait)
62         trap1(#HVM_TRAP1_VMWAIT);
63         jumpr   R31;
65 ENTRY(__vmyield)
66         trap1(#HVM_TRAP1_VMYIELD);
67         jumpr   R31;
69 ENTRY(__vmstart)
70         trap1(#HVM_TRAP1_VMSTART);
71         jumpr   R31;
73 ENTRY(__vmstop)
74         trap1(#HVM_TRAP1_VMSTOP);
75         jumpr   R31;
77 ENTRY(__vmvpid)
78         trap1(#HVM_TRAP1_VMVPID);
79         jumpr   R31;
81 /*  Probably not actually going to use these; see vm_entry.S  */
83 ENTRY(__vmsetregs)
84         trap1(#HVM_TRAP1_VMSETREGS);
85         jumpr   R31;
87 ENTRY(__vmgetregs)
88         trap1(#HVM_TRAP1_VMGETREGS);
89         jumpr   R31;