diff options
| author | James Hogan <[email protected]> | 2016-06-23 17:34:45 +0100 |
|---|---|---|
| committer | Paolo Bonzini <[email protected]> | 2016-07-05 16:08:54 +0200 |
| commit | 1e5217f54251ddd339e00a0b30f126589737d467 (patch) | |
| tree | 3e3b80abbf3ff14434c8e2225db39c7dceb29572 /tools/perf/scripts/python/bin | |
| parent | 025014e3fb8f6afab92d3050c3423e2b1ffcbc84 (diff) | |
MIPS: KVM: Dynamically choose scratch registers
Scratch cop0 registers are needed by KVM to be able to save/restore all
the GPRs, including k0/k1, and for storing the VCPU pointer. However no
registers are universally suitable for these purposes, so the decision
should be made at runtime.
Until now, we've used DDATA_LO to store the VCPU pointer, and ErrorEPC
as a temporary. It could be argued that this is abuse of those
registers, and DDATA_LO is known not to be usable on certain
implementations (Cavium Octeon). If KScratch registers are present, use
them instead.
We save & restore the temporary register in addition to the VCPU pointer
register when using a KScratch register for it, as it may be used for
normal host TLB handling too.
Signed-off-by: James Hogan <[email protected]>
Cc: Paolo Bonzini <[email protected]>
Cc: Radim KrÄmář <[email protected]>
Cc: Ralf Baechle <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions