mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
accel/tcg: Build plugin-gen.c once
We assert that env immediately follows CPUState in cpu-all.h. Change the offsetof expressions to be based on CPUState instead of ArchCPU. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
c4b45298a9
commit
e9358339c5
2 changed files with 9 additions and 11 deletions
|
@ -3,6 +3,10 @@ common_ss.add(when: 'CONFIG_TCG', if_true: files(
|
||||||
'tcg-runtime.c',
|
'tcg-runtime.c',
|
||||||
'tcg-runtime-gvec.c',
|
'tcg-runtime-gvec.c',
|
||||||
))
|
))
|
||||||
|
if get_option('plugins')
|
||||||
|
common_ss.add(when: 'CONFIG_TCG', if_true: files('plugin-gen.c'))
|
||||||
|
endif
|
||||||
|
|
||||||
tcg_specific_ss = ss.source_set()
|
tcg_specific_ss = ss.source_set()
|
||||||
tcg_specific_ss.add(files(
|
tcg_specific_ss.add(files(
|
||||||
'tcg-all.c',
|
'tcg-all.c',
|
||||||
|
@ -12,9 +16,6 @@ tcg_specific_ss.add(files(
|
||||||
'translator.c',
|
'translator.c',
|
||||||
))
|
))
|
||||||
tcg_specific_ss.add(when: 'CONFIG_USER_ONLY', if_true: files('user-exec.c'))
|
tcg_specific_ss.add(when: 'CONFIG_USER_ONLY', if_true: files('user-exec.c'))
|
||||||
if get_option('plugins')
|
|
||||||
tcg_specific_ss.add(files('plugin-gen.c'))
|
|
||||||
endif
|
|
||||||
specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_specific_ss)
|
specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_specific_ss)
|
||||||
|
|
||||||
specific_ss.add(when: ['CONFIG_SYSTEM_ONLY', 'CONFIG_TCG'], if_true: files(
|
specific_ss.add(when: ['CONFIG_SYSTEM_ONLY', 'CONFIG_TCG'], if_true: files(
|
||||||
|
|
|
@ -22,13 +22,12 @@
|
||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/plugin.h"
|
#include "qemu/plugin.h"
|
||||||
#include "qemu/log.h"
|
#include "qemu/log.h"
|
||||||
#include "cpu.h"
|
|
||||||
#include "tcg/tcg.h"
|
#include "tcg/tcg.h"
|
||||||
#include "tcg/tcg-temp-internal.h"
|
#include "tcg/tcg-temp-internal.h"
|
||||||
#include "tcg/tcg-op.h"
|
#include "tcg/tcg-op-common.h"
|
||||||
#include "exec/exec-all.h"
|
|
||||||
#include "exec/plugin-gen.h"
|
#include "exec/plugin-gen.h"
|
||||||
#include "exec/translator.h"
|
#include "exec/translator.h"
|
||||||
|
#include "exec/translation-block.h"
|
||||||
|
|
||||||
enum plugin_gen_from {
|
enum plugin_gen_from {
|
||||||
PLUGIN_GEN_FROM_TB,
|
PLUGIN_GEN_FROM_TB,
|
||||||
|
@ -89,15 +88,13 @@ static void gen_enable_mem_helper(struct qemu_plugin_tb *ptb,
|
||||||
qemu_plugin_add_dyn_cb_arr(arr);
|
qemu_plugin_add_dyn_cb_arr(arr);
|
||||||
|
|
||||||
tcg_gen_st_ptr(tcg_constant_ptr((intptr_t)arr), tcg_env,
|
tcg_gen_st_ptr(tcg_constant_ptr((intptr_t)arr), tcg_env,
|
||||||
offsetof(CPUState, neg.plugin_mem_cbs) -
|
offsetof(CPUState, neg.plugin_mem_cbs) - sizeof(CPUState));
|
||||||
offsetof(ArchCPU, env));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gen_disable_mem_helper(void)
|
static void gen_disable_mem_helper(void)
|
||||||
{
|
{
|
||||||
tcg_gen_st_ptr(tcg_constant_ptr(0), tcg_env,
|
tcg_gen_st_ptr(tcg_constant_ptr(0), tcg_env,
|
||||||
offsetof(CPUState, neg.plugin_mem_cbs) -
|
offsetof(CPUState, neg.plugin_mem_cbs) - sizeof(CPUState));
|
||||||
offsetof(ArchCPU, env));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static TCGv_i32 gen_cpu_index(void)
|
static TCGv_i32 gen_cpu_index(void)
|
||||||
|
@ -113,7 +110,7 @@ static TCGv_i32 gen_cpu_index(void)
|
||||||
}
|
}
|
||||||
TCGv_i32 cpu_index = tcg_temp_ebb_new_i32();
|
TCGv_i32 cpu_index = tcg_temp_ebb_new_i32();
|
||||||
tcg_gen_ld_i32(cpu_index, tcg_env,
|
tcg_gen_ld_i32(cpu_index, tcg_env,
|
||||||
-offsetof(ArchCPU, env) + offsetof(CPUState, cpu_index));
|
offsetof(CPUState, cpu_index) - sizeof(CPUState));
|
||||||
return cpu_index;
|
return cpu_index;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue