[PATCH 00/18] Initial Prefixed Instruction support
Jordan Niethe
jniethe5 at gmail.com
Tue Nov 26 16:21:23 AEDT 2019
A future revision of the ISA will introduce prefixed instructions. A
prefixed instruction is composed of a 4-byte prefix followed by a
4-byte suffix.
All prefixes have the major opcode 1. A prefix will never be a valid
word instruction. A suffix may be an existing word instruction or a new
instruction.
The new instruction formats are:
* Eight-Byte Load/Store Instructions
* Eight-Byte Register-to-Register Instructions
* Modified Load/Store Instructions
* Modified Register-to-Register Instructions
This series enables prefixed instructions and extends the instruction
emulation to support them. Then the places where prefixed instructions
might need to be emulated are updated.
A future series will add prefixed instruction support to guests running
in KVM.
Alistair Popple (1):
powerpc: Enable Prefixed Instructions
Jordan Niethe (17):
powerpc: Add BOUNDARY SRR1 bit for future ISA version
powerpc: Add PREFIXED SRR1 bit for future ISA version
powerpc: Rename Bit 35 of SRR1 to indicate new purpose
powerpc sstep: Prepare to support prefixed instructions
powerpc sstep: Add support for prefixed integer load/stores
powerpc sstep: Add support for prefixed floating-point load/stores
powerpc sstep: Add support for prefixed VSX load/stores
powerpc sstep: Add support for prefixed fixed-point arithmetic
powerpc: Support prefixed instructions in alignment handler
powerpc/traps: Check for prefixed instructions in
facility_unavailable_exception()
powerpc/xmon: Add initial support for prefixed instructions
powerpc/xmon: Dump prefixed instructions
powerpc/kprobes: Support kprobes on prefixed instructions
powerpc/uprobes: Add support for prefixed instructions
powerpc/hw_breakpoints: Initial support for prefixed instructions
powerpc: Add prefix support to mce_find_instr_ea_and_pfn()
powerpc/fault: Use analyse_instr() to check for store with updates to
sp
arch/powerpc/include/asm/kprobes.h | 5 +-
arch/powerpc/include/asm/ppc-opcode.h | 3 +
arch/powerpc/include/asm/reg.h | 7 +-
arch/powerpc/include/asm/sstep.h | 8 +-
arch/powerpc/include/asm/uaccess.h | 30 +++++
arch/powerpc/include/asm/uprobes.h | 18 ++-
arch/powerpc/kernel/align.c | 8 +-
arch/powerpc/kernel/dt_cpu_ftrs.c | 23 ++++
arch/powerpc/kernel/hw_breakpoint.c | 8 +-
arch/powerpc/kernel/kprobes.c | 46 +++++--
arch/powerpc/kernel/mce_power.c | 6 +-
arch/powerpc/kernel/optprobes.c | 31 +++--
arch/powerpc/kernel/optprobes_head.S | 6 +
arch/powerpc/kernel/traps.c | 18 ++-
arch/powerpc/kernel/uprobes.c | 4 +-
arch/powerpc/kvm/book3s_hv_nested.c | 2 +-
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 2 +-
arch/powerpc/kvm/emulate_loadstore.c | 2 +-
arch/powerpc/lib/sstep.c | 180 +++++++++++++++++++++++++-
arch/powerpc/lib/test_emulate_step.c | 30 ++---
arch/powerpc/mm/fault.c | 39 ++----
arch/powerpc/xmon/xmon.c | 132 +++++++++++++++----
22 files changed, 490 insertions(+), 118 deletions(-)
--
2.20.1
More information about the Linuxppc-dev
mailing list