[rtems commit] bsps/sparc: Unify stack initialization

Sebastian Huber sebh at rtems.org
Thu Jun 10 06:11:04 UTC 2021


Module:    rtems
Branch:    master
Commit:    b823c9843dabbf81eec26b1042a3b8ec65690441
Changeset: http://git.rtems.org/rtems/commit/?id=b823c9843dabbf81eec26b1042a3b8ec65690441

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Jun  8 08:08:43 2021 +0200

bsps/sparc: Unify stack initialization

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 369ef72..a9669bb 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, %o0
 .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, %o0                ! command line
 
 /* end of file */



More information about the vc mailing list