mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
cputlb: Use trace_mem_get_info instead of trace_mem_build_info
In the cpu_ldst templates, we already require a MemOp, and it is cleaner and clearer to pass that instead of 3 separate arguments describing the memory operation. Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
ecd3571eb1
commit
f3bee8d337
2 changed files with 17 additions and 17 deletions
|
@ -86,9 +86,9 @@ glue(glue(glue(cpu_ld, USUFFIX), MEMSUFFIX), _ra)(CPUArchState *env,
|
||||||
RES_TYPE res;
|
RES_TYPE res;
|
||||||
target_ulong addr;
|
target_ulong addr;
|
||||||
int mmu_idx = CPU_MMU_INDEX;
|
int mmu_idx = CPU_MMU_INDEX;
|
||||||
TCGMemOpIdx oi;
|
MemOp op = MO_TE | SHIFT;
|
||||||
#if !defined(SOFTMMU_CODE_ACCESS)
|
#if !defined(SOFTMMU_CODE_ACCESS)
|
||||||
uint16_t meminfo = trace_mem_build_info(SHIFT, false, MO_TE, false, mmu_idx);
|
uint16_t meminfo = trace_mem_get_info(op, mmu_idx, false);
|
||||||
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ glue(glue(glue(cpu_ld, USUFFIX), MEMSUFFIX), _ra)(CPUArchState *env,
|
||||||
entry = tlb_entry(env, mmu_idx, addr);
|
entry = tlb_entry(env, mmu_idx, addr);
|
||||||
if (unlikely(entry->ADDR_READ !=
|
if (unlikely(entry->ADDR_READ !=
|
||||||
(addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
|
(addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
|
||||||
oi = make_memop_idx(SHIFT, mmu_idx);
|
TCGMemOpIdx oi = make_memop_idx(op, mmu_idx);
|
||||||
res = glue(glue(helper_ret_ld, URETSUFFIX), MMUSUFFIX)(env, addr,
|
res = glue(glue(helper_ret_ld, URETSUFFIX), MMUSUFFIX)(env, addr,
|
||||||
oi, retaddr);
|
oi, retaddr);
|
||||||
} else {
|
} else {
|
||||||
|
@ -125,9 +125,9 @@ glue(glue(glue(cpu_lds, SUFFIX), MEMSUFFIX), _ra)(CPUArchState *env,
|
||||||
int res;
|
int res;
|
||||||
target_ulong addr;
|
target_ulong addr;
|
||||||
int mmu_idx = CPU_MMU_INDEX;
|
int mmu_idx = CPU_MMU_INDEX;
|
||||||
TCGMemOpIdx oi;
|
MemOp op = MO_TE | MO_SIGN | SHIFT;
|
||||||
#if !defined(SOFTMMU_CODE_ACCESS)
|
#ifndef SOFTMMU_CODE_ACCESS
|
||||||
uint16_t meminfo = trace_mem_build_info(SHIFT, true, MO_TE, false, mmu_idx);
|
uint16_t meminfo = trace_mem_get_info(op, mmu_idx, false);
|
||||||
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ glue(glue(glue(cpu_lds, SUFFIX), MEMSUFFIX), _ra)(CPUArchState *env,
|
||||||
entry = tlb_entry(env, mmu_idx, addr);
|
entry = tlb_entry(env, mmu_idx, addr);
|
||||||
if (unlikely(entry->ADDR_READ !=
|
if (unlikely(entry->ADDR_READ !=
|
||||||
(addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
|
(addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
|
||||||
oi = make_memop_idx(SHIFT, mmu_idx);
|
TCGMemOpIdx oi = make_memop_idx(op & ~MO_SIGN, mmu_idx);
|
||||||
res = (DATA_STYPE)glue(glue(helper_ret_ld, SRETSUFFIX),
|
res = (DATA_STYPE)glue(glue(helper_ret_ld, SRETSUFFIX),
|
||||||
MMUSUFFIX)(env, addr, oi, retaddr);
|
MMUSUFFIX)(env, addr, oi, retaddr);
|
||||||
} else {
|
} else {
|
||||||
|
@ -167,9 +167,9 @@ glue(glue(glue(cpu_st, SUFFIX), MEMSUFFIX), _ra)(CPUArchState *env,
|
||||||
CPUTLBEntry *entry;
|
CPUTLBEntry *entry;
|
||||||
target_ulong addr;
|
target_ulong addr;
|
||||||
int mmu_idx = CPU_MMU_INDEX;
|
int mmu_idx = CPU_MMU_INDEX;
|
||||||
TCGMemOpIdx oi;
|
MemOp op = MO_TE | SHIFT;
|
||||||
#if !defined(SOFTMMU_CODE_ACCESS)
|
#if !defined(SOFTMMU_CODE_ACCESS)
|
||||||
uint16_t meminfo = trace_mem_build_info(SHIFT, false, MO_TE, true, mmu_idx);
|
uint16_t meminfo = trace_mem_get_info(op, mmu_idx, true);
|
||||||
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ glue(glue(glue(cpu_st, SUFFIX), MEMSUFFIX), _ra)(CPUArchState *env,
|
||||||
entry = tlb_entry(env, mmu_idx, addr);
|
entry = tlb_entry(env, mmu_idx, addr);
|
||||||
if (unlikely(tlb_addr_write(entry) !=
|
if (unlikely(tlb_addr_write(entry) !=
|
||||||
(addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
|
(addr & (TARGET_PAGE_MASK | (DATA_SIZE - 1))))) {
|
||||||
oi = make_memop_idx(SHIFT, mmu_idx);
|
TCGMemOpIdx oi = make_memop_idx(op, mmu_idx);
|
||||||
glue(glue(helper_ret_st, SUFFIX), MMUSUFFIX)(env, addr, v, oi,
|
glue(glue(helper_ret_st, SUFFIX), MMUSUFFIX)(env, addr, v, oi,
|
||||||
retaddr);
|
retaddr);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -70,8 +70,8 @@ glue(glue(cpu_ld, USUFFIX), MEMSUFFIX)(CPUArchState *env, abi_ptr ptr)
|
||||||
ret = glue(glue(ld, USUFFIX), _p)(g2h(ptr));
|
ret = glue(glue(ld, USUFFIX), _p)(g2h(ptr));
|
||||||
clear_helper_retaddr();
|
clear_helper_retaddr();
|
||||||
#else
|
#else
|
||||||
uint16_t meminfo = trace_mem_build_info(SHIFT, false, MO_TE, false,
|
MemOp op = MO_TE | SHIFT;
|
||||||
MMU_USER_IDX);
|
uint16_t meminfo = trace_mem_get_info(op, MMU_USER_IDX, false);
|
||||||
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
||||||
ret = glue(glue(ld, USUFFIX), _p)(g2h(ptr));
|
ret = glue(glue(ld, USUFFIX), _p)(g2h(ptr));
|
||||||
#endif
|
#endif
|
||||||
|
@ -102,8 +102,8 @@ glue(glue(cpu_lds, SUFFIX), MEMSUFFIX)(CPUArchState *env, abi_ptr ptr)
|
||||||
ret = glue(glue(lds, SUFFIX), _p)(g2h(ptr));
|
ret = glue(glue(lds, SUFFIX), _p)(g2h(ptr));
|
||||||
clear_helper_retaddr();
|
clear_helper_retaddr();
|
||||||
#else
|
#else
|
||||||
uint16_t meminfo = trace_mem_build_info(SHIFT, true, MO_TE, false,
|
MemOp op = MO_TE | MO_SIGN | SHIFT;
|
||||||
MMU_USER_IDX);
|
uint16_t meminfo = trace_mem_get_info(op, MMU_USER_IDX, false);
|
||||||
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
||||||
ret = glue(glue(lds, SUFFIX), _p)(g2h(ptr));
|
ret = glue(glue(lds, SUFFIX), _p)(g2h(ptr));
|
||||||
qemu_plugin_vcpu_mem_cb(env_cpu(env), ptr, meminfo);
|
qemu_plugin_vcpu_mem_cb(env_cpu(env), ptr, meminfo);
|
||||||
|
@ -131,8 +131,8 @@ static inline void
|
||||||
glue(glue(cpu_st, SUFFIX), MEMSUFFIX)(CPUArchState *env, abi_ptr ptr,
|
glue(glue(cpu_st, SUFFIX), MEMSUFFIX)(CPUArchState *env, abi_ptr ptr,
|
||||||
RES_TYPE v)
|
RES_TYPE v)
|
||||||
{
|
{
|
||||||
uint16_t meminfo = trace_mem_build_info(SHIFT, false, MO_TE, true,
|
MemOp op = MO_TE | SHIFT;
|
||||||
MMU_USER_IDX);
|
uint16_t meminfo = trace_mem_get_info(op, MMU_USER_IDX, true);
|
||||||
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
trace_guest_mem_before_exec(env_cpu(env), ptr, meminfo);
|
||||||
glue(glue(st, SUFFIX), _p)(g2h(ptr), v);
|
glue(glue(st, SUFFIX), _p)(g2h(ptr), v);
|
||||||
qemu_plugin_vcpu_mem_cb(env_cpu(env), ptr, meminfo);
|
qemu_plugin_vcpu_mem_cb(env_cpu(env), ptr, meminfo);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue