mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
1.6 KiB
89 lines
1.6 KiB
/* SPDX-License-Identifier: GPL-2.0-only */ |
|
/* |
|
* Hexagon VM instruction support |
|
* |
|
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. |
|
*/ |
|
|
|
#include <linux/linkage.h> |
|
#include <asm/hexagon_vm.h> |
|
|
|
/* |
|
* C wrappers for virtual machine "instructions". These |
|
* could be, and perhaps some day will be, handled as in-line |
|
* macros, but for tracing/debugging it's handy to have |
|
* a single point of invocation for each of them. |
|
* Conveniently, they take parameters and return values |
|
* consistent with the ABI calling convention. |
|
*/ |
|
|
|
ENTRY(__vmrte) |
|
trap1(#HVM_TRAP1_VMRTE); |
|
jumpr R31; |
|
|
|
ENTRY(__vmsetvec) |
|
trap1(#HVM_TRAP1_VMSETVEC); |
|
jumpr R31; |
|
|
|
ENTRY(__vmsetie) |
|
trap1(#HVM_TRAP1_VMSETIE); |
|
jumpr R31; |
|
|
|
ENTRY(__vmgetie) |
|
trap1(#HVM_TRAP1_VMGETIE); |
|
jumpr R31; |
|
|
|
ENTRY(__vmintop) |
|
trap1(#HVM_TRAP1_VMINTOP); |
|
jumpr R31; |
|
|
|
ENTRY(__vmclrmap) |
|
trap1(#HVM_TRAP1_VMCLRMAP); |
|
jumpr R31; |
|
|
|
ENTRY(__vmnewmap) |
|
r1 = #VM_NEWMAP_TYPE_PGTABLES; |
|
trap1(#HVM_TRAP1_VMNEWMAP); |
|
jumpr R31; |
|
|
|
ENTRY(__vmcache) |
|
trap1(#HVM_TRAP1_VMCACHE); |
|
jumpr R31; |
|
|
|
ENTRY(__vmgettime) |
|
trap1(#HVM_TRAP1_VMGETTIME); |
|
jumpr R31; |
|
|
|
ENTRY(__vmsettime) |
|
trap1(#HVM_TRAP1_VMSETTIME); |
|
jumpr R31; |
|
|
|
ENTRY(__vmwait) |
|
trap1(#HVM_TRAP1_VMWAIT); |
|
jumpr R31; |
|
|
|
ENTRY(__vmyield) |
|
trap1(#HVM_TRAP1_VMYIELD); |
|
jumpr R31; |
|
|
|
ENTRY(__vmstart) |
|
trap1(#HVM_TRAP1_VMSTART); |
|
jumpr R31; |
|
|
|
ENTRY(__vmstop) |
|
trap1(#HVM_TRAP1_VMSTOP); |
|
jumpr R31; |
|
|
|
ENTRY(__vmvpid) |
|
trap1(#HVM_TRAP1_VMVPID); |
|
jumpr R31; |
|
|
|
/* Probably not actually going to use these; see vm_entry.S */ |
|
|
|
ENTRY(__vmsetregs) |
|
trap1(#HVM_TRAP1_VMSETREGS); |
|
jumpr R31; |
|
|
|
ENTRY(__vmgetregs) |
|
trap1(#HVM_TRAP1_VMGETREGS); |
|
jumpr R31;
|
|
|