1. 16 2月, 2015 32 次提交
  2. 13 2月, 2015 8 次提交
    • P
      Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20150212' into staging · cd2d5541
      Peter Maydell 提交于
      Convert to linked list.
      
      # gpg: Signature made Fri 13 Feb 2015 05:40:41 GMT using RSA key ID 4DD0279B
      # gpg: Good signature from "Richard Henderson <rth7680@gmail.com>"
      # gpg:                 aka "Richard Henderson <rth@redhat.com>"
      # gpg:                 aka "Richard Henderson <rth@twiddle.net>"
      
      * remotes/rth/tags/pull-tcg-20150212:
        tcg: Remove unused opcodes
        tcg: Implement insert_op_before
        tcg: Remove opcodes instead of noping them out
        tcg: Put opcodes in a linked list
        tcg: Introduce tcg_op_buf_count and tcg_op_buf_full
        tcg: Move emit of INDEX_op_end into gen_tb_end
        tcg: Reduce ifdefs in tcg-op.c
        tcg: Move some opcode generation functions out of line
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      cd2d5541
    • P
      Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20150213' into staging · e344e7af
      Peter Maydell 提交于
      target-arm queue:
       * PCIe support in virt board
       * Support 32-bit guests on 64-bit KVM hosts in virt board
       * Fixes to avoid C undefined behaviour
      
      # gpg: Signature made Fri 13 Feb 2015 05:53:07 GMT using RSA key ID 14360CDE
      # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
      
      * remotes/pmaydell/tags/pull-target-arm-20150213:
        target-arm: A64: Avoid signed shifts in disas_ldst_pair()
        target-arm: A64: Avoid left shifting negative integers in disas_pc_rel_addr
        target-arm: A64: Fix handling of rotate in logic_imm_decode_wmask
        target-arm: A64: Fix shifts into sign bit
        target-arm: Add AArch32 guest support to KVM64
        target-arm: Add 32/64-bit register sync
        target-arm: Add feature parsing to virt
        target-arm: Add CPU property to disable AArch64
        pci: Move PCI VGA to pci.mak
        arm: Add PCIe host bridge in virt machine
        pci: Add generic PCIe host bridge
        pci: Allocate PCIe host bridge PCI ID
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      e344e7af
    • P
      target-arm: A64: Avoid signed shifts in disas_ldst_pair() · c2ebd862
      Peter Maydell 提交于
      Avoid shifting potentially negative signed offset values in
      disas_ldst_pair() by keeping the offset in a uint64_t rather
      than an int64_t.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1423233250-15853-5-git-send-email-peter.maydell@linaro.org
      c2ebd862
    • P
      target-arm: A64: Avoid left shifting negative integers in disas_pc_rel_addr · 037e1d00
      Peter Maydell 提交于
      Shifting a negative integer left is undefined behaviour in C.
      Avoid it by assembling and shifting the offset fields as
      unsigned values and then sign extending as the final action.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1423233250-15853-4-git-send-email-peter.maydell@linaro.org
      037e1d00
    • P
      target-arm: A64: Fix handling of rotate in logic_imm_decode_wmask · e167adc9
      Peter Maydell 提交于
      The code in logic_imm_decode_wmask attempts to rotate a mask
      value within the bottom 'e' bits of the value with
          mask = (mask >> r) | (mask << (e - r));
      This has two issues:
       * if the element size is 64 then a rotate by zero results
         in a shift left by 64, which is undefined behaviour
       * if the element size is smaller than 64 then this will
         leave junk in the value at bit 'e' and above, which is
         not valid input to bitfield_replicate(). As it happens,
         the bits at bit 'e' to '2e - r' are exactly the ones
         which bitfield_replicate is going to copy in there,
         so this isn't a "wrong code generated" bug, but it's
         confusing and if we ever put an assert in
         bitfield_replicate it would fire on valid guest code.
      
      Fix the former by not doing anything if r is zero, and
      the latter by masking with bitmask64(e).
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1423233250-15853-3-git-send-email-peter.maydell@linaro.org
      e167adc9
    • P
      target-arm: A64: Fix shifts into sign bit · 1743d55c
      Peter Maydell 提交于
      Fix attempts to shift into the sign bit of an int, which is undefined
      behaviour in C and warned about by the clang sanitizer.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1423233250-15853-2-git-send-email-peter.maydell@linaro.org
      1743d55c
    • G
      target-arm: Add AArch32 guest support to KVM64 · 56073970
      Greg Bellows 提交于
      Add 32-bit to/from 64-bit register synchronization on register gets and puts.
      Set EL1_32BIT feature flag passed to KVM
      Signed-off-by: NGreg Bellows <greg.bellows@linaro.org>
      Message-id: 1423736974-14254-5-git-send-email-greg.bellows@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      56073970
    • G
      target-arm: Add 32/64-bit register sync · ce02049d
      Greg Bellows 提交于
      Add AArch32 to AArch64 register sychronization functions.
      Replace manual register synchronization with new functions in
      aarch64_cpu_do_interrupt() and HELPER(exception_return)().
      Signed-off-by: NGreg Bellows <greg.bellows@linaro.org>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-id: 1423736974-14254-4-git-send-email-greg.bellows@linaro.org
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      ce02049d