Skip to content

Commit

Permalink
ARC: entry.S: micro-optimize Trap handler
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Vineet Gupta committed Jun 19, 2015
1 parent c7e6d79 commit 62fb640
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
5 changes: 3 additions & 2 deletions arch/arc/include/asm/entry-compact.h
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,6 @@
/* 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 */
Expand All @@ -198,6 +196,9 @@
PUSHAX lp_end
PUSHAX lp_start
PUSHAX erbta

lr r9, [ecr]
st r9, [sp, PT_event] /* EV_Trap expects r9 to have ECR */
.endm

/*--------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions arch/arc/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -258,8 +258,8 @@ ENTRY(EV_Trap)
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
Expand Down

0 comments on commit 62fb640

Please sign in to comment.