1. 07 10月, 2015 1 次提交
  2. 25 9月, 2015 1 次提交
  3. 11 9月, 2015 1 次提交
  4. 09 7月, 2015 1 次提交
  5. 11 3月, 2015 1 次提交
    • E
      cpu: Make cpu_init() return QOM CPUState object · 2994fd96
      Eduardo Habkost 提交于
      Instead of making cpu_init() return CPUArchState, return CPUState.
      
      Changes were made using the Coccinelle semantic patch below.
      
        @@
        typedef CPUState;
        identifier e;
        expression args;
        type CPUArchState;
        @@
        -   e =
        +   cpu =
                cpu_init(args);
        -   if (!e) {
        +   if (!cpu) {
                ...
            }
        -   cpu = ENV_GET_CPU(env);
        +   e = cpu->env_ptr;
      
        @@
        identifier new_env, new_cpu, env, cpu;
        type CPUArchState;
        expression args;
        @@
        -{
        -   CPUState *cpu = ENV_GET_CPU(env);
        -   CPUArchState *new_env = cpu_init(args);
        -   CPUState *new_cpu = ENV_GET_CPU(new_env);
        +{
        +   CPUState *cpu = ENV_GET_CPU(env);
        +   CPUState *new_cpu = cpu_init(args);
        +   CPUArchState *new_env = new_cpu->env_ptr;
            ...
        }
      
        @@
        identifier c, cpu_init_func, cpu_model;
        type StateType, CPUType;
        @@
        -static inline StateType* cpu_init(const char *cpu_model)
        -{
        -   CPUType *c = cpu_init_func(cpu_model);
        (
        -   if (c == NULL) {
        -       return NULL;
        -   }
        -   return &c->env;
        |
        -   if (c) {
        -       return &c->env;
        -   }
        -   return NULL;
        )
        -}
        +#define cpu_init(cpu_model) CPU(cpu_init_func(cpu_model))
      
        @@
        identifier cpu_init_func;
        identifier model;
        @@
        -#define cpu_init(model) (&cpu_init_func(model)->env)
        +#define cpu_init(model) CPU(cpu_init_func(model))
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Cc: Blue Swirl <blauwirbel@gmail.com>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Cc: Riku Voipio <riku.voipio@iki.fi>
      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: Michael Walle <michael@walle.cc>
      Cc: Aurelien Jarno <aurelien@aurel32.net>
      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: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
      Cc: Max Filippov <jcmvbkbc@gmail.com>
      [AF: Fixed up cpu_copy() manually]
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      2994fd96
  6. 20 1月, 2015 1 次提交
    • P
      exec.c: Drop TARGET_HAS_ICE define and checks · ec53b45b
      Peter Maydell 提交于
      The TARGET_HAS_ICE #define is intended to indicate whether a target-*
      guest CPU implementation supports the breakpoint handling. However,
      all our guest CPUs have that support (the only two which do not
      define TARGET_HAS_ICE are unicore32 and openrisc, and in both those
      cases the bp support is present and the lack of the #define is just
      a bug). So remove the #define entirely: all new guest CPU support
      should include breakpoint handling as part of the basic implementation.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Message-id: 1420484960-32365-1-git-send-email-peter.maydell@linaro.org
      ec53b45b
  7. 05 6月, 2014 1 次提交
  8. 14 3月, 2014 3 次提交
  9. 12 3月, 2014 1 次提交
    • S
      target-sparc: Add and use CPU_FEATURE_CASA · 16c358e9
      Sebastian Huber 提交于
      The LEON3 processor has support for the CASA instruction which is
      normally only available for SPARC V9 processors.  Binutils 2.24
      and GCC 4.9 will support this instruction for LEON3.  GCC uses it to
      generate C11 atomic operations.
      
      The CAS synthetic instruction uses an ASI of 0x80.  If TARGET_SPARC64 is
      not defined use a supervisor data load/store for an ASI of 0x80 in
      helper_ld_asi()/helper_st_asi().  The supervisor data load/store was
      choosen according to the LEON3 documentation.
      
      The ASI 0x80 is defined in the SPARC V9 manual, Table 12—Address Space
      Identifiers (ASIs).  Here we have: 0x80, ASI_PRIMARY, Unrestricted
      access, Primary address space.
      
      Tested with the following program:
      
        #include <assert.h>
        #include <stdatomic.h>
      
        void test(void)
        {
          atomic_int a;
          int e;
          _Bool b;
      
          atomic_store(&a, 1);
          e = 1;
          b = atomic_compare_exchange_strong(&a, &e, 2);
          assert(b);
          assert(atomic_load(&a) == 2);
      
          atomic_store(&a, 3);
          e = 4;
          b = atomic_compare_exchange_strong(&a, &e, 5);
          assert(!b);
          assert(atomic_load(&a) == 3);
        }
      
      Tested also on a NGMP board with a LEON4 processor.
      Reviewed-by: NFabien Chouteau <chouteau@adacore.com>
      Reviewed-by: NAndreas Färber <afaerber@suse.de>
      Tested-by: NMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NSebastian Huber <sebastian.huber@embedded-brains.de>
      Signed-off-by: NMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
      16c358e9
  10. 03 12月, 2013 1 次提交
  11. 23 7月, 2013 2 次提交
  12. 10 7月, 2013 1 次提交
  13. 28 6月, 2013 1 次提交
  14. 12 3月, 2013 2 次提交
  15. 23 2月, 2013 1 次提交
  16. 19 12月, 2012 3 次提交
  17. 16 12月, 2012 1 次提交
  18. 07 12月, 2012 1 次提交
  19. 02 11月, 2012 1 次提交
  20. 31 10月, 2012 1 次提交
  21. 23 10月, 2012 1 次提交
    • A
      Rename target_phys_addr_t to hwaddr · a8170e5e
      Avi Kivity 提交于
      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: NAvi Kivity <avi@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      a8170e5e
  22. 08 10月, 2012 1 次提交
  23. 05 6月, 2012 1 次提交
  24. 14 4月, 2012 1 次提交
  25. 07 4月, 2012 1 次提交
  26. 24 3月, 2012 1 次提交
  27. 18 3月, 2012 4 次提交
  28. 15 3月, 2012 3 次提交
  29. 27 10月, 2011 1 次提交