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;
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.