Elide the need to re-read ECR in Trap handler by ensuring that
EXCEPTION_PROLOGUE does that at the very end just before returning
to Trap handler
ARCv2 EXCEPTION_PROLOGUE already did that, so same for ARcompact and the
common trap handler adjusted to use cached ECR
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
/* ARC700 doesn't provide auto-stack switching */
SWITCH_TO_KERNEL_STK
- lr r9, [ecr]
- st r9, [sp, 8] /* ECR */
st r0, [sp, 4] /* orig_r0, needed only for sys calls */
/* Restore r9 used to code the early prologue */
PUSHAX lp_end
PUSHAX lp_start
PUSHAX erbta
+
+ lr r9, [ecr]
+ st r9, [sp, PT_event] /* EV_Trap expects r9 to have ECR */
.endm
/*--------------------------------------------------------------
EXCEPTION_PROLOGUE
;============ TRAP 1 :breakpoints
- lr r10, [ecr]
- bmsk.f 0, r10, 7
+ ; Check ECR for trap with arg (PROLOGUE ensures r9 has ECR)
+ bmsk.f 0, r9, 7
bnz trap_with_param
;============ TRAP (no param): syscall top level