1. 11 Feb, 2014 1 commit
  2. 17 Jan, 2014 1 commit
  3. 14 Oct, 2013 1 commit
    • Stefan Weil's avatar
      exec: Fix prototype of phys_mem_set_alloc and related functions · 575ddeb4
      Stefan Weil authored
      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: default avatarStefan Weil <sw@weilnetz.de>
      Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Message-id: 1380481005-32399-1-git-send-email-sw@weilnetz.de
      Signed-off-by: default avatarAnthony Liguori <aliguori@amazon.com>
      575ddeb4
  4. 10 Oct, 2013 2 commits
  5. 01 Oct, 2013 1 commit
  6. 25 Sep, 2013 1 commit
  7. 12 Sep, 2013 1 commit
  8. 02 Sep, 2013 2 commits
    • Richard Henderson's avatar
      exec: Split softmmu_defs.h · e58eb534
      Richard Henderson authored
      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: default avatarAurelien Jarno <aurelien@aurel32.net>
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      e58eb534
    • Richard Henderson's avatar
      exec: Reorganize the GETRA/GETPC macros · 0f842f8a
      Richard Henderson authored
      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: default avatarAurelien Jarno <aurelien@aurel32.net>
      Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
      0f842f8a
  9. 29 Aug, 2013 1 commit
  10. 26 Aug, 2013 1 commit
  11. 15 Jul, 2013 1 commit
  12. 12 Jun, 2013 1 commit
  13. 29 May, 2013 1 commit
  14. 27 Apr, 2013 1 commit
  15. 16 Feb, 2013 2 commits
  16. 19 Jan, 2013 1 commit
    • Stefan Weil's avatar
      tci: Fix broken build (regression) · b54c2873
      Stefan Weil authored
      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: default avatarStefan Weil <sw@weilnetz.de>
      Signed-off-by: default avatarBlue Swirl <blauwirbel@gmail.com>
      b54c2873
  17. 19 Dec, 2012 2 commits
  18. 16 Dec, 2012 1 commit
  19. 08 Dec, 2012 1 commit
  20. 18 Nov, 2012 1 commit
  21. 06 Nov, 2012 1 commit
    • malc's avatar
      tcg/ppc32: Use trampolines to trim the code size for mmu slow path accessors · c878da3b
      malc authored
      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: default avatarmalc <av1474@comtv.ru>
      c878da3b
  22. 03 Nov, 2012 2 commits
  23. 01 Nov, 2012 1 commit
  24. 23 Oct, 2012 1 commit
    • Avi Kivity's avatar
      Rename target_phys_addr_t to hwaddr · a8170e5e
      Avi Kivity authored
      target_phys_addr_t is unwieldly, violates the C standard (_t suffixes are
      reserved) and its purpose doesn't match the name (most target_phys_addr_t
      addresses are not target specific).  Replace it with a finger-friendly,
      standards conformant hwaddr.
      
      Outstanding patchsets can be fixed up with the command
      
        git rebase -i --exec 'find -name "*.[ch]"
                              | xargs s/target_phys_addr_t/hwaddr/g' origin
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      a8170e5e
  25. 20 Oct, 2012 1 commit
  26. 19 Oct, 2012 1 commit
  27. 21 Sep, 2012 1 commit
  28. 15 Sep, 2012 2 commits
  29. 25 Jun, 2012 1 commit
  30. 19 May, 2012 1 commit
  31. 01 May, 2012 1 commit
  32. 21 Apr, 2012 1 commit
  33. 14 Apr, 2012 2 commits