1. 16 9月, 2016 1 次提交
    • R
      tcg: Support arbitrary size + alignment · 85aa8081
      Richard Henderson 提交于
      Previously we allowed fully unaligned operations, but not operations
      that are aligned but with less alignment than the operation size.
      
      In addition, arm32, ia64, mips, and sparc had been omitted from the
      previous overalignment patch, which would have led to that alignment
      being enforced.
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      85aa8081
  2. 06 7月, 2016 2 次提交
    • S
      tcg: Improve the alignment check infrastructure · 1f00b27f
      Sergey Sorokin 提交于
      Some architectures (e.g. ARMv8) need the address which is aligned
      to a size more than the size of the memory access.
      To support such check it's enough the current costless alignment
      check implementation in QEMU, but we need to support
      an alignment size specifying.
      Signed-off-by: NSergey Sorokin <afarallax@yandex.ru>
      Message-Id: <1466705806-679898-1-git-send-email-afarallax@yandex.ru>
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      [rth: Assert in tcg_canonicalize_memop.  Leave get_alignment_bits
      available for, though unused by, user-mode.  Retain logging difference
      based on ALIGNED_ONLY.]
      1f00b27f
    • R
      tcg: Optimize spills of constants · 59d7c14e
      Richard Henderson 提交于
      While we can store constants via constrants on INDEX_op_st_i32 et al,
      we weren't able to spill constants to backing store.
      
      Add a new backend interface, tcg_out_sti, which may store the constant
      (and is allowed to fail).  Rearrange the temp_* helpers so that we only
      attempt to directly store a constant when the temp is becoming dead/free.
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      59d7c14e
  3. 13 5月, 2016 2 次提交
  4. 21 4月, 2016 2 次提交
  5. 24 2月, 2016 2 次提交
  6. 29 1月, 2016 1 次提交
    • P
      tcg: Clean up includes · 757e725b
      Peter Maydell 提交于
      Clean up includes so that osdep.h is included first and headers
      which it implies are not included manually.
      
      This commit was created with scripts/clean-includes.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1453832250-766-16-git-send-email-peter.maydell@linaro.org
      757e725b
  7. 03 9月, 2015 1 次提交
  8. 25 8月, 2015 3 次提交
  9. 24 7月, 2015 1 次提交
  10. 09 6月, 2015 1 次提交
  11. 15 5月, 2015 2 次提交
  12. 14 3月, 2015 2 次提交
  13. 05 6月, 2014 1 次提交
  14. 29 5月, 2014 1 次提交
  15. 13 5月, 2014 4 次提交
  16. 19 4月, 2014 2 次提交
  17. 21 2月, 2014 1 次提交
  18. 18 2月, 2014 4 次提交
  19. 26 1月, 2014 4 次提交
  20. 21 12月, 2013 1 次提交
  21. 13 10月, 2013 2 次提交
    • R
      tcg-i386: Support new ldst opcodes · 8221a267
      Richard Henderson 提交于
      No support for helpers with non-default endianness yet,
      but good enough to test the opcodes.
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      8221a267
    • R
      tcg-i386: Remove "cb" output restriction from qemu_st8 for i386 · b3e2bc50
      Richard Henderson 提交于
      Once we form a combined qemu_st_i32 opcode, we won't be able to
      have separate constraints based on size.  This one is fairly easy
      to work around, since eax is available as a scratch register.
      
      When storing variable data, this tends to merely exchange one mov
      for another.  E.g.
      
      -:  mov    %esi,%ecx
      ...
      -:  mov    %cl,(%edx)
      +:  mov    %esi,%eax
      +:  mov    %al,(%edx)
      
      Where we do have a regression is when storing constant data, in which
      we may load the constant into edi, when only ecx/ebx ought to be used.
      
      The proper way to recover this regression is to allow constants as
      arguments to qemu_st_i32, so that we never load the constant data into
      a register at all, must less the wrong register.  TBD.
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      b3e2bc50