1. 02 2月, 2016 2 次提交
    • P
      audio: Clean up includes · 6086a565
      Peter Maydell 提交于
      Clean up includes so that osdep.h is included first and headers
      which it implies are not included manually.
      
      This commit was created with scripts/clean-includes.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1453138432-8324-1-git-send-email-peter.maydell@linaro.org
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      6086a565
    • P
      Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.6-20160201' into staging · 10ae9d76
      Peter Maydell 提交于
      ppc patch queue for 2016-02-01
      
      Currently accumulated patches for target-ppc, pseries machine type and
      related devices.
        * Cleanup of error handling code in spapr
        * A number of fixes for Macintosh devices for the benefit of MacOS 9 and X
        * Remove some abuses of the RTAS memory access functions in spapr
        * Fixes for the gdbstub (and monitor debug) for VMX and VSX extensions.
        * Fix pseries machine hotplug memory under TCG
        * Clean up and extend handling of multiple page sizes with 64-bit hash MMUs
        * Fix to the TCG implementation of mcrfs
      
      # gpg: Signature made Mon 01 Feb 2016 02:28:34 GMT using RSA key ID 20D9B392
      # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>"
      # gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>"
      # gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>"
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392
      
      * remotes/dgibson/tags/ppc-for-2.6-20160201: (40 commits)
        target-ppc: mcrfs should always update FEX/VX and only clear exception bits
        target-ppc: Make every FPSCR_ macro have a corresponding FP_ macro
        target-ppc: Allow more page sizes for POWER7 & POWER8 in TCG
        target-ppc: Helper to determine page size information from hpte alone
        target-ppc: Add new TLB invalidate by HPTE call for hash64 MMUs
        target-ppc: Split 44x tlbiva from ppc_tlb_invalidate_one()
        target-ppc: Remove unused mmu models from ppc_tlb_invalidate_one
        target-ppc: Use actual page size encodings from HPTE
        target-ppc: Rework SLB page size lookup
        target-ppc: Rework ppc_store_slb
        target-ppc: Convert mmu-hash{32,64}.[ch] from CPUPPCState to PowerPCCPU
        target-ppc: Remove unused kvmppc_read_segment_page_sizes() stub
        uninorth.c: add support for UniNorth kMacRISCPCIAddressSelect (0x48) register
        cuda.c: return error for unknown commands
        pseries: Allow TCG h_enter to work with hotplugged memory
        target-ppc: gdbstub: Add VSX support
        target-ppc: gdbstub: fix spe registers for little-endian guests
        target-ppc: gdbstub: fix altivec registers for little-endian guests
        target-ppc: gdbstub: introduce avr_need_swap()
        target-ppc: gdbstub: fix float registers for little-endian guests
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      10ae9d76
  2. 01 2月, 2016 1 次提交
    • J
      target-ppc: mcrfs should always update FEX/VX and only clear exception bits · d1277156
      James Clarke 提交于
      Here is the description of the mcrfs instruction from the PowerPC Architecture
      Book, Version 2.02, Book I: PowerPC User Instruction Set Architecture
      (http://www.ibm.com/developerworks/systems/library/es-archguide-v2.html), found
      on page 120:
      
          The contents of FPSCR field BFA are copied to Condition Register field BF.
          All exception bits copied are set to 0 in the FPSCR. If the FX bit is
          copied, it is set to 0 in the FPSCR.
      
          Special Registers Altered:
              CR field BF
              FX OX                        (if BFA=0)
              UX ZX XX VXSNAN              (if BFA=1)
              VXISI VXIDI VXZDZ VXIMZ      (if BFA=2)
              VXVC                         (if BFA=3)
              VXSOFT VXSQRT VXCVI          (if BFA=5)
      
      However, currently every bit in FPSCR field BFA is set to 0, including ones not
      on that list.
      
      This can be seen in the following simple C program:
      
          #include <fenv.h>
          #include <stdio.h>
      
          int main(int argc, char **argv) {
              int ret;
              ret = fegetround();
              printf("Current rounding: %d\n", ret);
              ret = fesetround(FE_UPWARD);
              printf("Setting to FE_UPWARD (%d): %d\n", FE_UPWARD, ret);
              ret = fegetround();
              printf("Current rounding: %d\n", ret);
              ret = fegetround();
              printf("Current rounding: %d\n", ret);
              return 0;
          }
      
      which gave the output (before this commit):
      
          Current rounding: 0
          Setting to FE_UPWARD (2): 0
          Current rounding: 2
          Current rounding: 0
      
      instead of (after this commit):
      
          Current rounding: 0
          Setting to FE_UPWARD (2): 0
          Current rounding: 2
          Current rounding: 2
      
      The relevant disassembly is in fegetround(), which, on my system, is:
      
          __GI___fegetround:
          <+0>:   mcrfs  cr7, cr7
          <+4>:   mfcr   r3
          <+8>:   clrldi r3, r3, 62
          <+12>:  blr
      
      What happens is that, the first time fegetround() is called, FPSCR field 7 is
      retrieved. However, because of the bug in mcrfs, the entirety of field 7 is set
      to 0, which includes the rounding mode.
      
      There are other issues this will fix, such as condition flags not persisting
      when they should if read, and if you were to read a specific field with some
      exception bits set, but no others were set in the entire register, then the
      bits would be cleared correctly, but FEX/VX would not be updated to 0 as they
      should be.
      Signed-off-by: NJames Clarke <jrtc27@jrtc27.com>
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      d1277156
  3. 30 1月, 2016 37 次提交