tcg: Adjust tcg_out_label for const

Simplify the arguments to always use s->code_ptr instead of
take it as an argument.  That makes it easy to ensure that
the value_ptr is always the rx version.

Reviewed-by: Joelle van Dyne <j@getutm.app>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2020-10-28 18:55:50 -07:00
parent 2be7d76b15
commit 92ab8e7d62
2 changed files with 8 additions and 8 deletions

View file

@ -1461,7 +1461,7 @@ static void tcg_out_brcond2(TCGContext *s, const TCGArg *args,
default: default:
tcg_abort(); tcg_abort();
} }
tcg_out_label(s, label_next, s->code_ptr); tcg_out_label(s, label_next);
} }
#endif #endif
@ -1503,10 +1503,10 @@ static void tcg_out_setcond2(TCGContext *s, const TCGArg *args,
tcg_out_movi(s, TCG_TYPE_I32, args[0], 0); tcg_out_movi(s, TCG_TYPE_I32, args[0], 0);
tcg_out_jxx(s, JCC_JMP, label_over, 1); tcg_out_jxx(s, JCC_JMP, label_over, 1);
tcg_out_label(s, label_true, s->code_ptr); tcg_out_label(s, label_true);
tcg_out_movi(s, TCG_TYPE_I32, args[0], 1); tcg_out_movi(s, TCG_TYPE_I32, args[0], 1);
tcg_out_label(s, label_over, s->code_ptr); tcg_out_label(s, label_over);
} else { } else {
/* When the destination does not overlap one of the arguments, /* When the destination does not overlap one of the arguments,
clear the destination first, jump if cond false, and emit an clear the destination first, jump if cond false, and emit an
@ -1520,7 +1520,7 @@ static void tcg_out_setcond2(TCGContext *s, const TCGArg *args,
tcg_out_brcond2(s, new_args, const_args+1, 1); tcg_out_brcond2(s, new_args, const_args+1, 1);
tgen_arithi(s, ARITH_ADD, args[0], 1, 0); tgen_arithi(s, ARITH_ADD, args[0], 1, 0);
tcg_out_label(s, label_over, s->code_ptr); tcg_out_label(s, label_over);
} }
} }
#endif #endif
@ -1534,7 +1534,7 @@ static void tcg_out_cmov(TCGContext *s, TCGCond cond, int rexw,
TCGLabel *over = gen_new_label(); TCGLabel *over = gen_new_label();
tcg_out_jxx(s, tcg_cond_to_jcc[tcg_invert_cond(cond)], over, 1); tcg_out_jxx(s, tcg_cond_to_jcc[tcg_invert_cond(cond)], over, 1);
tcg_out_mov(s, TCG_TYPE_I32, dest, v1); tcg_out_mov(s, TCG_TYPE_I32, dest, v1);
tcg_out_label(s, over, s->code_ptr); tcg_out_label(s, over);
} }
} }

View file

@ -302,11 +302,11 @@ static void tcg_out_reloc(TCGContext *s, tcg_insn_unit *code_ptr, int type,
QSIMPLEQ_INSERT_TAIL(&l->relocs, r, next); QSIMPLEQ_INSERT_TAIL(&l->relocs, r, next);
} }
static void tcg_out_label(TCGContext *s, TCGLabel *l, tcg_insn_unit *ptr) static void tcg_out_label(TCGContext *s, TCGLabel *l)
{ {
tcg_debug_assert(!l->has_value); tcg_debug_assert(!l->has_value);
l->has_value = 1; l->has_value = 1;
l->u.value_ptr = tcg_splitwx_to_rx(ptr); l->u.value_ptr = tcg_splitwx_to_rx(s->code_ptr);
} }
TCGLabel *gen_new_label(void) TCGLabel *gen_new_label(void)
@ -4329,7 +4329,7 @@ int tcg_gen_code(TCGContext *s, TranslationBlock *tb)
break; break;
case INDEX_op_set_label: case INDEX_op_set_label:
tcg_reg_alloc_bb_end(s, s->reserved_regs); tcg_reg_alloc_bb_end(s, s->reserved_regs);
tcg_out_label(s, arg_label(op->args[0]), s->code_ptr); tcg_out_label(s, arg_label(op->args[0]));
break; break;
case INDEX_op_call: case INDEX_op_call:
tcg_reg_alloc_call(s, op); tcg_reg_alloc_call(s, op);