summaryrefslogtreecommitdiff
path: root/arch/arc/include/asm/entry-arcv2.h
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@kernel.org>2020-05-22 16:24:53 -0700
committerVineet Gupta <vgupta@kernel.org>2023-08-18 10:30:47 -0700
commitd4624bf6a6c9d9ff084eb2cba6d3cf6aeda9f974 (patch)
treeee5d37e548da970e0f81386dc3943c6150cb0fd9 /arch/arc/include/asm/entry-arcv2.h
parent656f18ad8d5bc878cf05210e2fea8f13270ffcc5 (diff)
ARCv2: entry: rearrange pt_regs slightly
Instead of r26,fp,sp,r12,r30 order as fp,r30,r12,r26,sp - keeps SP at well known position (right abive hardware autosave) - r26,r12 saved specifically for ARCv2 (and not in ARCv3) kept closer for easy ifdef'ry later Signed-off-by: Vineet Gupta <vgupta@kernel.org>
Diffstat (limited to 'arch/arc/include/asm/entry-arcv2.h')
-rw-r--r--arch/arc/include/asm/entry-arcv2.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/arc/include/asm/entry-arcv2.h b/arch/arc/include/asm/entry-arcv2.h
index a030eae93d35..4d13320e0c1b 100644
--- a/arch/arc/include/asm/entry-arcv2.h
+++ b/arch/arc/include/asm/entry-arcv2.h
@@ -149,10 +149,10 @@
*/
.macro __SAVE_REGFILE_SOFT
- ST2 gp, fp, PT_r26 ; gp (r26), fp (r27)
-
- st r12, [sp, PT_r12]
+ st fp, [sp, PT_fp] ; r27
st r30, [sp, PT_r30]
+ st r12, [sp, PT_r12]
+ st r26, [sp, PT_r26] ; gp
; Saving pt_regs->sp correctly requires some extra work due to the way
; Auto stack switch works
@@ -187,10 +187,10 @@
/*------------------------------------------------------------------------*/
.macro __RESTORE_REGFILE_SOFT
- LD2 gp, fp, PT_r26 ; gp (r26), fp (r27)
-
- ld r12, [sp, PT_r12]
+ ld fp, [sp, PT_fp]
ld r30, [sp, PT_r30]
+ ld r12, [sp, PT_r12]
+ ld r26, [sp, PT_r26]
; Restore SP (into AUX_USER_SP) only if returning to U mode
; - for K mode, it will be implicitly restored as stack is unwound