Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
target/sparc: Use tcg_gen_lookup_and_goto_ptr for v9 WRASI
We incorporate %asi into tb->flags so that we may generate
inline code for the many ASIs for which it is easy to do so.
Setting %asi is common for e.g. memcpy and memset performing
block copy and clear, so it is worth noticing this case.

We must end the TB but do not need to return to the main loop.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230628071202.230991-9-richard.henderson@linaro.org>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
  • Loading branch information
rth7680 authored and mcayland committed Jun 28, 2023
1 parent 553338d commit 44a7c2e
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions target/sparc/translate.c
Expand Up @@ -4147,10 +4147,14 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn)
tcg_gen_andi_tl(cpu_tmp0, cpu_tmp0, 0xff);
tcg_gen_st32_tl(cpu_tmp0, cpu_env,
offsetof(CPUSPARCState, asi));
/* End TB to notice changed ASI. */
/*
* End TB to notice changed ASI.
* TODO: Could notice src1 = %g0 and IS_IMM,
* update DisasContext and not exit the TB.
*/
save_state(dc);
gen_op_next_insn();
tcg_gen_exit_tb(NULL, 0);
tcg_gen_lookup_and_goto_ptr();
dc->base.is_jmp = DISAS_NORETURN;
break;
case 0x6: /* V9 wrfprs */
Expand Down

0 comments on commit 44a7c2e

Please sign in to comment.