1. 14 3月, 2018 2 次提交
  2. 23 1月, 2018 1 次提交
    • M
      target/xtensa: disas/xtensa: fix coverity warnings · 847a6473
      Max Filippov 提交于
      Coverity warnings CID 1385146, 1385148 1385149 and 1385150 point that
      xtensa_opcode_num_operands and xtensa_format_num_slots may return -1
      even when xtensa_opcode_decode and xtensa_format_decode succeed. In that
      case unsigned counters used to iterate through operands/slots will not
      do the right thing.
      Make counters and loop bounds signed to fix the warnings.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      847a6473
  3. 12 1月, 2018 1 次提交
  4. 10 1月, 2018 6 次提交
  5. 19 12月, 2017 3 次提交
  6. 25 10月, 2017 4 次提交
  7. 06 9月, 2017 1 次提交
  8. 20 7月, 2017 1 次提交
  9. 17 1月, 2017 1 次提交
  10. 16 1月, 2017 4 次提交
    • 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: don't continue translation after exception · 787eaa49
      Max Filippov 提交于
      There's no point in continuing translating guest instructions once an
      unconditional exception is thrown.
      There's also no point in updating pc before any instruction is
      translated, don't do it.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      787eaa49
    • 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
  11. 11 1月, 2017 2 次提交
  12. 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
  13. 02 11月, 2016 1 次提交
    • R
      log: Add locking to large logging blocks · 1ee73216
      Richard Henderson 提交于
      Reuse the existing locking provided by stdio to keep in_asm, cpu,
      op, op_opt, op_ind, and out_asm as contiguous blocks.
      
      While it isn't possible to interleave e.g. in_asm or op_opt logs
      because of the TB lock protecting all code generation, it is
      possible to interleave cpu logs, or to interleave a cpu dump with
      an out_asm dump.
      
      For mingw32, we appear to have no viable solution for this.  The locking
      functions are not properly exported from the system runtime library.
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      1ee73216
  14. 28 10月, 2016 1 次提交
  15. 20 6月, 2016 1 次提交
  16. 06 6月, 2016 1 次提交
  17. 19 5月, 2016 1 次提交
  18. 13 5月, 2016 1 次提交
  19. 01 3月, 2016 1 次提交
    • L
      tcg: Add type for vCPU pointers · 1bcea73e
      Lluís Vilanova 提交于
      Adds the 'TCGv_env' type for pointers to 'CPUArchState' objects. The
      tracing infrastructure later needs to differentiate between regular
      pointers and pointers to vCPUs.
      
      Also changes all targets to use the new 'TCGv_env' type instead of the
      generic 'TCGv_ptr'. As of now, the change is merely cosmetic ('TCGv_env'
      translates into 'TCGv_ptr'), but that could change in the future to
      enforce the difference.
      
      Note that a 'TCGv_env' type (for 'CPUState') is not added, since all
      helpers currently receive the architecture-specific
      pointer ('CPUArchState').
      Signed-off-by: NLluís Vilanova <vilanova@ac.upc.edu>
      Acked-by: NRichard Henderson <rth@twiddle.net>
      Message-id: 145641859552.30295.7821536833590725201.stgit@localhost
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      1bcea73e
  20. 09 2月, 2016 1 次提交
  21. 03 2月, 2016 1 次提交
  22. 29 1月, 2016 1 次提交
  23. 18 12月, 2015 1 次提交
  24. 29 10月, 2015 1 次提交
  25. 22 10月, 2015 1 次提交
    • M
      target-xtensa: implement S32NB · 19b7bec4
      Max Filippov 提交于
      S32NB provides the same functionality as S32I with two exceptions.
      First, when its operation leaves the processor, the external transaction
      is marked Non-Bufferable. Second, it may not be used to write to
      Instruction RAM.
      In QEMU S32NB is equivalent to S32I.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      19b7bec4