accel/tcg: Use vaddr in translator_ld*

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2024-04-02 15:13:58 -10:00
parent 3d48b6b687
commit 8018947230
4 changed files with 19 additions and 19 deletions

View File

@ -14,6 +14,7 @@
#include "exec/translator.h" #include "exec/translator.h"
#include "exec/cpu_ldst.h" #include "exec/cpu_ldst.h"
#include "exec/plugin-gen.h" #include "exec/plugin-gen.h"
#include "exec/cpu_ldst.h"
#include "tcg/tcg-op-common.h" #include "tcg/tcg-op-common.h"
#include "internal-target.h" #include "internal-target.h"
@ -294,11 +295,11 @@ static void *translator_access(CPUArchState *env, DisasContextBase *db,
return host + (pc - base); return host + (pc - base);
} }
static void plugin_insn_append(abi_ptr pc, const void *from, size_t size) static void plugin_insn_append(vaddr pc, const void *from, size_t size)
{ {
#ifdef CONFIG_PLUGIN #ifdef CONFIG_PLUGIN
struct qemu_plugin_insn *insn = tcg_ctx->plugin_insn; struct qemu_plugin_insn *insn = tcg_ctx->plugin_insn;
abi_ptr off; size_t off;
if (insn == NULL) { if (insn == NULL) {
return; return;
@ -315,7 +316,7 @@ static void plugin_insn_append(abi_ptr pc, const void *from, size_t size)
#endif #endif
} }
uint8_t translator_ldub(CPUArchState *env, DisasContextBase *db, abi_ptr pc) uint8_t translator_ldub(CPUArchState *env, DisasContextBase *db, vaddr pc)
{ {
uint8_t ret; uint8_t ret;
void *p = translator_access(env, db, pc, sizeof(ret)); void *p = translator_access(env, db, pc, sizeof(ret));
@ -329,7 +330,7 @@ uint8_t translator_ldub(CPUArchState *env, DisasContextBase *db, abi_ptr pc)
return ret; return ret;
} }
uint16_t translator_lduw(CPUArchState *env, DisasContextBase *db, abi_ptr pc) uint16_t translator_lduw(CPUArchState *env, DisasContextBase *db, vaddr pc)
{ {
uint16_t ret, plug; uint16_t ret, plug;
void *p = translator_access(env, db, pc, sizeof(ret)); void *p = translator_access(env, db, pc, sizeof(ret));
@ -344,7 +345,7 @@ uint16_t translator_lduw(CPUArchState *env, DisasContextBase *db, abi_ptr pc)
return ret; return ret;
} }
uint32_t translator_ldl(CPUArchState *env, DisasContextBase *db, abi_ptr pc) uint32_t translator_ldl(CPUArchState *env, DisasContextBase *db, vaddr pc)
{ {
uint32_t ret, plug; uint32_t ret, plug;
void *p = translator_access(env, db, pc, sizeof(ret)); void *p = translator_access(env, db, pc, sizeof(ret));
@ -359,7 +360,7 @@ uint32_t translator_ldl(CPUArchState *env, DisasContextBase *db, abi_ptr pc)
return ret; return ret;
} }
uint64_t translator_ldq(CPUArchState *env, DisasContextBase *db, abi_ptr pc) uint64_t translator_ldq(CPUArchState *env, DisasContextBase *db, vaddr pc)
{ {
uint64_t ret, plug; uint64_t ret, plug;
void *p = translator_access(env, db, pc, sizeof(ret)); void *p = translator_access(env, db, pc, sizeof(ret));
@ -374,7 +375,7 @@ uint64_t translator_ldq(CPUArchState *env, DisasContextBase *db, abi_ptr pc)
return ret; return ret;
} }
void translator_fake_ldb(uint8_t insn8, abi_ptr pc) void translator_fake_ldb(uint8_t insn8, vaddr pc)
{ {
plugin_insn_append(pc, &insn8, sizeof(insn8)); plugin_insn_append(pc, &insn8, sizeof(insn8));
} }

View File

@ -19,10 +19,7 @@
*/ */
#include "qemu/bswap.h" #include "qemu/bswap.h"
#include "exec/cpu-common.h" #include "exec/vaddr.h"
#include "exec/cpu-defs.h"
#include "exec/abi_ptr.h"
#include "cpu.h"
/** /**
* gen_intermediate_code * gen_intermediate_code
@ -185,14 +182,14 @@ bool translator_io_start(DisasContextBase *db);
* the relevant information at translation time. * the relevant information at translation time.
*/ */
uint8_t translator_ldub(CPUArchState *env, DisasContextBase *db, abi_ptr pc); uint8_t translator_ldub(CPUArchState *env, DisasContextBase *db, vaddr pc);
uint16_t translator_lduw(CPUArchState *env, DisasContextBase *db, abi_ptr pc); uint16_t translator_lduw(CPUArchState *env, DisasContextBase *db, vaddr pc);
uint32_t translator_ldl(CPUArchState *env, DisasContextBase *db, abi_ptr pc); uint32_t translator_ldl(CPUArchState *env, DisasContextBase *db, vaddr pc);
uint64_t translator_ldq(CPUArchState *env, DisasContextBase *db, abi_ptr pc); uint64_t translator_ldq(CPUArchState *env, DisasContextBase *db, vaddr pc);
static inline uint16_t static inline uint16_t
translator_lduw_swap(CPUArchState *env, DisasContextBase *db, translator_lduw_swap(CPUArchState *env, DisasContextBase *db,
abi_ptr pc, bool do_swap) vaddr pc, bool do_swap)
{ {
uint16_t ret = translator_lduw(env, db, pc); uint16_t ret = translator_lduw(env, db, pc);
if (do_swap) { if (do_swap) {
@ -203,7 +200,7 @@ translator_lduw_swap(CPUArchState *env, DisasContextBase *db,
static inline uint32_t static inline uint32_t
translator_ldl_swap(CPUArchState *env, DisasContextBase *db, translator_ldl_swap(CPUArchState *env, DisasContextBase *db,
abi_ptr pc, bool do_swap) vaddr pc, bool do_swap)
{ {
uint32_t ret = translator_ldl(env, db, pc); uint32_t ret = translator_ldl(env, db, pc);
if (do_swap) { if (do_swap) {
@ -214,7 +211,7 @@ translator_ldl_swap(CPUArchState *env, DisasContextBase *db,
static inline uint64_t static inline uint64_t
translator_ldq_swap(CPUArchState *env, DisasContextBase *db, translator_ldq_swap(CPUArchState *env, DisasContextBase *db,
abi_ptr pc, bool do_swap) vaddr pc, bool do_swap)
{ {
uint64_t ret = translator_ldq(env, db, pc); uint64_t ret = translator_ldq(env, db, pc);
if (do_swap) { if (do_swap) {
@ -233,7 +230,7 @@ translator_ldq_swap(CPUArchState *env, DisasContextBase *db,
* re-synthesised for s390x "ex"). It ensures we update other areas of * re-synthesised for s390x "ex"). It ensures we update other areas of
* the translator with details of the executed instruction. * the translator with details of the executed instruction.
*/ */
void translator_fake_ldb(uint8_t insn8, abi_ptr pc); void translator_fake_ldb(uint8_t insn8, vaddr pc);
/* /*
* Return whether addr is on the same page as where disassembly started. * Return whether addr is on the same page as where disassembly started.

View File

@ -25,6 +25,7 @@
#include "exec/translation-block.h" #include "exec/translation-block.h"
#include "exec/cpu_ldst.h" #include "exec/cpu_ldst.h"
#include "exec/log.h" #include "exec/log.h"
#include "exec/cpu_ldst.h"
#include "internal.h" #include "internal.h"
#include "attribs.h" #include "attribs.h"
#include "insn.h" #include "insn.h"

View File

@ -26,6 +26,7 @@
#include "tcg/tcg-op.h" #include "tcg/tcg-op.h"
#include "exec/helper-proto.h" #include "exec/helper-proto.h"
#include "exec/helper-gen.h" #include "exec/helper-gen.h"
#include "exec/cpu_ldst.h"
#include "exec/translator.h" #include "exec/translator.h"
#include "qemu/qemu-print.h" #include "qemu/qemu-print.h"