1. 13 5月, 2014 2 次提交
  2. 18 3月, 2014 1 次提交
  3. 14 3月, 2014 10 次提交
  4. 11 2月, 2014 3 次提交
  5. 18 1月, 2014 1 次提交
  6. 14 10月, 2013 1 次提交
    • S
      exec: Fix prototype of phys_mem_set_alloc and related functions · 575ddeb4
      Stefan Weil 提交于
      phys_mem_alloc and its assigned values qemu_anon_ram_alloc and
      legacy_s390_alloc must have identical argument lists.
      
      legacy_s390_alloc uses the size parameter to call mmap, so size_t is
      good enough for all of them.
      
      This patch fixes compiler errors on i686 Linux hosts:
      
        CC    alpha-softmmu/exec.o
      exec.c:752:51: error:
       initialization from incompatible pointer type [-Werror]
      exec.c: In function 'qemu_ram_alloc_from_ptr':
      exec.c:1139:32: error:
       comparison of distinct pointer types lacks a cast [-Werror]
      exec.c: In function 'qemu_ram_remap':
      exec.c:1283:21: error:
       comparison of distinct pointer types lacks a cast [-Werror]
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Message-id: 1380481005-32399-1-git-send-email-sw@weilnetz.de
      Signed-off-by: NAnthony Liguori <aliguori@amazon.com>
      575ddeb4
  7. 11 10月, 2013 2 次提交
  8. 02 10月, 2013 1 次提交
  9. 25 9月, 2013 1 次提交
  10. 13 9月, 2013 1 次提交
  11. 03 9月, 2013 2 次提交
    • R
      exec: Split softmmu_defs.h · e58eb534
      Richard Henderson 提交于
      The _cmmu helpers can be moved to exec-all.h.  The helpers that are
      used from TCG will shortly need access to tcg_target_long so move
      their declarations into tcg.h.
      
      This requires minor include adjustments to all TCG backends.
      Reviewed-by: NAurelien Jarno <aurelien@aurel32.net>
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      e58eb534
    • R
      exec: Reorganize the GETRA/GETPC macros · 0f842f8a
      Richard Henderson 提交于
      Always define GETRA; use __builtin_extract_return_addr, rather than
      having a special case for s390.  Split GETPC_ADJ out of GETPC; use 2
      universally, rather than having a special case for arm.
      
      Rename GETPC_LDST to GETRA_LDST to indicate that it does not
      contain the GETPC_ADJ value.  Likewise with GETPC_EXT to GETRA_EXT.
      
      Perform the GETPC_ADJ adjustment inside helper_ret_ld/st.  This will
      allow backends to pass along the "true" return address rather than
      the massaged GETPC value.  In the meantime, double application of
      GETPC_ADJ does not hurt, since the call insn in all ISAs is at least
      4 bytes long.
      Reviewed-by: NAurelien Jarno <aurelien@aurel32.net>
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      0f842f8a
  12. 30 8月, 2013 1 次提交
  13. 27 8月, 2013 1 次提交
  14. 15 7月, 2013 1 次提交
  15. 12 6月, 2013 1 次提交
  16. 29 5月, 2013 1 次提交
  17. 27 4月, 2013 1 次提交
  18. 16 2月, 2013 2 次提交
  19. 20 1月, 2013 1 次提交
    • S
      tci: Fix broken build (regression) · b54c2873
      Stefan Weil 提交于
      s390x-linux-user now also uses GETPC. Instead of adding it to the list of
      targets which use GETPC, the macro is now defined unconditionally.
      
      This avoids future build regressions like this one:
      
        CC    s390x-linux-user/target-s390x/int_helper.o
      cc1: warnings being treated as errors
      qemu/target-s390x/int_helper.c: In function ‘helper_divs32’:
      qemu/target-s390x/int_helper.c:47: error: implicit declaration of function ‘GETPC’
      qemu/target-s390x/int_helper.c:47: error: nested extern declaration of ‘GETPC’
      Signed-off-by: NStefan Weil <sw@weilnetz.de>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      b54c2873
  20. 19 12月, 2012 2 次提交
  21. 16 12月, 2012 1 次提交
  22. 08 12月, 2012 1 次提交
  23. 19 11月, 2012 1 次提交
  24. 06 11月, 2012 1 次提交
    • M
      tcg/ppc32: Use trampolines to trim the code size for mmu slow path accessors · c878da3b
      malc 提交于
      mmu access looks something like:
      
      <check tlb>
      if miss goto slow_path
      <fast path>
      done:
      ...
      
      ; end of the TB
      slow_path:
       <pre process>
       mr r3, r27         ; move areg0 to r3
                          ; (r3 holds the first argument for all the PPC32 ABIs)
       <call mmu_helper>
       b $+8
       .long done
       <post process>
       b done
      
      On ppc32 <call mmu_helper> is:
      
      (SysV and Darwin)
      
      mmu_helper is most likely not within direct branching distance from
      the call site, necessitating
      
      a. moving 32 bit offset of mmu_helper into a GPR ; 8 bytes
      b. moving GPR to CTR/LR                          ; 4 bytes
      c. (finally) branching to CTR/LR                 ; 4 bytes
      
      r3 setting              - 4 bytes
      call                    - 16 bytes
      dummy jump over retaddr - 4 bytes
      embedded retaddr        - 4 bytes
               Total overhead - 28 bytes
      
      (PowerOpen (AIX))
      a. moving 32 bit offset of mmu_helper's TOC into a GPR1 ; 8 bytes
      b. loading 32 bit function pointer into GPR2            ; 4 bytes
      c. moving GPR2 to CTR/LR                                ; 4 bytes
      d. loading 32 bit small area pointer into R2            ; 4 bytes
      e. (finally) branching to CTR/LR                        ; 4 bytes
      
      r3 setting              - 4 bytes
      call                    - 24 bytes
      dummy jump over retaddr - 4 bytes
      embedded retaddr        - 4 bytes
               Total overhead - 36 bytes
      
      Following is done to trim the code size of slow path sections:
      
      In tcg_target_qemu_prologue trampolines are emitted that look like this:
      
      trampoline:
      mfspr r3, LR
      addi  r3, 4
      mtspr LR, r3      ; fixup LR to point over embedded retaddr
      mr    r3, r27
      <jump mmu_helper> ; tail call of sorts
      
      And slow path becomes:
      
      slow_path:
       <pre process>
       <call trampoline>
       .long done
       <post process>
       b done
      
      call                    - 4 bytes (trampoline is within code gen buffer
                                         and most likely accessible via
                                         direct branch)
      embedded retaddr        - 4 bytes
               Total overhead - 8 bytes
      
      In the end the icache pressure is decreased by 20/28 bytes at the cost
      of an extra jump to trampoline and adjusting LR (to skip over embedded
      retaddr) once inside.
      Signed-off-by: Nmalc <av1474@comtv.ru>
      c878da3b