On 9/23/24 06:46, LIU Zhiwei wrote:
On 2024/9/22 12:46, Richard Henderson wrote:
On 9/11/24 15:26, LIU Zhiwei wrote:
@@ -2129,6 +2389,7 @@ static void tcg_target_qemu_prologue(TCGContext *s)
static void tcg_out_tb_start(TCGContext *s)
{
+ s->riscv_cur_type = TCG_TYPE_COUNT;
/* nothing to do */
}
I recently realized that the vector config is call-clobbered.
We need this reset as well in tcg_out_call_int(),
OK.
and prepare_host_addr().
In prepare_host_addr, place the reset just after the two calls to
new_ldst_label().
As slow path will also cal tcg_out_call_init, can we only reset after
tcg_out_call_init?
No, because all slow path code is emitted out-of-line at the end of the TB. When we begin
generating code for he next TCGOp, we will not yet have called tcg_out_call_init.
Therefore we must recognize this possibility when generating the branch to the slow path.
r~