On 8/14/21 9:13 AM, Daniel Henrique Barboza wrote:
https://github.com/torvalds/linux/blob/master/tools/testing/selftests/powerpc/pmu/count_instructions.c
This test runs an instruction loop that consists of 'addi' instructions . Before running
the instructions
there's an overhead calculation with an empty loop.
...
static void ppc_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
target_ulong nip = ctx->base.pc_next;
int sse;
+ gen_helper_insns_inc(cpu_env, tcg_constant_i32(dcbase->num_insns));
+
if (is_jmp == DISAS_NORETURN) {
/* We have already exited the TB. */
return;
You've not considered how branches are implemented.
We generate code to exit the tb in gen_bcond. Anything you emit after that is
dead code.
r~