diff options
| author | Vineet Gupta <vgupta@synopsys.com> | 2019-05-15 19:08:10 -0400 |
|---|---|---|
| committer | Vineet Gupta <vgupta@synopsys.com> | 2019-07-08 04:24:44 -0400 |
| commit | 68e5c6f073bcf70da5f8eef88eb2d98f7c560bb6 (patch) | |
| tree | 48580fcf457d50fb7202191f20888a18aa74b212 | |
| parent | a4880801a72ecc2dcdfa432f81a754f3e7438567 (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.h | 3 | ||||
| -rw-r--r-- | arch/arc/include/asm/entry-compact.h | 4 | ||||
| -rw-r--r-- | arch/arc/kernel/entry-compact.S | 2 | ||||
| -rw-r--r-- | arch/arc/kernel/entry.S | 4 |
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 |
