• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revisión4250da10923347c9ee907f8d72bd93dfa5ee8742 (tree)
Tiempo2018-12-26 04:58:43
AutorRichard Henderson <richard.henderson@lina...>
CommiterRichard Henderson

Log Message

tcg: Improve call argument loading

Free the argument register only after we have verified that the
temporary is not already in that register. This case is likely
now that we are back propagating the preferred register.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Cambiar Resumen

Diferencia incremental

--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -3611,15 +3611,16 @@ static void tcg_reg_alloc_call(TCGContext *s, TCGOp *op)
36113611 if (arg != TCG_CALL_DUMMY_ARG) {
36123612 ts = arg_temp(arg);
36133613 reg = tcg_target_call_iarg_regs[i];
3614- tcg_reg_free(s, reg, allocated_regs);
36153614
36163615 if (ts->val_type == TEMP_VAL_REG) {
36173616 if (ts->reg != reg) {
3617+ tcg_reg_free(s, reg, allocated_regs);
36183618 tcg_out_mov(s, ts->type, reg, ts->reg);
36193619 }
36203620 } else {
36213621 TCGRegSet arg_set = 0;
36223622
3623+ tcg_reg_free(s, reg, allocated_regs);
36233624 tcg_regset_set_reg(arg_set, reg);
36243625 temp_load(s, ts, arg_set, allocated_regs, 0);
36253626 }