mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-21 00:53:27 -06:00
Accelerator patches
- Extract page-protection definitions to page-protection.h - Rework in accel/tcg in preparation of extracting TCG fields from CPUState - More uses of get_task_state() in user emulation - Xen refactors in preparation for adding multiple map caches (Juergen & Edgar) - MAINTAINERS updates (Aleksandar and Bin) -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmY40CAACgkQ4+MsLN6t wN5drxAA1oIsuUzpAJmlMIxZwlzbICiuexgn/HH9DwWNlrarKo7V1l4YB8jd9WOg IKuj7c39kJKsDEB8BXApYwcly+l7DYdnAAI8Z7a+eN+ffKNl/0XBaLjsGf58RNwY fb39/cXWI9ZxKxsHMSyjpiu68gOGvZ5JJqa30Fr+eOGuug9Fn/fOe1zC6l/dMagy Dnym72stpD+hcsN5sVwohTBIk+7g9og1O/ctRx6Q3ZCOPz4p0+JNf8VUu43/reaR 294yRK++JrSMhOVFRzP+FH1G25NxiOrVCFXZsUTYU+qPDtdiKtjH1keI/sk7rwZ7 U573lesl7ewQFf1PvMdaVf0TrQyOe6kUGr9Mn2k8+KgjYRAjTAQk8V4Ric/+xXSU 0rd7Cz7lyQ8jm0DoOElROv+lTDQs4dvm3BopF3Bojo4xHLHd3SFhROVPG4tvGQ3H 72Q5UPR2Jr2QZKiImvPceUOg0z5XxoN6KRUkSEpMFOiTRkbwnrH59z/qPijUpe6v 8l5IlI9GjwkL7pcRensp1VC6e9KC7F5Od1J/2RLDw3UQllMQXqVw2bxD3CEtDRJL QSZoS4d1jUCW4iAYdqh/8+2cOIPiCJ4ai5u7lSdjrIJkRErm32FV/pQLZauoHlT5 eTPUgzDoRXVgI1X1slTpVXlEEvRNbhZqSkYLkXr80MLn5hTafo0= =3Qkg -----END PGP SIGNATURE----- Merge tag 'accel-20240506' of https://github.com/philmd/qemu into staging Accelerator patches - Extract page-protection definitions to page-protection.h - Rework in accel/tcg in preparation of extracting TCG fields from CPUState - More uses of get_task_state() in user emulation - Xen refactors in preparation for adding multiple map caches (Juergen & Edgar) - MAINTAINERS updates (Aleksandar and Bin) # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEE+qvnXhKRciHc/Wuy4+MsLN6twN4FAmY40CAACgkQ4+MsLN6t # wN5drxAA1oIsuUzpAJmlMIxZwlzbICiuexgn/HH9DwWNlrarKo7V1l4YB8jd9WOg # IKuj7c39kJKsDEB8BXApYwcly+l7DYdnAAI8Z7a+eN+ffKNl/0XBaLjsGf58RNwY # fb39/cXWI9ZxKxsHMSyjpiu68gOGvZ5JJqa30Fr+eOGuug9Fn/fOe1zC6l/dMagy # Dnym72stpD+hcsN5sVwohTBIk+7g9og1O/ctRx6Q3ZCOPz4p0+JNf8VUu43/reaR # 294yRK++JrSMhOVFRzP+FH1G25NxiOrVCFXZsUTYU+qPDtdiKtjH1keI/sk7rwZ7 # U573lesl7ewQFf1PvMdaVf0TrQyOe6kUGr9Mn2k8+KgjYRAjTAQk8V4Ric/+xXSU # 0rd7Cz7lyQ8jm0DoOElROv+lTDQs4dvm3BopF3Bojo4xHLHd3SFhROVPG4tvGQ3H # 72Q5UPR2Jr2QZKiImvPceUOg0z5XxoN6KRUkSEpMFOiTRkbwnrH59z/qPijUpe6v # 8l5IlI9GjwkL7pcRensp1VC6e9KC7F5Od1J/2RLDw3UQllMQXqVw2bxD3CEtDRJL # QSZoS4d1jUCW4iAYdqh/8+2cOIPiCJ4ai5u7lSdjrIJkRErm32FV/pQLZauoHlT5 # eTPUgzDoRXVgI1X1slTpVXlEEvRNbhZqSkYLkXr80MLn5hTafo0= # =3Qkg # -----END PGP SIGNATURE----- # gpg: Signature made Mon 06 May 2024 05:42:08 AM PDT # gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.org>" [full] * tag 'accel-20240506' of https://github.com/philmd/qemu: (28 commits) MAINTAINERS: Update my email address MAINTAINERS: Update Aleksandar Rikalo email system: Pass RAM MemoryRegion and is_write in xen_map_cache() xen: mapcache: Break out xen_map_cache_init_single() xen: mapcache: Break out xen_invalidate_map_cache_single() xen: mapcache: Refactor xen_invalidate_map_cache_entry_unlocked xen: mapcache: Refactor xen_replace_cache_entry_unlocked xen: mapcache: Break out xen_ram_addr_from_mapcache_single xen: mapcache: Refactor xen_remap_bucket for multi-instance xen: mapcache: Refactor xen_map_cache for multi-instance xen: mapcache: Refactor lock functions for multi-instance xen: let xen_ram_addr_from_mapcache() return -1 in case of not found entry system: let qemu_map_ram_ptr() use qemu_ram_ptr_length() user: Use get_task_state() helper user: Declare get_task_state() once in 'accel/tcg/vcpu-state.h' user: Forward declare TaskState type definition accel/tcg: Move @plugin_mem_cbs from CPUState to CPUNegativeOffsetState accel/tcg: Restrict cpu_plugin_mem_cbs_enabled() to TCG accel/tcg: Restrict qemu_plugin_vcpu_exit_hook() to TCG plugins accel/tcg: Update CPUNegativeOffsetState::can_do_io field documentation ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
commit
873f9ca385
91 changed files with 421 additions and 300 deletions
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/log.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "fpu/softfloat-types.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "qemu/qemu-print.h"
|
||||
|
|
|
@ -1941,7 +1941,7 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp)
|
|||
|
||||
#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY)
|
||||
/* Use pc-relative instructions in system-mode */
|
||||
cs->tcg_cflags |= CF_PCREL;
|
||||
tcg_cflags_set(cs, CF_PCREL);
|
||||
#endif
|
||||
|
||||
/* If we needed to query the host kernel for the CPU features
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "cpu-qom.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
#include "exec/gdbstub.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "qapi/qapi-types-common.h"
|
||||
#include "target/arm/multiprocessing.h"
|
||||
#include "target/arm/gtimer.h"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "qemu/range.h"
|
||||
#include "qemu/main-loop.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "cpu.h"
|
||||
#include "internals.h"
|
||||
#include "cpu-features.h"
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "qemu/bitops.h"
|
||||
#include "qemu/log.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#ifdef CONFIG_TCG
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "semihosting/common-semi.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "cpu.h"
|
||||
#include "internals.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/ram_addr.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/helper-proto.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "cpu.h"
|
||||
#include "internals.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "tcg/tcg-gvec-desc.h"
|
||||
#include "fpu/softfloat.h"
|
||||
|
|
|
@ -55,7 +55,7 @@ static int avr_cpu_mmu_index(CPUState *cs, bool ifetch)
|
|||
static void avr_cpu_synchronize_from_tb(CPUState *cs,
|
||||
const TranslationBlock *tb)
|
||||
{
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
cpu_env(cs)->pc_w = tb->pc / 2; /* internally PC points to words */
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "cpu.h"
|
||||
#include "hw/core/tcg-cpu-ops.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "exec/helper-proto.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/osdep.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "mmu.h"
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -333,7 +334,7 @@ int cris_mmu_translate(struct cris_mmu_result *res,
|
|||
|
||||
if (!cris_mmu_enabled(env->sregs[SFR_RW_GC_CFG])) {
|
||||
res->phy = vaddr;
|
||||
res->prot = PAGE_BITS;
|
||||
res->prot = PAGE_RWX;
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -344,7 +345,7 @@ int cris_mmu_translate(struct cris_mmu_result *res,
|
|||
miss = 0;
|
||||
base = cris_mmu_translate_seg(env, seg);
|
||||
res->phy = base | (0x0fffffff & vaddr);
|
||||
res->prot = PAGE_BITS;
|
||||
res->prot = PAGE_RWX;
|
||||
} else {
|
||||
miss = cris_mmu_translate_page(res, env, vaddr, access_type,
|
||||
is_user, debug);
|
||||
|
|
|
@ -257,7 +257,7 @@ static vaddr hexagon_cpu_get_pc(CPUState *cs)
|
|||
static void hexagon_cpu_synchronize_from_tb(CPUState *cs,
|
||||
const TranslationBlock *tb)
|
||||
{
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
cpu_env(cs)->gpr[HEX_REG_PC] = tb->pc;
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ static void hppa_cpu_synchronize_from_tb(CPUState *cs,
|
|||
{
|
||||
HPPACPU *cpu = HPPA_CPU(cs);
|
||||
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
cpu->env.iaoq_f = tb->pc;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/log.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "hw/core/cpu.h"
|
||||
#include "trace.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "disas/disas.h"
|
||||
#include "qemu/host-utils.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "tcg/tcg-op.h"
|
||||
#include "tcg/tcg-op-gvec.h"
|
||||
#include "exec/helper-proto.h"
|
||||
|
|
|
@ -7382,7 +7382,7 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp)
|
|||
|
||||
#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY)
|
||||
/* Use pc-relative instructions in system-mode */
|
||||
cs->tcg_cflags |= CF_PCREL;
|
||||
tcg_cflags_set(cs, CF_PCREL);
|
||||
#endif
|
||||
|
||||
if (cpu->apic_id == UNASSIGNED_APIC_ID) {
|
||||
|
|
|
@ -523,7 +523,7 @@ static inline target_ulong get_memio_eip(CPUX86State *env)
|
|||
}
|
||||
|
||||
/* Per x86_restore_state_to_opc. */
|
||||
if (cs->tcg_cflags & CF_PCREL) {
|
||||
if (tcg_cflags_has(cs, CF_PCREL)) {
|
||||
return (env->eip & TARGET_PAGE_MASK) | data[0];
|
||||
} else {
|
||||
return data[0] - env->segs[R_CS].base;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "cpu.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "tcg/helper-tcg.h"
|
||||
|
||||
typedef struct TranslateParams {
|
||||
|
|
|
@ -336,7 +336,7 @@ static bool loongarch_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
|
|||
static void loongarch_cpu_synchronize_from_tb(CPUState *cs,
|
||||
const TranslationBlock *tb)
|
||||
{
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
set_pc(cpu_env(cs), tb->pc);
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "internals.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/log.h"
|
||||
#include "cpu-csr.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/osdep.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/gdbstub.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "gdbstub/helpers.h"
|
||||
|
|
|
@ -99,7 +99,7 @@ static void mb_cpu_synchronize_from_tb(CPUState *cs,
|
|||
{
|
||||
MicroBlazeCPU *cpu = MICROBLAZE_CPU(cs);
|
||||
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
cpu->env.pc = tb->pc;
|
||||
cpu->env.iflags = tb->flags & IFLAGS_TB_MASK;
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/osdep.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "qemu/host-utils.h"
|
||||
#include "exec/log.h"
|
||||
|
||||
|
@ -51,7 +52,7 @@ bool mb_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
|
|||
if (mmu_idx == MMU_NOMMU_IDX) {
|
||||
/* MMU disabled or not available. */
|
||||
address &= TARGET_PAGE_MASK;
|
||||
prot = PAGE_BITS;
|
||||
prot = PAGE_RWX;
|
||||
tlb_set_page_with_attrs(cs, address, address, attrs, prot, mmu_idx,
|
||||
TARGET_PAGE_SIZE);
|
||||
return true;
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "qemu/log.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
|
||||
static unsigned int tlb_decode_size(unsigned int f)
|
||||
{
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include "qemu/osdep.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "../internal.h"
|
||||
|
||||
static int is_seg_am_mapped(unsigned int am, bool eu, int mmu_idx)
|
||||
|
|
|
@ -81,7 +81,7 @@ void mips_cpu_synchronize_from_tb(CPUState *cs, const TranslationBlock *tb)
|
|||
{
|
||||
CPUMIPSState *env = cpu_env(cs);
|
||||
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
env->active_tc.PC = tb->pc;
|
||||
env->hflags &= ~MIPS_HFLAG_BMASK;
|
||||
env->hflags |= tb->flags & MIPS_HFLAG_BMASK;
|
||||
|
|
|
@ -93,7 +93,7 @@ bool mips_io_recompile_replay_branch(CPUState *cs, const TranslationBlock *tb)
|
|||
CPUMIPSState *env = cpu_env(cs);
|
||||
|
||||
if ((env->hflags & MIPS_HFLAG_BMASK) != 0
|
||||
&& !(cs->tcg_cflags & CF_PCREL) && env->active_tc.PC != tb->pc) {
|
||||
&& !tcg_cflags_has(cs, CF_PCREL) && env->active_tc.PC != tb->pc) {
|
||||
env->active_tc.PC -= (env->hflags & MIPS_HFLAG_B16 ? 2 : 4);
|
||||
env->hflags &= ~MIPS_HFLAG_BMASK;
|
||||
return true;
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "cpu.h"
|
||||
#include "internal.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/log.h"
|
||||
#include "exec/helper-proto.h"
|
||||
|
|
|
@ -45,7 +45,7 @@ static void openrisc_cpu_synchronize_from_tb(CPUState *cs,
|
|||
{
|
||||
OpenRISCCPU *cpu = OPENRISC_CPU(cs);
|
||||
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
cpu->env.pc = tb->pc;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "qemu/log.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "gdbstub/helpers.h"
|
||||
#include "qemu/host-utils.h"
|
||||
#include "hw/loader.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include "exec/breakpoint.h"
|
||||
#include "hw/registerfields.h"
|
||||
#include "exec/page-protection.h"
|
||||
|
||||
/* PM instructions */
|
||||
typedef enum {
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/osdep.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "sysemu/kvm.h"
|
||||
#include "kvm_ppc.h"
|
||||
#include "internal.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/units.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "qemu/qemu-print.h"
|
||||
#include "sysemu/hw_accel.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "qemu/osdep.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "sysemu/kvm.h"
|
||||
#include "kvm_ppc.h"
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
|
||||
#include "exec/page-protection.h"
|
||||
|
||||
/* Radix Quadrants */
|
||||
#define R_EADDR_MASK 0x3FFFFFFFFFFFFFFF
|
||||
#define R_EADDR_VALID_MASK 0xC00FFFFFFFFFFFFF
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "mmu-hash64.h"
|
||||
#include "mmu-hash32.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/log.h"
|
||||
#include "helper_regs.h"
|
||||
#include "qemu/error-report.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "mmu-hash64.h"
|
||||
#include "mmu-hash32.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/log.h"
|
||||
#include "helper_regs.h"
|
||||
#include "qemu/error-report.h"
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "internals.h"
|
||||
#include "pmu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "instmap.h"
|
||||
#include "tcg/tcg-op.h"
|
||||
#include "trace.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "cpu.h"
|
||||
#include "trace.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
|
||||
static bool pmp_write_cfg(CPURISCVState *env, uint32_t addr_index,
|
||||
uint8_t val);
|
||||
|
|
|
@ -96,7 +96,7 @@ static void riscv_cpu_synchronize_from_tb(CPUState *cs,
|
|||
CPURISCVState *env = &cpu->env;
|
||||
RISCVMXL xl = FIELD_EX32(tb->flags, TB_FLAGS, XL);
|
||||
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
|
||||
if (xl == MXL_RV32) {
|
||||
env->pc = (int32_t) tb->pc;
|
||||
|
@ -890,7 +890,7 @@ static bool riscv_tcg_cpu_realize(CPUState *cs, Error **errp)
|
|||
CPURISCVState *env = &cpu->env;
|
||||
Error *local_err = NULL;
|
||||
|
||||
CPU(cs)->tcg_cflags |= CF_PCREL;
|
||||
tcg_cflags_set(CPU(cs), CF_PCREL);
|
||||
|
||||
if (cpu->cfg.ext_sstc) {
|
||||
riscv_timer_init(cpu);
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "exec/memop.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "fpu/softfloat.h"
|
||||
#include "tcg/tcg-gvec-desc.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "cpu.h"
|
||||
#include "migration/vmstate.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "hw/loader.h"
|
||||
#include "fpu/softfloat.h"
|
||||
#include "tcg/debug-assert.h"
|
||||
|
@ -45,7 +46,7 @@ static void rx_cpu_synchronize_from_tb(CPUState *cs,
|
|||
{
|
||||
RXCPU *cpu = RX_CPU(cs);
|
||||
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
cpu->env.pc = tb->pc;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "sysemu/kvm.h"
|
||||
#include "sysemu/tcg.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "trace.h"
|
||||
#include "hw/hw.h"
|
||||
#include "hw/s390x/storage-keys.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "tcg_s390x.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "hw/core/tcg-cpu-ops.h"
|
||||
#include "qemu/int128.h"
|
||||
|
|
|
@ -47,7 +47,7 @@ static void superh_cpu_synchronize_from_tb(CPUState *cs,
|
|||
{
|
||||
SuperHCPU *cpu = SUPERH_CPU(cs);
|
||||
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
cpu->env.pc = tb->pc;
|
||||
cpu->env.flags = tb->flags & TB_FLAG_ENVFLAGS_MASK;
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ static bool superh_io_recompile_replay_branch(CPUState *cs,
|
|||
CPUSH4State *env = cpu_env(cs);
|
||||
|
||||
if ((env->flags & (TB_FLAG_DELAY_SLOT | TB_FLAG_DELAY_SLOT_COND))
|
||||
&& !(cs->tcg_cflags & CF_PCREL) && env->pc != tb->pc) {
|
||||
&& !tcg_cflags_has(cs, CF_PCREL) && env->pc != tb->pc) {
|
||||
env->pc -= 2;
|
||||
env->flags &= ~(TB_FLAG_DELAY_SLOT | TB_FLAG_DELAY_SLOT_COND);
|
||||
return true;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/log.h"
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
|
|
|
@ -702,7 +702,7 @@ static void sparc_cpu_synchronize_from_tb(CPUState *cs,
|
|||
{
|
||||
SPARCCPU *cpu = SPARC_CPU(cs);
|
||||
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
cpu->env.pc = tb->pc;
|
||||
cpu->env.npc = tb->cs_base;
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "tcg/tcg.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "asi.h"
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "qemu/log.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "qemu/qemu-print.h"
|
||||
#include "trace.h"
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ static vaddr tricore_cpu_get_pc(CPUState *cs)
|
|||
static void tricore_cpu_synchronize_from_tb(CPUState *cs,
|
||||
const TranslationBlock *tb)
|
||||
{
|
||||
tcg_debug_assert(!(cs->tcg_cflags & CF_PCREL));
|
||||
tcg_debug_assert(!tcg_cflags_has(cs, CF_PCREL));
|
||||
cpu_env(cs)->PC = tb->pc;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "hw/registerfields.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "fpu/softfloat-helpers.h"
|
||||
#include "qemu/qemu-print.h"
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "exec/helper-proto.h"
|
||||
#include "qemu/host-utils.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/page-protection.h"
|
||||
|
||||
#define XTENSA_MPU_SEGMENT_MASK 0x0000001f
|
||||
#define XTENSA_MPU_ACC_RIGHTS_MASK 0x00000f00
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "qemu/osdep.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "exec/page-protection.h"
|
||||
#include "qemu/host-utils.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "qemu/atomic.h"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue