Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- commit fb7474319379deb8161661e578c39a4b2b7a0ac3
- Author: Emilio G. Cota <cota@braap.org>
- Date: Tue Nov 21 14:44:21 2017 -0500
- trace: fix misreporting of TCG access sizes for user-space
- trace_mem_build_info expects a TCGMemOp for size. Fix it.
- Signed-off-by: Emilio G. Cota <cota@braap.org>
- diff --git a/include/exec/cpu_ldst_useronly_template.h b/include/exec/cpu_ldst_useronly_template.h
- index c168f31..e30e58e 100644
- --- a/include/exec/cpu_ldst_useronly_template.h
- +++ b/include/exec/cpu_ldst_useronly_template.h
- @@ -33,20 +33,24 @@
- #define SUFFIX q
- #define USUFFIX q
- #define DATA_TYPE uint64_t
- +#define SHIFT 3
- #elif DATA_SIZE == 4
- #define SUFFIX l
- #define USUFFIX l
- #define DATA_TYPE uint32_t
- +#define SHIFT 2
- #elif DATA_SIZE == 2
- #define SUFFIX w
- #define USUFFIX uw
- #define DATA_TYPE uint16_t
- #define DATA_STYPE int16_t
- +#define SHIFT 1
- #elif DATA_SIZE == 1
- #define SUFFIX b
- #define USUFFIX ub
- #define DATA_TYPE uint8_t
- #define DATA_STYPE int8_t
- +#define SHIFT 0
- #else
- #error unsupported data size
- #endif
- @@ -63,7 +67,7 @@ glue(glue(cpu_ld, USUFFIX), MEMSUFFIX)(CPUArchState *env, target_ulong ptr)
- #if !defined(CODE_ACCESS)
- trace_guest_mem_before_exec(
- ENV_GET_CPU(env), ptr,
- - trace_mem_build_info(DATA_SIZE, false, MO_TE, false));
- + trace_mem_build_info(SHIFT, false, MO_TE, false));
- #endif
- return glue(glue(ld, USUFFIX), _p)(g2h(ptr));
- }
- @@ -87,7 +91,7 @@ glue(glue(cpu_lds, SUFFIX), MEMSUFFIX)(CPUArchState *env, target_ulong ptr)
- #if !defined(CODE_ACCESS)
- trace_guest_mem_before_exec(
- ENV_GET_CPU(env), ptr,
- - trace_mem_build_info(DATA_SIZE, true, MO_TE, false));
- + trace_mem_build_info(SHIFT, true, MO_TE, false));
- #endif
- return glue(glue(lds, SUFFIX), _p)(g2h(ptr));
- }
- @@ -113,7 +117,7 @@ glue(glue(cpu_st, SUFFIX), MEMSUFFIX)(CPUArchState *env, target_ulong ptr,
- #if !defined(CODE_ACCESS)
- trace_guest_mem_before_exec(
- ENV_GET_CPU(env), ptr,
- - trace_mem_build_info(DATA_SIZE, false, MO_TE, true));
- + trace_mem_build_info(SHIFT, false, MO_TE, true));
- #endif
- glue(glue(st, SUFFIX), _p)(g2h(ptr), v);
- }
- @@ -136,3 +140,4 @@ glue(glue(glue(cpu_st, SUFFIX), MEMSUFFIX), _ra)(CPUArchState *env,
- #undef SUFFIX
- #undef USUFFIX
- #undef DATA_SIZE
- +#undef SHIFT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement