1. 24 3月, 2016 1 次提交
  2. 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
  3. 17 2月, 2016 1 次提交
  4. 09 2月, 2016 1 次提交
  5. 03 2月, 2016 1 次提交
  6. 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
  7. 30 1月, 2016 1 次提交
  8. 29 1月, 2016 1 次提交
    • P
      ppc: Clean up includes · 0d75590d
      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: 1453832250-766-6-git-send-email-peter.maydell@linaro.org
      0d75590d
  9. 18 12月, 2015 2 次提交
  10. 12 11月, 2015 1 次提交
  11. 29 10月, 2015 1 次提交
  12. 23 10月, 2015 1 次提交
  13. 07 10月, 2015 7 次提交
  14. 21 9月, 2015 1 次提交
  15. 22 6月, 2015 1 次提交
    • P
      disas: Remove uses of CPU env · d49190c4
      Peter Crosthwaite 提交于
      disas does not need to access the CPU env for any reason. Change the
      APIs to accept CPU pointers instead. Small change pattern needs to be
      applied to all target translate.c. This brings us closer to making
      disas.o a common-obj and less architecture specific in general.
      
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Cc: Michael Walle <michael@walle.cc>
      Cc: Aurelien Jarno <aurelien@aurel32.net>
      Cc: Leon Alrae <leon.alrae@imgtec.com>
      Cc: Jia Liu <proljc@gmail.com>
      Cc: Alexander Graf <agraf@suse.de>
      Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      Cc: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Cc: Max Filippov <jcmvbkbc@gmail.com>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Reviewed-by: NEduardo Habkost <ehabkost@redhat.com>
      Signed-off-by: NPeter Crosthwaite <crosthwaite.peter@gmail.com>
      Acked-by: NLuiz Capitulino <lcapitulino@redhat.com>
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      d49190c4
  16. 14 3月, 2015 1 次提交
    • R
      tcg: Change translator-side labels to a pointer · 42a268c2
      Richard Henderson 提交于
      This is improved type checking for the translators -- it's no longer
      possible to accidentally swap arguments to the branch functions.
      
      Note that the code generating backends still manipulate labels as int.
      
      With notable exceptions, the scope of the change is just a few lines
      for each target, so it's not worth building extra machinery to do this
      change in per-target increments.
      
      Cc: Peter Maydell <peter.maydell@linaro.org>
      Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>
      Cc: Michael Walle <michael@walle.cc>
      Cc: Leon Alrae <leon.alrae@imgtec.com>
      Cc: Anthony Green <green@moxielogic.com>
      Cc: Jia Liu <proljc@gmail.com>
      Cc: Alexander Graf <agraf@suse.de>
      Cc: Aurelien Jarno <aurelien@aurel32.net>
      Cc: Blue Swirl <blauwirbel@gmail.com>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Max Filippov <jcmvbkbc@gmail.com>
      Reviewed-by: NBastian Koppelmann <kbastian@mail.uni-paderborn.de>
      Signed-off-by: NRichard Henderson <rth@twiddle.net>
      42a268c2
  17. 09 3月, 2015 1 次提交
  18. 13 2月, 2015 2 次提交
  19. 07 1月, 2015 12 次提交
  20. 03 1月, 2015 1 次提交
  21. 23 12月, 2014 1 次提交