AArch64: fixup fpu storage's size in stack and append Q16 ~ Q31 (#7815)

Signed-off-by: GuEe-GUI <GuEe-GUI@github.com>
This commit is contained in:
GUI
2023-07-15 15:21:23 +08:00
committed by GitHub
parent 2741bec8f7
commit b424169e17
4 changed files with 171 additions and 176 deletions
+8 -33
View File
@@ -1,11 +1,12 @@
/*
* Copyright (c) 2006-2021, RT-Thread Development Team
* Copyright (c) 2006-2023, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2021-05-12 RT-Thread init
* 2023-07-13 GuEe-GUI append fpu: Q16 ~ Q31
*/
#include <board.h>
#include <rtthread.h>
@@ -32,38 +33,12 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter,
stk = (rt_ubase_t *)stack_addr;
*(--stk) = (rt_ubase_t)0; /* Q0 */
*(--stk) = (rt_ubase_t)0; /* Q0 */
*(--stk) = (rt_ubase_t)0; /* Q1 */
*(--stk) = (rt_ubase_t)0; /* Q1 */
*(--stk) = (rt_ubase_t)0; /* Q2 */
*(--stk) = (rt_ubase_t)0; /* Q2 */
*(--stk) = (rt_ubase_t)0; /* Q3 */
*(--stk) = (rt_ubase_t)0; /* Q3 */
*(--stk) = (rt_ubase_t)0; /* Q4 */
*(--stk) = (rt_ubase_t)0; /* Q4 */
*(--stk) = (rt_ubase_t)0; /* Q5 */
*(--stk) = (rt_ubase_t)0; /* Q5 */
*(--stk) = (rt_ubase_t)0; /* Q6 */
*(--stk) = (rt_ubase_t)0; /* Q6 */
*(--stk) = (rt_ubase_t)0; /* Q7 */
*(--stk) = (rt_ubase_t)0; /* Q7 */
*(--stk) = (rt_ubase_t)0; /* Q8 */
*(--stk) = (rt_ubase_t)0; /* Q8 */
*(--stk) = (rt_ubase_t)0; /* Q9 */
*(--stk) = (rt_ubase_t)0; /* Q9 */
*(--stk) = (rt_ubase_t)0; /* Q10 */
*(--stk) = (rt_ubase_t)0; /* Q10 */
*(--stk) = (rt_ubase_t)0; /* Q11 */
*(--stk) = (rt_ubase_t)0; /* Q11 */
*(--stk) = (rt_ubase_t)0; /* Q12 */
*(--stk) = (rt_ubase_t)0; /* Q12 */
*(--stk) = (rt_ubase_t)0; /* Q13 */
*(--stk) = (rt_ubase_t)0; /* Q13 */
*(--stk) = (rt_ubase_t)0; /* Q14 */
*(--stk) = (rt_ubase_t)0; /* Q14 */
*(--stk) = (rt_ubase_t)0; /* Q15 */
*(--stk) = (rt_ubase_t)0; /* Q15 */
for (int i = 0; i < 32; ++i)
{
stk -= sizeof(rt_uint128_t) / sizeof(rt_ubase_t);
*(rt_uint128_t *)stk = (rt_uint128_t) { 0 };
}
*(--stk) = (rt_ubase_t)0; /* X1 */
*(--stk) = (rt_ubase_t)parameter; /* X0 */