linux/arch/arc
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
..
boot ARC: [TB10x] Remove redundant abilis,simple-pinctrl mechanism 2013-05-15 10:12:03 +05:30
configs ARC: Add support for nSIM OSCI System C model 2013-05-07 13:44:00 +05:30
include ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
kernel ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values 2013-06-26 14:04:48 +05:30
lib ARC: String library 2013-02-11 20:00:35 +05:30
mm ARC: [mm] Remove @write argument to do_page_fault() 2013-06-22 19:23:20 +05:30
oprofile ARC: OProfile support 2013-02-15 23:16:00 +05:30
plat-arcfpga ARC: [plat-arcfpga] Fix build breakage when !CONFIG_ARC_SERIAL 2013-06-22 13:46:41 +05:30
plat-tb10x ARC: [TB10x] Remove redundant abilis,simple-pinctrl mechanism 2013-05-15 10:12:03 +05:30
Kbuild ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30
Kconfig ARC: [mm] Make stack/heap Non-executable by default 2013-06-22 19:23:20 +05:30
Kconfig.debug ARC: Build system: Makefiles, Kconfig, Linker script 2013-02-11 20:00:25 +05:30
Makefile ARC: Use kconfig helper IS_ENABLED() to get rid of defines.h 2013-06-22 13:46:42 +05:30