Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.33 KB | None | 0 0
  1. commit fb7474319379deb8161661e578c39a4b2b7a0ac3
  2. Author: Emilio G. Cota <cota@braap.org>
  3. Date:   Tue Nov 21 14:44:21 2017 -0500
  4.  
  5.     trace: fix misreporting of TCG access sizes for user-space
  6.    
  7.     trace_mem_build_info expects a TCGMemOp for size. Fix it.
  8.    
  9.     Signed-off-by: Emilio G. Cota <cota@braap.org>
  10.  
  11. diff --git a/include/exec/cpu_ldst_useronly_template.h b/include/exec/cpu_ldst_useronly_template.h
  12. index c168f31..e30e58e 100644
  13. --- a/include/exec/cpu_ldst_useronly_template.h
  14. +++ b/include/exec/cpu_ldst_useronly_template.h
  15. @@ -33,20 +33,24 @@
  16.  #define SUFFIX q
  17.  #define USUFFIX q
  18.  #define DATA_TYPE uint64_t
  19. +#define SHIFT 3
  20.  #elif DATA_SIZE == 4
  21.  #define SUFFIX l
  22.  #define USUFFIX l
  23.  #define DATA_TYPE uint32_t
  24. +#define SHIFT 2
  25.  #elif DATA_SIZE == 2
  26.  #define SUFFIX w
  27.  #define USUFFIX uw
  28.  #define DATA_TYPE uint16_t
  29.  #define DATA_STYPE int16_t
  30. +#define SHIFT 1
  31.  #elif DATA_SIZE == 1
  32.  #define SUFFIX b
  33.  #define USUFFIX ub
  34.  #define DATA_TYPE uint8_t
  35.  #define DATA_STYPE int8_t
  36. +#define SHIFT 0
  37.  #else
  38.  #error unsupported data size
  39.  #endif
  40. @@ -63,7 +67,7 @@ glue(glue(cpu_ld, USUFFIX), MEMSUFFIX)(CPUArchState *env, target_ulong ptr)
  41.  #if !defined(CODE_ACCESS)
  42.      trace_guest_mem_before_exec(
  43.          ENV_GET_CPU(env), ptr,
  44. -        trace_mem_build_info(DATA_SIZE, false, MO_TE, false));
  45. +        trace_mem_build_info(SHIFT, false, MO_TE, false));
  46.  #endif
  47.      return glue(glue(ld, USUFFIX), _p)(g2h(ptr));
  48.  }
  49. @@ -87,7 +91,7 @@ glue(glue(cpu_lds, SUFFIX), MEMSUFFIX)(CPUArchState *env, target_ulong ptr)
  50.  #if !defined(CODE_ACCESS)
  51.      trace_guest_mem_before_exec(
  52.          ENV_GET_CPU(env), ptr,
  53. -        trace_mem_build_info(DATA_SIZE, true, MO_TE, false));
  54. +        trace_mem_build_info(SHIFT, true, MO_TE, false));
  55.  #endif
  56.      return glue(glue(lds, SUFFIX), _p)(g2h(ptr));
  57.  }
  58. @@ -113,7 +117,7 @@ glue(glue(cpu_st, SUFFIX), MEMSUFFIX)(CPUArchState *env, target_ulong ptr,
  59.  #if !defined(CODE_ACCESS)
  60.      trace_guest_mem_before_exec(
  61.          ENV_GET_CPU(env), ptr,
  62. -        trace_mem_build_info(DATA_SIZE, false, MO_TE, true));
  63. +        trace_mem_build_info(SHIFT, false, MO_TE, true));
  64.  #endif
  65.      glue(glue(st, SUFFIX), _p)(g2h(ptr), v);
  66.  }
  67. @@ -136,3 +140,4 @@ glue(glue(glue(cpu_st, SUFFIX), MEMSUFFIX), _ra)(CPUArchState *env,
  68.  #undef SUFFIX
  69.  #undef USUFFIX
  70.  #undef DATA_SIZE
  71. +#undef SHIFT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement