[PATCH 3/5] bsps/sparc: Unifiy stack initialization
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue Jun 8 09:20:49 UTC 2021
Initialize the stacks in start.S in one place and identical to
_CPU_Context_Initialize().
---
bsps/sparc/shared/start/start.S | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/bsps/sparc/shared/start/start.S b/bsps/sparc/shared/start/start.S
index 369ef72a94..4922a97d6d 100644
--- a/bsps/sparc/shared/start/start.S
+++ b/bsps/sparc/shared/start/start.S
@@ -306,13 +306,12 @@ SYM(hard_reset):
nop
ld [%g6 + PER_CPU_INTERRUPT_STACK_HIGH], %sp ! set stack pointer
- sub %sp, 4, %sp ! stack starts at end of area - 4
- andn %sp, 0x0f, %sp ! align stack on 16-byte boundary
+ andn %sp, CPU_STACK_ALIGNMENT - 1, %sp
+ sub %sp, SPARC_MINIMUM_STACK_FRAME_SIZE, %sp
mov %sp, %fp ! set frame pointer
- mov %g6, %o0
call SYM(bsp_start_on_secondary_processor) ! does not return
- sub %sp, SPARC_MINIMUM_STACK_FRAME_SIZE, %sp
+ mov %g6, %i0
.Lbootcpu:
st %o0, [%o1]
#endif
@@ -326,8 +325,8 @@ SYM(hard_reset):
#endif
set SYM(_ISR_Stack_area_begin), %sp
add %sp, %g5, %sp
- sub %sp, 4, %sp ! stack starts at end of area - 4
- andn %sp, 0x0f, %sp ! align stack on 16-byte boundary
+ andn %sp, CPU_STACK_ALIGNMENT - 1, %sp
+ sub %sp, SPARC_MINIMUM_STACK_FRAME_SIZE, %sp
mov %sp, %fp ! Set frame pointer
nop
@@ -346,8 +345,7 @@ SYM(hard_reset):
bleu,a .Lzerobss
nop
- mov %g0, %o0 ! command line
call SYM(boot_card) ! does not return
- sub %sp, 0x60, %sp ! room for boot_card to save args
+ mov %g0, %i0 ! command line
/* end of file */
--
2.26.2
More information about the devel
mailing list