[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 08/48] linux-user/nios2: Only initialize SP and PC in target_c
From: |
Richard Henderson |
Subject: |
[PATCH v5 08/48] linux-user/nios2: Only initialize SP and PC in target_cpu_copy_regs |
Date: |
Thu, 10 Mar 2022 03:26:45 -0800 |
Drop the set of estatus in init_thread; it was clearly intended
to be setting the value of CR_STATUS for the application, but we
never actually performed that copy. However, the proper value is
set in nios2_cpu_reset so we don't need to do anything here.
We only initialize SP and EA in init_thread, there's no value in
copying other uninitialized data into ENV.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
linux-user/elfload.c | 1 -
linux-user/nios2/cpu_loop.c | 22 ----------------------
2 files changed, 23 deletions(-)
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 23ff9659a5..8c85c933b7 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -1096,7 +1096,6 @@ static void init_thread(struct target_pt_regs *regs,
struct image_info *infop)
{
regs->ea = infop->entry;
regs->sp = infop->start_stack;
- regs->estatus = 0x3;
}
#define LO_COMMPAGE TARGET_PAGE_SIZE
diff --git a/linux-user/nios2/cpu_loop.c b/linux-user/nios2/cpu_loop.c
index 7b20c024db..fa234cb2af 100644
--- a/linux-user/nios2/cpu_loop.c
+++ b/linux-user/nios2/cpu_loop.c
@@ -132,28 +132,6 @@ void cpu_loop(CPUNios2State *env)
void target_cpu_copy_regs(CPUArchState *env, struct target_pt_regs *regs)
{
- env->regs[0] = 0;
- env->regs[1] = regs->r1;
- env->regs[2] = regs->r2;
- env->regs[3] = regs->r3;
- env->regs[4] = regs->r4;
- env->regs[5] = regs->r5;
- env->regs[6] = regs->r6;
- env->regs[7] = regs->r7;
- env->regs[8] = regs->r8;
- env->regs[9] = regs->r9;
- env->regs[10] = regs->r10;
- env->regs[11] = regs->r11;
- env->regs[12] = regs->r12;
- env->regs[13] = regs->r13;
- env->regs[14] = regs->r14;
- env->regs[15] = regs->r15;
- /* TODO: unsigned long orig_r2; */
- env->regs[R_RA] = regs->ra;
- env->regs[R_FP] = regs->fp;
env->regs[R_SP] = regs->sp;
- env->regs[R_GP] = regs->gp;
- env->regs[CR_ESTATUS] = regs->estatus;
env->pc = regs->ea;
- /* TODO: unsigned long orig_r7; */
}
--
2.25.1
- [PATCH v5 00/48] target/nios2: Shadow register set, EIC and VIC, Richard Henderson, 2022/03/10
- [PATCH v5 02/48] target/nios2: Stop generating code if gen_check_supervisor fails, Richard Henderson, 2022/03/10
- [PATCH v5 01/48] target/nios2: Check supervisor on eret, Richard Henderson, 2022/03/10
- [PATCH v5 04/48] target/nios2: Split PC out of env->regs[], Richard Henderson, 2022/03/10
- [PATCH v5 03/48] target/nios2: Add NUM_GP_REGS and NUM_CP_REGS, Richard Henderson, 2022/03/10
- [PATCH v5 05/48] target/nios2: Split out helper for eret instruction, Richard Henderson, 2022/03/10
- [PATCH v5 06/48] target/nios2: Fix BRET instruction, Richard Henderson, 2022/03/10
- [PATCH v5 07/48] target/nios2: Do not create TCGv for control registers, Richard Henderson, 2022/03/10
- [PATCH v5 08/48] linux-user/nios2: Only initialize SP and PC in target_cpu_copy_regs,
Richard Henderson <=
- [PATCH v5 09/48] target/nios2: Remove cpu_interrupts_enabled, Richard Henderson, 2022/03/10
- [PATCH v5 13/48] target/nios2: Use hw/registerfields.h for CR_STATUS fields, Richard Henderson, 2022/03/10
- [PATCH v5 11/48] target/nios2: Do not zero the general registers on reset, Richard Henderson, 2022/03/10
- [PATCH v5 10/48] target/nios2: Split control registers away from general registers, Richard Henderson, 2022/03/10
- [PATCH v5 12/48] target/nios2: Clean up nios2_cpu_dump_state, Richard Henderson, 2022/03/10
- [PATCH v5 15/48] target/nios2: Use hw/registerfields.h for CR_TLBADDR fields, Richard Henderson, 2022/03/10
- [PATCH v5 14/48] target/nios2: Use hw/registerfields.h for CR_EXCEPTION fields, Richard Henderson, 2022/03/10