aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2019-05-15 19:08:10 -0400
committerVineet Gupta <vgupta@synopsys.com>2019-07-08 04:24:44 -0400
commit68e5c6f073bcf70da5f8eef88eb2d98f7c560bb6 (patch)
tree48580fcf457d50fb7202191f20888a18aa74b212
parenta4880801a72ecc2dcdfa432f81a754f3e7438567 (diff)
ARC: entry: EV_Trap expects r10 (vs. r9) to have exception cause
avoids 1 MOV instruction in light of double load/store code Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
-rw-r--r--arch/arc/include/asm/entry-arcv2.h3
-rw-r--r--arch/arc/include/asm/entry-compact.h4
-rw-r--r--arch/arc/kernel/entry-compact.S2
-rw-r--r--arch/arc/kernel/entry.S4
4 files changed, 6 insertions, 7 deletions
diff --git a/arch/arc/include/asm/entry-arcv2.h b/arch/arc/include/asm/entry-arcv2.h
index 0733752ce7fe..f5ae394ebe06 100644
--- a/arch/arc/include/asm/entry-arcv2.h
+++ b/arch/arc/include/asm/entry-arcv2.h
@@ -95,9 +95,8 @@
95 lr r10, [ecr] 95 lr r10, [ecr]
96 lr r11, [erbta] 96 lr r11, [erbta]
97 ST2 r10, r11, PT_event 97 ST2 r10, r11, PT_event
98 mov r9, r10
99 98
100 ; OUTPUT: r9 has ECR 99 ; OUTPUT: r10 has ECR expected by EV_Trap
101.endm 100.endm
102 101
103/*------------------------------------------------------------------------ 102/*------------------------------------------------------------------------
diff --git a/arch/arc/include/asm/entry-compact.h b/arch/arc/include/asm/entry-compact.h
index 66ba1bf21d28..66a292335ee6 100644
--- a/arch/arc/include/asm/entry-compact.h
+++ b/arch/arc/include/asm/entry-compact.h
@@ -195,8 +195,8 @@
195 PUSHAX CTOP_AUX_EFLAGS 195 PUSHAX CTOP_AUX_EFLAGS
196#endif 196#endif
197 197
198 lr r9, [ecr] 198 lr r10, [ecr]
199 st r9, [sp, PT_event] /* EV_Trap expects r9 to have ECR */ 199 st r10, [sp, PT_event] /* EV_Trap expects r10 to have ECR */
200.endm 200.endm
201 201
202/*-------------------------------------------------------------- 202/*--------------------------------------------------------------
diff --git a/arch/arc/kernel/entry-compact.S b/arch/arc/kernel/entry-compact.S
index 7fe59880c16b..5cb0cd7e4eab 100644
--- a/arch/arc/kernel/entry-compact.S
+++ b/arch/arc/kernel/entry-compact.S
@@ -256,7 +256,7 @@ ENTRY(EV_TLBProtV)
256 256
257 EXCEPTION_PROLOGUE 257 EXCEPTION_PROLOGUE
258 258
259 mov r2, r9 ; ECR set into r9 already 259 mov r2, r10 ; ECR set into r10 already
260 lr r0, [efa] ; Faulting Data address (not part of pt_regs saved above) 260 lr r0, [efa] ; Faulting Data address (not part of pt_regs saved above)
261 261
262 ; Exception auto-disables further Intr/exceptions. 262 ; Exception auto-disables further Intr/exceptions.
diff --git a/arch/arc/kernel/entry.S b/arch/arc/kernel/entry.S
index a2bfacbcfce1..72be01270e24 100644
--- a/arch/arc/kernel/entry.S
+++ b/arch/arc/kernel/entry.S
@@ -232,8 +232,8 @@ ENTRY(EV_Trap)
232 EXCEPTION_PROLOGUE 232 EXCEPTION_PROLOGUE
233 233
234 ;============ TRAP 1 :breakpoints 234 ;============ TRAP 1 :breakpoints
235 ; Check ECR for trap with arg (PROLOGUE ensures r9 has ECR) 235 ; Check ECR for trap with arg (PROLOGUE ensures r10 has ECR)
236 bmsk.f 0, r9, 7 236 bmsk.f 0, r10, 7
237 bnz trap_with_param 237 bnz trap_with_param
238 238
239 ;============ TRAP (no param): syscall top level 239 ;============ TRAP (no param): syscall top level