Peter Maydell <peter.mayd...@linaro.org> writes: > Use get_user_u64() and get_user_ual() instead of the ldl() and > ldq_raw() functions. > > [Note that this change is not compile tested as it is actually > in dead code -- none of the bsd-user configurations are PPC.] > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Reviewed-by: Alex Bennée <alex.ben...@linaro.org>
> --- > bsd-user/elfload.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/bsd-user/elfload.c b/bsd-user/elfload.c > index 93fd9e4..2bf57eb 100644 > --- a/bsd-user/elfload.c > +++ b/bsd-user/elfload.c > @@ -351,8 +351,10 @@ static inline void init_thread(struct target_pt_regs > *_regs, struct image_info * > > _regs->gpr[1] = infop->start_stack; > #if defined(TARGET_PPC64) && !defined(TARGET_ABI32) > - entry = ldq_raw(infop->entry) + infop->load_addr; > - toc = ldq_raw(infop->entry + 8) + infop->load_addr; > + get_user_u64(entry, infop->entry); > + entry += infop->load_addr; > + get_user_u64(toc, infop->entry + 8); > + toc += infop->load_addr; > _regs->gpr[2] = toc; > infop->entry = entry; > #endif > @@ -365,8 +367,9 @@ static inline void init_thread(struct target_pt_regs > *_regs, struct image_info * > get_user_ual(_regs->gpr[3], pos); > pos += sizeof(abi_ulong); > _regs->gpr[4] = pos; > - for (tmp = 1; tmp != 0; pos += sizeof(abi_ulong)) > - tmp = ldl(pos); > + for (tmp = 1; tmp != 0; pos += sizeof(abi_ulong)) { > + get_user_ual(tmp, pos); > + } > _regs->gpr[5] = pos; > } -- Alex Bennée