mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
semihosting: Retrieve stack top from image_info
Remove the write-once field TaskState.stack_base, and use the same value from struct image_info. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
@@ -168,7 +168,6 @@ void target_cpu_copy_regs(CPUArchState *env, target_pt_regs *regs)
|
||||
qemu_guest_getrandom_nofail(&env->keys, sizeof(env->keys));
|
||||
}
|
||||
|
||||
ts->stack_base = info->start_stack;
|
||||
ts->heap_base = info->brk;
|
||||
/* This will be filled in on the first SYS_HEAPINFO call. */
|
||||
ts->heap_limit = 0;
|
||||
|
||||
@@ -504,7 +504,6 @@ void target_cpu_copy_regs(CPUArchState *env, target_pt_regs *regs)
|
||||
arm_rebuild_hflags(env);
|
||||
#endif
|
||||
|
||||
ts->stack_base = info->start_stack;
|
||||
ts->heap_base = info->brk;
|
||||
/* This will be filled in on the first SYS_HEAPINFO call. */
|
||||
ts->heap_limit = 0;
|
||||
|
||||
@@ -117,7 +117,6 @@ void target_cpu_copy_regs(CPUArchState *env, target_pt_regs *regs)
|
||||
env->aregs[7] = regs->usp;
|
||||
env->sr = regs->sr;
|
||||
|
||||
ts->stack_base = info->start_stack;
|
||||
ts->heap_base = info->brk;
|
||||
/* This will be filled in on the first SYS_HEAPINFO call. */
|
||||
ts->heap_limit = 0;
|
||||
|
||||
@@ -127,7 +127,6 @@ struct TaskState {
|
||||
abi_ulong heap_base;
|
||||
abi_ulong heap_limit;
|
||||
#endif
|
||||
abi_ulong stack_base;
|
||||
int used; /* non zero if used */
|
||||
struct image_info *info;
|
||||
struct linux_binprm *bprm;
|
||||
|
||||
@@ -109,7 +109,6 @@ void target_cpu_copy_regs(CPUArchState *env, target_pt_regs *regs)
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
ts->stack_base = info->start_stack;
|
||||
ts->heap_base = info->brk;
|
||||
/* This will be filled in on the first SYS_HEAPINFO call. */
|
||||
ts->heap_limit = 0;
|
||||
|
||||
@@ -696,7 +696,11 @@ void do_common_semihosting(CPUState *cs)
|
||||
|
||||
retvals[0] = ts->heap_base;
|
||||
retvals[1] = ts->heap_limit;
|
||||
retvals[2] = ts->stack_base;
|
||||
/*
|
||||
* Note that semihosting is *not* thread aware.
|
||||
* Always return the stack base of the main thread.
|
||||
*/
|
||||
retvals[2] = ts->info->start_stack;
|
||||
retvals[3] = 0; /* Stack limit. */
|
||||
#else
|
||||
retvals[0] = info.heapbase; /* Heap Base */
|
||||
|
||||
Reference in New Issue
Block a user