1. 09 3月, 2012 2 次提交
  2. 08 3月, 2012 1 次提交
  3. 04 1月, 2012 4 次提交
  4. 01 11月, 2011 1 次提交
    • S
      tcg: Add bytecode generator for tcg interpreter · 7316329a
      Stefan Weil 提交于
      Unlike other tcg target code generators, this one does not generate
      machine code for some cpu. It generates machine independent bytecode
      which is interpreted later.
      
      This allows running QEMU on any host.
      
      Interpreted bytecode is slower than direct execution of generated
      machine code.
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      7316329a
  5. 30 10月, 2011 1 次提交
  6. 22 10月, 2011 1 次提交
  7. 01 10月, 2011 2 次提交
  8. 21 7月, 2011 1 次提交
  9. 13 7月, 2011 1 次提交
    • P
      exec-all.h: Make MAX_OP_PER_INSTR large enough for target-arm's uses · 5b620fb6
      Peter Maydell 提交于
      The target-arm frontend's worst-case TCG ops per instr is 194 (and in
      general many of the "load multiple registers" ARM instructions generate
      more than 100 TCG ops). Raise MAX_OP_PER_INSTR accordingly to avoid
      possible buffer overruns.
      
      Since it doesn't make any sense for the "64 bit guest on 32 bit host"
      case to have a smaller limit than the normal case, we collapse the
      two cases back into each other again.
      
      (This increase costs us about 14K in extra static buffer space and
      21K of extra margin at the end of a 32MB codegen buffer.)
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      5b620fb6
  10. 27 6月, 2011 2 次提交
  11. 01 6月, 2011 1 次提交
  12. 22 5月, 2011 1 次提交
  13. 20 5月, 2011 1 次提交
  14. 20 4月, 2011 2 次提交
  15. 11 2月, 2011 1 次提交
  16. 24 1月, 2011 1 次提交
  17. 01 1月, 2011 1 次提交
    • A
      TCG: Improve tb_phys_hash_func() · f96a3834
      Aurelien Jarno 提交于
      Most of emulated CPU have instructions aligned on 16 or 32 bits, while
      on others GCC tries to align the target jump location. This means that
      1/2 or 3/4 of tb_phys_hash entries are never used.
      
      Update the hash function tb_phys_hash_func() to ignore the two lowest
      bits of the address. This brings a 6% speed-up when booting a MIPS
      image.
      Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
      f96a3834
  18. 22 12月, 2010 1 次提交
    • A
      tcg-arm: fix __clear_cache() warning · 4a1e19ae
      Aurelien Jarno 提交于
      Use __builtin___clear_cache() instead of __clear_cache() to avoid having
      to define the function as extern. Fix the following warning:
      
      | In file included from qemu/cpus.c:34:
      | qemu/exec-all.h: In function 'tb_set_jmp_target1':
      | qemu/exec-all.h:208: error: nested extern declaration of '__clear_cache'
      | make[1]: *** [cpus.o] Error 1
      | make: *** [subdir-i386-softmmu] Error 2
      Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
      4a1e19ae
  19. 21 10月, 2010 1 次提交
  20. 24 7月, 2010 1 次提交
  21. 22 7月, 2010 1 次提交
  22. 09 6月, 2010 1 次提交
  23. 12 5月, 2010 1 次提交
  24. 02 5月, 2010 1 次提交
    • S
      Clean up definition of MAX_OPC_PARAM · 4d0e4ac7
      Stuart Brady 提交于
      MAX_OPC_PARAM is intended to refer to the maximum number of entries used
      in gen_opparam_buf[] for any single helper call.  It is currently defined
      as 10, but for 32-bit archs, the correct value (with a maximum for four
      helper arguments) is 14, and for 64-bit archs, only 9 entries are needed.
      
      tcg_gen_callN() fills four entries with the function address, flags,
      number of args, etc. and on 32-bit archs uses a further two entries per
      argument (with a maximum of four helper arguments), plus two more for the
      return value.  On 64-bit archs, only half as many entries are used for the
      args and the return value.
      
      In reality, TBs tend not to consist purely of helper calls exceeding the
      stated 10 gen_opparam_buf[] entries, so this would never actually be a
      problem on 32-bit archs, but the definition is still rather confusing.
      Signed-off-by: NStuart Brady <sdb@zubnet.me.uk>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      4d0e4ac7
  25. 09 4月, 2010 2 次提交
  26. 30 3月, 2010 1 次提交
  27. 17 3月, 2010 1 次提交
    • P
      Large page TLB flush · d4c430a8
      Paul Brook 提交于
      QEMU uses a fixed page size for the CPU TLB.  If the guest uses large
      pages then we effectively split these into multiple smaller pages, and
      populate the corresponding TLB entries on demand.
      
      When the guest invalidates the TLB by virtual address we must invalidate
      all entries covered by the large page.  However the address used to
      invalidate the entry may not be present in the QEMU TLB, so we do not
      know which regions to clear.
      
      Implementing a full vaiable size TLB is hard and slow, so just keep a
      simple address/mask pair to record which addresses may have been mapped by
      large pages.  If the guest invalidates this region then flush the
      whole TLB.
      Signed-off-by: NPaul Brook <paul@codesourcery.com>
      d4c430a8
  28. 13 3月, 2010 3 次提交
  29. 01 3月, 2010 1 次提交
  30. 01 12月, 2009 1 次提交