plugins: Set final instruction count in plugin_gen_tb_end
authorMatt Borgerson <contact@mborgerson.com>
Mon, 9 Oct 2023 16:41:01 +0000 (17:41 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Wed, 11 Oct 2023 07:46:39 +0000 (08:46 +0100)
commita392277dcf00e7bf6f7a0ecc9075ea154532c436
tree22bc7b4689a1d57106bf97e552357c4ca756c615
parent4f9ef4eebcc366fee20cce55aac659c6913bbf49
plugins: Set final instruction count in plugin_gen_tb_end

Translation logic may partially decode an instruction, then abort and
remove the instruction from the TB. This can happen for example when an
instruction spans two pages. In this case, plugins may get an incorrect
result when calling qemu_plugin_tb_n_insns to query for the number of
instructions in the TB. This patch updates plugin_gen_tb_end to set the
final instruction count.

Signed-off-by: Matt Borgerson <contact@mborgerson.com>
[AJB: added g_assert to defed API]
Message-Id: <CADc=-s5RwGViNTR-h5cq3np673W3RRFfhr4vCGJp0EoDUxvhog@mail.gmail.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-23-alex.bennee@linaro.org>
accel/tcg/plugin-gen.c
accel/tcg/translator.c
include/exec/plugin-gen.h