1. 31 1月, 2014 37 次提交
  2. 30 1月, 2014 2 次提交
    • P
      Merge remote-tracking branch 'mjt/tags/trivial-patches-2014-01-16' into staging · 0706f7c8
      Peter Maydell 提交于
      trivial-patches for 2014-01-16
      
      # gpg: Signature made Thu 16 Jan 2014 17:29:05 GMT using RSA key ID 74F0C838
      # gpg: Good signature from "Michael Tokarev <mjt@tls.msk.ru>"
      # gpg:                 aka "Michael Tokarev <mjt@corpit.ru>"
      # gpg:                 aka "Michael Tokarev <mjt@debian.org>"
      # gpg: WARNING: This key is not certified with a trusted signature!
      # gpg:          There is no indication that the signature belongs to the owner.
      # Primary key fingerprint: 6EE1 95D1 886E 8FFB 810D  4324 457C E0A0 8044 65C5
      #      Subkey fingerprint: E190 8639 3B10 B51B AC2C  8B73 5253 C5AD 74F0 C838
      
      Message-id: 1389893719-16336-1-git-send-email-mjt@msgid.tls.msk.ru
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      0706f7c8
    • A
      TCG: Fix I64-on-32bit-host temporaries · 18d13fa2
      Alexander Graf 提交于
      We have cache pools of temporaries that we can reuse later when they've
      already been allocated before.
      
      These cache pools differenciate between the target TCG variable type they
      contain. So we have one pool for I32 and one pool for I64 variables.
      
      On a 32bit system, we can't work with 64bit registers though. So instead we
      spawn two I32 temporaries for every I64 temporary we create. All caching
      works the same way as on a real 64-bit system though: We create a cache entry
      in the 64bit array for the first i32 index.
      
      However, when we free such a temporary we free it to the pool of its type
      (which is always i32 on 32bit systems) rather than its base_type (which is
      i64 or i32 depending on the variable). This means we put a temporary that
      is of base_type == i64 into the i32 preallocated temporary pool.
      
      Eventually, this results in failures like this on 32bit hosts:
      
        qemu-system-ppc64: tcg/tcg.c:515: tcg_temp_new_internal: Assertion `ts->base_type == type' failed.
      
      This patch makes the free routine use the base_type instead for the free case,
      so it's consistent with the temporary allocation. It fixes the above failure
      for me.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Message-id: 1390146811-59936-1-git-send-email-agraf@suse.de
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      18d13fa2
  3. 27 1月, 2014 1 次提交
    • S
      trace: fix simple trace "disable" keyword · 736ec167
      Stefan Hajnoczi 提交于
      The trace-events "disable" keyword turns an event into a nop at
      compile-time.  This is important for high-frequency events that can
      impact performance.
      
      The "disable" keyword is currently broken in the simple trace backend.
      This patch fixes the problem as follows:
      
      Trace events are identified by their TraceEventID number.  When events
      are disabled there are two options for assigning TraceEventID numbers:
      1. Skip disabled events and don't assign them a number.
      2. Assign numbers for all events regardless of the disabled keyword.
      
      The simple trace backend and its binary file format uses approach #1.
      
      The tracetool infrastructure has been using approach #2 for a while.
      
      The result is that the numbers used in simple trace files do not
      correspond with TraceEventIDs.  In trace/simple.c we assumed that they
      are identical and therefore emitted bogus numbers.
      
      This patch fixes the bug by using TraceEventID for trace_event_id()
      while sticking to approach #1 for simple trace file numbers.  This
      preserves simple trace file format compatibility.
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      736ec167