/* SPDX-License-Identifier: GPL-2.0-only */ /* * * Copyright 2011 Paul Mackerras, IBM Corp. <paulus@au1.ibm.com> * * Derived from book3s_interrupts.S, which is: * Copyright SUSE Linux Products GmbH 2009 * * Authors: Alexander Graf <agraf@suse.de>
*/
/* Save host PMU registers */
bl kvmhv_save_host_pmu
/* * Put whatever is in the decrementer into the * hypervisor decrementer. * Because of a hardware deviation in P8, * we need to set LPCR[HDICE] before writing HDEC.
*/ ld r5, HSTATE_KVM_VCORE(r13) ld r6, VCORE_KVM(r5) ld r9, KVM_HOST_LPCR(r6)
ori r8, r9, LPCR_HDICE
mtspr SPRN_LPCR, r8
isync
mfspr r8,SPRN_DEC
mftb r7
extsw r8,r8
mtspr SPRN_HDEC,r8
add r8,r8,r7
std r8,HSTATE_DECEXP(r13)
/* Jump to partition switch code */
bl kvmppc_hv_entry_trampoline
nop
/* * We return here in virtual mode after the guest exits * with something that we can't handle in real mode. * Interrupts are still hard-disabled.
*/
/* * Register usage at this point: * * R1 = host R1 * R2 = host R2 * R3 = trap number on this thread * R12 = exit handler id * R13 = PACA
*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.