qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

tcg/arm: Expand epilogue inline

It is, after all, just two instructions.

Profiling on a cortex-a15, using -d nochain to increase the number
of exit_tb that are executed, shows a minor improvement of 0.5%.

Signed-off-by: Richard Henderson <rth@twiddle.net>

authored by

Richard Henderson and committed by
Richard Henderson
fc1bfdfd d6fa50f5

+2 -10
+2 -10
tcg/arm/tcg-target.inc.c
··· 1745 1745 #endif 1746 1746 } 1747 1747 1748 - static tcg_insn_unit *tb_ret_addr; 1749 1748 static void tcg_out_epilogue(TCGContext *s); 1750 1749 1751 1750 static inline void tcg_out_op(TCGContext *s, TCGOpcode opc, ··· 1756 1755 1757 1756 switch (opc) { 1758 1757 case INDEX_op_exit_tb: 1759 - /* Reuse the zeroing that exists for goto_ptr. */ 1760 - a0 = args[0]; 1761 - if (a0 == 0) { 1762 - tcg_out_goto(s, COND_AL, s->code_gen_epilogue); 1763 - } else { 1764 - tcg_out_movi32(s, COND_AL, TCG_REG_R0, args[0]); 1765 - tcg_out_goto(s, COND_AL, tb_ret_addr); 1766 - } 1758 + tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_R0, args[0]); 1759 + tcg_out_epilogue(s); 1767 1760 break; 1768 1761 case INDEX_op_goto_tb: 1769 1762 { ··· 2309 2302 */ 2310 2303 s->code_gen_epilogue = s->code_ptr; 2311 2304 tcg_out_movi(s, TCG_TYPE_PTR, TCG_REG_R0, 0); 2312 - tb_ret_addr = s->code_ptr; 2313 2305 tcg_out_epilogue(s); 2314 2306 } 2315 2307