1. 17 1月, 2017 1 次提交
  2. 16 1月, 2017 3 次提交
    • M
      target/xtensa: implement MEMCTL SR · 9e03ade4
      Max Filippov 提交于
      MEMCTL SR controls zero overhead loop buffer and number of ways enabled
      in L1 caches.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      9e03ade4
    • M
      target/xtensa: support icount · d2132510
      Max Filippov 提交于
      Delimit each instruction that may access timers or IRQ state with
      qemu_io_start/qemu_io_end, so that qemu-system-xtensa could be run with
      -icount option.
      
      Raise EXCP_YIELD after CCOMPARE reprogramming to let tcg_cpu_exec
      recalculate how long this CPU is allowed to run.
      
      RSR now may need to terminate TB, but it can't be done in RSR handler
      because the same handler is used for XSR together with WSR handler, which
      may also need to terminate TB. Change RSR and WSR handlers return type
      to bool indicating whether TB termination is needed (RSR) or has been
      done (WSR), and add TB termination after RSR/WSR dispatcher call.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      d2132510
    • M
      target/xtensa: refactor CCOUNT/CCOMPARE · 59a71f75
      Max Filippov 提交于
      Xtensa cores may have a register (CCOUNT) that counts core clock cycles.
      It may also have a number of registers (CCOMPAREx); when CCOUNT value
      passes the value of CCOMPAREx, timer interrupt x is raised.
      
      Currently xtensa target counts a number of completed instructions and
      assumes that for CCOUNT one instruction takes one cycle to complete.
      It calls helper function to update CCOUNT register at every TB end and
      raise timer interrupts. This scheme works very predictably and doesn't
      have noticeable performance impact, but it is hard to use with multiple
      synchronized processors, especially with coming MTTCG.
      
      Derive CCOUNT from the virtual simulation time, QEMU_CLOCK_VIRTUAL.
      Use native QEMU timers for CCOMPARE timers, one timer for each register.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      59a71f75
  3. 13 1月, 2017 1 次提交
  4. 11 1月, 2017 1 次提交
  5. 21 12月, 2016 1 次提交
    • T
      Move target-* CPU file into a target/ folder · fcf5ef2a
      Thomas Huth 提交于
      We've currently got 18 architectures in QEMU, and thus 18 target-xxx
      folders in the root folder of the QEMU source tree. More architectures
      (e.g. RISC-V, AVR) are likely to be included soon, too, so the main
      folder of the QEMU sources slowly gets quite overcrowded with the
      target-xxx folders.
      To disburden the main folder a little bit, let's move the target-xxx
      folders into a dedicated target/ folder, so that target-xxx/ simply
      becomes target/xxx/ instead.
      
      Acked-by: Laurent Vivier <laurent@vivier.eu> [m68k part]
      Acked-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> [tricore part]
      Acked-by: Michael Walle <michael@walle.cc> [lm32 part]
      Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> [s390x part]
      Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> [s390x part]
      Acked-by: Eduardo Habkost <ehabkost@redhat.com> [i386 part]
      Acked-by: Artyom Tarasenko <atar4qemu@gmail.com> [sparc part]
      Acked-by: Richard Henderson <rth@twiddle.net> [alpha part]
      Acked-by: Max Filippov <jcmvbkbc@gmail.com> [xtensa part]
      Reviewed-by: David Gibson <david@gibson.dropbear.id.au> [ppc part]
      Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> [cris&microblaze part]
      Acked-by: Guan Xuetao <gxt@mprc.pku.edu.cn> [unicore32 part]
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      fcf5ef2a
  6. 12 7月, 2016 1 次提交
  7. 19 5月, 2016 1 次提交
  8. 29 1月, 2016 1 次提交
  9. 18 12月, 2015 1 次提交
  10. 22 10月, 2015 1 次提交
  11. 07 3月, 2015 1 次提交
  12. 17 12月, 2014 1 次提交
  13. 10 11月, 2014 1 次提交
    • M
      target-xtensa: add missing window check for entry · 1b3e71f8
      Max Filippov 提交于
      Entry opcode needs to check if moving to new register frame would cause
      register window overflow. Entry used in function prologue never
      overflows because preceding windowed call* opcode writes return address
      to the target register window frame, causing overflow exceptions at the
      point of call. But when a sequence of entry opcodes is used for register
      window spilling there may not be a call or other opcode that would cause
      window check between entries and they would not raise overflow exception
      themselves resulting in data corruption.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      1b3e71f8
  14. 05 6月, 2014 4 次提交
  15. 29 5月, 2014 1 次提交
  16. 14 3月, 2014 8 次提交
  17. 24 2月, 2014 1 次提交
  18. 11 2月, 2014 1 次提交
  19. 03 9月, 2013 1 次提交
  20. 23 8月, 2013 1 次提交
  21. 29 7月, 2013 2 次提交
  22. 28 6月, 2013 1 次提交
  23. 12 3月, 2013 1 次提交
  24. 19 12月, 2012 2 次提交
  25. 16 12月, 2012 1 次提交
  26. 09 12月, 2012 1 次提交