linux_old1/arch/arm64/kernel
Punit Agrawal 587064b610 arm64: Add framework for legacy instruction emulation
Typically, providing support for legacy instructions requires
emulating the behaviour of instructions whose encodings have become
undefined. If the instructions haven't been removed from the
architecture, there maybe an option in the implementation to turn
on/off the support for these instructions.

Create common infrastructure to support legacy instruction
emulation. In addition to emulation, also provide an option to support
hardware execution when supported. The default execution mode (one of
undef, emulate, hw exeuction) is dependent on the state of the
instruction (deprecated or obsolete) in the architecture and
can specified at the time of registering the instruction handlers. The
runtime state of the emulation can be controlled by writing to
individual nodes in sysctl. The expected default behaviour is
documented as part of this patch.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2014-11-20 16:33:53 +00:00
..
vdso arm64: vdso: fix build error when switching from LE to BE 2014-07-30 15:06:35 +01:00
.gitignore arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
Makefile arm64: Add framework for legacy instruction emulation 2014-11-20 16:33:53 +00:00
arm64ksyms.c arm64: Add ftrace support 2014-05-29 09:08:08 +01:00
armv8_deprecated.c arm64: Add framework for legacy instruction emulation 2014-11-20 16:33:53 +00:00
asm-offsets.c arm64: KVM: implement lazy world switch for debug registers 2014-07-11 04:57:46 -07:00
cpu_ops.c arm64: kernel: enable PSCI cpu operations on UP systems 2014-07-18 15:23:25 +01:00
cpuidle.c arm64: kernel: introduce cpu_init_idle CPU operation 2014-09-12 10:48:55 +01:00
cpuinfo.c arm64: don't flag non-aliasing VIPT I-caches as aliasing 2014-09-08 14:39:18 +01:00
cputable.c arm64: add CPU_HOTPLUG infrastructure 2013-10-25 11:33:21 +01:00
debug-monitors.c KVM/ARM New features for 3.17 include: 2014-08-05 09:47:45 +02:00
efi-entry.S arm64/efi: efistub: jump to 'stext' directly, not through the header 2014-11-05 09:02:59 +01:00
efi-stub.c arm64/efi: efistub: don't abort if base of DRAM is occupied 2014-09-08 14:39:18 +01:00
efi.c arm64: dmi: set DMI string as dump stack arch description 2014-11-05 09:03:32 +01:00
entry-fpsimd.S arm64: fpsimd: fix a typo in fpsimd_save_partial_state ENDPROC 2014-07-31 11:42:42 +01:00
entry-ftrace.S arm64: ftrace: eliminate literal pool entries 2014-11-07 15:04:49 +00:00
entry.S arm64: entry: use ldp/stp instead of push/pop when saving/restoring regs 2014-11-14 10:42:21 +00:00
fpsimd.c arm64: fix bug for reloading FPSIMD state after cpu power off 2014-09-01 12:55:21 +01:00
ftrace.c arm64: Correct ftrace calls to aarch64_insn_gen_branch_imm() 2014-09-19 12:05:45 +01:00
head.S arm64/efi: set PE/COFF file alignment to 512 bytes 2014-11-05 09:03:09 +01:00
hw_breakpoint.c arm64: is_compat_task is defined both in asm/compat.h and linux/compat.h 2014-05-12 16:43:29 +01:00
hyp-stub.S irqchip: gic-v3: Initial support for GICv3 2014-07-08 22:11:47 +00:00
image.h arm64: Update the Image header 2014-07-10 12:36:40 +01:00
insn.c arm64: Add support for hooks to handle undefined instructions 2014-11-20 16:33:43 +00:00
io.c arm64: optimize memcpy_{from,to}io() and memset_io() 2014-11-06 17:25:27 +00:00
irq.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-09 06:42:04 -04:00
jump_label.c arm64, jump label: optimize jump label implementation 2014-01-08 15:23:53 +00:00
kgdb.c arm64: Fix typos in KGDB macros 2014-09-25 15:35:41 +01:00
kuser32.S arm64: Add __NR_* definitions for compat syscalls 2014-07-10 11:02:40 +01:00
module.c arm64: move encode_insn_immediate() from module.c to insn.c 2014-01-08 15:21:29 +00:00
pci.c arm64: Add architectural support for PCI 2014-09-30 17:08:57 -06:00
perf_event.c ARM64: make of_device_ids const 2014-10-03 14:49:28 +01:00
perf_regs.c arm64: perf: don't rely on layout of pt_regs when grabbing sp or pc 2014-08-28 20:01:50 +01:00
process.c arm64: ASLR: Don't randomise text when randomise_va_space == 0 2014-10-24 15:47:49 +01:00
psci.c arm64: add PSCI CPU_SUSPEND based cpu_suspend support 2014-09-12 10:48:56 +01:00
ptrace.c Merge git://git.infradead.org/users/eparis/audit 2014-10-19 16:25:56 -07:00
return_address.c arm64: LLVMLinux: Use global stack pointer in return_address() 2014-09-08 14:39:19 +01:00
setup.c arm64: Add COMPAT_HWCAP_LPAE 2014-11-17 10:43:42 +00:00
signal.c arm64: Use sigsp() 2014-08-06 13:03:45 +02:00
signal32.c Merge branch 'signal-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc 2014-08-09 09:58:12 -07:00
sleep.S arm64: kernel: refactor the CPU suspend API for retention states 2014-09-12 10:48:55 +01:00
smp.c arm64: Tell irq work about self IPI support 2014-09-13 18:46:13 +02:00
smp_spin_table.c arm64: spin-table: handle unmapped cpu-release-addrs 2014-09-08 14:39:18 +01:00
stacktrace.c arm64: LLVMLinux: Use current_stack_pointer in save_stack_trace_tsk 2014-09-08 14:39:19 +01:00
suspend.c arm64: kernel: refactor the CPU suspend API for retention states 2014-09-12 10:48:55 +01:00
sys.c arm64: switch to generic sigaltstack 2013-02-14 09:17:29 -05:00
sys32.S arm64: compat: correct register concatenation for syscall wrappers 2013-10-25 15:59:36 +01:00
sys_compat.c arm64: flush TLS registers during exec 2014-09-11 18:34:58 +01:00
time.c arm64: kernel: initialize broadcast hrtimer based clock event device 2014-05-30 17:48:13 +01:00
topology.c arm64: topology: add MPIDR-based detection 2014-07-09 12:22:40 +01:00
traps.c arm64: Add support for hooks to handle undefined instructions 2014-11-20 16:33:43 +00:00
vdso.c arm64,ia64,ppc,s390,sh,tile,um,x86,mm: remove default gate area 2014-08-08 15:57:27 -07:00
vmlinux.lds.S arm64/efi: set PE/COFF file alignment to 512 bytes 2014-11-05 09:03:09 +01:00