android_kernel_samsung_sm8650/arch/arc/kernel
Vineet Gupta 502a0c775c ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values
pt_regs->event was set with artificial values to identify the low level
system event (syscall trap / breakpoint trap / exceptions / interrupts)

With r8 saving out of the way, the full word can be used to save real
ECR (Exception Cause Register) which helps idenify the event naturally,
including additional info such as cause code, param.
Only for Interrupts, where ECR is not applicable, do we resort to
synthetic non ECR values.

SAVE_ALL_TRAP/EXCEPTIONS can now be merged as they both use ECR with
different runtime values.

The ptrace helpers now use the sub-fields of ECR to distinguish the
events (e.g. vector 0x25 is trap, param 0 is syscall...)

The following benefits will follow:

(1) This centralizes the location of where ECR is saved and will allow
    the cleanup of task->thread.cause_code ECR placeholder which is set
    in non-uniform way. Then ARC VM code can safely rely on it being
    there for purpose of finer grained VM_EXEC dcache flush (based on
    exec fault: I-TLB Miss)

(2) Further, ECR being passed around from low level handlers as arg can
    be eliminated as it is part of standard reg-file in pt_regs

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2013-06-26 14:04:48 +05:30
..
arc_hostlink.c ARC: Hostlink Pseudo-Driver for Metaware Debugger 2013-02-15 23:16:10 +05:30
arcksyms.c ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30
asm-offsets.c ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
clk.c ARC: fix typo with clock speed 2013-05-07 13:43:54 +05:30
ctx_sw_asm.S ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
ctx_sw.c ARC: pt_regs update #3: Remove unused gutter at start of callee_regs 2013-06-22 19:23:22 +05:30
devtree.c ARC: make a copy of flat DT 2013-02-26 14:25:18 +05:30
disasm.c ARC port updates for Linux 3.10 (part 1) 2013-05-09 14:36:27 -07:00
entry.S ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
fpu.c ARC: Process-creation/scheduling/idle-loop 2013-02-11 20:00:38 +05:30
head.S ARC: SMP support 2013-02-15 23:16:02 +05:30
irq.c ARC: More code beautification with IS_ENABLED() 2013-06-22 13:46:42 +05:30
kgdb.c ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
kprobes.c ARC: Remove duplicate inclusion of header files 2013-04-09 12:21:15 +05:30
Makefile ARC: Hostlink Pseudo-Driver for Metaware Debugger 2013-02-15 23:16:10 +05:30
module.c ARC: Fix coding style issues 2013-04-09 12:21:14 +05:30
process.c ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
ptrace.c ARC: pt_regs update #3: Remove unused gutter at start of callee_regs 2013-06-22 19:23:22 +05:30
reset.c ARC: Boot #1: low-level, setup_arch(), /proc/cpuinfo, mem init 2013-02-15 23:15:54 +05:30
setup.c ARC: Use kconfig helper IS_ENABLED() to get rid of defines.h 2013-06-22 13:46:42 +05:30
signal.c ARC: [Review] Prevent incorrect syscall restarts 2013-02-15 23:15:50 +05:30
smp.c arc: Use generic idle loop 2013-04-08 17:39:23 +02:00
stacktrace.c ARC: pt_regs update #3: Remove unused gutter at start of callee_regs 2013-06-22 19:23:22 +05:30
sys.c ARC: ABIv3: fork/vfork wrappers not needed in "no-legacy-syscall" ABI 2013-03-11 19:01:10 +05:30
time.c ARC: Disintegrate arcregs.h 2013-06-22 13:46:42 +05:30
traps.c ARC: unaligned access emulation error handling consolidation 2013-05-07 13:43:55 +05:30
troubleshoot.c ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
unaligned.c ARC: Unaligned access emulation 2013-02-15 23:16:06 +05:30
unwind.c ARC: DWARF2 .debug_frame based stack unwinder 2013-02-15 23:16:03 +05:30
vmlinux.lds.S ARC: [Review] Multi-platform image #4: Isolate platform headers 2013-02-15 23:16:14 +05:30