On 10 October 2017 at 16:18, Paolo Bonzini <pbonz...@redhat.com> wrote:
> This should be done by all target and, since commit 53f6672bcf
> ("gen-icount: use tcg_ctx.tcg_env instead of cpu_env", 2017-06-30),
> is causing the NIOS2 target to hang.
>
> This is because the test for "should I exit to the main loop"
> was being done with the correct offset to the icount decrementer,
> but using TCG temporary 0 (the frame pointer) rather than the
> env pointer.
>
> Cc: qemu-sta...@nongnu.org
> Cc: Marek Vasut <ma...@denx.de>
> Reported-by: Thomas Huth <th...@redhat.com>
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
> ---
>  target/nios2/translate.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/target/nios2/translate.c b/target/nios2/translate.c
> index 6b0961837d..54fbe898df 100644
> --- a/target/nios2/translate.c
> +++ b/target/nios2/translate.c
> @@ -948,6 +948,7 @@ void nios2_tcg_init(void)
>      int i;
>
>      cpu_env = tcg_global_reg_new_ptr(TCG_AREG0, "env");
> +    tcg_ctx.tcg_env = cpu_env;
>
>      for (i = 0; i < NUM_CORE_REGS; i++) {
>          cpu_R[i] = tcg_global_mem_new(cpu_env,
> --

Is there somewhere we could put an assert() so we can catch this
error for future targets rather than them just silently generating
bad code?

thanks
-- PMM

Reply via email to