1. 26 10月, 2016 4 次提交
  2. 24 10月, 2016 1 次提交
    • P
      target-i386: fix 32-bit addresses in LEA · 620abfb0
      Paolo Bonzini 提交于
      This was found with test-i386.  The issue is that instructions
      such as
      
          addr32 lea (%eax), %rax
      
      did not perform a 32-bit extension, because the LEA translation
      skipped the gen_lea_v_seg step.  That step does not just add
      segments, it also takes care of extending from address size to
      pointer size.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      620abfb0
  3. 16 9月, 2016 1 次提交
  4. 02 8月, 2016 1 次提交
    • D
      target-i386: fix typo in xsetbv implementation · ba03584f
      Dave Hansen 提交于
      QEMU 2.6 added support for the XSAVE family of instructions, which
      includes the XSETBV instruction which allows setting the XCR0
      register.
      
      But, when booting Linux kernels with XSAVE support enabled, I was
      getting very early crashes where the instruction pointer was set
      to 0x3.  I tracked it down to a jump instruction generated by this:
      
              gen_jmp_im(s->pc - pc_start);
      
      where s->pc is pointing to the instruction after XSETBV and pc_start
      is pointing _at_ XSETBV.  Subtract the two and you get 0x3.  Whoops.
      
      The fix is to replace this typo with the pattern found everywhere
      else in the file when folks want to end the translation buffer.
      
      Richard Henderson confirmed that this is a bug and that this is the
      correct fix.
      Signed-off-by: NDave Hansen <dave.hansen@linux.intel.com>
      Cc: qemu-stable@nongnu.org
      Cc: Eduardo Habkost <ehabkost@redhat.com>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      ba03584f
  5. 19 7月, 2016 1 次提交
  6. 20 6月, 2016 1 次提交
  7. 06 6月, 2016 1 次提交
  8. 24 5月, 2016 1 次提交
  9. 23 5月, 2016 1 次提交
    • P
      target-i386: key sfence availability on CPUID_SSE, not CPUID_SSE2 · 14cb949a
      Paolo Bonzini 提交于
      sfence was introduced before lfence and mfence.  This fixes Linux
      2.4's measurement of checksumming speeds for the pIII_sse
      algorithm:
      
      md: linear personality registered as nr 1
      md: raid0 personality registered as nr 2
      md: raid1 personality registered as nr 3
      md: raid5 personality registered as nr 4
      raid5: measuring checksumming speed
         8regs     :   384.400 MB/sec
         32regs    :   259.200 MB/sec
      invalid operand: 0000
      CPU:    0
      EIP:    0010:[<c0240b2a>]    Not tainted
      EFLAGS: 00000246
      eax: c15d8000   ebx: 00000000   ecx: 00000000   edx: c15d5000
      esi: 8005003b   edi: 00000004   ebp: 00000000   esp: c15bdf50
      ds: 0018   es: 0018   ss: 0018
      Process swapper (pid: 1, stackpage=c15bd000)
      Stack: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000
             00000000 00000000 00000000 00000000 00000000 00000000 00000000
      00000000
             00000000 00000206 c0241c6c 00001000 c15d4000 c15d7000 c15d4000
      c15d4000
      Call Trace:    [<c0241c6c>] [<c0105000>] [<c0241db4>] [<c010503b>]
      [<c0105000>]
        [<c0107416>] [<c0105030>]
      
      Code: 0f ae f8 0f 10 04 24 0f 10 4c 24 10 0f 10 54 24 20 0f 10 5c
       <0>Kernel panic: Attempted to kill init!
      Reported-by: NStefan Weil <sw@weilnetz.de>
      Fixes: 121f3157
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      14cb949a
  10. 19 5月, 2016 1 次提交
  11. 13 5月, 2016 3 次提交
  12. 24 3月, 2016 1 次提交
  13. 15 3月, 2016 7 次提交
  14. 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
  15. 15 2月, 2016 6 次提交
  16. 13 2月, 2016 8 次提交
  17. 09 2月, 2016 1 次提交