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:
parent
3d48b6b687
commit
8018947230
@ -14,6 +14,7 @@
|
||||
#include "exec/translator.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/plugin-gen.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "tcg/tcg-op-common.h"
|
||||
#include "internal-target.h"
|
||||
|
||||
@ -294,11 +295,11 @@ static void *translator_access(CPUArchState *env, DisasContextBase *db,
|
||||
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
|
||||
struct qemu_plugin_insn *insn = tcg_ctx->plugin_insn;
|
||||
abi_ptr off;
|
||||
size_t off;
|
||||
|
||||
if (insn == NULL) {
|
||||
return;
|
||||
@ -315,7 +316,7 @@ static void plugin_insn_append(abi_ptr pc, const void *from, size_t size)
|
||||
#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;
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
@ -19,10 +19,7 @@
|
||||
*/
|
||||
|
||||
#include "qemu/bswap.h"
|
||||
#include "exec/cpu-common.h"
|
||||
#include "exec/cpu-defs.h"
|
||||
#include "exec/abi_ptr.h"
|
||||
#include "cpu.h"
|
||||
#include "exec/vaddr.h"
|
||||
|
||||
/**
|
||||
* gen_intermediate_code
|
||||
@ -185,14 +182,14 @@ bool translator_io_start(DisasContextBase *db);
|
||||
* the relevant information at translation time.
|
||||
*/
|
||||
|
||||
uint8_t translator_ldub(CPUArchState *env, DisasContextBase *db, abi_ptr pc);
|
||||
uint16_t translator_lduw(CPUArchState *env, DisasContextBase *db, abi_ptr pc);
|
||||
uint32_t translator_ldl(CPUArchState *env, DisasContextBase *db, abi_ptr pc);
|
||||
uint64_t translator_ldq(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, vaddr pc);
|
||||
uint32_t translator_ldl(CPUArchState *env, DisasContextBase *db, vaddr pc);
|
||||
uint64_t translator_ldq(CPUArchState *env, DisasContextBase *db, vaddr pc);
|
||||
|
||||
static inline uint16_t
|
||||
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);
|
||||
if (do_swap) {
|
||||
@ -203,7 +200,7 @@ translator_lduw_swap(CPUArchState *env, DisasContextBase *db,
|
||||
|
||||
static inline uint32_t
|
||||
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);
|
||||
if (do_swap) {
|
||||
@ -214,7 +211,7 @@ translator_ldl_swap(CPUArchState *env, DisasContextBase *db,
|
||||
|
||||
static inline uint64_t
|
||||
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);
|
||||
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
|
||||
* 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.
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "exec/translation-block.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/log.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "internal.h"
|
||||
#include "attribs.h"
|
||||
#include "insn.h"
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "tcg/tcg-op.h"
|
||||
#include "exec/helper-proto.h"
|
||||
#include "exec/helper-gen.h"
|
||||
#include "exec/cpu_ldst.h"
|
||||
#include "exec/translator.h"
|
||||
#include "qemu/qemu-print.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user