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